牛顿插值法的C语言实现
牛顿插值法的C语言实现
摘要:拉格朗日插值法具有明显的对称性,公式中的每一项与所有的插值节点有关。因此,如果需要增加一个插值节点,则拉格朗日插值公式中的每一项都要改变,在有的应用中就显得不太方便。因此,可以利用另外一种差值方法来弥补这种缺陷,就牛顿插值法。本文通过对牛顿插值法的数学分析,主要给出其C语言实现方法。
关键字:差商 差分 C语言算法
1差商及其牛顿插值公式
1.1 差商及其主要性质
定义 若已知函数在点处的函数值。则称:
为函数在点的阶差商;
为函数过点的阶差商;
为函数过点的阶差商;
以此类推,一般地称
为函数过点的阶差商。
性质1 阶差商表示为函数值的线性组合。即
性质2 若函数在包含节点的区间上存在阶导数,则阶差商与导数的关系为
1.2 牛顿插值公式
通过个互异点上的次数不超过的插值多项式可以表示如下形式:
这种形式的插值多项式称为牛顿插值多项式,一般记为
由牛顿插值多项式可以看出,当增加一个插值点时,当前已有的各项不变,只需要在后面增加一项即可。并且,在牛顿插值公式中,每一项的系数就是各阶差商,比拉格朗日插值公式计算量小,且便于程序设计。
根据差商性质2,即
就可以将拉格朗日插值公式的余项转化成牛顿插值公式的余项,即
牛顿插值公式余项更具有一般性,它对于列表函数或者导数不存在的情形都适用。
2 差分与等距结点插值