做者:凱魯嘎吉 - 博客園
http://www.cnblogs.com/kailugaji/html
3、實驗程序函數
4、實驗內容post
設有以下數據:url
用3次多項式擬合這組數據.spa
5、解答(按以下順序提交電子版)3d
1.(程序)code
LSM1.m:orm
function p=LSM1(x,y,m) %x,y爲序列長度相等的數據向量,m爲擬合多項式次數 format short; A=zeros(m+1,m+1); for i=0:m for j=0:m A(i+1,j+1)=sum(x.^(i+j)); end b(i+1)=sum(x.^i.*y); end a=A\b'; p=fliplr(a');
2.(運算結果)htm
>> x=[-3,-2,-1,0,1,2,3]; >> y=[-1.76,0.42,1.2,1.34,1.43,2.25,4.38]; >> p=LSM1(x,y,3) p = 0.1133 -0.0018 0.0035 1.3300
3.(拓展(方法改進、體會等))blog
MATLAB中有關於最小二乘法的現成的函數,以下編寫程序:
ploy1.m:
function [p]=ploy1(x,y) P=polyfit(x,y,3); xi=-4:.2:4; p=polyfit(x,y,3); yi=polyval(P,xi); plot(xi,yi,x,y,'r*');
結果:
>> x=[-3,-2,-1,0,1,2,3]; y=[-1.76,0.42,1.2,1.34,1.43,2.25,4.38]; [p]=ploy1(x,y) p = 0.1133 -0.0018 0.0035 1.3300
則y=0.1133*x^3-0.0018*x^2+0.0035*x+1.33
注:非線性曲線擬合見:MATLAB實例:非線性曲線擬合