i-1).^2).*x);af(i-1)=sump3/sump1;bf(i-2)=sump1/sump2;P(i,:)=x.*P(i-1,:)-af(i-1)*P(i-1,:)-bf(i-2)*P(i-2,:);endforj=1:n;fork=1:m;mf(j)=mf(j)+P(j,k)^2;mp(j)=mp(j)+P(j,k)*y(k);endend%正交多项式的系数计算A=zeros(n,n+2);A(:,3)=1;A(2,4)=af(1);A(:,1)=zeros();A(:,2)=zeros();fori=3:n;d=i-1;forj=4:(n+2);A(i,j)=A(i-1,j-1)-af(i-2)*A(i-1,j)-bf(i-2)*A(i-2,j-2);endend%最终系数计算AY=zeros(1,n);a=mp./mf;AX=zeros(n,n+2);forz=1:nAX(z,:)=a(z)*A(z,:);endforb=1:n;fort=1:b;AY(b)=AX(n-t+1,b+3-t)+AY(b);endendw=AY;由于使用的是课本上的正交多项式进行拟合,其系数的计算会带来巨大的误差,故最终的拟合多项式和原来的拟合数据发生了很大误差,这说明利用以上这一思路和实验设计来求解题目是不适合的。即:采用生成多项式的方法和思路去寻找最小二乘法拟合是不合理的。至于后面探索精度和拟合多项式类型之间关系的工作至此无法做起!由此本实验转换思路利用matlab强大的拟合功能来进行:所使用的代码如下:x=[0 510 15 20 25 30 35 40 45 50 55];y=[0 1.27 2.16 2.86 3.44 3.87 4.15 4.37 4.51 4.584.02 4.64];plot(x,y,'*');holdon