วันเสาร์ที่ 17 พฤศจิกายน พ.ศ. 2555


การplot กราฟ ที่ง่ายสุดในโลกกก 
----- ใน m-file -----


 fx = @(x) (x-1).^2;
 x = -5:0.2:6;
 y = fx(x);
 plot(x,y)  %คำสั่ง plot กราฟ
----- จบ -----

โปรแกรมมจะแสดงรูป

ต่อไปเป็นการ plot กราฟ 3D และการคอนทัวร์นะฮ้าฟฟ

----- ใน m-file -----

clear;
clc;
fx = @(x1,x2) (x1-3).^2 + (x2-4).^2;
x1 = 0:0.2:6;
x2 = 0:0.2:8;

[x1m,x2m] = meshgrid(x1,x2);
zf = fx(x1m,x2m);
mesh(x1,x2,zf)   % สั่ง plot กราฟ 3D
colorbar    %plot กราฟ หลายๆสี
figure
[cf,hf] = contour(x1,x2,zf,[2 3 4])
clabel(cf,hf)

----- จบ -----
โปรแกรมมจะแสดงรูป 2 รูป พร้อมกันน




การ plot หลายกราฟ ในรูปเดียวของ Matlab

------ ใน m-file ------

clear;
clc;

fx = @(x1,x2) (x1-2).^2 + (x2-2).^2;
x1 = 0:0.2:6;
x2 = 0:0.2:8;

[x1m,x2m] = meshgrid(x1,x2);
zf = fx(x1m,x2m);

figure  %ให้แสดงรูป
[cf,hf] = contour(x1,x2,zf,[2 3 4 5 6 7 8 9 10])
clabel(cf,hf)  % ให้ตั้งชื่อแกน x y

g1 = @(x1,x2)5 - x1 -x2;
zg1 = g1(x1m,x2m);
hold on  % ให้แสดงรูปของโค้ดก่อนหน้าค้างไว้
[cg1,hg1] = contour(x1,x2,zg1,[0 0],'--c')

g2 = @(x1,x2)-2.5 + x1 -x2;
zg2 = g2(x1m,x2m);
[cg2,hg2] = contour(x1,x2,zg2,[0 0],'--m')

----- จบ -----

เมื่อ RUN แล้วในหน้า command window  จะแสดง 

 Columns 28 through 36

    5.1000    5.2000    5.3000    5.4000    5.5000    5.6000    5.7000    5.8000    5.9000
    2.6000    2.7000    2.8000    2.9000    3.0000    3.1000    3.2000    3.3000    3.4000

  Column 37

    6.0000
    3.5000


hg2 =

  460.0011

ซึ่งเป็นค่าที่คำนวณจาก column ต่างๆ และจบที่ค่าสุดท้ายคือ ค่า hf
และจะมีกราฟแสดงขึ้นมา

โจทย์อีกข้อ

------ ใน m-file ------

clear;
clc;

fx = @(x1,x2) (x1-3).^2 + (x2-4).^2;
x1 = 0:0.2:6;
x2 = 0:0.2:8;

[x1m,x2m] = meshgrid(x1,x2);
zf = fx(x1m,x2m);

figure
[cf,hf] = contour(x1,x2,zf,[2 3 4 5 6 7 8 9 10])
clabel(cf,hf)

g1 = @(x1,x2)5 - x1 -x2;
zg1 = g1(x1m,x2m);
hold on
[cg1,hg1] = contour(x1,x2,zg1,[0 0],'--c')

g2 = @(x1,x2)-2.5 + x1 -x2;
zg2 = g2(x1m,x2m);
[cg2,hg2] = contour(x1,x2,zg2,[0 0],'--m')

----- จบ -----

เมื่อ RUN แล้วในหน้า command window  จะแสดง 
Columns 28 through 36

    5.1000    5.2000    5.3000    5.4000    5.5000    5.6000    5.7000    5.8000    5.9000
    2.6000    2.7000    2.8000    2.9000    3.0000    3.1000    3.2000    3.3000    3.4000

  Column 37

    6.0000
    3.5000


hg2 =

  243.0027
และแสดงกราฟ 

จบแบ้วววจ้าา าาา  ^^