龙格现象的程序演示

如题所述

第1个回答  2016-05-24

Matlab 程序演示 (一) 代码 >> f=inline('1/6-y/30','t','y');
[t,y]=ode45(f,[0,5],[0]);
plot(t,y)
>> hold on
plot(t,5-5*exp(-t/30),'r*') 下面是MATLAB中演示插值的M文件:
%演示龙格函数的插值情况
for i=3:2:11
x=linspace(-1,1,i);
y=1./(1+25*x.^2);
p=polyfit(x,y,i-1);
xx=-1:0.01:1;
yy=polyval(p,xx);
plot(xx,yy,'b');
hold on;
grid on;
end;
plot(x,1./(1+25*x.^2),'r');
运行效果如右图
图中红色的才是真正的函数图形。一般把这种次数越高而插值结果越偏离原函数的现象称为龙格现象。所以在不熟悉曲线运动趋势的前提下,不要轻易使用高次插值。