文档详情

数值分析插值..doc

发布:2017-01-10约3.53千字共14页下载文档
文本预览下载声明
实验题(一) 插值问题 在这个实验中我们通过使用MATLAB软件,用Lagrange插值公式确定函数值,对函数f(x)进行Lagrange插值并且比较f(x)与插值多项式的曲线,从而对插值的Runge现象进行讨论。 实验步骤及相关的图形如下: 一.定义Lagrange插值函数,将其保存在Lagrange.m文件中,具体实现程序编程如下: function y=Lagrange(x0,y0,x) n=length(x0);m=length(x); for i=1:m z=x(i); s=0.0; for k=1:n p=1.0; for j=1:n if j~=k p=p.*(z-x0(j))/(x0(k)-x0(j)); end end s=s+p*y0(k); end y(i)=s; end 二.建立测试程序,保存在text.m文件中,实现画图. 1.n=2时的程序: t=-5:0.1:5; ft=1./(1+t.*t); t1=-5:5:5; ft1=1./(1+t1.*t1); y1=Lagrange(t1,ft1,t); plot(t,ft,b:,t,y1,r) 图形为: 2. n=4时的程序为: t=-5:0.1:5; ft=1./(1+t.*t); t1=-5:2.5:5; ft1=1./(1+t1.*t1); y1=Lagrange(t1,ft1,t); plot(t,ft,m:,t,y1,r) 图形为: 3. n=6时的程序为: t=-5:0.1:5; ft=1./(1+t.*t); t1=-5:10/6:5; ft1=1./(1+t1.*t1); y1=Lagrange(t1,ft1,t); plot(t,ft,c:,t,y1,m) 图形为: 4. n=8时的程序为: t=-5:0.1:5; ft=1./(1+t.*t); t1=-5:10/8:5; ft1=1./(1+t1.*t1); y1=Lagrange(t1,ft1,t); plot(t,ft,c.,t,y1,r.) 图形为: 5. n=10时的程序为: t=-5:0.1:5; ft=1./(1+t.*t); t1=-5:10/10:5; ft1=1./(1+t1.*t1); y1=Lagrange(t1,ft1,t); plot(t,ft,r:,t,y1,g+) 图形为: 6. n=12时的程序为: t=-5:0.1:5; ft=1./(1+t.*t); t1=-5:10/12:5; ft1=1./(1+t1.*t1); y1=Lagrange(t1,ft1,t); plot(t,ft,b:,t,y1,g) 图形为: 7. n=14时的程序为: t=-5:0.1:5; ft=1./(1+t.*t); t1=-5:10/14:5; ft1=1./(1+t1.*t1); y1=Lagrange(t1,ft1,t); plot(t,ft,c:,t,y1,r) 图形为: 8. n=16时的程序为: t=-5:0.1:5; ft=1./(1+t.*t); t1=-5:10/16:5; ft1=1./(1+t1.*t1); y1=Lagrange(t1,ft1,t); plot(t,ft,r:,t,y1,m) 图形为: 9. n=18时的程序为: t=-5:0.1:5; ft=1./(1+t.*t); t1=-5:10/18:5; ft1=1./(1+t1.*t1); y1=Lagrange(t1,ft1,t); plot(t,ft,m.,t,y1,g) 图形为: 10. n=20时的程序为: t=-5:0.1:5; ft=1./(1+t.*t); t1=-5:10/20:5; ft1=1./(1+t1.*t1); y1=Lagrange(t1,ft1,t); plot(t,ft,b:,t,y1,g+) plot(t,ft,m.,t,y1,g) 图形为: 三、分析讨论: 由以上图形可以看出,随着n的增大, Lagrange多项式在区间中间对被插值函数的逼近精度越好,但在其它地方对f(x)的逼近却很差。这是因为,当节点无限加密时,在两端的波动越来越大,当然更不能保证在n趋近于无穷大时,一致的接近于,这种现象叫Runge现象。当根据区间[a,b]上给出的节点构造插值多项式近似时,不是人们所认为的的次数n越高逼近的精度越好!正是这个原因,在用多项式插值时不宜选取高次多
显示全部
相似文档