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

MATLAB MATRIX LABORATORY

Jan 29, 2017

Download

Documents

buikhanh
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: MATLAB MATRIX LABORATORY

เรยนรการใชงานเบองตน

MATLAB

MATRIX LABORATORY

อาจารย ดร. ชยพร ตงทอง

ภาควชาคณตศาสตร คณะวทยาศาสตร

มหาวทยาลยเชยงใหม

Page 2: MATLAB MATRIX LABORATORY

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 MATRIX LABORATORY

3

กาหนดคาเปน Character String

เราสามารถกาหนดคาตวแปรใหเปนตวอกษรได โดยการใสขอความทจะกาหนดใหตวแปร

ในเครองหมายคาพด รปแบบคอ ตวแปร = ‘ขอความ’

ตวอยางเชน

เปนการกาหนดใหตวแปร name เกบคาวา Chaiporn

คาสง disp

โปรแกรม MATLAB สามารถแสดงคาขอมลในรปแบบตวอกษรหรอตวเลขไดโดยกาหนด

เปนชอตวแปรหรอขอความไดดวยการใชคาสง dispโปรแกรม MATLAB จะตรวจสอบตวอกษร

หรอขอความทอยในเครองหมายคาพดของคาสงนแลวทาการแสดงตวอกษรหรอขอความทอยใน

วงเลบ แตถาไมมเครองหมายคาพดอยในวงเลบ โปรแกรม MATLAB จะแปรความหมายของ

ตวอกษรหรอขอความทอยในวงเลบเปนคาขอมลแลวแสดงคานนออกมา ตวอยางเชน

จากตวอยางนจะเหนวาเรามตวแปรอย 3 ตวแปร นนคอ A, name และ

Chaiporn โดยทคาของแตละตวจะขนอยกบการกาหนดคาของแตละตว

แปร จะสงเกตเหนวาหากเราใสเครองหมาย ; ตอทายแตละบรรทด

เครองจะไมแสดงคาของตวแปรนน ๆ ใหด หากเราอยากใหเครองแสดง

คาของตวแปรทตองการ ใหใชคาสง disp(ตวแปร)

การกาหนดคาใหกบตวแปรทตองการใหเปนตวอกษรนน เราจะใหเครองหมายคาพดใน

การกาหนดขอความ โดยทเครองจะไมสนใจความหมายของขอความนน ๆ ถงแมวาขอความนน จะ

ไปซ ากบตวแปรอกตวแปรหนงกตาม

และเราสามารถตดขอความในตวแปรนนมาเพยงบางสวนได

โดยการพมพตวแปรทตองการจะตดแลวตามดวยเครองหมาย

(begin position : end position) ตวอยางเชน

Page 4: MATLAB MATRIX LABORATORY

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 MATRIX LABORATORY

5

เครองหมายพเศษ

เครองหมายหรอสญลกษณทนยมใชบอยในโปรแกรม MATLAB สวนใหญจะเปน

เครองหมาย % และ ; เครองหมาย % จะเอาไวใชแสดงหมายเหต ทกอยางทอยตามหลงเครองหมาย

นในบรรทดเดยวกน โปรแกรมจะไมสนใจความหมาย เรามกจะเอาไวใชเขยนคาอธบายความหมาย

ของโปรแกรมทเราเขยนขน สวนเครองหมาย ; จะเอาไวใชแยกเมตรกซหรอคาสง และใชสาหรบ

เปนคาสงไมใหแสดงคาผลลพธทไดจากการประมวลผล

เครองหมาย รายละเอยด

. จดทศนยม

( ) กาหนด subscripts

= กาหนดคา

[ ] สรางเวกเตอรและเมตรกซ

: สรางเวกเตอร

… กระทาคาสงยงบรรทดตอไป

, แยก element ภายในเมตรกและ subscripts

ฟงกชนคณตศาสตรพนฐานและคาตวแปรเฉพาะ

โปรแกรม MATLAB ไดกาหนดคาตวแปรเฉพาะทจาเปนตอการใชงานในการคานวณโดย

คาตวแปรเฉพาะนจะใชในการคานวณบอยมาก ดงนนเพอความสะดวกและไมใหเสยเวลาจงได

สรางฟงกชนและคาตวแปรนาไปใชงานไดทนท คาตวแปรเฉพาะในโปรแกรม MATLAB

ตวแปร รายละเอยด

pi π = 22/7

i 1−

Inf ∞

NaN Not-a-Number

Ans เกบผลจากการคานวณคาปจจบนใด ๆ ท

ไมไดทาการกาหนดชอตวแปรของผลลพธ

Page 6: MATLAB MATRIX LABORATORY

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 MATRIX LABORATORY

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 MATRIX LABORATORY

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 MATRIX LABORATORY

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 MATRIX LABORATORY

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 MATRIX LABORATORY

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

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 MATRIX LABORATORY

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 MATRIX LABORATORY

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 MATRIX LABORATORY

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 MATRIX LABORATORY

15

เมตรกซทเปนหนงทงหมด : จะใชคาสงตอไปน

ones(n) คาสงนใชสรางเมตรกซทมคาเปนหนงทงหมดซงเปนเมตรกซจตรสทมขนาด n×n

ones(m,n) คาสงนใชสรางเมตรกซทมคาเปนหนงทงหมดทมขนาด m×n

one(size(A)) คาสงนจะใชสรางเมตรกซทมคาเปนหนงทงหมดซงเปนเมตรกซทมขนาด

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

Page 16: MATLAB MATRIX LABORATORY

16

เมตรกซเอกลกษณ : เปนเมตรกซทมคาหนงในเสนทแยงมมหลกสวนตาแหนงอน ๆ จะม

คาเปนศนยทงหมด คาสงทใชสรางเมตรกซเอกลกษณมดงตอไปน

eye(n) คาสงนใชสรางเมตรกซเอกลกษณซงเปนเมตรกซจตรสขนาด n×n

eye(m,n) คาสงนใชสรางเมตรกซเอกลกษณขนาด m×n

eye(size(A)) คาสงนใชสรางเมตรกซเอกลกษณทมขนาดเทากบเมตรกซ A

Page 17: MATLAB MATRIX LABORATORY

17

เมตรกซแนวทแยงมม (diagonal matrices) :มคาสงดงตอไปน

diag(A) คาสงนจะทาการหาคาเมตรกซในแนวเสนทแยงมมหลกของเมตรกซ A โดยท

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

diag(A) คาสงนจะแทนเมตรกซ A ลงบนแนวเสนทแยงมมหลกของเมตรกซศนยขนาด

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

Page 18: MATLAB MATRIX LABORATORY

18

det(A) ฟงกชนนใชเพอหาคาดเทอรมนนท (Determinant) ของเมตรกซ A ซงเปนเมตรกซ

จตรส

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

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

Page 19: MATLAB MATRIX LABORATORY

19

การจดการอารเรยโดยทวไป

ในเมออารเรยหรอเมตรกซเปนพนฐานของโปรแกรม MATLAB จะมหลายวธทใชสาหรบ

จดการอารเรยหรอเมตรกซเพอสรางประสทธภาพในการทางาน ในสวนนจะกลาวถงการจดการ

เมตรกซในโปรแกรม MATLAB ซงมดงตอไปน

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

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

Page 20: MATLAB MATRIX LABORATORY

20

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

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

Page 21: MATLAB MATRIX LABORATORY

21

สมการโพลโนเมยล

สมการโพลโนเมยลทอยในรปของสมการมาตรฐานจะเปนดงน

f (x) = anxn + 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(f234 =+−−+=

คอ −3, −1, 2 และ 1

รากของสมการโพลโนเมยล 05x4x)x(f5 =+−=

คอ −1.6304, −0.2371+1.5155i, −0.2371−1.5155i,

1.0523+0.4426i และ 1.0523−0.4426i

Page 22: MATLAB MATRIX LABORATORY

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)

ดงนนสมการโพลโนเมยล

คอ 06xx7xx234 =+−−+

Page 23: MATLAB MATRIX LABORATORY

23

การหาอนพนธ

คาสง รายละเอยด

diff(f) การหาอนพนธของฟงกชน f

diff(f,n) การหาอนพนธของฟงกชน f อนดบท n

34

x4)x(dx

d=

24

2

2

x12)x(dx

d=

xsin)x(cosdx

d−=

xcos)x(cosdx

d4

4

=

y

1x2y)

y

xxxy(

dx

d 2 ++=++

)yxsin(ey))yxsin(e(dx

d xy2xy2

2

++=+−

Page 24: MATLAB MATRIX LABORATORY

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

3

xdx)xyyx(

22

322

64dx)x(4

0

3 =∫

y

)1)y((cos2dx))xy(sin(

22

0

−π−=∫

π

Page 25: MATLAB MATRIX LABORATORY

25

หาคาตอบของสมการเชงอนพนธอนดบหนง

คาสง รายละเอยด

dsolve(‘eqn’) แกสมการเชงอนพนธอนดบหนง โดยการใส

สมการลงไปในเครองหมายคาพด (‘eqn’)

dsolve(‘eqn’,’cond’)

แกสมการเชงอนพนธอนดบหนง โดยการใส

สมการลงไปในเครองหมายคาพด (‘eqn’)

และใสเงอนไขตามลงไป(’cond’)

คาตอบของสมการเชงอนพนธ

0tydt

dy=+

คอ 2/t

1

2

eCy−=

คาตอบของสมการเชงอนพนธ

4)0(y;e9y5dt

dy t2 ==+

คอ t5t2

e7

19e

7

9y

−+=

Page 26: MATLAB MATRIX LABORATORY

26

diary

คาสง diary เปนคาสงทใชเกบคาสงทเราใชในการทางานแตละครง วธการใชคอ

กอนทจะทางานให พมพคาสง diary แลวตามดวยชอไฟลทตองการจะเกบไว จากนนกทางาน

ตามปกต โปรแกรมจะทาการบนทกขอมลทกอยางทเราพมพลงไป หลงจากเสรจสนการทางานแลว

อยากจะยกเลกการบนทก ใหใชคาสง diary off โปรแกรมกจะหยดบนทกทงหมด

Page 27: MATLAB MATRIX LABORATORY

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