文档库 最新最全的文档下载
当前位置:文档库 › 多项式最小二乘法拟合Matlab小程序

多项式最小二乘法拟合Matlab小程序

function [a]=lspoly(X,Y,m);
%拟合多项式P(x)=a_0+a_1*x+a_2*x^2+...a_m+1*x^m;,X和Y分别为采样点和测量值的向量,m为拟合次数;
B=zeros(m+1,m+1);%定义系数阵,其维数为m+1
C=zeros(m+1,1);%右端系数项
N=length(X);
%---形成系数阵B------
for i=1:m+1
for j=1:m+1
%以下定义多项式系数
f_i=zeros(1,i);
f_i(1,1)=1;
f_j=zeros(1,j);
f_j(1,1)=1;
%以上定义多项式系数
f_B=conv(f_i,f_j);
val_f_B=polyval(f_B,X);
B(i,j)=sum(val_f_B);
val_f_i=polyval(f_i,X);
C(i,1)=dot(val_f_i',Y);

end
end
a=inv(B)*C;
a=flipud(a);
%经过该变换,所得到的的多项式系数从高到低排列,与matlab多项式系数对应

相关文档
相关文档 最新文档