You are on page 1of 27

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

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
จะไดวาเราสามารถกําหนดคาของตัวแปรใหเทากับนิพจน
ของตัวแปรอืน่ ได
3

กําหนดคาเปน Character String


เราสามารถกําหนดคาตัวแปรใหเปนตัวอักษรได โดยการใสขอความที่จะกําหนดใหตวั แปร
ในเครื่องหมายคําพูด รูปแบบคือ ตัวแปร = ‘ขอความ’
ตัวอยางเชน

เปนการกําหนดใหตวั แปร name เก็บคําวา Chaiporn

คําสั่ง disp
โปรแกรม MATLAB สามารถแสดงคาขอมูลในรูปแบบตัวอักษรหรือตัวเลขไดโดยกําหนด
เปนชื่อตัวแปรหรือขอความไดดวยการใชคําสั่ง dispโปรแกรม MATLAB จะตรวจสอบตัวอักษร
หรือขอความที่อยูในเครื่องหมายคําพูดของคําสั่งนี้แลวทําการแสดงตัวอักษรหรือขอความที่อยูใน
วงเล็บ แตถาไมมีเครื่องหมายคําพูดอยูในวงเล็บ โปรแกรม MATLAB จะแปรความหมายของ
ตัวอักษรหรือขอความที่อยูในวงเล็บเปนคาขอมูลแลวแสดงคานั้นออกมา ตัวอยางเชน

จากตัวอยางนีจ้ ะเห็นวาเรามีตัวแปรอยู 3 ตัวแปร นัน่ คือ A, name และ


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

การกําหนดคาใหกับตัวแปรที่ตองการใหเปนตัวอักษรนัน้ เราจะใหเครือ่ งหมายคําพูดใน


การกําหนดขอความ โดยที่เครื่องจะไมสนใจความหมายของขอความนัน้ ๆ ถึงแมวาขอความนั้น จะ
ไปซ้ํากับตัวแปรอีกตัวแปรหนึ่งก็ตาม
และเราสามารถตัดขอความในตัวแปรนั้นมาเพียงบางสวนได
โดยการพิมพตัวแปรที่ตองการจะตัดแลวตามดวยเครื่องหมาย
(begin position : end position) ตัวอยางเชน
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
5

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

เครื่องหมาย รายละเอียด
. จุดทศนิยม
() กําหนด subscripts
= กําหนดคา
[] สรางเวกเตอรและเมตริกซ
: สรางเวกเตอร
… กระทําคําสั่งยังบรรทัดตอไป
, แยก element ภายในเมตริกและ subscripts

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

ตัวแปร รายละเอียด
pi π = 22/7
i −1
Inf ∞
NaN Not-a-Number
เก็บผลจากการคํานวณคาปจจุบันใด ๆ ที่
Ans
ไมไดทําการกําหนดชื่อตัวแปรของผลลัพธ
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
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 แลว


2 2
abs(x) = a + b

ตัวอยางเชน
−2 =2
4.5 = 4.5
1 + 2 i = 1 + 4 = 5 = 2.2361
3 + 4 i = 9 + 16 = 25 = 5
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 การหาคาตาง ๆ เหลานีจ้ ะอาศัยความสัมพันธของสามเหลี่ยมมุมฉากเปนสําคัญ

ฟงกชันในการคํานวณคาทางตรีโกณมิติมีดงั นี้

คําสั่ง รายละเอียด
ฟงกชันนีใ้ ชคาํ นวณหาคา sine ของ x โดยที่คา x ตองอยูใน
sin(x)
หนวยของเรเดียน
ฟงกชันนีใ้ ชคาํ นวณหาคา cosine ของ x โดยที่คา x ตองอยู
cos(x)
ในหนวยของเรเดียน
ฟงกชันนีใ้ ชคาํ นวณหาคา tangent ของ x โดยที่คา x ตองอยู
tan(x)
ในหนวยของเรเดียน
ฟงกชันที่ใชในการคํานวณคาอินเวอรสของ sine ซึ่งผลที่ได
asin(x) จากการคํานวณจะเปนมุมเรเดียนที่อยูระหวาง -π/2 ถึง π/2
โดยที่คา x จะตองอยูในชวง -1 ถึง 1
ฟงกชันที่ใชในการคํานวณคาอินเวอรสของ cosine ซึ่งผลที่
acos(x) ไดจากการคํานวณจะเปนมุมเรเดียนที่อยูระหวาง 0 ถึง π
โดยที่คา x จะตองอยูในชวง -1 ถึง 1
ฟงกชันที่ใชในการคํานวณคาอินเวอรสของ tangent ซึ่งผลที่
atan(x) ไดจากการคํานวณจะเปนมุมเรเดียนที่อยูระหวาง -π/2 ถึง
π/2 โดยที่คา x จะตองอยูใ นชวง -1 ถึง 1
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
ฟงกชันนีใ้ ชสําหรับการหาคา common logarithms
log10(x)
(logarithm ฐาน10) ของ x

ตัวอยางเชน
ln(2) = 0.6931
log10(2) = 0.3010
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 หลัก
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 ]
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 จะใชเครื่องหมายทางคณิตศาสตร ในการคํานวณคาตาง ๆ
ตัวอยางเชน การคํานวณระหวางคาสเกลารกับสเกลาร อารเรยกับอารเรย คาสเกลารกบั อารเรย เปน
ตน โดยในหัวขอนี้จะกลาวถึงการดําเนินการคํานวณคาตาง ๆ ดังตอไปนี้
การดําเนินการระหวางคาสเกลารกับอารเรย
การคํานวณคาสเกลารกับอารเรยนี้จะเหมือนกับการคํานวณทางคณิตศาสตรทั่วไปโดย
คาสเกลารจะทําการบวก การลบ การคูณ และการหาร กับทุก ๆ คาในอารเรยที่ทําการคํานวณ
ตัวอยางเชน
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 หมายถึงนําสมาชิกตําแหนงตรงกันหารกัน
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 ใด ๆ

⎡1 2 3⎤
เชนหากเรามีเมตริกซ A = ⎢ ⎥
⎣4 5 6⎦
ซึ่งมีขนาด 2×3
หากตองการเมตริกซ 0 ที่มีขนาดเดียวกับ A
ใชคําสั่ง zeros(size(A))
15

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

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

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


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

เมตริกซเอกลักษณ : เปนเมตริกซที่มีคาหนึ่งในเสนทแยงมุมหลักสวนตําแหนงอืน่ ๆ จะมี


คาเปนศูนยทั้งหมด คําสั่งที่ใชสรางเมตริกซเอกลักษณมดี ังตอไปนี้
eye(n) คําสั่งนี้ใชสรางเมตริกซเอกลักษณซงึ่ เปนเมตริกซจัตุรัสขนาด n×n

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

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

เมตริกซแนวทแยงมุม (diagonal matrices) :มีคําสั่งดังตอไปนี้


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

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


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

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


จัตุรัส

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


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

การจัดการอารเรยโดยทั่วไป
ในเมื่ออารเรยหรือเมตริกซเปนพื้นฐานของโปรแกรม MATLAB จะมีหลายวิธีที่ใชสาํ หรับ
จัดการอารเรยหรือเมตริกซเพื่อสรางประสิทธิภาพในการทํางาน ในสวนนี้จะกลาวถึงการจัดการ
เมตริกซในโปรแกรม MATLAB ซึ่งมีดังตอไปนี้
A(r,c) = k กําหนดใหแถวที่ r หลักที่ c ของเมตริกซ A มีคาเทากับ k

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


20

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

A(:) การนําหลักทั้งหมดของเมตริกซมาตอกันเปนหลักเดียว
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

คําสั่ง รายละเอียด
คํานวณหารากของสมการโพลิโนเมียล เมื่อ A เปนคาสัมประสิทธิ์ของ
roots(A) สมการโพลิโนเมียลที่เรียงจากเลขยกกําลังมากไปนอยซึ่งเราเรียก A วาเปน
เวกเตอรสัมประสิทธิ์

4 3 2
รากของสมการ f ( x ) = x + x − 7 x − x + 6 = 0
คือ −3, −1, 2 และ 1

5
รากของสมการโพลิโนเมียล f ( x ) = x − 4 x + 5 = 0
คือ −1.6304, −0.2371+1.5155i, −0.2371−1.5155i,
1.0523+0.4426i และ 1.0523−0.4426i
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)
ดังนั้นสมการโพลิโนเมียล
4 3 2
คือ x + x − 7x − x + 6 = 0
23

การหาอนุพันธ

คําสั่ง รายละเอียด
diff(f) การหาอนุพนั ธของฟงกชัน f
diff(f,n) การหาอนุพนั ธของฟงกชัน f อันดับที่ n

d 4
(x ) = 4 x3
dx
d2 4 2
( x ) = 12 x
dx 2

d
(cos x ) = − sin x
dx
d4
(cos x ) = cos x
dx 4

d x 1
( xy + x 2 + ) = y + 2 x +
dx y y
d 2 xy 2 xy
2 ( e − sin( x + y )) = y e + sin( x + y )
dx
24

การอินทิเกรต
คําสั่ง รายละเอียด
int(f(x)) ∫ f ( x )dx
int(f(x,y),x) ∫ f ( x , y )dx
b
int(f(x),a,b) ∫ f ( x )dx
a
b
int(f(x,y),x,a,b) ∫ f ( x , y )dx
a

3 x4
∫ ( x + 1)dx = 4 + x + C

2 2 x3 2 x2y
∫ ( x + y + xy )dx = 3 + y x + 2 + C

4
3
∫ ( x )dx = 64
0


− 2 (cos 2 ( πy ) − 1)
∫ (sin( xy ))dx = y
0
25

หาคําตอบของสมการเชิงอนุพันธอันดับหนึ่ง

คําสั่ง รายละเอียด
แกสมการเชิงอนุพันธอันดับหนึ่ง โดยการใส
dsolve(‘eqn’)
สมการลงไปในเครื่องหมายคําพูด (‘eqn’)
แกสมการเชิงอนุพันธอันดับหนึ่ง โดยการใส
dsolve(‘eqn’,’cond’) สมการลงไปในเครื่องหมายคําพูด (‘eqn’)
และใสเงื่อนไขตามลงไป(’cond’)

คําตอบของสมการเชิงอนุพนั ธ
dy
+ ty = 0
dt
−t 2 / 2
คือ y = C1e

คําตอบของสมการเชิงอนุพนั ธ
dy
+ 5 y = 9e 2 t ; y ( 0 ) = 4
dt
9 2 t 19 −5 t
คือ y = e + e
7 7
26

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

M-file
คําสั่ง รายละเอียด
clear เซตคาเริ่มตนใหมใหตวั แปรทั้งหมด
n=input(‘text’) รับคา n ทางแปนพิมพ
if condition
module1 การเช็คเงื่อนไขวาจริงหรือเท็จ
else ถาจริงทํา module1 ถาเท็จทํา module2
module2 เปนตน
end
if condition
module1
elseif condition
module2 เปนการเช็คเงือ่ นไขที่มากกวา 1 เงื่อนไข
else
module3
end
for k=start:stop การทําซ้ําเทากับจํานวนรอบที่ใสลงไป
module โดย k จะเริ่มตนที่คา start และจบที่คา stop
end เพิ่มคา k ทีละ 1
for k=start:step:stop การทําซ้ําเทากับจํานวนรอบที่ใสลงไป
module โดย k จะเริ่มตนที่คา start และจบที่คา stop
end เพิ่มคา k เทากับคาของ step ที่ใส