การแกไขโจทย้ คณ์ตศาสตริ และฟ์...

40
การแก ้ไขโจทย์คณิตศาสตร์และฟิสกสด ้วย โปรแกรม SCILAB (2) ผศ.ดร.ปิยะ โควินท์ทวีวัฒน์ [email protected] http://home.npru.ac.th/piya http://www.scilab.org ผศ.ดร.ปิ ยะ โควินท์ทวีวัฒน์ มหาวิทยาลัยราชภัฏนครปฐม 2 ขอบเขตของเนื้อหา การเขียนโปรแกรมด้วย SCILAB การใชคําสงการวนลูป การใชคําสงทดสอบเงื่อนไข การพัฒนาฟังก์ชนั ไฟล์สคริปต์และไฟล์ฟังก์ชนั พื้นฐานการวาดกราฟ การวาดกราฟสองมิติ การวาดกราฟสามมิติ ตัวอย่างการประยุกต์ใชงาน

Upload: others

Post on 27-Jan-2020

2 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: การแกไขโจทย้ คณ์ตศาสตริ และฟ์ ...home.npru.ac.th/piya/webscilab/file/Piya_SCILAB_Day2.pdfผศ.ดร.ป ยะ โคว นท

ผศ.ดร.ปยะ โควนททววฒน มหาวทยาลยราชภฏนครปฐม 1

การแกไขโจทยคณตศาสตรและฟสกสดวย โปรแกรม SCILAB (2)

ผศ.ดร.ปยะ โควนททววฒน

[email protected]://home.npru.ac.th/piyahttp://www.scilab.org

ผศ.ดร.ปยะ โควนททววฒน มหาวทยาลยราชภฏนครปฐม 2

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

การใชคาสงทดสอบเงอนไข

การพฒนาฟงกชน

ไฟลสครปตและไฟลฟงกชน

พนฐานการวาดกราฟการวาดกราฟสองมต

การวาดกราฟสามมต

ตวอยางการประยกตใชงาน

Page 2: การแกไขโจทย้ คณ์ตศาสตริ และฟ์ ...home.npru.ac.th/piya/webscilab/file/Piya_SCILAB_Day2.pdfผศ.ดร.ป ยะ โคว นท

ผศ.ดร.ปยะ โควนททววฒน มหาวทยาลยราชภฏนครปฐม 3

การเขยนโปรแกรมดวย SCILABการใชคาสงการวนลป

การใชคาสงทดสอบเงอนไข

ผศ.ดร.ปยะ โควนททววฒน มหาวทยาลยราชภฏนครปฐม 4

คาสงการวนลป

การเขยนโปรแกรมโดยทวไป บางครงมความจาเปนตองคานวณชดคาสงบางอยางซาเปนจานวนหลายๆ รอบ ดงนนการใชคาสงวนลป (loop) จงมความจาเปนมากสาหรบการพฒนาโปรแกรม

ใน SCILAB คาสงสาหรบการวนลปม 2 แบบคอ คาสง for

คาสง while

Page 3: การแกไขโจทย้ คณ์ตศาสตริ และฟ์ ...home.npru.ac.th/piya/webscilab/file/Piya_SCILAB_Day2.pdfผศ.ดร.ป ยะ โคว นท

ผศ.ดร.ปยะ โควนททววฒน มหาวทยาลยราชภฏนครปฐม 5

คาสง for

ตวอยาง:-->L = 5;-->x = [ ];-->for i = 1:L--> x(i) = i;-->end

-->x'

for variable = expression

instruction_1;

instruction_n;end

รปแบบการใชงาน

ผศ.ดร.ปยะ โควนททววฒน มหาวทยาลยราชภฏนครปฐม 6

คาสง for – แบบฝกหด

จงเขยนโปรแกรมโดยใชคาสง for ในการหาผลรวมของเลขจานวนเตมคตงแตคา 1 ไปเรอยๆ เปนจานวน N = 10 ครง นนคอหาคา y จาก

( )…elementsN

12N531y +++++=

Page 4: การแกไขโจทย้ คณ์ตศาสตริ และฟ์ ...home.npru.ac.th/piya/webscilab/file/Piya_SCILAB_Day2.pdfผศ.ดร.ป ยะ โคว นท

ผศ.ดร.ปยะ โควนททววฒน มหาวทยาลยราชภฏนครปฐม 7

คาสง while

คลายกบคาสง for เพยงแต คาสง while จะมการทดสอบเงอนไขใน expression ทกๆ รอบของการวนซา

ตวอยาง:-->L = 5;

-->x = [ ];

-->i = 1;

-->while i <= L

--> x(i) = i;

--> i = i + 1;

-->end

-->x'

while expression

instruction_1;

instruction_n;end

รปแบบการใชงาน

ผศ.ดร.ปยะ โควนททววฒน มหาวทยาลยราชภฏนครปฐม 8

คาสง while – แบบฝกหด

จงเขยนโปรแกรมโดยใชคาสง while ในการหาผลรวมของเลขจานวนเตมคตงแตคา 1 ไปเรอยๆ เปนจานวน N = 10 ครง นนคอหาคา y จาก

( )…elementsN

12N531y +++++=

Page 5: การแกไขโจทย้ คณ์ตศาสตริ และฟ์ ...home.npru.ac.th/piya/webscilab/file/Piya_SCILAB_Day2.pdfผศ.ดร.ป ยะ โคว นท

ผศ.ดร.ปยะ โควนททววฒน มหาวทยาลยราชภฏนครปฐม 9

คาสงทดสอบเงอนไข

มประโยชนมากสาหรบการเขยนโปรแกรมคอมพวเตอรทซบซอน

ใน SCILAB คาสงสาหรบการ ทดสอบเงอนม 2 แบบคอ

คาสง if

คาสง select - case

ผศ.ดร.ปยะ โควนททววฒน มหาวทยาลยราชภฏนครปฐม 10

คาสง if

คาสง if ⇒ ทดสอบเงอนไขความสมพนธวาเปนจรงหรอเปนเทจ

ลกษณะการใชงานแบบท 1

if expression then

instruction_1;

instruction_n;end

Page 6: การแกไขโจทย้ คณ์ตศาสตริ และฟ์ ...home.npru.ac.th/piya/webscilab/file/Piya_SCILAB_Day2.pdfผศ.ดร.ป ยะ โคว นท

ผศ.ดร.ปยะ โควนททววฒน มหาวทยาลยราชภฏนครปฐม 11

คาสง if (ตอ)

ลกษณะการใชงานแบบท 2

if expression then

instruction_1;

else

instruction_2;

end

ผศ.ดร.ปยะ โควนททววฒน มหาวทยาลยราชภฏนครปฐม 12

คาสง if (ตอ)

ลกษณะการใชงานแบบท 3

if expression_1 then

instructions_1;

elseif expression_2 then

instructions_2;

else

instruction_3;

end

Page 7: การแกไขโจทย้ คณ์ตศาสตริ และฟ์ ...home.npru.ac.th/piya/webscilab/file/Piya_SCILAB_Day2.pdfผศ.ดร.ป ยะ โคว นท

ผศ.ดร.ปยะ โควนททววฒน มหาวทยาลยราชภฏนครปฐม 13

คาสง if – ตวอยาง-->N = 3;-->A = [ ];-->for i = 1:N --> for j = 1:N --> if i < j then--> A(i, j) = 3; --> elseif i == j then --> A(i, j) = 2; --> else --> A(i, j) = 1;--> end--> end-->end

จงสรางเมทรกซขนาด 3x3 โดยท

• ทกอลเมนตทอยใตเสนทแยงมมหลก มคาเปน 1

• ทกอลเมนตทในแนวเสนทแยงมมหลก มคาเปน 2

• ทกอลเมนตทอยเหนอเสนทแยงมมหลก มคาเปน 3

⎥⎥⎥

⎢⎢⎢

⎡=

211321332

A

ผศ.ดร.ปยะ โควนททววฒน มหาวทยาลยราชภฏนครปฐม 14

แบบฝกหด

จงเขยนไฟลฟงกชน (โดยใชคาสง if) เพอหาคาสงสดของเลขจานวนจรงสามจานวน

จงเขยนไฟลฟงกชนทมรปแบบการเรยกใชงานคอ

[a, b, c, d] = MoneyExchange(m)

เพอทาหนาทเปลยนจานวนเงน m บาท ใหเปน

ธนบตรใบละ 100 บาทจานวน a ใบ

ธนบตรใบละ 20 บาทจานวน b ใบ

เหรยญสบบาทจานวน c เหรยญ

เหรยญหนงบาทจานวน d เหรยญ

Page 8: การแกไขโจทย้ คณ์ตศาสตริ และฟ์ ...home.npru.ac.th/piya/webscilab/file/Piya_SCILAB_Day2.pdfผศ.ดร.ป ยะ โคว นท

ผศ.ดร.ปยะ โควนททววฒน มหาวทยาลยราชภฏนครปฐม 15

การเขยนโปรแกรมดวย SCILABการพฒนาฟงกชน

ผศ.ดร.ปยะ โควนททววฒน มหาวทยาลยราชภฏนครปฐม 16

การพฒนาฟงกชน

การพฒนาฟงกชนขนมาใชงานรวมกบโปรแกรม SCILAB

ไฟลสครปต (File script) และไฟลฟงกชน (File function) เปนสงทมประโยชนมากในการพฒนาโปรแกรม

Page 9: การแกไขโจทย้ คณ์ตศาสตริ และฟ์ ...home.npru.ac.th/piya/webscilab/file/Piya_SCILAB_Day2.pdfผศ.ดร.ป ยะ โคว นท

ผศ.ดร.ปยะ โควนททววฒน มหาวทยาลยราชภฏนครปฐม 17

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

การตรวจสอบและแกไขในไฟลสครปตทาไดงายโดยการใชโปรแกรม เอดเตอรทวไปเชน Notepad, WordPad หรอ “Scipad”

เปนไฟลทปดทายดวย .sce

ใชคาสง exec ในการเรยกไฟลสครปตไปประมวลผล การทางานของไฟลสครปตจะเทยบเทากบการปอนคาสงผานโปรแกรม SCILAB โดยตรงตามปกตทละคาสงทอยในไฟลสครปต

ตวแปรทงหมดทใชในไฟลสครปต ⇒ ตวแปรประเภทโกลบอล

ผศ.ดร.ปยะ โควนททววฒน มหาวทยาลยราชภฏนครปฐม 18

ไฟลฟงกชนทาหนาทเสมอนเปนฟงกชนหนงโปรแกรม SCILAB

เปนไฟลทปดทายดวย .sci (เรยกวา “Sci-file”)

ใชโปรแกรม เอดเตอรทวไปเชน Notepad, WordPad หรอ “Scipad” ในการเขยนหรอแกไขไฟลฟงกชน

ใชคาสง exec หรอ getf ในการเรยกไฟลฟงกชนไปประมวลผล

ตวแปรทงหมดทใชในไฟลฟงกชนจะถอวาเปนตวแปร ประเภทโลคอล

ทาใหผพฒนาโปรแกรมสามารถสรางฟงกชนใหมๆ ขนมาใชงานไดอยางเปนอสระจากผอน

Page 10: การแกไขโจทย้ คณ์ตศาสตริ และฟ์ ...home.npru.ac.th/piya/webscilab/file/Piya_SCILAB_Day2.pdfผศ.ดร.ป ยะ โคว นท

ผศ.ดร.ปยะ โควนททววฒน มหาวทยาลยราชภฏนครปฐม 19

รปแบบและขอกาหนดการเขยนไฟลฟงกชน

ตองเรมตนดวยคาวา “function” สวนคาปดทาย “endfunction” จะมหรอไมมกได

ชอของฟงกชนนนคอ “function_name” จะตองเหมอนกบชอของ SCI-file (ชอ “function_name.sci” ) ทกประการ

function [y1, y2, ..., yn] = function_name(x1, x2, ..., xm)

instruction_1;

instruction_n;

endfunction

ผศ.ดร.ปยะ โควนททววฒน มหาวทยาลยราชภฏนครปฐม 20

ไฟลฟงกชน – ตวอยางจงสรางฟงกชนเพอหาผลรวมของเลขจานวนเตมบวกตงแตคา 1 ถงคา N ทมการเรยกใชงานดงน

y = MySum(N)

Page 11: การแกไขโจทย้ คณ์ตศาสตริ และฟ์ ...home.npru.ac.th/piya/webscilab/file/Piya_SCILAB_Day2.pdfผศ.ดร.ป ยะ โคว นท

ผศ.ดร.ปยะ โควนททววฒน มหาวทยาลยราชภฏนครปฐม 21

ไฟลฟงกชน – วธทาเปด SciPad เพอเขยนไฟลฟงกชนดงน

บนทกขอมลนในชอไฟล MySum.sci

function [y] = MySum(N)y = 0;for i = 1:N

y = y + i;end endfunction

ผศ.ดร.ปยะ โควนททววฒน มหาวทยาลยราชภฏนครปฐม 22

ทดลองใชงาน

-->y = MySum(10)

-->exists('MySum')

-->exec('MySum.sci'); //เทากบ getf('MySum.sci')

-->exists('MySum')

-->y = MySum(5)

คาสง exists ⇒ ใชในการยนยนการมอยจรงของไฟล

Page 12: การแกไขโจทย้ คณ์ตศาสตริ และฟ์ ...home.npru.ac.th/piya/webscilab/file/Piya_SCILAB_Day2.pdfผศ.ดร.ป ยะ โคว นท

ผศ.ดร.ปยะ โควนททววฒน มหาวทยาลยราชภฏนครปฐม 23

การเขยนฟงกชนแบบอน ไลน

สามารถกาหนดฟงกชนเขาไปทหนาตางคาสงไดเลย เมอกาหนดเสรจแลวสามารถเรยกใชงานไดทนท ไมตองทาการโหลดคาสง

วธการเขยนฟงกชนแบบอน ไลนเรมตนฟงกชนดวยคาสงวา function และลงทายดวย endfunction

ตวอยาง:-->clear;

-->function [y] = MySum(N); y = 0; for i = 1:N; ...

-->y = y + i; end; endfunction;

-->y = MySum(5)

ผศ.ดร.ปยะ โควนททววฒน มหาวทยาลยราชภฏนครปฐม 24

นอกจากนยงสามารถใชคาสง deff

ตวอยาง:-->clear;

-->deff('y = MySum(N)', 'y=0; for i = 1:N; y=y + i; end')

-->y = MySum(5)

deff('[เอาตพต] = function_name(อนพต)', 'ชดคาสง')

Page 13: การแกไขโจทย้ คณ์ตศาสตริ และฟ์ ...home.npru.ac.th/piya/webscilab/file/Piya_SCILAB_Day2.pdfผศ.ดร.ป ยะ โคว นท

ผศ.ดร.ปยะ โควนททววฒน มหาวทยาลยราชภฏนครปฐม 25

คาสง tic และ toc

คาสง tic เปนคาสงทใชในการจบเวลาเรมตนการทางาน ของชดคาสง

คาสง toc ซงจะทาหนาทในการหยดเวลาทตงไวจากการใช คาสง tic พรอมทงแสดงผลของเวลาทใชไปออกหนาจอ

ตวอยาง:-->tic-->deff('[y] = fsum(N)', 'y=0; for i=1:N, y=y+1; end');-->y = fsum(100)-->toc

ผศ.ดร.ปยะ โควนททววฒน มหาวทยาลยราชภฏนครปฐม 26

การเขยนโปรแกรมดวย SCILABเทคนคการพฒนาฟงกชน

Page 14: การแกไขโจทย้ คณ์ตศาสตริ และฟ์ ...home.npru.ac.th/piya/webscilab/file/Piya_SCILAB_Day2.pdfผศ.ดร.ป ยะ โคว นท

ผศ.ดร.ปยะ โควนททววฒน มหาวทยาลยราชภฏนครปฐม 27

เทคนคการพฒนาฟงกชน

โปรแกรม SCILAB เปนโปรแกรมททางานบนพนฐานของเมทรกซ

พยายามใชประโยชนจากโครงสรางของเมท รกซใหมากทสด พยายามหลกเลยงการใชคาสงวนลปตางๆ ใหมากทสด

ผศ.ดร.ปยะ โควนททววฒน มหาวทยาลยราชภฏนครปฐม 28

เทคนคการพฒนาฟงกชน – ตวอยาง

จงหาคา y จาก

∑=

⎟⎟⎠

⎞⎜⎜⎝

⎛ −+=200000

1i2

2

5i12i3iy

-->y = 0;-->tic-->for i=1:200000-->y = y + (3*i^2 + 2*i - 1)/(5*i^2);-->end-->toc-->y

แบบท 1

-->tic-->i = 1:200000;-->y = sum((3*i.^2 + 2*i - 1)./(5*i.^2));-->toc-->y

แบบท 2

แบบไหนทางานเรวกวา ?

Page 15: การแกไขโจทย้ คณ์ตศาสตริ และฟ์ ...home.npru.ac.th/piya/webscilab/file/Piya_SCILAB_Day2.pdfผศ.ดร.ป ยะ โคว นท

ผศ.ดร.ปยะ โควนททววฒน มหาวทยาลยราชภฏนครปฐม 29

การวาดกราฟสองมตพนฐานการวาดกราฟสองมต

ผศ.ดร.ปยะ โควนททววฒน มหาวทยาลยราชภฏนครปฐม 30

พนฐานการวาดกราฟสองมต

คาสง plot ⇒ วาดกราฟสองมตบนระบบพกดฉาก x-y

plot(x, y) หรอ plot(y)

โดยทพารามเตอร x = 1:size(y,'*')

ตวอยาง:-->t = 0:0.01:2;-->f = 1;-->y = sin(2*%pi*f*t);-->plot(t, y) -->xtitle('A sinusoidal wave', 'Time (t)', 'Amplitude')

( )fty π2sin=

Page 16: การแกไขโจทย้ คณ์ตศาสตริ และฟ์ ...home.npru.ac.th/piya/webscilab/file/Piya_SCILAB_Day2.pdfผศ.ดร.ป ยะ โคว นท

ผศ.ดร.ปยะ โควนททววฒน มหาวทยาลยราชภฏนครปฐม 31

หนาตางกราฟ

ผศ.ดร.ปยะ โควนททววฒน มหาวทยาลยราชภฏนครปฐม 32

การกอปปรปกราฟเลอกเมน File ⇒ Copy to clipboard ⇒ EnhMetafile

Paste ในตาแหนงทตองการ

การแกไขรปกราฟเลอกเมน Edit ⇒ Figure Properties ⇒ จะไดหนาตาง Figure Editor ออกมา

Page 17: การแกไขโจทย้ คณ์ตศาสตริ และฟ์ ...home.npru.ac.th/piya/webscilab/file/Piya_SCILAB_Day2.pdfผศ.ดร.ป ยะ โคว นท

ผศ.ดร.ปยะ โควนททววฒน มหาวทยาลยราชภฏนครปฐม 33

ผศ.ดร.ปยะ โควนททววฒน มหาวทยาลยราชภฏนครปฐม 34

การเปลยนคณลกษณะของเสนกราฟ

ในหนาตาง Figure Editor ⇒ Edit properties for: ⇒Polyline(1)

เปลยนส ⇒ แทป Style ⇒ Line color:

เปลยนลกษณะของเสนกราฟ ⇒ แทป Style ⇒ Line:

เปลยนรปแบบของเสนกราฟ ⇒ แทป Style ⇒ Mark style: และ Mark size:

Page 18: การแกไขโจทย้ คณ์ตศาสตริ และฟ์ ...home.npru.ac.th/piya/webscilab/file/Piya_SCILAB_Day2.pdfผศ.ดร.ป ยะ โคว นท

ผศ.ดร.ปยะ โควนททววฒน มหาวทยาลยราชภฏนครปฐม 35

พนฐานการวาดกราฟการวาดกราฟสองมต

ผศ.ดร.ปยะ โควนททววฒน มหาวทยาลยราชภฏนครปฐม 36

การวาดกราฟสองมตแบบทวไปคาสงวาดกราฟสองมตอกแบบหนงทนาสนใจคอ

โดยทไมม i วาดกราฟเชงเสนโดยใชสเกลแบบธรรมดา

หรอสเกลแบบลอการทม (Logarithm scale)

i = 2 วาดกราฟขนบนได (Step function)

i = 3 วาดกราฟแทง (Vertical bar)

i = 4 วาดกราฟเชงเสนโดยใชลกศรแสดงทศทางของเสนกราฟ

plot2di(x, y, [options])

options = [style, axesflag, leg, rect, logflag, nax, frameflag]

Page 19: การแกไขโจทย้ คณ์ตศาสตริ และฟ์ ...home.npru.ac.th/piya/webscilab/file/Piya_SCILAB_Day2.pdfผศ.ดร.ป ยะ โคว นท

ผศ.ดร.ปยะ โควนททววฒน มหาวทยาลยราชภฏนครปฐม 37

style = [j] โดยทคาของพารามเตอร j จะเปนตวกาหนดรปแบบของเสนกราฟ

ผศ.ดร.ปยะ โควนททววฒน มหาวทยาลยราชภฏนครปฐม 38

style = [j] ⇒ ถา j > 0

Page 20: การแกไขโจทย้ คณ์ตศาสตริ และฟ์ ...home.npru.ac.th/piya/webscilab/file/Piya_SCILAB_Day2.pdfผศ.ดร.ป ยะ โคว นท

ผศ.ดร.ปยะ โควนททววฒน มหาวทยาลยราชภฏนครปฐม 39

axesflag = [j] โดยทคาของพารามเตอร j จะเปนตวการกาหนดลกษณะของเสนแกนในหนาตางกราฟ

ผศ.ดร.ปยะ โควนททววฒน มหาวทยาลยราชภฏนครปฐม 40

leg = " description 1 @description 2 ..." ใชในการใส ขอความบรรยาเสนกราฟแตละเสน

rect = [xmin, ymin, xmax, ymax] ใชกาหนดขนาดของเฟรมรปภาพ

xmin และ xmax ใชกาหนดคาตาสดและคาสงสดของเสนแกน x

ymin และ ymax ใชกาหนดคาตาสดและคาสงสดของเสนแกน y

Page 21: การแกไขโจทย้ คณ์ตศาสตริ และฟ์ ...home.npru.ac.th/piya/webscilab/file/Piya_SCILAB_Day2.pdfผศ.ดร.ป ยะ โคว นท

ผศ.ดร.ปยะ โควนททววฒน มหาวทยาลยราชภฏนครปฐม 41

logflag ใชในการกาหนดลกษณะของเสนแกน x และเสนแกน y ใหใชสเกลแบบธรรมดาหรอสเกลแบบลอการทม

logflag ม 4 แบบไดแก "nn", "nl", "ln" หรอ "ll"

พารามเตอรตวแรกจะอางถงเสนแกน x และพารามเตอรตวทสองจะอางถงเสนแกน y โดยท

n หมายถงใหใชสเกลแบบธรรมดา

l หมายถงใหใชสเกลแบบลอการทม

ผศ.ดร.ปยะ โควนททววฒน มหาวทยาลยราชภฏนครปฐม 42

-->x = 0:0.2:5;

-->y = [1.4+sin(x); 1.8+sin(x)]';

-->subplot(1, 2, 1);

-->plot2d(x, y, style = [-2 -9], leg = "X-mark curve ...

-->@Circle curve", rect = [0.5,0.1,4.5, 3], logflag = "nl");

-->subplot(1, 2, 2);

-->plot2d(x, y, style = [-2 -9], leg = "X-mark curve ...-->@Circle curve", rect = [0.5, 0.1, 4.5, 3], logflag = "ll");

ตวอยาง

Page 22: การแกไขโจทย้ คณ์ตศาสตริ และฟ์ ...home.npru.ac.th/piya/webscilab/file/Piya_SCILAB_Day2.pdfผศ.ดร.ป ยะ โคว นท

ผศ.ดร.ปยะ โควนททววฒน มหาวทยาลยราชภฏนครปฐม 43

ผศ.ดร.ปยะ โควนททววฒน มหาวทยาลยราชภฏนครปฐม 44

คาสง subplot

คาสง subplot(m, n, k) ⇒ สรางหนาตางกราฟยอยจานวน m (แถว) x n (คอลมน) หนาตาง โดยใหหนาตางลาดบท k ทางานลาดบของหนาตางจะเรมตนจากมมบนซาย แลวเรยงจากซายไปขวา และจากบนลงลาง

1 2 3

4 5 6

subplot(2, 3, 2)

subplot(2, 3, 6)

Page 23: การแกไขโจทย้ คณ์ตศาสตริ และฟ์ ...home.npru.ac.th/piya/webscilab/file/Piya_SCILAB_Day2.pdfผศ.ดร.ป ยะ โคว นท

ผศ.ดร.ปยะ โควนททววฒน มหาวทยาลยราชภฏนครปฐม 45

คาสงในการจดการรปกราฟ

xtitle('title_name', 'x_axis', 'y_axis') ⇒ กาหนดชอของรปกราฟ ชอของเสนแกน x และชอของเสนแกน y

xgrid(j) ⇒ ใสเสนกรด ส j (ตารางหนา 14) เขาไปในรปกราฟ

scf(j) ⇒ กาหนดใหหนาตางกราฟหมายเลข j เปนหนาตางทางาน

clf(j) ⇒ ลบรปกราฟทแสดงอยในหนาตางกราฟหมายเลข j

ผศ.ดร.ปยะ โควนททววฒน มหาวทยาลยราชภฏนครปฐม 46

กราฟเชงขว

โดยทวไปเราสามารถทจะเปลยนจด (x, y) ทแสดงถงตาแหนงบนรปกราฟในระบบพกดฉากใหเปนลกษณะเชงขวทกาหนดโดยจดพกด (r, θ) ไดโดยท r คอขนาดและ θ คอมม ตามความสมพนธดงน

x

y

( )yx,

r

θ22 yxr += ⎟

⎠⎞

⎜⎝⎛= −

xytanθ 1

( )θrcosx = ( )θrsiny =

Page 24: การแกไขโจทย้ คณ์ตศาสตริ และฟ์ ...home.npru.ac.th/piya/webscilab/file/Piya_SCILAB_Day2.pdfผศ.ดร.ป ยะ โคว นท

ผศ.ดร.ปยะ โควนททววฒน มหาวทยาลยราชภฏนครปฐม 47

การวาดกราฟเชงขวทาไดโดยการใชคาสง

โดยทtheta คอคามม θ

r คอคาความยาวของรศม

options มรปแบบการใชงานดงน

polarplot(theta, r, [options])

options = [style, strf, leg, rect]

ผศ.ดร.ปยะ โควนททววฒน มหาวทยาลยราชภฏนครปฐม 48

กราฟเชงขว – ตวอยาง

-->t = 0:0.01:2*%pi;

-->polarplot(sin(7*t), cos(8*t))

Example: r = sin(2θ)

Page 25: การแกไขโจทย้ คณ์ตศาสตริ และฟ์ ...home.npru.ac.th/piya/webscilab/file/Piya_SCILAB_Day2.pdfผศ.ดร.ป ยะ โคว นท

ผศ.ดร.ปยะ โควนททววฒน มหาวทยาลยราชภฏนครปฐม 49

การวาดกราฟสองมตแบบพเศษ

วาดกราฟโพล-ซโร (Pole-zero plot)plzr

วาดกราฟอแวนรทโลคส (Evans root locus)evans

วาดกราฟไนควตซ (Nyquist plot)nyquist

วาดกราฟแสดงขนาดของโบดไดอะแกรมgainplot

วาดกราฟของโบดไดอะแกรม (Bode diagram) ทงกราฟแสดงขนาด (Magnitude plot) และกราฟแสดงมม (Phase plot) ซงมประโยชนมากทางดานวศวกรรมควบคมอตโนมต (Automatic control engineering)

bode

วาดกราฟสนามเวกเตอรแบบสองมต (2-D vector field)champ

วาดกราฟคอนทวร (Contour surface) จากรปกราฟสองมต contour2d

วาดกราฟสแสดงพนผว (Surface) แบบสองมตgrayplot

วาดกราฟทวไปแบบสองมต ทกาหนดโดยฟงกชนทางคณตศาสตรfplot2d

ความอธบายคาสง

ผศ.ดร.ปยะ โควนททววฒน มหาวทยาลยราชภฏนครปฐม 50

Page 26: การแกไขโจทย้ คณ์ตศาสตริ และฟ์ ...home.npru.ac.th/piya/webscilab/file/Piya_SCILAB_Day2.pdfผศ.ดร.ป ยะ โคว นท

ผศ.ดร.ปยะ โควนททววฒน มหาวทยาลยราชภฏนครปฐม 51

แบบฝกหดกาหนดให y = 4x2 โดยท 0 ≤ x ≤ 100 จงวาดกราฟตอไปนกราฟเชงเสน กราฟลอการทมในแนวแกน x กราฟลอการทมในแนวแกน yกราฟลอการทมทงในแนวแกน x และแกน y

กาหนดให a และ b เปนเลขจานวนจรง และ 0 ≤ θ ≤ 2π จงวาดกราฟของสมการตอไปนในระบบพกดเชงขว

( )θ2sin2r +=

( )2θsin3r =

2θr =

ผศ.ดร.ปยะ โควนททววฒน มหาวทยาลยราชภฏนครปฐม 52

การวาดกราฟสามมต

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

ใชขอมลทงหมดสามชดสาหรบเสนแกน x, เสนแกน y และเสนแกน z ทอยในพกดคารทเซยน x-y-zเวกเตอร x เปนตวกาหนดคาในเสนแกน x

เวกเตอร y เปนตวกาหนดคาในเสนแกน y

ตวแปรตาม z มคาเปลยนแปลงไปตามคา x และ y ดงนนคา zนจะมจานวนเทากบผลคณของจานวนขอมลในเวกเตอร x กบจานวนขอมลในเวกเตอร y

Page 27: การแกไขโจทย้ คณ์ตศาสตริ และฟ์ ...home.npru.ac.th/piya/webscilab/file/Piya_SCILAB_Day2.pdfผศ.ดร.ป ยะ โคว นท

ผศ.ดร.ปยะ โควนททววฒน มหาวทยาลยราชภฏนครปฐม 53

คาสงพนฐานสาหรบการวาดกราฟแบบสามมต

โดยทx และ y คอเปนเวกเตอรทมขนาดเทากน

z เปนตวแปรตามทข นกบคา x และ y มขนาดจานวนเทากบผลคณ ของจานวนขอมลในเวกเตอร x กบจานวนขอมลในเวกเตอร y

options มลกษณะการใชคอ

plot3d(x, y, z, [options])

options = [alpha, theta, leg, flag, ebox]

ผศ.ดร.ปยะ โควนททววฒน มหาวทยาลยราชภฏนครปฐม 54

alpha และ theta เปนคาจานวนจรงในการกาหนดมมองศาของจดทกาลงถกพจารณาในระบบพกดทรงกลม

alpha แสดงมมยก (Elevation angle) alpha > 0 ⇒ มมทยกขน

alpha < 0 ⇒ มมทยกลง

คาดฟอลตคอ alpha = 35

theta แสดงมมกวาด (Azimuth angle) theta > 0 ⇒ มมททวนเขมนาฬกา

theta < 0 ⇒ มมทตามเขมนาฬกา

คาดฟอลตคอ theta = 45

αθ

x

y

z

Page 28: การแกไขโจทย้ คณ์ตศาสตริ และฟ์ ...home.npru.ac.th/piya/webscilab/file/Piya_SCILAB_Day2.pdfผศ.ดร.ป ยะ โคว นท

ผศ.ดร.ปยะ โควนททววฒน มหาวทยาลยราชภฏนครปฐม 55

ตวอยาง: จงวาดกราฟของสมการ -->x = linspace(0, 1, 21); //ขนาด 1x21

-->y = linspace(0, 1, 21); //ขนาด 1x21

-->z = abs(0.5*cos(2*%pi*x)'*cos(2*%pi*y)); //ขนาด 21x21

-->plot3d(x, y, z);

linspace(a, b, c) ⇒ แบงระยะจากคา a ถงคา b ออกเปน c ชวง

( ) ( )y]2cos*x2cos*0.5z ππ=

ผศ.ดร.ปยะ โควนททววฒน มหาวทยาลยราชภฏนครปฐม 56

0.00

0.25

0.50

Z

0.00.1

0.20.3

0.40.5

0.60.7

0.80.9

1.0

X

0.00.1

0.20.3

0.40.5

0.60.7

0.80.9

1.0

Y

Page 29: การแกไขโจทย้ คณ์ตศาสตริ และฟ์ ...home.npru.ac.th/piya/webscilab/file/Piya_SCILAB_Day2.pdfผศ.ดร.ป ยะ โคว นท

ผศ.ดร.ปยะ โควนททววฒน มหาวทยาลยราชภฏนครปฐม 57

0.00

0.25

0.50

Z

0.00.1

0.20.3

0.40.5

0.60.7

0.80.9

1.0

X

0.00.1

0.20.3

0.40.5

0.60.7

0.80.9

1.0

Y

ถาเราตองการใหมการไลโทนสตามขนาดของคาในแกน z กสามารถทาไดโดยการใชคาสง plot3d1 ดงน -->clf;

-->plot3d1(x, y, z);

ผศ.ดร.ปยะ โควนททววฒน มหาวทยาลยราชภฏนครปฐม 58

ถาตองการทราบความสมพนธระหวางสกบขนาดของคาใน แกน z เรากสามารถทาไดโดยใชคาสง colorbar ซงมรปแบบการใชงานคอ

umin = คาตาสดของขนาดของคาในแกน z umax = คาสงสดของขนาดของคาในแกน z colminmax = [1 nb_colors] เปนเวกเตอรขนาด 1x2 โดยท

nb_colors คอจานวนสทจะใชในรปกราฟ

colorbar(umin, umax, [colminmax])

Page 30: การแกไขโจทย้ คณ์ตศาสตริ และฟ์ ...home.npru.ac.th/piya/webscilab/file/Piya_SCILAB_Day2.pdfผศ.ดร.ป ยะ โคว นท

ผศ.ดร.ปยะ โควนททววฒน มหาวทยาลยราชภฏนครปฐม 59

ตวอยาง:-->zmin = min(z);-->zmax = max(z);-->clf; -->colorbar(zmin, zmax, [1 30]);-->plot3d1(x, y, z);

ผศ.ดร.ปยะ โควนททววฒน มหาวทยาลยราชภฏนครปฐม 60

1.9e-033

0.13

0.25

0.38

0.5

0.00

0.25

0.50

Z

0.00.1

0.20.3

0.40.5

0.60.7

0.80.9

1.0

X

0.00.1

0.20.3

0.40.5

0.60.7

0.80.9

1.0

Y

Page 31: การแกไขโจทย้ คณ์ตศาสตริ และฟ์ ...home.npru.ac.th/piya/webscilab/file/Piya_SCILAB_Day2.pdfผศ.ดร.ป ยะ โคว นท

ผศ.ดร.ปยะ โควนททววฒน มหาวทยาลยราชภฏนครปฐม 61

การแกโจทยสมการการเคลอนท

สมการ การเคลอนทของวตถทมความเรงคงท

เมอ s = ระยะทาง(เมตร) a = ความเรง (เมตร/วนาท2)v = ความเรวปลาย(เมตร/วนาท) u = ความเรวตน(เมตร/วนาท)t = เวลา (วนาท)

2

22

212

atuts

asuvatuv

uts

+=

+=+=

=

ผศ.ดร.ปยะ โควนททววฒน มหาวทยาลยราชภฏนครปฐม 62

ตวอยางการแกโจทยสมการการเคลอนทคนขบรถคนหนงรอไฟเขยวอยทสแยก ทนททสญญาณไฟเปลยนเปนสเขยวเขา เยยบคนเรงเพอออกรถทนท ถาความเรงของรถเขามคาเทากบ 5 m/s2

ก) เขาใชเวลาเทาไรทเยยบคนเรงจนกระทงเขามความเรวเทากบ 25m/sข) เมอรถเขามความเรวเทากบ 25m/s รถเขาหางจากสแยกเปนระยะทางเทาไร

ขอ ก).-->t = [0:1:20];-->u= 0;-->a= 5;-->v =u+ a*t;-->t(find(v==25))-->plot(t,v)// กราฟแสดงความสมพนธระวางเวลากบความเรว

ขอ ข).-->s = u*t+0.5*a*t^2;-->s(find(t==5)) -->plot(t,s) //กราฟแสดงความสมพนธระหวาง

ระยะทางกบเวลา

Page 32: การแกไขโจทย้ คณ์ตศาสตริ และฟ์ ...home.npru.ac.th/piya/webscilab/file/Piya_SCILAB_Day2.pdfผศ.ดร.ป ยะ โคว นท

ผศ.ดร.ปยะ โควนททววฒน มหาวทยาลยราชภฏนครปฐม 63

การวาดกราฟของภาคตดกรวยสมการวงกลม

สมการวงร

สมการพาราโบลา

222 )()( rkxhy =−+−

)(4)( 2 kychx −±=− )(4)( 2 hxcky −±=−

1)()(

1)()(

2

2

2

2

2

2

2

2

=−+−

=−+−

aky

bhx

bky

ahx

ผศ.ดร.ปยะ โควนททววฒน มหาวทยาลยราชภฏนครปฐม 64

ตวอยางการวาดกราฟของวงกลมจากสมการ

ยายขางหาคา y จะได

-->x = [2:0.1:6];-->y1 = -sqrt(4-(x-4)^2)+3;-->y2 = sqrt(4-(x-4)^2)+3;-->plot(x, y1)-->plot(x, y2)

222 2)4()3( =−+− xy

3)4(4 2 +−−±= xy

Page 33: การแกไขโจทย้ คณ์ตศาสตริ และฟ์ ...home.npru.ac.th/piya/webscilab/file/Piya_SCILAB_Day2.pdfผศ.ดร.ป ยะ โคว นท

ผศ.ดร.ปยะ โควนททววฒน มหาวทยาลยราชภฏนครปฐม 65

ตวอยางการวาดกราฟวงรจากสมการ

ยายขางหาคา y จะได

-->x = [-3:0.1:5];-->y1 = -sqrt((1-(x-1)^2/16)*4)+4;-->y2 = sqrt((1-(x-1)^2/16)*4)+4;-->plot(x,y1)-->plot(x,y2)

14)4(

16)1( 22

=−+− yx

44).16)1(1(2

+−−±= xy

ผศ.ดร.ปยะ โควนททววฒน มหาวทยาลยราชภฏนครปฐม 66

การวาดกราฟบาราโบลาจากสมการ

ยายขางหาคา y จะได

-->x= [-15:0.1:23];-->y = ((x- 4)^2)/(-16)+5;-->plot(x,y)ขอควรระวง ถาสมการใดทมคาเปน บวกและลบ จะตองสราง

สมการ 2 สมการคอ สมการทเปนบวกบวกและลบ

)5(16)4( 2 −−=− yx

516)4( 2

+−−= xy

Page 34: การแกไขโจทย้ คณ์ตศาสตริ และฟ์ ...home.npru.ac.th/piya/webscilab/file/Piya_SCILAB_Day2.pdfผศ.ดร.ป ยะ โคว นท

ผศ.ดร.ปยะ โควนททววฒน มหาวทยาลยราชภฏนครปฐม 67

การประยกตของภาคตดกรวยตวอยาง จงหาจดตดของวงกลม (y-1)2+(x-2)2 = 4 และเสนตรง y = 3x-2

x = [0:0.01:4];y1 = -sqrt(4-(x-2)^2)+1; // สมการวงกลมy2 = sqrt (4-(x-2)^2)+1; // สมการวงกลมy3 = 2*x-2 ; // สมการเสนตรงplot(x,y1)plot(x,y2)plot(x,y3)find(abs(y1-y3)<0.01) // หาตาแหนงท y1 = y3find(abs(y2-y3)<0.01) // หาตาแหนงท y2 = y3x(find(abs(y1-y3)<0.01)) //คา x เมอ y1 = y3x(find(abs(y2-y3)<0.01)) //คา x เมอ y2 = y3y3(find(abs(y1-y3)<0.01)) //คาy3 เมอ y1 = y3y3(find(abs(y2-y3)<0.01)) //คา y3 เมอ y2 = y3

ผศ.ดร.ปยะ โควนททววฒน มหาวทยาลยราชภฏนครปฐม 68

ตวอยางการประยกตใชงานอนๆ

Page 35: การแกไขโจทย้ คณ์ตศาสตริ และฟ์ ...home.npru.ac.th/piya/webscilab/file/Piya_SCILAB_Day2.pdfผศ.ดร.ป ยะ โคว นท

ผศ.ดร.ปยะ โควนททววฒน มหาวทยาลยราชภฏนครปฐม 69

ตวอยางการประยกตใชงาน

เวกเตอรและเมทรกซ Logical เมอนามาคานวณทางคณตศาสตรกบคาสเกลาร เวกเตอรและเมทรกซเหลานสามารถแทนไดดวยเวกเตอรและเมทรกซของคาสเกลารทมอลเมนตเปนคา 0 กบคา 1 โดยทคา 0 จะใชแทนถอยคาทเปนเทจ

คา 1 จะใชแทนถอยคาทเปนจรง

ตวอยาง-->x = [1>2 1<3 2>=3 3<=3 2==3 1<>2];

-->2*x

-->2*[0 1 0 1 0 1]

ผศ.ดร.ปยะ โควนททววฒน มหาวทยาลยราชภฏนครปฐม 70

การใชงานเวกเตอรและเมท รกซ Logical สาหรบวาดกราฟ

การแกไขปญหาคาอนนต

การแกไขปญหาการหารดวยคาศนย

การสรางกราฟแบบไมตอเนอง

การตดขอมลบางสวนของกราฟ

Page 36: การแกไขโจทย้ คณ์ตศาสตริ และฟ์ ...home.npru.ac.th/piya/webscilab/file/Piya_SCILAB_Day2.pdfผศ.ดร.ป ยะ โคว นท

ผศ.ดร.ปยะ โควนททววฒน มหาวทยาลยราชภฏนครปฐม 71

การแกไขปญหาคาอนนต

ตวอยาง:

-->x = -3*%pi/2:%pi/100:3*%pi/2;

-->y = tan(x);

-->plot(x, y)

ผศ.ดร.ปยะ โควนททววฒน มหาวทยาลยราชภฏนครปฐม 72

วธแกไข

-->x = -3*%pi/2:%pi/100:3*%pi/2;

-->y = tan(x);

-->y = y .* (abs(y)<1e10);

-->plot(x, y)

Page 37: การแกไขโจทย้ คณ์ตศาสตริ และฟ์ ...home.npru.ac.th/piya/webscilab/file/Piya_SCILAB_Day2.pdfผศ.ดร.ป ยะ โคว นท

ผศ.ดร.ปยะ โควนททววฒน มหาวทยาลยราชภฏนครปฐม 73

การแกไขปญหาการหารดวยคาศนย

ตวอยาง: การวาดกราฟ y = sin(x)/x

-->x = -20:0.1:20;

-->y = sin(x)./x;

!--error 27

division by zero...

ผศ.ดร.ปยะ โควนททววฒน มหาวทยาลยราชภฏนครปฐม 74

วธแกไข

-->x = -15:0.1:15;

-->x = x + (x==0)*%eps;

-->y = sin(x)./x;

-->plot(x, y)

Page 38: การแกไขโจทย้ คณ์ตศาสตริ และฟ์ ...home.npru.ac.th/piya/webscilab/file/Piya_SCILAB_Day2.pdfผศ.ดร.ป ยะ โคว นท

ผศ.ดร.ปยะ โควนททววฒน มหาวทยาลยราชภฏนครปฐม 75

การสรางกราฟแบบไมตอเนอง

ตวอยาง: ตองการแสดงกราฟเฉพาะคาบวกของ y = sin(x)

ผศ.ดร.ปยะ โควนททววฒน มหาวทยาลยราชภฏนครปฐม 76

วธแกไข

-->x = [-15:0.1:15];

-->y = sin(x);

-->y = y.*(y>=0);

-->plot(x, y)

Page 39: การแกไขโจทย้ คณ์ตศาสตริ และฟ์ ...home.npru.ac.th/piya/webscilab/file/Piya_SCILAB_Day2.pdfผศ.ดร.ป ยะ โคว นท

ผศ.ดร.ปยะ โควนททววฒน มหาวทยาลยราชภฏนครปฐม 77

การตดขอมลบางสวนของกราฟ

ตวอยาง 1:

-->x = [-15:0.01:15];

-->y = sin(x);

-->y = y.*(abs(y)<=0.95);

-->plot(x, y)

ผศ.ดร.ปยะ โควนททววฒน มหาวทยาลยราชภฏนครปฐม 78

ตวอยาง 2:

-->x = [-15:0.01:15];

-->y = sin(x);

-->y = y.*(y<=-0.95 | y>=0.95);

-->plot(x, y)

Page 40: การแกไขโจทย้ คณ์ตศาสตริ และฟ์ ...home.npru.ac.th/piya/webscilab/file/Piya_SCILAB_Day2.pdfผศ.ดร.ป ยะ โคว นท

ผศ.ดร.ปยะ โควนททววฒน มหาวทยาลยราชภฏนครปฐม 79

THANK YOU