天天看點

Matlab實作線性回歸(直線拟合)

    線性拟合:對于y=a*x+b的形式

    a=(N*ΣXi*Yi-ΣXi*ΣYi)/(N*ΣXi*Xi-(ΣXi)2)

    b=((ΣXi*Xi)*(ΣYi)-(ΣXi)*(ΣXi*Yi))/(N*ΣXi*Xi-(ΣXi)2)

    利用Matlab自帶函數可實作:

    拟合函數:pn=polyfit(x,y,n)  傳回pn系數向量,降階排列,n為階數

    函數:yy=polyval(pn,x) pn為降階排列的多項式系數,x為向量或者矩陣,傳回yy:将x帶入pn後計算得到的向量或者矩陣。

%初始資料
x=[1 2 3 4];
y=[1.1 2.2 2.7 3.8];
%獲得線性拟合系數
pn=polyfit(x,y,1);

yy=polyval(pn,x);
subplot(1,2,1);
plot(x,y);
subplot(1,2,2);
plot(x,yy);      

結果:pn=0.86,0.3

繼續閱讀