matlab math th
TRANSCRIPT
![Page 1: Matlab Math Th](https://reader033.vdocuments.pub/reader033/viewer/2022042713/54707507b4af9fa2088b45dc/html5/thumbnails/1.jpg)
เรียนรูการใชงานเบื้องตน
MATLAB MATRIX LABORATORY
อาจารยชยัพร ตั้งทอง ภาควิชาคณิตศาสตร คณะวิทยาศาสตร
มหาวิทยาลัยเชยีงใหม
![Page 2: Matlab Math Th](https://reader033.vdocuments.pub/reader033/viewer/2022042713/54707507b4af9fa2088b45dc/html5/thumbnails/2.jpg)
2
การใชงานเบื้องตน MATLAB
MATLAB เปนภาษาคอมพวิเตอรช้ันสูง (High-level Language) สําหรับการคํานวณทาง
เทคนิคที่ประกอบดวยการคาํนวณเชิงตวัเลข กราฟกที่ซับซอน และการจําลองแบบเพื่อใหมองเหน็ภาพพจนไดงายขึ้น ช่ือของ MATLAB ยอมาจาก matrix laboratory เดิมโปรแกรม MATLAB ไดเขียนขึ้นเพื่อใชในการคํานวณทาง matrix หรือเปน matrix software
MATLAB ไดพัฒนามาดวยการแกปญหาที่สงมาจากหลาย ๆ ผูใชเปนระยะเวลาหลายป จึงทําใหโปรแกรม MATLAB มีฟงกชันตาง ๆ ใหเลือกใชมากมาย ในบงมหาวิทยาลัยไดใชโปรแกรม MATLAB เปนหลักสูตรพื้นฐานในการศึกษาทางดานคณิตศาสตร วิศวกรรม และวทิยาศาสตรแขนงตาง ๆ ตลอดจนในดานอุตสาหกรรมไดใชโปรแกรม MATLAB เปนเครื่องมือสําหรับใชในการทํางานวจิยั การกําหนดคาใหกับตัวแปร การกําหนดคาใหกับตวัแปรในโปรแกรม MATLAB สามารถกระทําไดโดยการใชเครื่องหมายเทากับ “(=)” แลวตามดวยคาขอมูลหรือนิพจนที่ตองการกําหนดใหกับตัวแปร ตัวอยางเชน ตัวแปร = นิพจน; เปนการกําหนดคาใหตวัแปร A มีคาเทากับ 10 + 2 = 12 หากไมมกีารเปลี่ยนแปลงคาของ A คาของ A จะมีคาเทากับ 12 ตลอด หากตองการตรวจสอบหรือดูคาตัวแปรทีก่ําหนดไว ก็สามารถกระทําไดโดยการพิมพตัวแปรทีต่องการดูคาขอมูล บนหนาตางคําสั่งไดโดยตรง เราสามารถนําคา A ไปคํานวณตอได จากตัวอยางจะเหน็วาคาของ B จะมีคาเทากับ 14 เกิดจากการนําคา A = 12 บวก 2 จะไดวาเราสามารถกําหนดคาของตัวแปรใหเทากับนิพจน
ของตัวแปรอืน่ได
![Page 3: Matlab Math Th](https://reader033.vdocuments.pub/reader033/viewer/2022042713/54707507b4af9fa2088b45dc/html5/thumbnails/3.jpg)
3
กําหนดคาเปน Character String เราสามารถกําหนดคาตวัแปรใหเปนตวัอักษรได โดยการใสขอความที่จะกําหนดใหตวัแปรในเครื่องหมายคําพูด รูปแบบคือ ตัวแปร = ‘ขอความ’ ตัวอยางเชน เปนการกําหนดใหตวัแปร name เก็บคําวา Chaiporn คําสั่ง disp โปรแกรม MATLAB สามารถแสดงคาขอมูลในรูปแบบตัวอักษรหรือตัวเลขไดโดยกําหนดเปนชื่อตัวแปรหรือขอความไดดวยการใชคําส่ัง dispโปรแกรม MATLAB จะตรวจสอบตัวอักษรหรือขอความที่อยูในเครื่องหมายคําพดูของคําส่ังนี้แลวทําการแสดงตวัอักษรหรือขอความที่อยูในวงเล็บ แตถาไมมีเครื่องหมายคําพูดอยูในวงเล็บ โปรแกรม MATLAB จะแปรความหมายของตัวอักษรหรือขอความที่อยูในวงเล็บเปนคาขอมูลแลวแสดงคานั้นออกมา ตัวอยางเชน จากตัวอยางนีจ้ะเห็นวาเรามตีัวแปรอยู 3 ตวัแปร นัน่คือ A, name และ Chaiporn โดยที่คาของแตละตัวจะขึ้นอยูกบัการกําหนดคาของแตละตวั
แปร จะสังเกตเห็นวาหากเราใสเครื่องหมาย ; ตอทายแตละบรรทัด เครื่องจะไมแสดงคาของตัวแปรนั้น ๆ ใหดู หากเราอยากใหเครื่องแสดง คาของตัวแปรที่ตองการ ใหใชคําส่ัง disp(ตัวแปร)
การกําหนดคาใหกับตวัแปรที่ตองการใหเปนตัวอักษรนัน้ เราจะใหเครือ่งหมายคําพดูในการกําหนดขอความ โดยที่เครื่องจะไมสนใจความหมายของขอความนัน้ ๆ ถึงแมวาขอความนั้น จะไปซ้ํากับตวัแปรอีกตัวแปรหนึ่งก็ตาม และเราสามารถตัดขอความในตัวแปรนั้นมาเพียงบางสวนได โดยการพิมพตัวแปรที่ตองการจะตดัแลวตามดวยเครื่องหมาย (begin position : end position) ตัวอยางเชน
![Page 4: Matlab Math Th](https://reader033.vdocuments.pub/reader033/viewer/2022042713/54707507b4af9fa2088b45dc/html5/thumbnails/4.jpg)
4
ตัวดําเนนิการ ตัวดําเนนิการเปรียบเทียบและตรรกะ และเครื่องหมายพิเศษ โปรแกรม MATLAB ไดกําหนดตวัดําเนนิการเครื่องหมายเปรียบเทยีบ และตัวดําเนนิการเปรียบเทียบทางตรรกะมาใชในการคํานวณเพื่ออํานวยความสะดวกในการเขียนโปรแกรม ดังนี ้ ตัวดําเนนิการ
ลักษณะดําเนินงาน ตัวดําเนนิการ รูปแบบของ MATLAB การบวก + A+B การลบ – A–B การคูณ * A*B การคูณเชิงสมาชิก .* A.*B การหารทางขวา / A/B การหารทางซาย \ A\B การหารเชิงสมาชิก ./ A./B การยกกําลัง ^ A^b การยกกําลังเชิงสมาชิก .^ A.^b
ตัวดําเนนิการเปรียบเทียบและตรรกะ
ลักษณะดําเนินงาน ตัวดําเนนิการเปรียบเทียบ ทางตรรกะ
ตัวอยางรูปแบบการใชงาน
นอยกวา < x < 10 นอยกวาหรือเทากับ <= x <= 10 มากกวา > x > 10 มากกวาหรือเทากับ >= x >=10 เทากับ = = x = = 1 ไมเทากับ ~ = x ~ = 5 และ & x>2 & y<1 หรือ | x>2|y<1 ไม ~ ~x
![Page 5: Matlab Math Th](https://reader033.vdocuments.pub/reader033/viewer/2022042713/54707507b4af9fa2088b45dc/html5/thumbnails/5.jpg)
5
เคร่ืองหมายพเิศษ เครื่องหมายหรือสัญลักษณที่นิยมใชบอยในโปรแกรม MATLAB สวนใหญจะเปนเครื่องหมาย % และ ; เครื่องหมาย % จะเอาไวใชแสดงหมายเหตุ ทุกอยางที่อยูตามหลังเครื่องหมายนี้ในบรรทัดเดยีวกัน โปรแกรมจะไมสนใจความหมาย เรามักจะเอาไวใชเขียนคําอธิบายความหมายของโปรแกรมที่เราเขียนขึ้น สวนเครื่องหมาย ; จะเอาไวใชแยกเมตริกซหรือคําส่ัง และใชสําหรับเปนคําส่ังไมใหแสดงคาผลลัพธที่ไดจากการประมวลผล
เคร่ืองหมาย รายละเอียด . จุดทศนยิม
( ) กําหนด subscripts = กําหนดคา [ ] สรางเวกเตอรและเมตริกซ : สรางเวกเตอร
… กระทําคําส่ังยงับรรทัดตอไป , แยก element ภายในเมตริกและ subscripts
ฟงกชนัคณติศาสตรพื้นฐานและคาตัวแปรเฉพาะ โปรแกรม MATLAB ไดกําหนดคาตวัแปรเฉพาะที่จําเปนตอการใชงานในการคํานวณโดยคาตัวแปรเฉพาะนี้จะใชในการคํานวณบอยมาก ดังนั้นเพื่อความสะดวกและไมใหเสียเวลาจึงไดสรางฟงกชันและคาตัวแปรนาํไปใชงานไดทันที คาตัวแปรเฉพาะในโปรแกรม MATLAB
ตัวแปร รายละเอียด pi π = 22/7 i 1−
Inf ∞ NaN Not-a-Number
Ans เก็บผลจากการคํานวณคาปจจุบันใด ๆ ที่ไมไดทําการกาํหนดชื่อตวัแปรของผลลัพธ
![Page 6: Matlab Math Th](https://reader033.vdocuments.pub/reader033/viewer/2022042713/54707507b4af9fa2088b45dc/html5/thumbnails/6.jpg)
6
ฟงกชนัในการคํานวณทางพชีคณติ sqrt(x) เปนฟงกชันในการหารากที่สองของ x ตัวอยางเชน อยากหาคารากที่สองของ A เมื่อกําหนดให A = 2 fix(x) เปนคําสั่งหาจํานวนเต็มที่ไดจากการตัดเศษทศนยิมทั้งหมดของ x ทิ้ง ตัวอยางเชน fix(–1.2) = –1 fix(0.99) = 0 fix(1.5) = 1 fix(1.89) = 1 floor(x) เปนคาํส่ังใชหาจํานวนเต็มบวกทีม่ากที่สุดที่มีคามากกวาหรือเทากับ x ตัวอยางเชน floor(–1.2) = –2 floor(–1.9) = –2 floor(0.99) = 0 floor(1.45) = 1
![Page 7: Matlab Math Th](https://reader033.vdocuments.pub/reader033/viewer/2022042713/54707507b4af9fa2088b45dc/html5/thumbnails/7.jpg)
7
round(x) เปนคําส่ังใชหาจํานวนเต็มบวกโดยการปดเศษทศนิยมตามนยัสําคัญของจุดทศนิยม ตัวอยางเชน round(–1.12) = –1 round(–1.54) = –2 round(0.55) = 1 round(1.01) = 1 rem(x,y) เปนคําส่ังใชหาคาเศษที่เหลือจากการหารกันระหวางคา x และ y ตัวอยางเชน
เศษที่ไดจากการหาร 10 ดวย 2 คือ 0 เศษที่ไดจากการหาร 10 ดวย 4 คือ 2
เศษที่ไดจากการหาร 10 ดวย 6 คือ 4 เศษที่ไดจากการหาร 25 ดวย 6 คือ 1
abs(x) เปนคําสั่งในการหาคาสัมบูรณของ x หาก x เปนจาํนวนเชิงซอน x = a + bi แลว
abs(x) = 22 ba + ตัวอยางเชน
22 =− 5.45.4 = 2361.2541i21 ==+=+ 525169i43 ==+=+
![Page 8: Matlab Math Th](https://reader033.vdocuments.pub/reader033/viewer/2022042713/54707507b4af9fa2088b45dc/html5/thumbnails/8.jpg)
8
คําสั่งหรือฟงกชันที่ใชในการหาคาทางตรีโกณมิต ิ การหาคาทางตรีโกณมิติเปนการหาคาโดยการใชความสัมพันธของวงกลมหนึ่งหนวยที่มีการวัดมุมเปนหนวยองศาและ Radian แตในการคํานวณของโปรแกรม MATLAB จะใชการคํานวณในหนวยของ radian ดังนั้นกอนการคํานวณถาคณุใชหนวยองศาก็ควรเปลี่ยนใหเปนหนวยของ radian กอนการคํานวณซึ่งสามารถกระทําไดโดยการเทียบบรรญัติไตรยางคไดดังนี้ คือ
180 องศา เทากับ π หรือ pi เรเดยีน ถา x องศา เทากับ x*pi/180 เรเดียน เชน ถาตองการเปลี่ยนมุม 75 องศาเปนเรเดยีนก็สามารถเปลี่ยนไดโดยการแทนคา x เปน 75 องศา ดังนัน้จะไดคาเรเดยีนเปน 75*pi/180 เทากับ 1.309 เรเดียน ซ่ึงคา pi มีคาเทากับ 3.1416 ความสัมพันธระหวางคาตาง ๆ ในทางตรีโกณมิตกิําหนดเปนคา sine, cosine, tangent, arcsine, หรือ อินเวอรสของ sine, arccosine หรืออินเวอรสของ cosine, และ arctangent หรืออินเวอรสของ tangent การหาคาตาง ๆ เหลานีจ้ะอาศัยความสัมพันธของสามเหลี่ยมมุมฉากเปนสําคัญ ฟงกชันในการคํานวณคาทางตรีโกณมิติมีดงันี้
คําสั่ง รายละเอียด
sin(x) ฟงกชันนีใ้ชคาํนวณหาคา sine ของ x โดยที่คา x ตองอยูในหนวยของเรเดยีน
cos(x) ฟงกชันนีใ้ชคาํนวณหาคา cosine ของ x โดยที่คา x ตองอยูในหนวยของเรเดียน
tan(x) ฟงกชันนีใ้ชคาํนวณหาคา tangent ของ x โดยที่คา x ตองอยูในหนวยของเรเดียน
asin(x) ฟงกชันที่ใชในการคํานวณคาอินเวอรสของ sine ซ่ึงผลที่ได
จากการคํานวณจะเปนมุมเรเดียนที่อยูระหวาง -π/2 ถึง π/2 โดยที่คา x จะตองอยูในชวง -1 ถึง 1
acos(x) ฟงกชันที่ใชในการคํานวณคาอินเวอรสของ cosine ซ่ึงผลที่
ไดจากการคํานวณจะเปนมมุเรเดียนที่อยูระหวาง 0 ถึง π โดยที่คา x จะตองอยูในชวง -1 ถึง 1
atan(x)
ฟงกชันที่ใชในการคํานวณคาอินเวอรสของ tangent ซ่ึงผลที่
ไดจากการคํานวณจะเปนมมุเรเดียนที่อยูระหวาง -π/2 ถึง
π/2 โดยที่คา x จะตองอยูในชวง -1 ถึง 1
![Page 9: Matlab Math Th](https://reader033.vdocuments.pub/reader033/viewer/2022042713/54707507b4af9fa2088b45dc/html5/thumbnails/9.jpg)
9
การหาคาฟงกชันไฮเพอรโบลิก ฟงกชันไฮเพอรโบลิกเปนฟงกชัน Natural Logarithm function ซ่ึงฟงกชันนี้จะสัมพันธกัน
กับคา ex เมื่อคา e มีคาประมาณ 2.71828 คา ex นี้สามารถหาไดโดยใชฟงกชัน exp(x)
การหาคาฟงกชันไฮเพอรโบลิก มีคําส่ังดังนี้
คําสั่ง รายละเอียด sinh(x) ฟงกชันนีใ้ชสําหรับการหาคาไฮเพอรโบลิก sine ของ x cosh(x) ฟงกชันนีใ้ชสําหรับการหาคาไฮเพอรโบลิก cosine ของ x tanh(x) ฟงกชันนีใ้ชสําหรับการหาคาไฮเพอรโบลิก tangent ของ x
ฟงกชนัท่ีใชในการหาคา Logarithm ในการคํานวณเพื่อหาคาลอการิทึมนั้นจะเสียเวลาและยุงยากในการคํานวณมากเพราะจะตองเปดตารางเพื่อเทียบคาในการหาผลลัพธ เพื่อลดความยุงยากดังกลาวโปรแกรม MATLAB จึงมีฟงกชันที่ใชสําหรับการหาคา Logarithm คือ log และ log10 ซ่ึงมีโครงสรางดังนี้ การหาคาฟงกชันลอการิทึม มีคําส่ังดังนี้
คําสั่ง รายละเอียด log(x) ฟงกชันนีใ้ชสําหรับการหาคา natural logarithm ของ x
log10(x) ฟงกชันนีใ้ชสําหรับการหาคา common logarithms (logarithm ฐาน10) ของ x
ตัวอยางเชน ln(2) = 0.6931 log10(2) = 0.3010
![Page 10: Matlab Math Th](https://reader033.vdocuments.pub/reader033/viewer/2022042713/54707507b4af9fa2088b45dc/html5/thumbnails/10.jpg)
10
การสรางอารเรย ในการกําหนดคาตัวแปรและขอมูลตาง ๆ ของโปรแกรม MATLAB สวนใหญจะทําการเก็บขอมูลตาง ๆ ไวในอารเรยขอมูลที่เปนเวกเตอรและเมตริกซซ่ึงมีความสําคัญมาก และเราสามารถสรางอารเรยขอมูลไดดังตอไปนี้คอื
♦ อารเรยในโปรแกรม MATLAB สามารถสรางไดโดยการกําหนดคาตัวแปรไวดานซายมือแลวตามดวยเครื่องหมายเทากับ (=) สวนดานขวามือใหนําคาขอมูลมาใสในเครื่องหมาย Bracket [ ]
x = [x1]
เชน x = [100] เปนเมตริกซทีม่ี 1 แถว 1 หลัก
♦ คาขอมูลหรือคาตัวเลขระหวางหลักจะถูกแยกดวยชองวาง (space) หรือเครื่องหมาย ,
x = [x1 x2 … xn] หรือ x = [x1,x2,…,xn]
เชน x = [ 0 1 2 3 4] เปนเมตริกซทีม่ี 1 แถว 5 หลัก
![Page 11: Matlab Math Th](https://reader033.vdocuments.pub/reader033/viewer/2022042713/54707507b4af9fa2088b45dc/html5/thumbnails/11.jpg)
11
♦ การสรางอารเรยใหมหีลาย ๆ แถวและหลายมิติก็สามารถกระทําไดโดยการแบงคาระหวางแถวดวยเครื่องหมายเซมิโคลอน ( ; ) x = [x11 x12 … x1n; x21 x22 … x2n;…; xm1 xm2 … xmn]
เชน x = [ 1 2 3 ; 4 5 6 ; 7 8 9 ] เปนเมตริกซทีม่ี 3 แถว 3 หลัก
♦ การสรางอารเรยใหมหีลาย ๆ แถวและหลาย ๆ หลักก็สามารถกระทําไดโดยการแบงคาระหวางแถวดวยการแยกคนละบรรทัด
x = [x11 x12 … x1n
x21 x22 … x2n
M M xm1 xm2 … xmn]
♦ การสรางอารเรยโดยการใชเครื่องหมาย colon ( : ) ซ่ึงสามารถแบงการใชงานไดดังนี ้1. ถาเครื่องหมาย colon ( : ) อยูระหวางจํานวนจริงสองคาใด ๆ จะหมายถงึคาที่อยูทาง
ซายมือเปนคาเริ่มตนและคาที่อยูทางขวามอืเปนคาสุดทาย (Variable = begin : end) โดยโปรแกรม MATLAB จะทําการสรางคาอารเรยที่เพิ่มคาเริ่มตนทีละ 1 คาจนถึงคาสุดทาย
เชน A = 1:5 จะไดเมตริกซขนาด 1 แถว 5 หลัก โดยที่ A = [ 1 2 3 4 5 ]
![Page 12: Matlab Math Th](https://reader033.vdocuments.pub/reader033/viewer/2022042713/54707507b4af9fa2088b45dc/html5/thumbnails/12.jpg)
12
2. ถาเครื่องหมาย colon ( : ) แยกจํานวนจริงสามจํานวนใด ๆ จะหมายถึงคาแรกเปนคาเร่ิมตนคากลางจะเปนคาทีเ่พิ่มขึ้น (ในกรณีเปนคาบวก) หรือคาที่ลดลง (ในกรณีเปนคาลบ) และคาทีส่ามจะเปนคาสุดทาย
Variable = begin : step : end ตัวอยางเชน A = 1:2:9 จะไดเมตริกซ A = [ 1 3 5 7 9 ] หรือ B = 0:−2: −8 จะไดเมตริกซ B = [ 0 −2 −4 −6 −8 ]
คณิตศาสตรท่ีเก่ียวกับอารเรย โปรแกรม MATLAB จะใชเครื่องหมายทางคณิตศาสตร ในการคํานวณคาตาง ๆ ตัวอยางเชน การคํานวณระหวางคาสเกลารกับสเกลาร อารเรยกับอารเรย คาสเกลารกบัอารเรย เปนตน โดยในหวัขอนี้จะกลาวถึงการดําเนนิการคํานวณคาตาง ๆ ดังตอไปนี ้การดําเนินการระหวางคาสเกลารกับอารเรย การคํานวณคาสเกลารกับอารเรยนี้จะเหมือนกับการคํานวณทางคณิตศาสตรทั่วไปโดยคาสเกลารจะทําการบวก การลบ การคูณ และการหาร กบัทุก ๆ คาในอารเรยที่ทําการคํานวณ ตัวอยางเชน
![Page 13: Matlab Math Th](https://reader033.vdocuments.pub/reader033/viewer/2022042713/54707507b4af9fa2088b45dc/html5/thumbnails/13.jpg)
13
การดําเนินการระหวางคาอารเรยกับอารเรย การดําเนนิการทางคณิตศาสตรระหวางอารเรยจะไมงายเหมือนการดําเนินการระหวางอารเรยกับคาสเกลารทั้งนี้เพราะการดําเนนิการระหวางอารเรยกับอารเรยจะตองพิจารณาขนาดหรือมิติของอารเรยที่จะตองทําการคํานวณดวย ตัวอยางเชน การบวก การลบ และการหาร จะตองกระทําในอารเรยที่มมีิติเทากัน สวนการคูณนัน้จะตองพิจารณาวาจํานวนหลักของอารเรยหรือเมตริกซแรกจะตองมีจํานวนหลักเทากับจาํนวนแถวของอารเรยหรือเมตริกซหลังจึงจะทําการคํานวณไดและการยกกําลังจะพจิารณาวาอารเรยที่ทําการคํานวณนั้นจะตองมีจํานวนแถว และจํานวนหลักเทากันจึงจะทําการคํานวณได ถาเปนการคํานวณแบบจดุตอจุด (element by element or dot product: จะกระทําระหวางตําแหนงทีต่รงกันของเมตริกซ) จะพจิารณาวาอารเรยที่ทําการคูณ หารและยกกําลัง แบบจุดตอจุด (element by element) จะตองมีขนาดเทากนั การดําเนนิการแบบจุดนีจ้ะใชเครื่องหมาย ( “.” ) ไวหนาเครื่องหมายที่จะทาํการดําเนินการ ตัวอยางเชน การคูณจะใชเครื่องหมาย ( “.*” ) และ การหารจะใชเครื่องหมาย ( “./” ) สําหรับผลลัพธที่ไดจากการบวกและการลบอารเรยทั่ว ๆ ไปและการดําเนินการแบบจุดจะใหคาผลลัพธเทากัน ดังนั้นโปรแกรม MATLAB จึงไมนําการบวกและการลบแบบจุดตอจุดมาใชงาน สวนการคูณ การหารและการยกกําลังในการคํานวณแบบอารเรยทั่วไปแบบจุดตอจุดนั้นจะทําใหผลลัพธที่ตางกัน เชน A*B หมายถึงการคูณเมตริกซธรรมดาคือนําแถวของเมตริกซแรกคูณกับหลักของเมตริกซหลัง A.*B หมายถึงการนําสมาชิกตําแหนงตรงกนัคูณกนั A^2 หมายถึง A*A สวน A.^2 หมายถึงนําสมาชิกแตละตัวของ A มายกกําลังสอง A/B หมายถึง A*B-1 สวน A./B หมายถึงนําสมาชิกตําแหนงตรงกันหารกัน
![Page 14: Matlab Math Th](https://reader033.vdocuments.pub/reader033/viewer/2022042713/54707507b4af9fa2088b45dc/html5/thumbnails/14.jpg)
14
อารเรยมาตรฐาน (Standard arrays) โปรแกรม MATLAB จะมฟีงกชันตาง ๆ สําหรับสรางอารเรยมาตรฐานเพื่อความรวดเร็วและสะดวกตอการใชงาน อารเรยที่เปนเมตริกซพิเศษเหลานี้ประกอบดวยเมตริกซทีเ่ปนศูนยทั้งหมด เมตรกิซที่เปนหนึง่ทั้งหมด เมตรกิซเอกลักษณ เมตริกซของการสุมจํานวน เมตริกซแนวทแยงมุมและเมตริกซใหคาคงที่เฉพาะ เมตริกซท่ีเปนศูนยท้ังหมด : จะใชคําส่ังตอไปนี ้
zeros(n) คําส่ังนี้จะใชสรางเมตริกซศูนยซ่ึงเปนเมตริกซจัตุรัสที่มีขนาด n×n
เชน หากตองการเมตริกซ 0 ขนาด 3×3 ใชคําส่ัง zeros(3)
zeros(m,n) คําส่ังนี้จะใชสรางเมตริกซศูนย ที่มีขนาด m×n
เชน หากตองการเมตริกซ 0 ขนาด 2×4 ใชคําส่ัง zeros(2,4)
zeros(size(A)) คําส่ังนี้จะใชสรางเมตริกซศูนยที่มีขนาดเทากับขนาดเมตริกซ A ใด ๆ
เชนหากเรามีเมตริกซ A = ⎥⎦
⎤⎢⎣
⎡654
321
ซ่ึงมีขนาด 2×3 หากตองการเมตริกซ 0 ที่มีขนาดเดยีวกับ A ใชคําส่ัง zeros(size(A))
![Page 15: Matlab Math Th](https://reader033.vdocuments.pub/reader033/viewer/2022042713/54707507b4af9fa2088b45dc/html5/thumbnails/15.jpg)
15
เมตริกซท่ีเปนหนึ่งท้ังหมด : จะใชคําส่ังตอไปนี ้
ones(n) คําส่ังนี้ใชสรางเมตริกซที่มีคาเปนหนึ่งทั้งหมดซึ่งเปนเมตริกซจัตุรัสที่มีขนาด n×n
ones(m,n) คําส่ังนี้ใชสรางเมตริกซที่มีคาเปนหนึ่งทั้งหมดที่มีขนาด m×n
one(size(A)) คําส่ังนี้จะใชสรางเมตริกซที่มีคาเปนหนึ่งทั้งหมดซึ่งเปนเมตริกซที่มขีนาด
เทากับเมตริกซ A
![Page 16: Matlab Math Th](https://reader033.vdocuments.pub/reader033/viewer/2022042713/54707507b4af9fa2088b45dc/html5/thumbnails/16.jpg)
16
เมตริกซเอกลักษณ : เปนเมตริกซที่มีคาหนึ่งในเสนทแยงมุมหลักสวนตําแหนงอ่ืน ๆ จะมีคาเปนศูนยทั้งหมด คําส่ังที่ใชสรางเมตริกซเอกลักษณมดีังตอไปนี ้
eye(n) คําส่ังนี้ใชสรางเมตริกซเอกลักษณซ่ึงเปนเมตริกซจัตุรัสขนาด n×n
eye(m,n) คําส่ังนี้ใชสรางเมตริกซเอกลักษณขนาด m×n eye(size(A)) คําส่ังนี้ใชสรางเมตริกซเอกลักษณที่มีขนาดเทากับเมตริกซ A
![Page 17: Matlab Math Th](https://reader033.vdocuments.pub/reader033/viewer/2022042713/54707507b4af9fa2088b45dc/html5/thumbnails/17.jpg)
17
เมตริกซแนวทแยงมุม (diagonal matrices) :มีคําส่ังดังตอไปนี ้diag(A) คําส่ังนี้จะทําการหาคาเมตริกซในแนวเสนทแยงมุมหลักของเมตริกซ A โดยที่
เมตริกซ A จะตองมีจํานวนแถวมากกวา 1 แถวข้ึนไป
diag(A) คําส่ังนี้จะแทนเมตรกิซ A ลงบนแนวเสนทแยงมมุหลักของเมตริกซศูนยขนาด
n×n เมื่อเมตริกซ A เปนเมตริกซที่มีขนาด 1×n
![Page 18: Matlab Math Th](https://reader033.vdocuments.pub/reader033/viewer/2022042713/54707507b4af9fa2088b45dc/html5/thumbnails/18.jpg)
18
det(A) ฟงกชันนี้ใชเพื่อหาคาดีเทอรมินันท (Determinant) ของเมตริกซ A ซ่ึงเปนเมตริกซจัตุรัส
inv(A) ฟงกชันนี้ใชเพื่อหาคาอินเวอรสของเมตริกซ A โดยอยูภายใตเงือ่นไขวาคา
Determinant ของเมตริกซตองไมเปนศูนยหรือเมตริกซ A ตองเปน singular matrices
![Page 19: Matlab Math Th](https://reader033.vdocuments.pub/reader033/viewer/2022042713/54707507b4af9fa2088b45dc/html5/thumbnails/19.jpg)
19
การจัดการอารเรยโดยทั่วไป ในเมื่ออารเรยหรือเมตริกซเปนพื้นฐานของโปรแกรม MATLAB จะมหีลายวิธีที่ใชสําหรับจัดการอารเรยหรือเมตริกซเพื่อสรางประสิทธิภาพในการทํางาน ในสวนนี้จะกลาวถึงการจัดการเมตริกซในโปรแกรม MATLAB ซ่ึงมีดังตอไปนี ้
A(r,c) = k กําหนดใหแถวที ่r หลักที ่c ของเมตริกซ A มีคาเทากับ k
A(:,c) = k กําหนดใหทุกแถวและหลักที ่c ของเมตริกซ A มีคาเทากับ k
![Page 20: Matlab Math Th](https://reader033.vdocuments.pub/reader033/viewer/2022042713/54707507b4af9fa2088b45dc/html5/thumbnails/20.jpg)
20
A(r,:) = k กําหนดใหแถวที ่r และทกุ ๆ หลักของเมตริกซ A มีคาเทากับ k
A(:) การนําหลักทั้งหมดของเมตริกซมาตอกันเปนหลักเดียว
![Page 21: Matlab Math Th](https://reader033.vdocuments.pub/reader033/viewer/2022042713/54707507b4af9fa2088b45dc/html5/thumbnails/21.jpg)
21
สมการโพลิโนเมียล สมการโพลิโนเมียลที่อยูในรูปของสมการมาตรฐานจะเปนดังนี ้ f (x) = anx
n + an-1 + … + a1x + a0
เราจะกําหนดใหเมตริกซ A เปนเมตริกซสัมประสิทธิ์ของพหุนาม ซ่ึงเราจะใช A แทน f(x)
โดยที่ A = [an an-1 … a1 a0] หาก f(x) เปนพหุนามกําลัง n เมตริกซ A จะมีขนาด 1×n+1 การหารากของสมการโพลิโนเมียล
จะหารากคําตอบของสมการ f(x) = 0 คําสั่ง รายละเอียด
roots(A) คํานวณหารากของสมการโพลิโนเมียล เมื่อ A เปนคาสัมประสิทธิ์ของสมการโพลิโนเมียลที่เรียงจากเลขยกกําลังมากไปนอยซ่ึงเราเรียก A วาเปนเวกเตอรสัมประสิทธิ์
รากของสมการ 06xx7xx)x(f 234 =+−−+= คือ −3, −1, 2 และ 1
รากของสมการโพลิโนเมียล 05x4x)x(f 5 =+−=คือ −1.6304, −0.2371+1.5155i, −0.2371−1.5155i, 1.0523+0.4426i และ 1.0523−0.4426i
![Page 22: Matlab Math Th](https://reader033.vdocuments.pub/reader033/viewer/2022042713/54707507b4af9fa2088b45dc/html5/thumbnails/22.jpg)
22
เราอาจจะใชคาํส่ัง solve ในการหารากคําตอบของสมการ f(x) = 0 โดยการประกาศใหโปรแกรม MATLAB รูวา x เปนตัวแปรกอน โดยการใชคําส่ัง syms x จากนั้นกําหนดฟงกชัน f แลวใชคําส่ัง solve(f) โปรแกรมจะคํานวณหารากของสมการ f(x) = 0 ใหทันท ี หรือ การเปล่ียนกลับจากรากของสมการโพลิโนเมียลไปเปนสมการโพลิโนเมียล ถาเรามีคารากของสมการโพลิโนเมียลแตไมทราบวาฟงกชันของโพลิโนเมียลที่สอดคลองกับคารากของเรานั้นวามีสมการเปนเชนไร ใชฟงกชัน poly
คําสั่ง รายละเอียด
poly(A) การเปลี่ยนกลับจากรากของสมการโพลิโนเมียลไปเปนสมการโพลิโนเมียล เมื่อ A คือ รากของโพลิโนเมียลที่ตองการหาสมการโพลิโนเมียล
เชน หากอยากทราบวาราก 1, 2, −1 และ −3
เปนรากของสมการโพลิโนเมียลใด กําหนด A = [1 2 −1 −3] แลวใชคําส่ัง poly(A)
ดังนั้นสมการโพลิโนเมียล
คือ 06xx7xx 234 =+−−+
![Page 23: Matlab Math Th](https://reader033.vdocuments.pub/reader033/viewer/2022042713/54707507b4af9fa2088b45dc/html5/thumbnails/23.jpg)
23
การหาอนุพันธ
คําสั่ง รายละเอียด diff(f) การหาอนุพนัธของฟงกชัน f diff(f,n) การหาอนุพนัธของฟงกชัน f อันดับที่ n
34 x4)x(dxd
=
242
2x12)x(
dxd
=
xsin)x(cosdxd
−=
xcos)x(cosdxd
4
4=
y1
x2y)yx
xxy(dxd 2 ++=++
)yxsin(ey))yxsin(e(dxd xy2xy
2
2++=+−
![Page 24: Matlab Math Th](https://reader033.vdocuments.pub/reader033/viewer/2022042713/54707507b4af9fa2088b45dc/html5/thumbnails/24.jpg)
24
การอินทิเกรต
คําสั่ง รายละเอียด
int(f(x)) ∫ dx)x(f
int(f(x,y),x) ∫ dx)y,x(f
int(f(x),a,b) ∫b
a
dx)x(f
int(f(x,y),x,a,b) ∫b
a
dx)y,x(f
Cx4
xdx)1x(
43 ++=+∫
∫ +++=++ C2
yxxy
3x
dx)xyyx(2
23
22
64dx)x(4
0
3 =∫
y)1)y((cos2
dx))xy(sin(22
0
−π−=∫
π
![Page 25: Matlab Math Th](https://reader033.vdocuments.pub/reader033/viewer/2022042713/54707507b4af9fa2088b45dc/html5/thumbnails/25.jpg)
25
หาคําตอบของสมการเชิงอนพุันธอันดับหนึ่ง
คําสั่ง รายละเอียด
dsolve(‘eqn’) แกสมการเชิงอนุพันธอันดบัหนึ่ง โดยการใสสมการลงไปในเครื่องหมายคําพูด (‘eqn’)
dsolve(‘eqn’,’cond’) แกสมการเชิงอนุพันธอันดบัหนึ่ง โดยการใสสมการลงไปในเครื่องหมายคําพูด (‘eqn’) และใสเงื่อนไขตามลงไป(’cond’)
คําตอบของสมการเชิงอนุพนัธ
0tydtdy =+
คือ 2/t1
2eCy −=
คําตอบของสมการเชิงอนุพนัธ
4)0(y;e9y5dtdy t2 ==+
คือ t5t2 e7
19e
79
y −+=
![Page 26: Matlab Math Th](https://reader033.vdocuments.pub/reader033/viewer/2022042713/54707507b4af9fa2088b45dc/html5/thumbnails/26.jpg)
26
diary คําส่ัง diary เปนคําส่ังที่ใชเกบ็คําส่ังที่เราใชในการทํางานแตละครั้ง วธีิการใชคือ กอนที่จะทํางานให พิมพคําสั่ง diary แลวตามดวยช่ือไฟลที่ตองการจะเก็บไว จากนั้นก็ทํางานตามปกติ โปรแกรมจะทําการบันทึกขอมูลทุกอยางที่เราพิมพลงไป หลังจากเสร็จสิ้นการทํางานแลว อยากจะยกเลิกการบันทึก ใหใชคําส่ัง diary off โปรแกรมก็จะหยดุบันทกึทั้งหมด
![Page 27: Matlab Math Th](https://reader033.vdocuments.pub/reader033/viewer/2022042713/54707507b4af9fa2088b45dc/html5/thumbnails/27.jpg)
27
M-file
คําสั่ง รายละเอียด clear เซตคาเริ่มตนใหมใหตวัแปรทั้งหมด n=input(‘text’) รับคา n ทางแปนพิมพ if condition module1 else module2 end
การเช็คเงื่อนไขวาจริงหรือเท็จ ถาจริงทํา module1 ถาเท็จทํา module2 เปนตน
if condition module1 elseif condition module2 else module3 end
เปนการเช็คเงือ่นไขที่มากกวา 1 เงื่อนไข
for k=start:stop module end
การทําซํ้าเทากบัจํานวนรอบที่ใสลงไป โดย k จะเริ่มตนที่คา start และจบที่คา stop เพิ่มคา k ทีละ 1
for k=start:step:stop module end
การทําซํ้าเทากบัจํานวนรอบที่ใสลงไป โดย k จะเริ่มตนที่คา start และจบที่คา stop เพิ่มคา k เทากบัคาของ step ที่ใส