注:以下来自《C++数值算法一书》,仅对章节内容做摘要,为的是给自己扫盲,不涉及算法。

 

画一条通过xi的平滑曲线,对任意的x估算f(x)的值。如果所求的x处于xi的最大值与最小值之间,则称之为内插法,如果x超出此范围则称为外推法。内插法与函数逼近有关,但逼近的任务是用一个近似且简单的函数取代原来较复杂的函数,内插法是要在不由自己选择的点上给出函数f的值。

 

1. 多项式内插法和外推法

通过N个点的N-1维内插多项式,可用拉格朗日经典公式明确地表示出来。但这种方法没有给出误差估计并且不适合编程,一个比较好的方法是Newille算法。

 

2. 有理函数内插法和外推法

有些函数用多项式近似效果不好,但用有理函数,即多项式的商来估计效果却很好。它们能够模拟具有极点的函数,即使函数分母为0的点。对于有理函数,有一种Neville型的算法,叫Bulirsch-Stoer算法。

 

3. 三次样条插值

三次样条插值的目的是得到一个内插公式,不论在区间内亦或其边界上,其一阶导数平滑,二阶导数连续。原始函数在相邻点的区间内,是线性插值的,即这是一个分段线性函数。加上了上面的约束(边界上二阶导数连续)后,生成的新的插值函数Java内插法算年化利率 内插法 利率_插值

 

4. 插值多项式的系数

有时想要知道的并非是经过少数几个点的插值多项式的函数值,而是该多项式的系数。则用插值法并不是一个好的方法。

 

5. 二维或高维插值

对网格的插值之类的,最简单的方法是双线性插值,其他方法有双三次插值、双三次样条等,这两种都是通过更高的阶获得高平滑度的方法。