天天看點

線性最小二乘法拟合 matlab程式,曲線拟合的線性最小二乘法及其MATLAB程式

1 曲線拟合的線性最小二乘法及其MATLAB 程式

例7.2.1 給出一組資料點),(i i y x 列入表7–2中,試用線性最小二乘法求拟合曲線,并用(7.2),(7.3)和(7.4)式估計其誤差,作出拟合曲線.

表7–2 例7.2.1的一組資料),(y x

線性最小二乘法拟合 matlab程式,曲線拟合的線性最小二乘法及其MATLAB程式

解 (1)在MATLAB 工作視窗輸入程式

>> x=[-2.5 -1.7 -1.1 -0.8 0 0.1 1.5 2.7 3.6];

y=[-192.9 -85.50 -36.15 -26.52 -9.10 -8.43 -13.12 6.50 68.04];

plot(x,y,'r*'),

legend('實驗資料(xi,yi)')

xlabel('x'), ylabel('y'),

title('例7.2.1的資料點(xi,yi)的散點圖')

運作後螢幕顯示資料的散點圖(略).

(3)編寫下列MATLAB 程式計算)(x f 在),(i i y x 處的函數值,即輸入程式

>> syms a1 a2 a3 a4

x=[-2.5 -1.7 -1.1 -0.8 0 0.1 1.5 2.7 3.6];

fi=a1.*x.^3+ a2.*x.^2+ a3.*x+ a4

運作後螢幕顯示關于a 1,a 2, a 3和a 4的線性方程組

fi =[ -125/8*a1+25/4*a2-5/2*a3+a4,

-4913/1000*a1+289/100*a2-17/10*a3+a4,

-1331/1000*a1+121/100*a2-11/10*a3+a4,

-64/125*a1+16/25*a2-4/5*a3+a4,

a4, 1/1000*a1+1/100*a2+1/10*a3+a4,

27/8*a1+9/4*a2+3/2*a3+a4, 19683/1000*a1+729/100*a2+27/10*a3+a4, 5832/125*a1+324/25*a2+18/5*a3+a4]

編寫構造誤差平方和的MATLAB 程式

>> y=[-192.9 -85.50 -36.15 -26.52 -9.10 -8.43 -13.12 6.50 68.04];

fi=[-125/8*a1+25/4*a2-5/2*a3+a4,

-4913/1000*a1+289/100*a2-17/10*a3+a4,

-1331/1000*a1+121/100*a2-11/10*a3+a4,

-64/125*a1+16/25*a2-4/5*a3+a4, a4, 1/1000*a1+1/100*a2+1/10*a3+a4,

27/8*a1+9/4*a2+3/2*a3+a4,

19683/1000*a1+729/100*a2+27/10*a3+a4,

5832/125*a1+324/25*a2+18/5*a3+a4];

fy=fi-y; fy2=fy.^2; J=sum(fy.^2)

運作後螢幕顯示誤差平方和如下

J=

(-125/8*a1+25/4*a2-5/2*a3+a4+1929/10)^2+(-4913/1000*a1+2

89/100*a2-17/10*a3+a4+171/2)^2+(-1331/1000*a1+121/100*a2-11/10*a3+a4+723/20)^2+(-64/125*a1+16/25*a2-4/5*a3+a4+663/25)^2+(a4+91/10)^2+(1/1000*a1+1/100*a2+1/10*a3+a4+843/100)^2+(27/8*a1+9/4*a 2+3/2*a3+a4+328/25)^2+(19683/1000*a1+729/100*a2+27/10*a3+a4-13/

2)^2+(5832/125*a1+324/25*a2+18/5*a3+a4-1701/25)^2

為求4321,,,a a a a 使J 達到最小,隻需利用極值的必要條件0=??k

a J )4,3,2,1(=k ,