数值分析插值..doc
文本预览下载声明
实验题(一) 插值问题
在这个实验中我们通过使用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越高逼近的精度越好!正是这个原因,在用多项式插值时不宜选取高次多
显示全部