龙格现象实验
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
关于龙格现象的实验报告
1.
实验目的:
观察拉格朗日插值的龙格(Runge)现象.。
2. 实验内容: 对于函数211)(x
x f +=进行拉格朗日插值,取不同的节点数n ,在区间[-5,5]上取等距间隔的节点为插值点,把f (x )和插值多项式的曲线画在同一张图上进行比较。
具体步骤如下:
1)、编写拉格朗日插值函数(并将其存到当前路径的M 文件中)
function y=lagrange(x0,y0,x)
n=length(x0);m=length(x);
for i=1:m
z=x(i);
L=0.0;
for j=1:n
T=1.0;
for k=1:n
if k~=j
T=T*(z-x0(k))/(x0(j)-x0(k));
end
end
L=T*y0(j)+L;
end
y(i)=L;
end
2)、取不同的n 值(注:当n 值不同时,间距间隔10/n 也在发生改变,程序中只需改变x0=-5:10/n:5中的n 值)。现取n 分别等于4,6,8,10时,程序分别如下
(1)取n =4,
>> x0=-5:10/4:5;
>> y0=1./(1+x0.^2);
>> x=-5:0.1:5;
>> y=lagrange(x0,y0,x);
>> y1=1./(1+x.^2);
>> plot(x,y1,'-k') 绘制原函数图象
>> hold on
>> plot(x,y,'-.r')
>>
(2)取n=6,
>> x0=-5:10/6:5;
>> y0=1./(1+x0.^2);
>> x=-5:0.1:5;
>> y=lagrange(x0,y0,x);
>> y1=1./(1+x.^2);
>> plot(x,y1,'-k')
>> hold on
>> plot(x,y,'--h')
>>
(3)取n=8,
>> x0=-5:10/8:5;
>> y0=1./(1+x0.^2);
>> x=-5:0.1:5;
>> y=lagrange(x0,y0,x);
>> y1=1./(1+x.^2);
>> plot(x,y1,'-k')
>> hold on
>> plot(x,y,'--g')
>>
(4)取n=10,
>> x0=-5:1:5;
>> y0=1./(1+x0.^2);
>> x=-5:0.1:5;
>> y=lagrange(x0,y0,x);
>> y1=1./(1+x.^2);
>> plot(x,y1,'-k')
>> hold on
>> plot(x,y,'--m')
>>
(5)依次输入上述程序,将f(x)和取不同节点数的插值多项式的曲线画在同一张图上进行比较。
3.实验结果:
(1)取n=4,
(2)取n=6,
(3)取n=8,
(4)取n=10,
(5)f(x)和取不同节点数的插值多项式的曲线在同一图形框内的比较
4.实验结论:
上述现象及结果告诉我们,在进行数值计算时,并不是插值多项式的次数越高(即插值节点越多),插值效果越好,精度也不一定随次数的提高而升高,这种现象称为Runge现象。
从数值计算上可解释为高次插值多项式的计算会带来舍入误差的增大,从而引起计算失真。因此,实际应用做插值时一般只用一次、二次最多用三次插值多项式。