線性拟合:對于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