Matlab进行一般插值和三次样条插值比较对于一组给定的随机点(x,y),用lagrange插值加深对高次插值产生Runge现象的理解,并与三次样条插值比较,观察插值图形,了解三次样条插值的优越性。
先进行lagrange插值的程序编写,我们知道matlab软件中没有直接进行lagrange插值的函数,故先自己编写一个函数M文件,该M文件是lagrange插值的算法表示过程,编好后可以直接调用,编写如下:
我这里的函数名是lagrange3,可以自由定义,但在matlab命令窗口中调用函数时应和定义的函数名一致:
程序编好以后就出图了,lagrange插值的图形:
f(x)是数据的散点图,p(x)是lagrange插值图,可见高次的误差很大,就产生了runge 现象
再来三次样条插值,matlab直接定义了三次样条插值的函数名和出图函数,只需在命
令窗口直接编程:
再就是三次样条插值出图了;
最后把散点图,lagrange插值图和三次样条插值图生成在一个图像里,便于观察:
带*号得曲线在图中表示样条插值,在大坐标情况下几乎与散点图重合,至此,讨论结束,三次样条插值比lagrange插值更好。