Matlab的基本應用3

本小節主要分享利用matlab來編程繪圖,如繪製曲線、圓、點以及直線擬合等。


例1、進行最小二乘直線擬合

x=1:15;
y=3*x+6+rand(1,15)*5;
plot(x,y,'r*');
hold on
p=polyfit(x,y,1);
y1=polyval(p,x);
plot(x,y1,'color','b','linewidth',2)
xlabel('x');
ylabel('y');
legend('rand number','fitted line');

結果如下:


plot()函數爲繪圖函數,需要了解更詳細的,可以在matlab的command window 輸入doc plot 瞭解詳細使用方法。

hold on 是在繪圖過程中,保存之前所繪製的線或者點,在此基礎上繼續繪製,而不是重新展開一張畫幅。

polyfit這個函數完成了數據的最小二乘擬合,該函數可以完成任意階次的多項式擬合,其形式爲polyfit(x,y,n),上述例子爲一次擬合。

polyval這個函數爲多項式求值。

plot(x,y1,'color','b','linewidth',2)中,color後跟的‘b’代表顏色的選取,線寬爲2,可以修改。

xlabel('x')和ylabel('y')顯示x,y座標分別代表什麼,如上圖。

legend('rand number','fitted line')可以標出圖中點或線分別代表什麼,可以再圖中移動其位置。


例2、一個平面上的橢圓可以表示成下列方程式: (x/a)^2+(y/b)^2=1。我們也可以用參數將橢圓表示成:x=a*cos(sita)  y=b*sin(sita),請利用上述參數式,畫出一個橢圓,其中a=5,b=3,而且橢圓上共有100個點。

編寫一個小程序如下:

function plotellipse(a,b,n)

for sita=linspace(0,2*pi,n)

    x=a*cos(sita);

    y=b*sin(sita);

    plot(x,y,'r.-')

    hold on

end

end

因需要根據所輸入的a,b,n值繪圖,所以再編寫程序如下:

a=input('請輸入a=');

b=input('請輸入b=');

n=input('請輸入n=');

plotellipse(a,b,n);

運行主程序,並輸入a,b,n值,得到如下結果圖:


其實,在上述的小程序中,不用for循環完全可以的,大家可以省去。

linspace(0,2*pi,n)這個函數是線性輸出0到2*pi的n個點。

 plot(x,y,'r.-')函數爲繪圖函數,‘r.-’代表繪製紅色的.-圖。

a=input('請輸入a='),這裏input函數很有用,大家可以記憶一下,很多地方可能都會用到,簡單常用。


例3、一條參數式的曲線可由下列方程式表示:x=sin(-t)+t  y=1-cos(-t),當t由0變化到4*pi時,畫出此曲線在XY平面的軌跡。

編寫程序如下:

function quxian(t)

for t=0:0.01:4*pi

x=sin(-t)+t;

y=1-cos(-t);

plot(x,y);

hold on

axis([-1,14,-1,2.5]);

end

xlabel('x');

ylabel('y');

end

結果如下:


axis([-1,14,-1,2.5]),規定了圖中x,y軸的範圍。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章