函数插值方法综述

引言

首先,插值是计算数学里面的一种函数逼近,只不过逼近的函数不是复杂连续函数,而是一组没有表达式的离散数值。

像计算数学里面的其他数值方法一样,插值看起来是一种非常简单的方法,但确实也是一种可行有效的方法。可行性来自于误差分析,即误差分析能够告诉你,用这个插值方法来逼近数值函数,精度能达到多少,如果精度在能够接受的范围内,那么这个插值方法就可以用来解决问题。

常用的函数插值方法有多项式插值,三角插值,分段插值,样条插值等,这些插值方法各有各的特点,适合全部掌握,因为在实际的应用过程中,如果没有全部掌握,遇到问题之后,你可能不知道采取那种插值方法比较好。

常用的插值方法

这些插值方法细节公式的推导我就不赘述了,这里只分享写下我个人对这些方法在应用方面的理解,如果有错误的地方,同时也希望大家及时指出,我们一起进步。

拉格朗日插值

按理来说,拉格朗日插值法可以很好地得到多项式插值函数,也就是下面这个公式。
在这里插入图片描述
其中
在这里插入图片描述
但是,拉格朗日插值多项式在实际应用中几乎不会被用到,主要有两个原因。第一个原因是随着插值结点的增减时,计算要全部重新进行,也就是上面的p_j(x)的公式会完全改变,又要重新计算,这样很不方便。第二个原因是直接用拉格朗日插值方法的话,得到的是高次插值多项式,高次插值多项式会出现龙格现象,什么是龙格现象,百度一下就知道了。

牛顿插值

给定了插值结点之后,多项式插值公式是唯一的,也就是说,拉格朗日方法得到的插值公式和牛顿方法得到的插值公式是一样的。那么问题就来了,既然最终得到的插值公式是一样的,我为什么要用牛顿插值而不用拉格朗日插值呢?这正是因为拉格朗日方法有第一个缺陷,也就是改变数值结点数量之后,计算会大变,为了克服这个缺点,所以才诞生了牛顿插值方法。牛顿插值方法的公式如下。
在这里插入图片描述
其中
在这里插入图片描述
从牛顿插值方法的公式可以看出,每当数值结点增加一个时,前面的项可以保持不变,只需在后面添加f[x0,…,xn]*(x-x0)…(x-xn)这一项即可,而f[x0,…,xn]的计算也只需要利用一下f[x1,…,xn]和f[x0,…,xn-1]的结果即可。所以牛顿方法相比于拉格朗日方法更加适合于大型计算。
但是在实际应用中,也不会有人直接利用牛顿插值多项式进行插值,因为直接利用牛顿插值多项式是高次插值,会有龙格现象,为了克服这个缺陷,就有了后面的分段低次插值。

分段低次插值

因为用高次多项式插值会出现龙格现象,会使插值效果很差,所以一般采用的是分段低次插值,比如分段三次插值就是每取三个点进行一下拉格朗日插值或者牛顿插值,得到的插值函数是一个首尾相接的分段三次函数。这样得到的插值函数不会偏离真实函数太多,但是也有一个缺陷就是,在分段点处不光滑,也就是不可导,更别说让插值函数的导数等于真实函数的导数。

埃尔米特插值

为了克服分段低次插值不光滑的缺点,所以诞生了埃尔米特插值。埃尔米特插值不仅要求插值点处的插值函数的函数值等于真实函数的函数值,而且要求插值点处的导数值也要等于真实函数的导数值,这就增加了插值函数的光滑性,让插值函数更好的贴合真实函数。埃尔米特插值方法没有固定的公式,但是求解起来也没有那么复杂,求解方法有一般的套路,如待定系数法。不要忘记,其实taylor展开式也是一种埃尔米特插值。

三次样条插值

三次样条插值既是低次插值,又具有二阶光滑性,因此,它是最最常用的一种插值方法。但是三次样条插值的求解方法相对复杂一些,实际计算时还需要引入边界条件才能完成计算。一般的计算方法书上都没有说明非扭结边界的定义,但数值计算软件如Matlab都把非扭结边界条件作为默认的边界条件。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章