在17、18世纪,由于天文、航海的发展,数学一个很重要的问题就是插值。
什么叫插值? 插值是数学领域数值分析中的通过已知的离散数据求未知数据的过程或方法。
听起来很抽象?没关系,我们来看下具体的问题。
比如天文学家开普勒观察火星运行之后记录(下列数字纯属虚构):
要想知道周三的数据,我们先把这个数据变得数学一些:
求
这个题怎么做?
根据常识,火星一定是连续运动的,会形成一个运动轨迹。而我们现在已知的4个点,必定在这个运动轨迹上。
所以根据这4个点,我们随便猜测一个运动轨迹:
轨迹求出来之后,那么我们要求求
同时穿过这4个点的曲线有无数多条,所以我们也有很多的插值方法。
这是最简单的插值:
这种近似太粗糙,我压根不需要
何况老司机开普勒也知道,火星不可能像撞球一样折线运动,所以这种插值方法pass。
很早数学家就知道多项式可以形成各种曲线了,所以用多项式来插值也是很自然的想法。
我们现在有4个已知数
这样求出的三次多项式(如果有唯一解的话)一定同时经过已知的四个点。
不过线性方程组在实际应用中,直接进行求解有两个重大的问题:
为了解决这两个问题、尤其是后一个问题,我们有了牛顿插值法。
牛顿插值法全名是格雷戈里-牛顿公式,格雷戈里和牛顿分别给出了这个插值公式,主要牛顿太耀眼了,所以格雷戈里都被大家忘了。
有关牛顿插值法的内容发表在大名鼎鼎的《自然哲学的数学原理》的第三卷的引理五:
这里叫做牛顿插值法的几何意义不太贴切,因为若干点决定的多项式往往是唯一的(这个就是在线性代数里面的问题了),所以从几何上你看不出背后是用的牛顿插值法还是直接解线性方程组。
下面我是画的图像背后的算法是牛顿插值法,仅供大家直观感受下插值法的效果:
随着已知的点越多,可能我们拟合出来的曲线越精确,可以自己动手试试:
牛顿插值法的特点在于:每增加一个点,不会导致之前的重新计算,只需要算和新增点有关的就可以了。
为了表示这是一个数学问题,下面是牛顿插值法的精华:推导过程,前方高能,非战斗人员请退避!
假设已知
为了避免大家在后面的阅读中迷失,我先把思路列出来一下(其实不复杂,主要是符号看着眼晕):
观察
先从求满足两个点
假设
令
现在我们增加一个点,
假设
令
一阶均差:
二阶均差是一阶均差的均差:
三阶均差就是二阶均差的均差,以此类推,我们得到牛顿插值法为:
计算通过下面这个示意图进行,就会很简单:
新增一个点,只需要计算相关的差分就可以了:
泰勒把牛顿插值法做了一些改造。
首先,设
进一步令:
做了这些假设之后我们来看看之前提到的
而
同样的
泰勒断言,当
以此类推泰勒就得到了大名鼎鼎的泰勒公式:
关于泰勒公式可以看看我的这个回答,如何通俗的解释泰勒公式?,大家可以发现牛顿插值公式的动画和泰勒公式的动画确实有相似之处。