matlab matrix laboratory

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

Upload: buikhanh

Post on 29-Jan-2017

241 views

Category:

Documents


0 download

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