1901年,Carl Runge发表了他关于高次多项式插值风险的研究结果,给出一个简单的函数:<wbr style="line-height:25px; font-family:Arial,Helvetica,simsun,u5b8bu4f53"></wbr>
该函数现在被称为龙格函数,该函数有这么一个性质,就是你使用多项式插值来逼近,居然在次数越大的时候误差越大,这和一般的“次数越多越好”的常识有冲突了。下面是演示插值的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');
运行效果如下:
图中红色的才是真正的函数图形。一般吧这种次数越高而插值结果越偏离原函数的现象称为龙格现象。所以在不熟悉曲线运动趋势的前提下,不要轻易使用高次插值。