matlab math th

27
เรียนรูการใชงานเบื้องตน MATLAB MATRIX LABORATORY อาจารยชัยพร ตั้งทอง ภาควิชาคณิตศาสตร คณะวิทยาศาสตร มหาวิทยาลัยเชียงใหม

Upload: spinya

Post on 22-Nov-2014

276 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: Matlab Math Th

เรียนรูการใชงานเบื้องตน

MATLAB MATRIX LABORATORY

อาจารยชยัพร ตั้งทอง ภาควิชาคณิตศาสตร คณะวิทยาศาสตร

มหาวิทยาลัยเชยีงใหม

Page 2: Matlab Math Th

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

3

กําหนดคาเปน Character String เราสามารถกําหนดคาตวัแปรใหเปนตวัอักษรได โดยการใสขอความที่จะกําหนดใหตวัแปรในเครื่องหมายคําพูด รูปแบบคือ ตัวแปร = ‘ขอความ’ ตัวอยางเชน เปนการกําหนดใหตวัแปร name เก็บคําวา Chaiporn คําสั่ง disp โปรแกรม MATLAB สามารถแสดงคาขอมูลในรูปแบบตัวอักษรหรือตัวเลขไดโดยกําหนดเปนชื่อตัวแปรหรือขอความไดดวยการใชคําส่ัง dispโปรแกรม MATLAB จะตรวจสอบตัวอักษรหรือขอความที่อยูในเครื่องหมายคําพดูของคําส่ังนี้แลวทําการแสดงตวัอักษรหรือขอความที่อยูในวงเล็บ แตถาไมมีเครื่องหมายคําพูดอยูในวงเล็บ โปรแกรม MATLAB จะแปรความหมายของตัวอักษรหรือขอความที่อยูในวงเล็บเปนคาขอมูลแลวแสดงคานั้นออกมา ตัวอยางเชน จากตัวอยางนีจ้ะเห็นวาเรามตีัวแปรอยู 3 ตวัแปร นัน่คือ A, name และ Chaiporn โดยที่คาของแตละตัวจะขึ้นอยูกบัการกําหนดคาของแตละตวั

แปร จะสังเกตเห็นวาหากเราใสเครื่องหมาย ; ตอทายแตละบรรทัด เครื่องจะไมแสดงคาของตัวแปรนั้น ๆ ใหดู หากเราอยากใหเครื่องแสดง คาของตัวแปรที่ตองการ ใหใชคําส่ัง disp(ตัวแปร)

การกําหนดคาใหกับตวัแปรที่ตองการใหเปนตัวอักษรนัน้ เราจะใหเครือ่งหมายคําพดูในการกําหนดขอความ โดยที่เครื่องจะไมสนใจความหมายของขอความนัน้ ๆ ถึงแมวาขอความนั้น จะไปซ้ํากับตวัแปรอีกตัวแปรหนึ่งก็ตาม และเราสามารถตัดขอความในตัวแปรนั้นมาเพียงบางสวนได โดยการพิมพตัวแปรที่ตองการจะตดัแลวตามดวยเครื่องหมาย (begin position : end position) ตัวอยางเชน

Page 4: Matlab Math Th

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

5

เคร่ืองหมายพเิศษ เครื่องหมายหรือสัญลักษณที่นิยมใชบอยในโปรแกรม MATLAB สวนใหญจะเปนเครื่องหมาย % และ ; เครื่องหมาย % จะเอาไวใชแสดงหมายเหตุ ทุกอยางที่อยูตามหลังเครื่องหมายนี้ในบรรทัดเดยีวกัน โปรแกรมจะไมสนใจความหมาย เรามักจะเอาไวใชเขียนคําอธิบายความหมายของโปรแกรมที่เราเขียนขึ้น สวนเครื่องหมาย ; จะเอาไวใชแยกเมตริกซหรือคําส่ัง และใชสําหรับเปนคําส่ังไมใหแสดงคาผลลัพธที่ไดจากการประมวลผล

เคร่ืองหมาย รายละเอียด . จุดทศนยิม

( ) กําหนด subscripts = กําหนดคา [ ] สรางเวกเตอรและเมตริกซ : สรางเวกเตอร

… กระทําคําส่ังยงับรรทัดตอไป , แยก element ภายในเมตริกและ subscripts

ฟงกชนัคณติศาสตรพื้นฐานและคาตัวแปรเฉพาะ โปรแกรม MATLAB ไดกําหนดคาตวัแปรเฉพาะที่จําเปนตอการใชงานในการคํานวณโดยคาตัวแปรเฉพาะนี้จะใชในการคํานวณบอยมาก ดังนั้นเพื่อความสะดวกและไมใหเสียเวลาจึงไดสรางฟงกชันและคาตัวแปรนาํไปใชงานไดทันที คาตัวแปรเฉพาะในโปรแกรม MATLAB

ตัวแปร รายละเอียด pi π = 22/7 i 1−

Inf ∞ NaN Not-a-Number

Ans เก็บผลจากการคํานวณคาปจจุบันใด ๆ ที่ไมไดทําการกาํหนดชื่อตวัแปรของผลลัพธ

Page 6: Matlab Math Th

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

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

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

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

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

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

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

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

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

15

เมตริกซท่ีเปนหนึ่งท้ังหมด : จะใชคําส่ังตอไปนี ้

ones(n) คําส่ังนี้ใชสรางเมตริกซที่มีคาเปนหนึ่งทั้งหมดซึ่งเปนเมตริกซจัตุรัสที่มีขนาด n×n

ones(m,n) คําส่ังนี้ใชสรางเมตริกซที่มีคาเปนหนึ่งทั้งหมดที่มีขนาด m×n

one(size(A)) คําส่ังนี้จะใชสรางเมตริกซที่มีคาเปนหนึ่งทั้งหมดซึ่งเปนเมตริกซที่มขีนาด

เทากับเมตริกซ A

Page 16: Matlab Math Th

16

เมตริกซเอกลักษณ : เปนเมตริกซที่มีคาหนึ่งในเสนทแยงมุมหลักสวนตําแหนงอ่ืน ๆ จะมีคาเปนศูนยทั้งหมด คําส่ังที่ใชสรางเมตริกซเอกลักษณมดีังตอไปนี ้

eye(n) คําส่ังนี้ใชสรางเมตริกซเอกลักษณซ่ึงเปนเมตริกซจัตุรัสขนาด n×n

eye(m,n) คําส่ังนี้ใชสรางเมตริกซเอกลักษณขนาด m×n eye(size(A)) คําส่ังนี้ใชสรางเมตริกซเอกลักษณที่มีขนาดเทากับเมตริกซ A

Page 17: Matlab Math Th

17

เมตริกซแนวทแยงมุม (diagonal matrices) :มีคําส่ังดังตอไปนี ้diag(A) คําส่ังนี้จะทําการหาคาเมตริกซในแนวเสนทแยงมุมหลักของเมตริกซ A โดยที่

เมตริกซ A จะตองมีจํานวนแถวมากกวา 1 แถวข้ึนไป

diag(A) คําส่ังนี้จะแทนเมตรกิซ A ลงบนแนวเสนทแยงมมุหลักของเมตริกซศูนยขนาด

n×n เมื่อเมตริกซ A เปนเมตริกซที่มีขนาด 1×n

Page 18: Matlab Math Th

18

det(A) ฟงกชันนี้ใชเพื่อหาคาดีเทอรมินันท (Determinant) ของเมตริกซ A ซ่ึงเปนเมตริกซจัตุรัส

inv(A) ฟงกชันนี้ใชเพื่อหาคาอินเวอรสของเมตริกซ A โดยอยูภายใตเงือ่นไขวาคา

Determinant ของเมตริกซตองไมเปนศูนยหรือเมตริกซ A ตองเปน singular matrices

Page 19: Matlab Math Th

19

การจัดการอารเรยโดยทั่วไป ในเมื่ออารเรยหรือเมตริกซเปนพื้นฐานของโปรแกรม MATLAB จะมหีลายวิธีที่ใชสําหรับจัดการอารเรยหรือเมตริกซเพื่อสรางประสิทธิภาพในการทํางาน ในสวนนี้จะกลาวถึงการจัดการเมตริกซในโปรแกรม MATLAB ซ่ึงมีดังตอไปนี ้

A(r,c) = k กําหนดใหแถวที ่r หลักที ่c ของเมตริกซ A มีคาเทากับ k

A(:,c) = k กําหนดใหทุกแถวและหลักที ่c ของเมตริกซ A มีคาเทากับ k

Page 20: Matlab Math Th

20

A(r,:) = k กําหนดใหแถวที ่r และทกุ ๆ หลักของเมตริกซ A มีคาเทากับ k

A(:) การนําหลักทั้งหมดของเมตริกซมาตอกันเปนหลักเดียว

Page 21: Matlab Math Th

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

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

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

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

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

26

diary คําส่ัง diary เปนคําส่ังที่ใชเกบ็คําส่ังที่เราใชในการทํางานแตละครั้ง วธีิการใชคือ กอนที่จะทํางานให พิมพคําสั่ง diary แลวตามดวยช่ือไฟลที่ตองการจะเก็บไว จากนั้นก็ทํางานตามปกติ โปรแกรมจะทําการบันทึกขอมูลทุกอยางที่เราพิมพลงไป หลังจากเสร็จสิ้นการทํางานแลว อยากจะยกเลิกการบันทึก ใหใชคําส่ัง diary off โปรแกรมก็จะหยดุบันทกึทั้งหมด

Page 27: Matlab Math Th

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 ที่ใส