最小二乘多项式的数值不稳定现象

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

实验目的:观察最小二乘多项式的数值不稳定现象
实验内容:在[1,1]-区间取20n =个等距节点,计算出以相应节点上x e 的值作为数据样本,以1,,,l x x 为基函数,作出3,5,7,9,11,13,15l =次的最小二乘多项式,画出2ln(())~Cond A l 之间的曲线。

其中,A 是确定最小二乘多项式系数的矩阵。

计算出不同多项式的最小偏差21()(())i i n i l y x y δ==
-∑ 实验结果:
设拟合多项式为2012()l l l S x a a x a x a x =++++
对于不同的l 值,求得对应的多项式系数01[,,,]l a a a 及偏差()l δ列入表中
表1 次最小二乘多项式系数及偏差
1.00004 1.00002 0.499247 0.166497 0.0437538 0.00868189 1 1 0.500006 0.166668 0.0416364 0.00832885 0.00143851 0.000204569
2468
1012141605
10
15
20
25
30
l l n (C o n d (A )2)
图1 2ln(())~Cond A l 关系曲线
从图中可以看出,随着拟合多项式的次数增大,A 的条件数迅速增大,确定最小二乘多项式系数的方程组的病态程度也随之增加。

这也在偏差中反映出来,刚开始时次数增大使得偏差减小,而当次数达到13及以上时,偏差反而增大。

[Matlab 程序]
x =-1:2/19:1;
y =exp (x );
acond =zeros (1,7);
delta =zeros (1,7);
fp =fopen ('c.txt','w');
for l =3:2:15
A =zeros (l +1);
B =zeros (l +1,1);
for i =1:l +1
for j =i :l +1
A (i ,j )=x .^(i -1)*(x .^(j -1))';
A (j ,i )=A (i ,j );
end
B (i ,1)=x .^(i -1)*y ';
end
c =(A \B )';
yf =0;
for i=1:l+1
yf=yf+c(i)*x.^(i-1);
end
delta((l-1)/2)=sum((yf-y).^2);
fprintf(fp,'%d:\n',l);
fprintf(fp,'%g ',c);
fprintf(fp,'\n');
acond((l-1)/2)=cond(A);
end
l=3:2:15;
plot(l,log(acond));
xlabel('l');
ylabel('ln(Cond(A)_2)');
fclose(fp);。

相关文档
最新文档