Outline
• Introduction to Matlab
• Matlab Anatomy
• Matlab as calculators
• Built-‐in functions
• Matlab Environment
• Arrays and Vectors
• Basic Plot 2
Matlab
• High-‐level language for technical computing
• Typical uses• Model prototyping• Data Analysis• Mathematical computations• Algorithmic development
• Benefits• Simplifies the analysis of mathematical models• Easy to code and debug – with speed penalties• Extensible with other programming languages• Good visualization tools 3
Where is Matlab in computing world
• Spreadsheet• Generic and easy to use• Good graphics• Decent extendible using macros and VBA
• Numerical Programming (Matlab, Mathematica, Mathcad)• Easy to learn• Good for general and scientific computation• Good visualization and graphics• Good connectivity to other applications
• Compiled Languagues (C/C++)• Hard to learn, difficult to debug• Require different program for visualization if not provided in IDE• Platform dependent 4
Matlab
• High-‐level language for technical computing
• Typical uses• Model prototyping• Data Analysis• Mathematical computations• Algorithmic development
• Benefits• Simplifies the analysis of mathematical models• Easy to code and debug – with speed penalties• Extensible with other programming languages• Good visualization tools 5
Matlab basics
• Matlab is a case sensitive language, e.g. c and C is different
• Can be used in interactive mode (platform independent) or compiled version (platform specific)
• All data structures in Matlab are Matrix
• Various data types exist, e.g. • single precision, • double precision, • Integer (8 bit)
• Advanced data structures available including object-‐oriented programming and overload operators
6
Matlab anatomy
• Command window
• Current Directory Window
• Figure Window
• Workspace Window
• M-‐File Editor/Debugger Window
• Matlab Path Window
• Command History Window 7
9
• Interactive, like a calculator• Use up-‐down arrow key to get command history• Cut and paste work in this window
Command window
10
• Quick access to all files and folders in the current path• Give a brief description where files are commented out
Current Directory Window
11
• Color Codes MATLAB built-‐in function• Provide debugging tools• Breakpoints• Step in and out• Break on error, warnings, and overflows
• Tab to autocomplete
Editor/Debugger
12
• Display graphic from Command window, M-‐file or MEX-‐file• PlotEdit – allows interactive changes to plots (e.g. legend, title, etc.)• Property Editor – allow changes to all Handle Graphics properties
Figure Window
Array Editor
15
• Can inspect values in variables like in spreadsheet• Cut and paste operations works
Path window
17
• Access from Set Path
• Show all the folders and set all folders in the path where Matlab can be executed from
การใช Matlab เหมอนเครองคดเลข
•Matlab สามารถใชไดเหมอนเครองคดเลข สญลกษณคณตศาสตรสวนใหญสามารถใชไดใน Matlab เชน
>> 2+2
• สญลกษณทางคณตศาสตร + - * / คลายกบการเขยนสมการคณตศาสตร
• การยกกำลงใหใช ^ เชน 2^3
• การใชวงเลบใหยดหลกคณตศาสตรถาสมการยาวๆ เชน>> (2+3)/(2^4)
การใช Built-in Matlab ฟงกชน
•Matlab มฟงกชนคณตศาสตรมากมายทมากบโปรแกรม การใชฟงกชนใน Matlabตองมการ pass argument ซงเปนตวแปรหรอ input ทเราตองการให Matlab หาคาให เชน
>> exp(1)
>>1.2*sin(40*pi/180 + log(2.4^2))
• เวลามการคณตองใชเครองหมาย * เสมอ เชน >> 2*(4+9) ไมใช
>>2(4+9)
การใช Built-in Matlab ฟงกชน
•ฟงกชน Trigonometry ใน Matlab ตองมการใชเรเดยน ถาตองการใชดกรตองมการเปลยนโดยคณดวย pi/180 เชน sin(30*pi/180)
•ฟงกชนลอกธรรมชาตคอ log ไมใช ln
Matlab Environment
• การตงชอตวแปรในแมทแลปเพอเกบคำตอบหรอคาตางๆ สามารถสรางตวแปรพรอมกบใหคาตวแปรไดเลย เชน
>> deg = pi/180
• การสรางตวแปรในแมทแลปไมจำเปนตองกำหนดชนดของตวแปร แมทแลปจะเขาในไดเองวาเปน Double หรอ string แมทแลปทราบจากการทเรา assign คาใหตวแปร
• หลงจากสรางตวแปรแลวสามารถนำตวแปรมาใชตอได เชน>>1.2*sin(40*deg + log(2.4^2))
Matlab Environment
• อะไรคอ ตวแปร ans ในแมทแลป
• ถาตองการทราบวาใน work space ของเรามตวแปรอะไรบางใชคำสง who หรอ whos ใน command winder
• ถาตองการลบตวแปรออกจาก work space ใหใช clear name ซง name คอชอของตวแปร เชน clear deg
• ถาตองลบทกตวแปรใน work space ใหใชคำสง clear all
• ลองพมพและสงเกตดวาเกดอะไรขนเมอใชคำสง clc
การแสดงผลความละเอยด
• ถาตองการใหแมทแลปแสดงความละเอยดเพมใหใชคำสง format long เชน
>>format long
>>pi
• ถาตองการใหแสดงความละเอยดเหมอนเดมใหใช format short
การหาคำตอบหรอการหาความชวยเหลอใน Matlab
• ใหใชอนเตอรเนต โดยคำวา Matlab เปน keyword ผสม ฟงกชนสวนใหญสามารถหาไดดวยวธน
• ใหหาฟงกชน hyperbolic
• หรอใหพมพ help ตามดวยคำสงทอยากรวธใชใน command window เชน>>help sqrt
• ใหลองทดลองระหวาง >>5+6 และ >>5+6; ขอแตกตางระหวางม ; กบไมมตางกนอยางไร
การสราง Array หรอเวคเตอร
• การสรางเวคเตอรแนวนอนใหใช [] และระหวางสมาชกใหใช , หรอ ‘ ’ ในการแยกระหวางสมาชก เชน
>>[1 2 3 4 5]
>>[3,4,5,6,7]
• การสรางเวคเตอรแนวตงใหใช ; ในการแยกระหวางสมาชก เชน >>b = [2;3;4;5;6]
• การตอเวคเตอร เชน >>c = [b;5;6;7]
การสรางเวคเตอรโดยใชฟงกชนตางๆ
• แมทแลปมฟงกหลายอยางทมชวยใหการสรางเวคเตอรขนาดใหญตาง เชน>>1:6
>>2:0.3:4
• การใชฟงกชนในการสรางเวคเตอรเชน>>zeros(2,3)
>>ones(1,4)
>>linspace(1,4,100)
>>logspace(1,4,100)
การเลอกบางคาในเวคเตอร
• หลงจากสรางเวคเตอรแลวหากตองการใชบางคาในเวคเตอรใหใช index ในการเลอกคาในเวคเตอร เชน
>>a = [1:2:6 -1 0]
>>a(3)
>>a(2:5)
>>a(2:end)
>>a([1 3 4])
การใชสมการคณตศาสตรในเวคเตอร
• เวคเตอรสามารถ + - * / ไดตามปกตแตมขอจำกดคอตองม dimension ทสอดคลองกน
• การบวกและลบเวคเตอร เชน>>a = [1 3 4 5]
>>b = [2 4 5 6]
>>c = [1 4 5 6 7]
>> a + b
>> a + c (ใหสงเกตวาเกดอะไรขน)
การใชสมการคณตศาสตรในเวคเตอร
• การคณเวคเตอรเหมอนกนการคณเมททรกสปกตโดยท dimension ของเวคเตอรตองสมพนธกนถงจะคณกนได เชน
>>a*b’>>a*b (ใหสงเกตวาเกดอะไรขน)
• การคณหรอการหารทเปน element-by-element จำเปนตองมเครองหมาย . เสมอซงการทำเชนนคอการท เชน
>>a.*b
• ดงนน operator ทจำเปนตองมเครองหมาย . สำหรบ element-by-element คอ .* ./ .^
การวาดกราฟเบองตน
• แมทแลปมเครองมอมากมายทใชในการวาดกราฟจงทำใหโปรแกรมนมความนยมมากกวา Octave
• สำหรบการ plot กราฟสองมตในเบองตนมคำสงหลกคอ plot(x,y) โดยท x และ y จะเปนตวเลขหรอเวคเตอรกได เชน
>>deg = linspace(-pi,pi,50)>>y = sin(deg)>>plot(deg,y)>>hold on
• ลองใชคำสง plot(deg(10),y(10),’sr’) แลวสงเกตวาเกดอะไรขน
• หลงจากนนใหลองหาคำตอบใน Google เพอดวาจะทำอยางไรใหกราฟเปลยนสเขยว เราจะใชคำสงอะไรการใสแกน x และ y และถาเราจะใสหวขอของกราฟเราตองใชคำสงอะไร
แบบฝกหด
• ตองสงกอนเรมเรยนในอาทตยเพอใหไดคะแนน• ใหใสคำตอบใน https://drive.google.com/drive/folders/0B4k-
nBbPPtoTb0xHMnBRdWNuT1k?usp=sharing โดยใหใชชอไฟลโดยใชรปแบบดงน week_รหสนกศกษา_ชอ เชน 1_589924556_krisada
แบบฝกหด
1. ใหหาคำตอบวาระหวาง πe กบ eπ อนไหนมคามากกวากนและมากกวาเทาไรโดยใหหาคำตอบโดยใชแมทแลป
2. ใหวาดกราฟ xe และ ex บนกราฟเดยวกนโดยใหใชกราฟคนละสโดยใหวาดกราฟในชวงระหวาง 0 ถง 5
3. ใหวาดกราฟใหมโดยใหวาดกราฟ y = xe – ex โดยใหวาดกราฟในชวง x อยระหวาง 0 ถง 5 จงหาคา x เมอ xe = ex
การเขยน Matlab สครปท
• สครปทคอไฟลแมทแลปชนดหนงมนามสกลคอ .m เปนไฟลทใชเมอมคำสงหลายๆคำสงทตองใชงานอยบอยๆ สครปทเปน Text file
• สามารถ Run สครปทโดยการพมชชอ Script ใน Command Window หรอการกดปม Run ใน Script Editor
• สามารถสราง Script ใหมโดยการกดปม + ใน Ribbon ขางบน
การเขยน Matlab สครปท
• ใหสรางสครปทตามดานลางหลงจากนนให Save โดยใช File -> Save As
• ควรตงชอสครปทใหดโดยไมควรขนตนดวยตวเลขหรอสญลกษณ• ให Save ไฟลขางลางโดยใชชอวา rectsin.m
• บรรทดทขนตนดวย % เปน comment ซงเปนบรรทดทแมทแลปไมถอวาเปนคำสง
การ Run สครปท Matlab
• สามารถ Run สครปทไดโดยการพมพ rectsin ใน Command Window
• จะเปนหาถาพมพตามขางตนเวลา Run สครปทแลวจะเกด Error ใหแก Error ตามทแมทแลปแนะนำ
• หลงจากแก Error ไดแลวให Run แมทแลปอกรอบ
การใช Control Statements – if…else
• การใช Control Statement เปนพนฐานทภาษาสวนใหญตองใชอยแลว• สำหรบ if…else เปนการสรางเงอนไขโดยม format ตามดานลาง• Expression คอ นพจนทเปน logical ซงมคำตอบเปนถก (True) หรอผด (False) ไดเทานน เชน 5 > 3 คำตอบเปนถก• Statements คอ คำสงตางๆในแมทแลปในการประมวลผลตอ• สำหรบแมทแลปนนการจบ Control Statements ตองลงทายดวย keyword ทชอวา
end เสมอ
การใช Control Statements – if…else
• ลองพมพคำสงตามดานลางเพอทำความเขาใจการใช if…else แลวให save ไฟลชอวา test_if_else.m
การใช Control Statements – switch
• ใหศกษาการใช switch ตามตวอยางขางลางพรอมกบ save ไฟลชอ test_switch.m
การใช Control Statements – for loops
• ในกรณททมคำสงตองทำซำหลายๆครง การใช for เปน control statement ทมความจำเปนเปนอยางมาก โดยม syntax ตามดานลาง
• ตวแปร (variable) นนคอตวแปรทแมทแลปจะเรมใชตงแตตนของ vector จนสนสดตวสดทายของเวคเตอร
การใช Control Statements – while loops
• สำหรบการทำคำสงซำๆโดยทไมทราบจำนวนในการทำซำ การใช while loop จงจำเปน
• สำหรบ while loop นม syntax ตามทโชวดานลางโดยท while loop จะไมเลกทำงานจนกวา expression จะเปนผด
Assignment
การหาคาของ π ทแทจรงนนมการใชหลายวธในการประมาณหาคา สำหรบวธของ James Gregory (1638-1675) นนไดเสนอวธการหาคานโดยการประมาณคาจาก arctangent ซงมพจนคลายกนกบ Taylor’s series ตามสมการดานลาง
โดยในป ค.ศ. 1646-1716 นกคณตศาสตรชอวา Gottfried Wilhelm Leibniz ไดใชสมการขางตนในการหาคาไพนโดยการแทนคา z = 1
ในป ค.ศ. 1699 นกคณตศาสตร Abraham Sharp ไดหาคาไพนไดละเอยดถงทศนยมตำแหนงท 72 อยางรวดเรว โดยวธการของเคาใชสมการขางตนเชนเดมเพยงแตเปลยนให z = 1/√3 แทน ในงานนเราจะใชคา z ทงสองคาในการประมาณคาของไพน
Assignment
ใหนกศกษาทำดงตอไปน
1. เขยนแมทแลปสครปทเพอประมาณหาคาของ arctangent ใน 50 พจนแรกโดยใช z = 1 และให plot กราฟเพอโชวคาของไพนทประมาณหาไดในแตละพจน และใหคำนวณหาความแตกตางระหวางคาไพนของจรงในแมทแลปกบคาทนกศกษาหาได โดยใหหาความแตกตางนในพจนท 25 30 และ 50
2. ใหเปลยนแปลงสครปทขางตนโดยใหใช z = 1/√3 แทน โดยใหใช 50 พจนแรกในการคำนวณและให plot กราฟบนรปเดม ใหหาคาความแตกตางระหวางคาไพนของจรงและคาทประมาณไดในพจนท 25 30 และ 50 และใหอธบายวากราฟแตกตางกนอยางไร และเปนเพราะเหตใด
ขอมลเพมเตม
1. ลองใชคำสงตางๆใน Command Window กอนทจะเขยนในสครปท
2. ใหอาน error message จากลางขนบน
3. การทำใหเครองหมายของตวเลขสลบกนสามารถใชสตรคอ (-1)(2n-1)
4. ให plot ทกๆจดโดยกานใชเวคเตอรในการเกบคาตางๆ
การสงงาน
ใหนกศกษาสงงานโดยการโหลดไฟลเขาไปในลงคทใหในหนาวชานตามทโชวขางลางโดยใหคำตอบทกอยางอยในไฟลเดยวและใหใช Format ของไฟลคอ 3_รหสนกศกษา_ชอภาษาองกฤษ.m ใหสงเปนสครปทไฟลเทานน
สำหรบคำตอบทจำเปนตองบรรยาย นกศกษาสามารถใช % หรอ comment ในการตอบแบบบรรยายเพมได
ใหสงภายในวนจนทรท 5 เวลาเทยงคน หลงจากเวลานแลวนกศกษาจะไมสามารถอพโหลดไฟลได
การเขยน Matlab ฟงกชน
• แมทแลปฟงกชนผใชสามารถเขยนไดเองซงเรยกใชงานไดใน Command Window
• สำหรบฟงกชนในแมทแลป การสงผานคาสามารถทำโดยวธเดยวคอการ pass by value ไมสามารถ pass by reference ได หรอสรปอยางงายคอการสงผานคาในแมทแลปคอ input เปนตวเลขและได output เปนตวเลขเชนเดยวกน
•ฟงกชนในแมทแลปมนามสกลคอ .m
• การเขยนฟงกชนในแมทแลปคลายกบการเขยนสครปท แตกตางกนคอในบรรทดแรกตองขนตนดวย
• function [output1, output2, …] = name(input1, input2, …)
•ฟงกชนในแมทแลปตองมชอ name ชอเดยวกนกบไฟล เชน ฟงกชนชอ sind ไฟลนตองมชอวา sind.m
ตวอยางท 1 ฟงกชน sine โดยใช degree
• บรรทดท 1 บอกชอฟงกชน input คอ x และ output คอ s
• บรรทดท 2 คอคำอธบายซงเปน comment แมทแลปไมใชในการ execute สำหรบคำอธบายใตฟงกชนนแมทแลปจะใชเปนคำอธบายเวลาผใชใช help ในแมทแลป เชน help sind
• บรรทดท 3 คอบรรทดทใชในการคำนวณตางโดยจะเหนไดวาฟงกชนนใช input ทชอวา x ทเปนองศาแลวเปลยนองศาใหเปน radian หลงจากนนกเรยกฟงกชน sinธรรมดาเพอหาคา sin และสงตอเปน output ใหกบตวแปร s
การใชฟงกชน
• สามารถสรางฟงกชนไดจากการเปดจาก editor
• ลองพมพ >>help sind ใน command window เพอทจะเหนคำอธบายของฟงกชน
• สามารถใชฟงกชนไดใน command window ไดเลย เชน
>>sind(0)
>>sind(45)
>>t=sind(45)
>>m=sind([30 60 90])
>>sind
• คำสงขางบนแตละคำสงตามกนอยางไร
ตวอยางท 2 Unit step
• บรรทดท 1 บอกชอของฟงกชนโดยม input คอ t และ t0 และม output คอ y
• บรรทดท 2 – 5 เปนคำอธบายฟงกชน
• บรรทดท 6 เปนการใชฟงกชน size เพอเชคขนาดของตวแปร t
• บรรทดท 7 ถง 10 คอการเชควา t ตองเปนเวคเตอร
• บรรทดท 11 คอการสรางเวคเตอรเปลาๆขนมาหนงตวแลว initialise ใหเปน 0 ทงหมด ซงเวคเตอรนคอเวคเตอรทเปน output
• บรรทดท 12 ใช for ในการหาคาแตละคาในเวคเตอร input t
• บรรทดท 13 – 15 คอการเขยนเงอนไขตามสมการทกลาวไวขางตนสำหรบการหา unit step ฟงกชน
ตวอยางท 2 Unit step
• หลงจากเขยนฟงกชนเสรจแลวให save ไฟลใหชอวา ustep.m
• หลงจากนนใหลองวาดกราฟแสดงผลของ unit step
>>x = -1:0.1:4;
>>plot(x,1)
• ใหสรางกราฟ pulse จากคำสงขางลาง
>>v = ustep(x,0) – ustep(x,1)
>>plot(x,v)
>>axis([-1 4 -1 2])
Assignment
คาอนทเกรตของ unit step คอฟงกชน unit ramp ซงมนยามคอ
ดงทโชวในภาพ (a) ใหเขยนฟงกชน uramp ตามคำนยามขางตนและใหเขยนสครปทเพอใหไดภาพตามทโชวในภาพ (b) และใหสงคำตอบเวปทหนาเพจของวชาโดยใชชอไฟลวา week4_รหสนกศกษา_ชอนกศกษา
การเขยนเมทรกซและเวคเตอร
• เวคเตอรคอเปนเมทรกซชนดหนงซงมขนาดหนงแถวหรอหนงคอลม • สำหรบเมทรกซเหมอนกบเมททรกซทางคณตศาสตรทมจำนวนแถวและจำนวนคอลมเชน
• การสรางเมททรกซ>>A = [5 7 9
-1 3 -2]
• หรอใช semicolon
>>B = [2 0; 0 -1; 1 0]
>>C = [1:3; 8:-2:4]
การเขยนเมทรกซและเวคเตอร
• หรอสามารถสรางเวคเตอรแบบแถวแลวนำมาตอกน เชน>>D=[1 2 3];
>>D=[D; 4 5 6];
>>D=[D; 7 8 9];
การคณเมททรกซ
• สามารถคณเมททรกซไดเหมอนสมการคณตศาสตรทวไปโดยการใชเครองหมาย * โดย dimension ของเมททรกซตองสามารถคณกนได เชน
>>A*B
>>A*C จะเกด error
>>x = [1 0 3]
>>A*x จะเกด error
ฟงชนทตางในการสรางเมททรกซ
• การสราง Identity เมททรกซ
>>I = eye(4)
• การสราง diagonal matrix
>>diag([-1 7 2])
>>diag(A)
การสรางเมททรกซ
• สามารถสรางเมททรกซจากเมททรกซอนไดแต dimension ตอง compatible กน
>>comp = [eye(3) B;
A zeros(2,2)]
• การใชเมททรกซเหมอนตาราง>>t = 0:0.2:1;
>>freq = [sin(t)’ sin(2*t)’ sin(3*t)’]
การเลอกใชขอมลในเมททรกซ
• เราสามารถเลอกใชขอมลในเมททรกซคลายกบเวคเตอรโดยใชวงเลบและใช index ในการบอกตำแหนงแถวและคอลม
>>J = [ 1 2 3 4
5 6 7 8
11 13 18 10];
>>J(1,1)
>>J(2,3)
>>J(1:2,4) %แถว 1-2 คอลม 4
>>J(3,:) %แถว 3 และเอาทกคอลม
>>J(3,2:3) = [-1 0]
ฟงกชนทเกยวของกบการใชเมททรกซ
• การเชคขนาดของเมททรกซ>>size(J)
>>[m,n] = size(J)
• การใช inverse
>>A = [3 0 4
0 1 -1
2 1 -3];
>>inv(A)
>>A*inv(A) %ควรจะได Identity matrix
การหามม Euler
ในการหมนจำเปนสามารถใช rotation matrix ไดสำหรบการหมนใน 2D rotation matrix คอ
การหมนโดยใชสามแกนคอ azimuth, elevation และ roll หรอ yaw pitch และ roll การหมนโดยจำเปนตองมลำดบตามสำคญ
Assignment
ใหเขยนฟงกชนซงนำ input เปนมม Euler มาสามมมและได rotation matrix เปนผลลพธ หลงจากนนให transform พกด (x,y,z) เปน (x’’,y’’,z’’)
ใหใชฟงกชนนในการหา rotation matrix R โดยมมมทตองการคอ (90o,20o,15o) ใหพสจนวาเมททรกซนเปน rotation matrix ทแทจรงและม determinant เปน +1
จากนนใหใช rotation matrix ในการ transform พกด p = (2,3,0)T เปน p’ ใหหาวา reverse ของเมททรกซนคออะไร
ใหหาเมททรกซ S ซงเปน Rotation matrix ทมม (-90o,-20o,-15o) และใหหาวาเมททรกซนทำการ transform จด p’ ไมทใด จงตอบวาเหตใด S จงไมใช inverse ของ R
การแกสมการพชคณตเชงเสน
• ในทางคณตศาสตรการใชเมททรกซ โดยหลกการคอการแกสมการทมหลายตวแปร หรอ simultaneous equations โดยเราสามารถเขยนสมการหลายตวแปรใหอยในรปเมททรกซได ตามตวอยางดานลาง โดย A คอ เมททรกซของสมประสทธ b คอเวคเตอรสำหรบคาคงท และ เวทเตอร x คอเวคเตอรตวแปรทเราตองการหาคำตอบ
คำตอบในกรณท A มอนเวอรส
• สำหรบสมการเชงเสนอยางงายทมจำนวนตวแปรเทากบจำนวนสมการ เมททรกซ A ทไดจะเปนเมททรกซสเหลยมจตรส เชน
>>A = [1 1
2 -3];
>>b = [3 5]’;
>>x = inv(A)*b
Gaussian elimination และ LU factorisation
• การใช inverse สำหรบแมทแลปนนไมคอยดเทาทควรเนองจากใชเวลาในการหา inverse คอนขางสงดงนนในการหา inverse ของเมททรกซนนการใช LU factorization หรอ Gaussian Elimination นนเอง
• สำหรบการหา LU factorization นนแมทแลปท operator คอ backslash \ และ forward slash / ตามตารางขางลาง
Singular matrices และ rank
• สำหรบระบบสมการทม det(A) = 0 หรอเปน singular matrix จะไมสามารถหา inverse ไดและสมการจะไมม unique solution เชน
>>A = [1 1 1
2 0 3
3 1 4];
>>b = [2 5 6]’;
>>x = A\b
Singular matrices และ rank
• สมการตามตวอยางกอนหนาน ทงสามสมการไมเปนอสระจากกน เพราะสมการทสามเกดจากสองสมการกอนหนาน ถาหา rank ของเมททรกซ A เราจะไดแค 2 ซงเทากบจำนวนสมการทเปนอสระจากกน
>>rank(A)
• ดงนกอนหาคำตอบจำเปนตองเชคดวาสมการแตละสมการเปนอสระจากกนหรอไม
Ill-conditioning
• สมการบางชนดอาจเกอบเปน singular ซงถามการเปลยนขอมลเลกนอย อาจจะทำใหคำตอบตางจากเดมเยอะมาก เชน
>>M = [1 1; 1 1.01]; b = [2 2.01]’;
>>x = M\b
• ใหลองเปลยนตวเลขในเมททรกซ A เลกนอยเพอดการเปลยนแปลงของคำตอบ
>>M(1,2) = 1.005;
>>M\b
• จะเหนวาเมททรกซ M มความไวตอการเปลยนตวเลขมากซงความไวของเมททรกซสามารถหาไดจาก cond(M) ยงคา condition ยงมากเมททรกซยงมความไว
Over-determined systems: Least squares
• สำหรบระบบทมจำนวนสมการมากกวาตวแปรซงเปนปญหาทเจอไดทวไป เชน การหาสมการเสนตรงจากขอมลทวดได ในการแกสมการจำเปนจะเปน over-determined systems ดงนนจะไมสามารถหาคำตอบทแทจรงได แตคำตอบทไดจะเปน best fit ซงเปนสมประสทธทพยายาม minimize คา Root mean squares error
Over-determined systems: Least squares
• สำหรบสมการทอยในรป Ax = b คำตอบของสมการจะเปนคำตอบทเกดจาก least squares และเปน pseudoinverse ตามสมการดานลาง
• สำหรบคำตอบในแมทแลปการใช \ จะเปนการใช Gaussian Elimination ในการหาคำตอบ สวนถาเปนระบบสมการ Over-determined system แมทแลปจะใหคำตอบทมาจาก least squares หรอสามารถใชฟงกชน pinv แทนการใช \