lamborghini

lamborghini

วันอังคารที่ 7 สิงหาคม พ.ศ. 2555

MATLAB

MATLAB คืออะไร 
MATLAB เป็นภาษาคอมพิวเตอร์ชั้นสูง (High-level Language) สำหรับการคำนวณทางเทคนิคที่ประกอบด้วยการคำนวณเชิงตัวเลข กราฟิกที่ซับซ้อน และการจำลองแบบเพื่อให้มองเห็นภาพพจน์ได้ง่ายและชัดเจนชื่อของ MATLAB ย่อมาจาก matrix laboratory เดิมโปรแกรม MATLAB ได้เขียนขึ้นเพื่อใช้ในการคำนวณทาง matrix หรือเป็น matrix software ที่พัฒนาจากโพรเจ็กที่ชื่อ LINKPACK และ EISPACK

MATLAB ได้พัฒนามาด้วยการแก้ปัญหาที่ส่งมาจากหลายๆ ผู้ใช้เป็นระยะเวลาหลายปีจึงทำให้โปรแกรม MATLAB มีฟังก์ชันต่างๆ ให้เลือกใช้มากมาย ในบางมหาวิทยาลัยได้ใช้โปรแกรม MATLAB เป็นหลักสูตรพื้นฐานในการศึกษาทางด้วนคณิตศาสตร์ วิศวกรรม และวิทยาศาสตร์แขนงต่างตลอดจนใจด้วนอุตสาหกรรมได้ใช้โปรแกรม MATLAB เป็นเครื่องมือสำหรับใช้ในงานวิจัย พัฒนาและวิเคราะห์

โปรแกรม MATLAB จะมีกล่องเครื่องมือที่ใช้ในการหาคำตอบเรียกว่า Toolbox โดยโปรแกรม MATLAB จะมี toolbox ในแต่ละสาขา เช่น การประมวลผลสัญญาณ (Signal processing toolbox) การประมวลผลภาพ (image processing toolbox) ระบบควบคุม (control system toolbox) โครงข่ายประสาท (neural networks toolbox) ฟัซซี่ลอจิก (fuzzy logic toolbox) เวฟเลท (wavelet toolbox) การติดต่อสื่อสาร (communication toolbox) สถิติ (Statistics toolbox) และสาขาอื่นๆ มากมาย ภายใน toolbox แต่ละสาขาก็จะมีฟังก์ชันต่างๆ ที่เกี่ยวข้องกับการแก้ปัญหาในสาขานั้นๆ ให้เลือกประยุกต์ใช้งานเป็นจำนวนมาก 


โครงสร้างของ MATLAB

โครงสร้างของโปรแกรม MATLAB ประกอบด้วย 5 ส่วนใหญ่ คือ

  1. ภาษาโปรแกรม MATLAB (The MATLAB language)
    MATLAB เป็นโปรแกรมภาษาชั้นสูงที่ใช้ควบคุม flow statement ฟังก์ชัน โครงสร้างข้อมูลอินพุท/เอาท์พุท และลักษณะโปรแกรม Object-Oriented Programming ทำให้การเขียนโปรแกรมไม่ยุ่งยากเมื่อเทียบกับการเขียนโปรแกรมด้วยภาษาอื่นๆ เช่น C, Fortran, Basic เป็นต้น
  2. สถาปัตยกรรมในการทำงานของ MATLAB (The MATLAB working environment)
    MATLAB จะมีกลุ่มของเครื่องมือที่เป็นประโยชน์สำหรับการทำงานของผู้ใช้โปรแกรม หรือโปรแกรมเมอร์ประโยชน์ที่กล่าวนี้ก็คือการจัดการตัวแปรใน workspace การนำข้อมูลหรือการผ่านค่าตัวแปรเข้า/ออกและกลุ่มของเครื่องมือต่างๆ นี้ก็จะใช้สำหรับพัฒนา จัดการ ตรวจสอบความผิดพลาดของโปรแกรม (debugging) ที่ได้เขียนขึ้น
  3. ฟังก์ชันในการคำนวณทางคณิตศาสตร์ (The MATLAB mathematical function library)
    MATLAB จะมีไลบรารีทั่วไปที่ใช้ในการคำนวณอย่างกว้าง เช่น sine, cosine และพีชคณิตเชิงซ้อนโดยสามารถนำไปประยุกต์ใช้เป็นฟังก์ชันหรือไลบรารีเพิ่มเติมขึ้นจากไลบรารีที่ใช้กันโดยทั่วไป เช่น ฟังก์ชันในการหา eigenvalues และ eigenvectors การแยกตัวประกอบและส่วนประกอบของเมตริกซ์ด้วยวิธีต่างๆ การวิเคราะห์ข้อมูล การหาความน่าจะเป็น และการแก้ปัญหาระบบของสมการเชิงเส้นที่เป็นพื้นฐานของสาขาวิชาต่างๆ เป็นต้น ทำให้โปรแกรม MATLAB มีฟังก์ชันสำหรับใช้งานค่อนข้างมากและครอบคลุมในรายละเอียดของการคำนวณสาขาต่างๆ ได้มากขึ้น
  4. Handle Graphics
    ระบบกราฟิกของ MATLAB จะประกอบด้วยคำสั่งชั้นสูงสำหรับการพล็อตกราฟโดยมีพื้นฐานอยู่บนแนวความคิดที่ว่าทุกๆ สิ่งบนหน้าต่างรูปภาพของโปรแกรม MATLAB จะเป็นวัตถุ (Object) ซึ่งมีเอกลักษณ์เฉพาะตัว Handle Graphics ประกอบด้วยคำสั่งชั้นสูงให้คุณได้เลือกใช้ในการสร้าง Graphic User Interface บนพื้นฐานการประยุกต์ใช้งานของคุณ นอกจากนี้โปรแกรม MATLAB ยังมีฟังก์ชันที่ใช้สำหรับการแสดงภาพสองมิติ ภาพสามมิติ และการสร้างภาพเคลื่อนไหว
  5. The MATLAB Application Program Interface (API)
    API จะใช้เพื่อสนับสนุนการติดต่อจากภายนอกโดยใช้โปรแกรมที่เป็น mex ไฟล์ซึ่งเป็นไฟล์ซึ่งเป็นไฟล์ที่เขียนขึ้นโดยใช้ mex ฟังก์ชันใน MATLAB ซึ่งจะเรียกใช้รูทีนจากโปรแกรมภาษา C และ Fortran หรืออาจกล่าวได้ว่า API เป็นไลบรารีที่เขียนด้วยโปรแกรมภาษา C และ Fortran ที่มีการเชื่อมต่อกับโปรแกรม MATLAB ด้วยไฟล์ที่เป็น mex ฟังก์ชันอีกทั้ง MATLAB API นี้ยังมีความสามารถสำหรับการเรียก routine จาก MATLAB (dynamic linking) ก็ได้
นอกจากลักษณะเด่นของโปรแกรม MATLAB ทั้ง 5 ข้อที่ได้กล่าวมาข้างต้นแล้วโปรแกรม MATLAB ยังมีเครื่องมือที่ใช้สำหรับการวิเคราะห์และทดสอบระบบโดยการจำลองขึ้นมาซึ่งก็คือ Simulink

Simulink เป็นโปรแกรมที่ควบคู่กับ MATLAB ซึ่งเป็นระบบ Interactive สำหรับการจำลองและวิเคราะห์ระบบไดนามิกต่างๆ ที่เป็นระบบเชิงเส้น (Linear) ระบบไม่เชิงเส้น (nonlinear) Simulink เป็นโปรแกรม mouse-driver ที่ให้คุณใช้ระบบโมเดลโดยการวาดบล็อกไดละแกรมบนจอภาพด้วยการใช้เมาส์ทำให้โปรแกรม MATLAB สามารถทำการจำลองระบบได้หลายรูปแบบ น เชิงเส้น (linear) ไม่เชิงเส้น (nonlinear) เวลาต่อเนื่อง (continuous-times) เวลาไม่ต่อเนื่อง (discrete-time) และระบบเหลายอัตรา (multirate) ซึ่งแต่ละรูปแบบที่นำมาสร้างแบบจำลองในการวิเคราะห์นี้ผู้ใช้จะต้องมีความเข้าใจพื้นฐานการทำงานของบล็อกแต่ละบล็อกได้เป็นอย่างดี ตลอดจนเข้าใจระบบโดยรวมของงานที่จะกระทำด้วย

Blocksets เป็นสิ่งที่เพิ่มเติมใน Simulink โดยจะเป็นไลบรารีของบล็อกสำหรับการประยุกต์เฉพาะ เช่น การติดต่อสื่อสาร (Communications) การประมวลผลข้อมูล (Signal processing) และระบบไฟฟ้ากำลัง (power systems)
Real-time Workshop เป็นโปรแกรมที่ให้คุณสร้าง c code จากบ็อกไดอะแกรมของคุณและสามารถกระทำกับบล็อกไดอะแกรมได้หลากหลายด้วยระบบเวลาจริง (real-time systems)

โปรแกรม MATLAB มีอยู่หลาย version ซึ่ง version ดั้งเดิมของโปรแกรม MATLAB จะใช้งานบน DOS ที่มีการคำนวณไม่ยุ่งยากเหมาะสำหรับผู้เริ่มศึกษา คอมพิวเตอร์ที่ใช้ก็ไม่จำเป็นต้องมีพื้นที่หน่วยความจำมาก ใช้ได้กับ CPU ที่มีความเร็วต่ำ แต่มีข้อเสียคือฟังก์ชันที่นำมาใช้งานมีน้อยทำให้เขียนโปรแกรมที่มีความซับซ้อนได้ไม่ดีเท่าที่ควรเพราะมีประสิทธิภาพและความเร็วในการประมวลผลต่ำ ต่อมาเมื่อระบบเลือกใช้ได้มากมายจึงทำให้โปรแกรม MATLAB มีประสิทธิภาพและมีความสามารถในการประมวลผลที่เร็วขึ้น version ใหม่ที่ได้ทำการปรับปรุงใหม่ให้ดีขึ้นนี้จะใช้งานบน Windows ทำให้ผู้ใช้มีความสะดวกในการใช้งานมากขึ้น ข้อดีของ version ใหม่นี้คือมีประสิทธิภาพที่ดีขึ้น การประมวลผลโปรแกรมที่ซับซ้อนมีความเร็วสูงขึ้น และมีฟังก์ชันต่างๆ ให้เลือกใช้ในการสาขาต่างๆ มากมาย แต่ก็ต้องใช้กับคอมพิวเตอร์ที่มีพื้นที่หน่วยความจำมาก CPU มีความเร็วสูง และต้องการ Co-processor ในการช่วยคำนวณแต่เมื่อเปรียบเทียบกับผลดีที่ได้ก็ถือว่าคุ้ม 


คอมพิวเตอร์ที่เหมาะสมสำหรับโปรแกรม MATLAB
เนื่องจากโปรแกรม MATLAB เป็นโปรแกรมที่ใช้สำหรับการคำนวณทางคณิตศาสตร์และกราฟิกที่ซับซ้อนดังนั้นจึงจำเป็นต้องใช้เครื่องคอมพิวเตอร์ที่มีความเร็วสูง คอมพิวเตอร์พีซีที่เหมาะสมกับโปรแกรม MATLAB คือ มีซีพียูรุ่นเพนเทืยมขึ้นไป แรมควรมีอย่างต่ำ 32 เมกกะไบต์ ส่วนฮาร์ดดิสก์ควรมีเนื้อที่ว่างเกินกว่า 80 เมกกะไบต์ขึ้นไป


โปรแกรม MATLAB ดีอย่างไร
สำหรับผู้ที่ยังไม่เคยใช้งานโปรแกรม MATLAB อาจสงสัยว่าโปรแกรม MATLAB มีข้อดีอย่างไร ทำไมถึงไม่ใช้งานภาษาโปรแกรมอื่นๆ และแตกต่างจากโปรแกรมภาษาอื่นๆ อย่างไร ดังนั้นในหัวข้อนี้จึงได้จำแนกลักษณะเด่นที่ง่ายต่อการใช้งานของโปรแกรม MATLAB ดังนี้ คือ

  • มีฟังก์ชันคณิตศาสตร์ให้เลือกใช้ในการคำนวณมากมายตลอดจนเราสามารถสร้างฟังก์ชันขึ้นมาใช้งานได้เองในสาขาที่ต้องการ โดยฟังก์ชันที่สร้างขึ้น (M-File) จะมีนามสกุลเป็น .M
  • Algorithm พัฒนาได้ง่ายไม่ยุ่งยาก สามารถแก้ไขปัญหาทางด้วนคณิตศาสตร์ที่มีความซับซ้อนได้ง่าย และรวดเร็วกว่าโปรแกรมภาษาอื่นๆ เช่น C Fortran Basic เป็นต้น
  • มีโครงสร้างแบบจำลอง (Simulink) ซึ่งเป็น Package ที่เรานำไปสร้างบล็อกไดอะแกรมเพื่อใช้ทดสอบ และประเมินผลระบบ Dynamic ต่างๆ ก่อนนำไปใช้งานจริง
  • สามารถวิเคราะห์และตรวจสอบข้อมูลได้ง่ายและรวดเร็ว
  • นำไปใช้งานในทางด้วนกราฟิกได้เป็นอย่างดีทั้งในด้านการแสดงภาพตั้งแต่สองมิติที่เป็น rectangular polar stair bar รวมทั้งภาพสมมิติในรูปแบบพื้นผิว (surface) และระดับสูงต่ำ (contour) ตลอดจนสามารถนำภาพมาต่อกัน และเก็บไว้เพื่อที่จะสร้างเป็นภาพเคลื่อนไหวได้อีกด้วย
  • ประยุกต์ใช้ในการสร้างรูปแบบ Graphical User Interface ได้โดยการเลือกใช้ object และเมนูต่างๆ โดยโปรแกรม MATLAB จะมีเครื่องมือให้เลือกใช้ เช่น เมนู รายการ ปุ่มกด และ fields object ต่างๆ เพื่อให้ผู้ใช้สามารถเลือกนำไปใช้ในการทำงานปฏิสัมพันธ์กันระหว่างผู้ใช้กับเครื่องคอมพิวเตอร์ได้
  • ทำการประมวลผลร่วมกับโปรแกรมอื่นได้ เช่น Fortran, Borland C/C++, Microsoft Visual C++ และ Watcom C/C++ ด้วยการเขียนฟังก์ชันที่เป็น mex ไฟล์โดยโปรแกรม MATLABจะเรียกใช้รูทีนจากโปรแกรมภาษา C และ Fortran
  • โปรแกรม MATLAB เป็นระบบ interactive ซึ่งส่วนของข้อมูลพื้นฐานเป็นอาร์เรย์ที่ไม่ต้องการมิติ ทำให้โปรแกรม MATLAB สามารถทำการแก้ปัญหาทางเทคนิคต่างๆ ได้มากใช้เวลาในการประมวลผลน้อย และดีกว่าโปรแกรมภาษา C และ Fortran


  • ทำไมต้องใช้ MATLAB ด้วย ใช้ภาษาอื่นไม่ได้หรือ
    คอมพิวเตอร์ได้สร้างขั้นมาเพื่อใช้ในการแก้ปัญหาในเชิงตัวเลขโดยมีภาษาทางคอมพิวเตอร์หลายตัวที่ช่วยในการแก้ปัญหา เช่น ภาษา C, Fortran , Pascal เป็นต้น การใช้โปรแกรมภาษา C, Fortran และ Pascal ในการแก้ปัญหาเชิงตัวเลข และกราฟิกที่มีความซับซ้อนค่อนข้างจะยุ่งยากและเสียเวลามาก เพราะต้องใช้คำสั่งเป็นจำนวนมาก และมีรูปแบบคำสั่งที่แน่นอน บริษัท MathWorks Inc, จึงได้พัฒนาโปรแกรมที่มีชื่อว่า MATLAB เพื่อใช้ในการคำนวณเชิงตัวเลข และกราฟิกที่ซับซ้อนให้ง่ายต่อการใช้งาน มีความรวดเร็ว และการเขียนโปรแกรมไม่ยุ่งยาก เนื่องจากโปรแกรม MATLAB เป็นโปรแกรมที่มีการพัฒนาอย่างไม่หยุดยั้ง และเป็นโปรแกรมที่ง่ายต่อความเข้าใจ และเขียนโปรกแกรมไม่ซับซ้อน และเมื่อนำไปใช้งานและสามารถเห็นผลลัพธ์ได้อย่างรวดเร็ว ด้วยเหตุนี้เองจึงทำให้โปรแกรม MATLAB ถูกนำมาใช้งานกันอย่างกว้างขวางในสาขาต่าง ๆ


    คำสั่งโปรแกรม MATLAB รูปแบบการแสดงค่า ตัวอย่างค่า Pi
    format short การแสดงตัวเลข 5 ตำแหน่ง 3.1416
    format short e การแสดงตัวเลข 5 ตำแหน่งพร้อมเลข Exp 3.1416e+00
    format short g การแสดงตัวเลขที่ดีที่สุดระหว่างในรูปแบบสั้นๆ หรือในรูปแบบเลข Exp แล้วแต่ความเหมาะสม 3.1416
    format long การแสดงตัวเลข 16 ตำแหน่ง 3.14159265358979
    format long e การแสดงตัวเลข 16 ตำแหน่งพร้อมเลข Exp 3.14159265358979e+00
    format long g การแสดงตัวเลขแบบยาว 3.14159265358979
    format hex การแสดงตัวเลขแบบฐาน 16 คือ 1..9 และ A..F 400921fb54442d18
    format bank การแสดงตัวเลขแบบธนาคาร คือทศนิยม 2 ตำแหน่ง 3.14
    format + การแสดงค่าตัวเลขว่าเป็น บวก ลบ หรือ ศูนย์ +
    format rat การแสดงอัตราส่วนโดยประมาณ 355/113



    ตัวดำเนินการเครื่องหมายพิเศษและตัวดำเนินการเปรียบเทียบและตรรกะ
    ลักษณะการดำเนินการตัวดำเนินการรูปแบบทางคณิตศาสตร์รูปแบบทาง MATLAB
    การบวก
    การลบ
    การคูณ
    การคูณเชิงสมาชิก
    การหารทางขวา
    การหารทางซ้าย
    การหารเชิงสมาชิก
    การยกกำลัง
    การยกกำลังเชิงสมาชิก
    +
    -
    *
    .*
    /
    \
    ./
    Ab
    A.b
    a+b
    a-b
    axb
    -
    a/b
    b/a
    -
    ab
    -
    a+b
    a-b
    a*b
    a.*b
    a/b
    a\b
    a./b
    a^b
    a.^b

    ในทาง MATLAB คือการนำเอา Matrix a และ Matrix bมา Operate กัน เช่น + ,-,*,/,หรือยกกำลังกัน เพราะฉะนั้นเงื่อนไขการ Operate ต่างๆ จึงเป็นวิธีการทาง Matrix ส่วนเครื่องหมายที่มีจุด (.) แสดงว่าจะกระทำเฉพาะแถวกับหลักเดียวกัน เช่น 
    a = 1 2 3
        4 5 6
    b = 2 2 2
        2 2 2
    a.^b = 1  4  9
          16 25 36
    


    ตัวดำเนินการเปรียบเทียบและตรรกะ
    ลักษณะดำเนินการ ตัวดำเนินการเปรียบเทียบและตรรกะ ตัวอย่าง
    ลักษณะดำเนินการตัวดำเนินการเปรียบเทียบและตรรกะตัวอย่าง
    น้อยกว่า
    น้อยกว่าหรือเท่ากับ
    มากกว่า
    มากกว่าหรือเท่ากับ
    เท่ากับ
    ไม่เท่ากับ
    และ
    หรือ
    ไม่
    <
    <=
    >
    >=
    ==
    ~=
    &
    |
    ~
    x<10
    x<=10
    x>10
    x>=10
    x==1
    x~=5
    x>2 & y<1
    x>2 | y<1
    ~x


    ฟังก์ชั่นที่ใช้ในการหาค่าทางตรีโกณมิติ
    คำสั่งรายละเอียด
    sin(x)
    sinh(x)
    asin(x)
    asinh(x)
    ใช้คำนวณหาค่า Sine ของ x
    ใช้คำนวณหาค่า Hyperbolic sine.ของ x
    ใช้คำนวณหาค่า Inverse sine. ของ x
    ใช้คำนวณหาค่า Inverse hyperbolic sine. ของ x
    cos(x)
    cosh(x)
    acos(x)
    acosh(x)
    ใช้คำนวณหาค่า cos ของ x
    ใช้คำนวณหาค่า Hyperbolic cos.ของ x
    ใช้คำนวณหาค่า Inverse cos ของ x
    ใช้คำนวณหาค่า Inverse hyperbolic cos. ของ x
    tan(x)
    tanh(x)
    atan(x)
    atan2(x)
    atanh(x)
    ใช้คำนวณหาค่า Tangent ของ x
    ใช้คำนวณหาค่า Hyperbolic Tangent.ของ x
    ใช้คำนวณหาค่า Inverse Tangent. ของ x
    ใช้คำนวณหาค่าFour quadrant inverse tangent ของ x
    ใช้คำนวณหาค่า Inverse hyperbolic Tangent ของ x
    sec(x)
    sech(x)
    asec(x)
    asech (x)
    ใช้คำนวณหาค่า Secant. ของ x
    ใช้คำนวณหาค่า Hyperbolic Secant.ของ x
    ใช้คำนวณหาค่า Inverse Secant. ของ x
    ใช้คำนวณหาค่า Inverse hyperbolic Secant. ของ x
    csc(x)
    csch(x)
    acsc(x)
    acsch(x) 
    ใช้คำนวณหาค่า Cosecant ของ x
    ใช้คำนวณหาค่า Hyperbolic Cosecant.ของ x
    ใช้คำนวณหาค่า Inverse Cosecant. ของ x
    ใช้คำนวณหาค่า Inverse hyperbolic Cosecant ของ x
    cot(x)
    coth(x)
    acot (x)
    acoth(x)
    ใช้คำนวณหาค่า Cotangent ของ x
    ใช้คำนวณหาค่า Hyperbolic Cotangent.ของ x
    ใช้คำนวณหาค่า Inverse Cotangent. ของ x
    ใช้คำนวณหาค่า Inverse hyperbolic Cotangent ของ x

    ฟังก์ชั่นที่ใช้ในการหาค่า Exponential.
    คำสั่งรายละเอียด
    exp(x)
    log(x)
    log10(x)
    log2(x)
    pow2(x)
    nextpow2(x)
    ใช้คำนวณหาค่า Exponential. ของ x
    ใช้คำนวณหาค่า Natural logarithm.ของ x
    ใช้คำนวณหาค่า Common (base 10) logarithm. ของ x
    ใช้คำนวณหาค่า Base 2 logarithm and dissect floating point number. ของ x
    ใช้คำนวณหาค่า เลขยกกำลังที่มี 2 เป็นฐาน ของ x
    ใช้คำนวณหาค่า ตัวเลขยกกำลังที่มี 2 เป็นฐานที่มีค่าเท่ากับหรือมากกว่า ของ x
    abs(x)
    ceil(x)
    floor(x)
    round(x)
    sqrt (x)
    rem(x,y)
    sign(x)
    ใช้คำนวณหาค่า Absolute ของ x
    ใช้คำนวณหาค่าจำนวนเต็มใดๆที่ใกล้เคียงกับค่าของ x โดยให้ค่านั้นเข้าใกล้ ? มากที่สุด
    ใช้คำนวณหาค่าจำนวนเต็มใดๆที่ใกล้เคียงกับค่าของ x โดยให้ค่านั้นเข้าใกล้-? มากที่สุด
    ใช้คำนวณหาค่าจำนวนเต็มใดๆที่ใกล้เคียงกับค่าของ x โดยถ้าป็นทศนิยมเกิน 0.5 ปัดขึ้น
    ใช้คำนวณหาค่า Square root. ของ x
    ใช้คำนวณหาค่าเศษที่เหลือจากการหารกันระหว่าง x และ y
    ใช้สำหรับกำหนดค่าของ x ใดๆ ให้มีค่าเป็น -1,0,1
    ถ้าเป็น -1 แสดงว่าค่าของ x > 0
    ถ้าเป็น 0 แสดงว่าค่าของ x = 0
    ถ้าเป็น 1 แสดงว่าค่าของ x < 0

    ไม่มีความคิดเห็น:

    แสดงความคิดเห็น