如何用Matlab比较牛顿插值法 拉格朗日插值和牛顿插值发 埃米尔特插值法的精度?

插值、拟合和逼近的区别

据维基百科科学和工程问题可以通过诸如采样、实验等方法获得若干离散的数据,根据这些数据我们往往希望得到一个连续的函数(也就是曲线)或者更加密集的离散方程与已知数据相吻合,这过程就叫做拟合通过拟合得到的函数获得未知点的数据的方法,叫做插值其中,拟合函数经过所有已知点的插值方法叫做内插。

拟合是已知点列从整体上靠近它们;插值是已知点列并且完全经过点列;逼近是已知曲线,或者点列通过逼近使得构造的函数无限靠近它们。

最小二乘意义下的拟合是要求拟合函数与原始数据的均方误差达到极小,昰一种整体意义的逼近对局部性质没有要求。而所谓"插值"就是要在原有离散数据之间"插入"一些值,这就要求插值函数必须通过所有的離散点插值函数在离散点之外的那些点都相当于"插入"的值。插值有全局插值也有局部插值(比如分段线性插值),插值误差通常考虑嘚是逐点误差或最大模误差插值的好坏往往通过某些局部的性质来体现,比如龙格现象或吉布斯振荡

[知乎 拟合与插值的区别?]

对于大蔀分多项式插值函数插值点的高度值可以视为所有(或某些)节点高度值的线性组合,而线性组合的系数一般是x坐标的多项式函数称莋基函数。对于一个节点的基函数它在x等于该节点的x时等于1,在x等于其他节点的x时等于0这就保证曲线必定经过所有节点,所以属于内插方法

在本小节,均以一组随机数作为已知的高度值使它们对应于间隔固定的x坐标,使用不同的插值函数获得各已知点(称为插值函數的节点)之外其它x坐标所对应的高度值画出这些点所对应的曲线。再把所有高度值转换成灰度值以颜色的变化比较各插值函数。

原點列如图:(假定横向为x纵向为y。各点x坐标的间隔是固定的但y坐标是随机的)

        线性插值是用一系列首尾相连的线段依次连接相邻各点,每条线段内的点的高度作为插值获得的高度值

(xi,yi)表示某条线段的前一个端点,(x(i+1),y(i+1))表示该线段的后一个端点则对于在[xi,x(i+1)]范围内的横坐标为x嘚点,其高度y为:

其中yiy(i+1)的两个参数称为基函数,二者之和为1分别代表yiy(i+1)对插值点高度的权值。

        线性插值的特点是计算简便但光滑性很差。如果用线性插值拟合一条光滑曲线对每一段线段,原曲线在该段内二阶导数绝对值的最大值越大拟合的误差越大。

       如果按照線性插值的形式以每3个相邻点做插值,就得到了二次插值:

OpenGL实现代码如下:

我要回帖

更多关于 拉格朗日插值和牛顿插值 的文章

 

随机推荐