48
MATLAB เบื้องตน โดย อ. โศรฎา แข็งการ เรียบเรียงโดย อ.ดร.ชโลธร ธรรมแท

MATLAB เบื้องต น - eng.sut.ac.theng.sut.ac.th/mae/maeweb/sites/default/files/Matlab.pdf · matlab เบื้องต น โดย อ. โศรฎา แข็งการ

Embed Size (px)

Citation preview

MATLAB เบ้ืองตน

โดย อ. โศรฎา แข็งการเรียบเรียงโดย อ.ดร.ชโลธร ธรรมแท

What is MATLAB?

• เปนภาษาคอมพิวเตอรภาษาหนึ่งคลายกับ ภาษา C หรือ fortan• เปนเครื่องคิดเลขที่มีประสิทธิภาพ• เปนโปรแกรมคอมพิวเตอรที่ใชงาย ไมยุงยาก• เปนเครื่องมือในการวิเคราะหขอมูลทางวิศวกรรมและทางสถิต• เปนเครื่องมือที่นําเสนอขอมูลดวยการ plots

การเปดใชงาน MATLAB

Introduction for using MATLAB

MATLAB Prompt

• เคร่ืองหมาย >> หมายถึง พรอมรับคําสั่ง• พิมพหรือ paste commands จากน้ันกด enter• ถาตองการพิมพหลายคําสั่งใหใชเคร่ืองหมาย

semicolon (;) แยกคําสั่งแตละคําสั่งออกจากกัน โดยคําสั่งท้ังหมดจะอยูบนบรรทัดเดียวกัน

MATLAB Prompt

• ถาปดคําสั่งดวย semicolon (;) เปนการบอกให MATLAB ไมตองแสดง output ออกมา

• ถาตองการใหแสดง output ไมตองใส semicolon (;) • >>2+2

ans = 4

>>

การกําหนดตัวแปรบน MATLAB

• ตัวพิมพใหญและตัวพิมพเล็ก ทําใหชื่อของตัวแปรตางกัน• Matrix คือการสรางตัวแปรหลายคาในชื่อเดียว เชน

V=[0.98 1.02 .99 1.07];

การกําหนดตัวแปรบน MATLAB

• MATLAB สรางตัวแปรในรูปของ scalar (matrix ขนาด 1X1) vector (matrix ขนาด nX1 หรือ 1Xn) และ matrices

• ใน MATLAB การบวก หรือ ลบ กันของ vector ถาขนาดไมเทากันจะไมสามารถบวกกันได

Basic Operations

• กําหนด matrices โดย brackets [ ] เสมอ• ใชวงเล็บ ( ) เพ่ือเรียกคาของ matrices• การเรียกคา matrices คาแรกจะเปน row เสมอ และคาท่ีสอง

จะเปน column , เชน M1(3,2) ซึ่งไมเหมือนกับ M1(2,3)

Basic Operations

• ใช +, -, *, / สําหรับการ บวก, ลบ, คูณ, หาร• ใช ./ and .* สําหรับการหาร และคูณ matrices และ

vectors แบบ element by element• ใช / and * สําหรับการหาร และคูณ matrices ตามหลัก

ของ Linear Algebra• ใช ‘ สําหรับ transpose matrix• สามารถคูณ matrix ดวย scalar ไดเสมอ

การกําหนดตัวแปรดวยชวงตัวเลข

• เคร่ืองหมาย Colon, ( : ) กําหนดชวงตัวเลข• >>V3=[1:5] กําหนด V3 ใหมีคาเทากับ 1 ถึง 5 (เพิ่มคาทีละ 1)• >>V3=[1:3:13]’ กําหนด V3 ใหมีคาเทากับ 1 ถึง 13, (เพิ่มคาทีละ 3)

สังเกตุวามีเคร่ืองหมาย transposed• >>M5=M1(1:2,1:5) กําหนด M5 ใหมีคาเทากับ ทุกคาในแถวที่ 1-2

และทุก columns ที่ 1-5 ของตัวแปร M1• >>V3=M1(:,2) กําหนด V3 ใหมีคาเทากับ ทุกคาใน column ที่ 2

ของตัวแปร M1

การสรางเมตริกซพิเศษบน MATLAB

• rand(m,n) สรางเมตริกซที่แตละ element เปนคาสุม จาก 0-1• eye(n,m) สรางเมตริกซเอกลักษณ• ones(n,m) สรางเมตริกซหนึ่งหนวย• zeros(n,m) สรางเมตริกซศูนย• Linspace(a,b,n) การสราง row vector ขนาด 1Xn โดยคาแรกจะ

เทากับ a และคาสุดทายเทากับ b

ตัวอยาง

ตัวอยาง

คาพิเศษของ MATLAB

คาพิเศษ ความหมายpi ใชแทนคา ซึ่งมีคาเทากับ 3.14159

i และ j แทน imaginary value ซึ่งมีคา Inf แทน infinity สวนมากจะเกิดจากการหารจํานวนใดๆ ดวย 0

NaN แทน Not-a-Number แทนคาที่ทางคณิตศาสตรไมนิยาม (0/0)

eps แทน floating-point precision ของเคร่ือง computer ที่กําลังทํางานอยู

ans แทนคาที่ตํานวณคร้ังสุดทายที่ไมมีการกําหนดคาอื่น

ตัวดําเนินการทางคณิตศาสตร

การดําเนินการ รูปแบบพีชคณิต

รูปแบบของ MATLAB

การบวก (addition) a + b a + bการลบ (subtraction) a – b a – bการคูณ (multiplication) a b a * bการหารทางซาย (left division) b/a a\bการหารทางขวา (right division) a/b a/bการยกกําลัง (exponentiation) ab a^b

ลําดับความสําคัญ

ลําดับความสําคัญ ตัวดําเนินการ

1 วงเล็บ ( )

2 เลขยกกําลัง ^ และเรียงจากซายไปขวา

3 การคูณ การหาร และเรียงจากซายไปขวา

4 การบวก การลบ และเรียงจากซายไปขวา

คําส่ังพิเศษทางคณิตศาสตร

• sqrt(x) หาคารากที่ 2 ของ x• rem(x,y) หาเศษที่ไดจากการหาร x ดวย y• exp(x) หาคา ex

• log(x) หาคา ln(x) หรือ natural logarithm ของ x • log10(x) หาคา log10(x) หรือ logarithm ฐาน 10 ของ x

ตัวอยาง

คําส่ังพิเศษสําหรับฟงกช่ันตรีโกณมิติ

• sin(x) หาคา sine ของมุม x radians• cos(x) หาคา cosine ของมุม x radians• tan(x) หาคา tan ของมุม x radians• sind(x) หาคา sine ของมุม x degree• cosd(x) หาคา cosine ของมุม x degree• tand(x) หาคา tan ของมุม x degree

คําส่ังพิเศษสําหรับฟงกช่ันตรีโกณมิติ

• asin(x) หาคา arcsine ของ x โดย -1 =< X <= 1 และคาที่ไดเปน radians

• acos(x) หาคา arccos ของ x โดย -1 =< X <= 1 และคาที่ไดเปน radians

• atan(x) หาคา arctan ของ x โดย x เปนจํานวนจริง และคาที่ไดเปนradians อยูระหวาง และ

• atan2(x,y) หาคา arctan ของ x โดย x เปนจํานวนจริง และคาที่ไดเปน radians อยูระหวาง และ ขึ้นอยูกับเครื่องหมาย x และ y

2

2

ตัวอยาง

Saving your work

• >>save workspace1 x y saves ตัวแปร x and y ใน file ชื่อ workspace1.mat

• >>save workspace1 saves ทุกตัวแปร ใน file ชื่อ workspace1.mat

• >>load workspace1 เรียกคาตัวแปรใน file ชื่อ workspace1.mat

การเรียกใช help

• >>help แสดงหัวขอท้ังหมดท่ีมี • >>help graph2d แสดงตัวอยาง functions ของ graph2d• >>help plot แสดงตัวอยาง functions ของ plot• >>clear all ลบคาตัวแปรท้ังหมด

คําส่ังพิเศษสําหรับจํานวนจริง

• fix(x) หาคาจํานวนเต็มท่ีใกล x ไปทาง 0 มากท่ีสุด• ceil(x) หาคาจํานวนเต็มท่ีใกล x ไปทาง +มากท่ีสุด• floor(x) หาคาจํานวนเต็มท่ีใกล x ไปทาง -มากท่ีสุด• round(x) หาคาจํานวนเต็มท่ีใกล x มากท่ีสุด• sign(x) หาคาเครื่องหมายของ x• rat(x) ประมาณคาจํานวนจริงใหอยูในรูปเศษสวน• abs(x) หาคาสัมบูรณของ x

ตัวอยาง

คําส่ังพิเศษสําหรับจํานวนเชิงซอน

z = a + bi• real(z) หาสวนจริง• imag(z) หาสวนจินตภาพ• abs(z) หาขนาด • conj(z) หาสังยุคเชิงซอน zz = a – bi• angle(z) หาคามุมหรือ argument ของ z

ตัวอยาง

ตัวอยาง

การเขียน M File• เปน file ท่ีมีนามสกุล .m• มีการเขียน 2 ลักษณะ

– Script file : รวบรวมคําส่ังตางๆ ที่ตองการให MATLAB ทํางานมาบรรจุไวใน file เดียว

– Function file : เปน file ที่สรางขึ้นเองเพื่อใชงานเหมือนเปนฟงกชั่นหนึ่งใน MATLAB

• เรียกประมวลผลบน MATLAB โดยการพิมพชื่อ file ท่ี command window

7/14/2012 copyright 2006 www.brainybetty.com 33

การเขียน M File

• เปน file ท่ีมีนามสกุล .m• มีการเขียน 2 ลักษณะ

– Script file : รวบรวมคําส่ังตางๆ ที่ตองการให MATLAB ทํางานมาบรรจุไวใน file เดียว

– Function file : เปน file ที่สรางขึ้นเองเพื่อใชงานเหมือนเปนฟงกชั่นหนึ่งใน MATLAB

• เรียกประมวลผลบน MATLAB โดยการพิมพชื่อ file ท่ี command window

7/14/2012 copyright 2006 www.brainybetty.com 34

Script file

7/14/2012 copyright 2006 www.brainybetty.com 35

เรียกประมวลผล

Function file

7/14/2012 copyright 2006 www.brainybetty.com 36

Output Input

Function file และ Script file

• การเรียก file ท้ังสองมาประมวลผลดวยการพิมพชื่อท่ี command window– folder ที่เก็บ file ไว ตองอยูใน search path ของ MATLAB ดวย– File set path add folder

• ท่ีตัวแปร function file ไฟลจะเปนตัวแปรประเภท โลคอล (local variable)

• ท่ีตัวแปร Script file จะเปนตัวแปรประเภท โกลบอล (Global variable)

7/14/2012 copyright 2006 www.brainybetty.com 37

ตัวอยางการเขียน Function file และ Script file

• ตัวอยางท่ี 1 จงเขียน script file และ function file เพ่ือหาคาผลรวมของเลขจํานวนเต็มตั้งแตคาท่ี 1 ถึง N โดยการเรียกใชงานของ function file มีรูปแบบดังน้ี

y = MySum(N)

7/14/2012 copyright 2006 www.brainybetty.com 38

ตัวอยางการเขียน Function file และ Script file

7/14/2012 copyright 2006 www.brainybetty.com 39

การใช Comment (%)

• หลังเคร่ืองหมาย “%” : MATLAB จะไมทําการประมวลผล• ใน M-file ขอความหลังเคร่ืองหมาย “%” ทุกบรรทัดจะหมายถึง

help ของ file น้ัน

7/14/2012 copyright 2006 www.brainybetty.com 40

Simple Plot• เขียนกราฟ x-y แบบงายๆ• คําสั่ง

plot(x,y) : สราง linear plot ของ x-y โดย x เปนแกน นอนและ y เปนแกนตั้ง

plot(z) : ถา z เปน complex number จะ plot ดวย (Re(z),Im(z))

plot(x,y,’str’) : เมื่อ ‘str’ คือ character string กําหนด ลักษณะ และสีของเสนกราฟ

plot(x,y,’str1’,w,v,’str2’) : plot curve มากกวา 1 เสน ใน ระบบแกนเดียวกัน

Character string

ตัวอยาง

Simple Plot• คําสั่ง

plotyy(x1,y1,x2,y2) : สราง linear plot ของ x1-y1 และ x2-y2แตจะวางแกน y ไวสองขางของกราฟ y1 อยู

ซายมือและ y2 อยูขวามือsemilogx(x,y) : สราง plot ของ x-y โดย x เปนสเกล log

และ y เปนเชิงเสนsemilogy(x,y) : สราง plot ของ x-y โดย y เปนสเกล log

และ x เปนเชิงเสนloglog(x,y) : สราง plot บนสเกล log ของ x-y

Simple Plot• คําสั่ง

title(‘txt’) : เขียนชื่อกราฟ วางท่ีดานบนตรงกลางxlabel(‘txt’) : เขียนชื่อแกน x วางตรงกลางของแกน x ylabel(‘txt’) : เขียนชื่อแกน y วางตรงกลางของแกน y grid on : ใหแสดงลายเสนบนกราฟgrid off : ไมตองแสดงลายเสนบนกราฟhold on : plot ซ้ําในกราฟรูปเดิม โดยไมตองลบกราฟเดิมhold off : ยกเลิก hold on

ตัวอยาง

SubPlot• การสรางกราฟยอยใน Graphic window เดียว• คําสั่ง

subplot(m,n,p) : สรางกราฟยอย โดยวางอยูในรูป matrix ขนาด mxn และให plot ลงในตําแหนง p

ตัวอยาง