Skip to content

19.6.1 多项式插值 ​

插值的基本问题是通过一系列点 (xv,yv)(v=0,1,⋯,n) 来拟合曲线. 它可以通过曲线拟合小段图示,或通过在所谓插值点 xv 取 yv 值的函数 g(x) 数值化,即 g(x) 满足插值条件

(19.159)g(xν)=yν(ν=0,1,2,⋯,n).

插值函数最早用多项式, 对周期函数或用所谓三角多项式. 后一种情况为三角插值 (参见第 1287 页 19.6.4.1,2.). 有 n+1 个插值点,插值阶为 n ,则插值多项式的最高阶至多为 n . 因为随着次数增加,多项式可能产生强烈的振荡,故通常不需要高阶插值. 插值区间能划分为子区间进行样条插值 (参见第 1293 页 19.7).

19.6.1.1 牛顿插值公式 ​

为解插值问题 (19.159),考虑如下形式的 n 次多项式

g(x)=pn(x)=a0+a1(x−x0)+a2(x−x0)(x−x1)+⋯(19.160)+an(x−x0)(x−x1)⋯(x−xn−1).

这称为牛顿插值公式, 因为插值条件 (19.159) 导致三角矩阵的线性方程组, 故容易计算系数 ai(i=0,1,⋯,n) .

◼ 对于 n=2 ,由 (19.159) 得到附加的方程组. 插值多项式 pn(x) 由插值条件 (19.159) 唯一确定.

p2(x0)=a0=y0,p2(x1)=a0+a1(x1−x0)=y1,p2(x2)=a0+a1(x1−x0)+a2(x1−x0)(x2−x1)=y2.

函数值的计算可以由霍纳格式 (参见第 1237 页 19.1.2.1) 简化.

19.6.1.2 拉格朗日插值公式 ​

n 次多项式可以用 n+1 个点 (xv,yv)(v=0,1,⋯,n) 的拉格朗日公式来拟合:

(19.161)g(x)=pn(x)=∑μ=0n⁡yμLμ(x).

这里 Lμ(xv)(v=0,1,⋯,n) 为拉格朗日插值多项式. 方程 (19.161) 满足插值条件 (19.159), 因为

(19.162)Lμ(xv)=δμv={1,μ=ν,0,μ≠ν,

其中 δμν 为克罗内克 (Kronecker) 记号. 拉格朗日插值多项式定义为

Lμ=(x−x0)(x−x1)⋯(x−xμ−1)(x−xμ+1)⋯(x−xn)(xμ−x0)(xμ−x1)⋯(xμ−xμ−1)(xμ−xμ+1)⋯(xμ−xn)(19.163)=∏ν=0ν≠μn⁡x−xνxμ−xν
  • 由下表中给出的点来拟合多项式.

01937d01-b6f6-7881-8294-3a9c82211946_44_693_1132_254_133_0.jpg

利用拉格朗日插值多项式 (19.161):

L0(x)=(x−1)(x−3)(0−1)(0−3)=13(x−1)(x−3),L1(x)=(x−0)(x−3)(1−0)(1−3)=−12x(x−3),L2(x)=(x−0)(x−1)(3−0)(3−1)=16x(x−1);p2(x)=1⋅L0(x)+3⋅L1(x)+2⋅L2(x)=−56x2+176x+1.

拉格朗日插值多项式显式且线性依赖于函数值 yμ . 这在理论上是重要的 (例如参见第 1262 页 19.4.1.3,3. 亚当斯-巴什福斯法则). 但在实际计算中, 拉格朗日插值公式并不常用.

19.6.1.3 艾特肯-内维尔插值 ​

在许多实际情况中,我们并不需要多项式 pn(x) 的显形式,只需要插值区域内给定点 x 处的值就可以. 这些函数值可以由艾特肯 (Aitken) 和内维尔 (Neville) 发展的递推方法得到. 记号

(19.164)pn(x)=p0,1,⋯,n(x)

表示以 x0,x1,⋯,xn 为插值点的 n 次多项式. 注意到

(19.165)p0,1,⋯,n(x)=(x−x0)p1,2,⋯,n(x)−(x−xn)p0,1,2,⋯,n−1(x)xn−x0,

即函数值 p0,1,⋯,n(x) 可由两个次数低于 n−1 的多项式 p1,2,⋯,n(x) 和 p0,1,⋯,n−1(x) 的线性组合得到. 应用 (19.165),对于 n=4 的情况有

(19.166)x0∣y0=p0x1∣y1=p1p01x2∣y2=p2p12p012x3∣y3=p3p23p123p0123x4∣y4=p4p34p234p11234p01234p01234=p4(x).

逐列计算 (19.166) 的元素. 格式中的新值由其左边及左上的数值得到.

(19.167a)p23=(x−x2)p3−(x−x3)p2x3−x2=p3+x−x3x3−x2(p3−p2),(19.167b)p123=(x−x1)p23−(x−x3)p12x3−x1=p23+x−x3x3−x1(p23−p12),(19.167c)p1234=(x−x1)p234−(x−x4)p123x4−x1=p234+x−x4x4−x1(p234−p123).

为在计算机上实施艾特肯-内维尔 (Aitken-Neville) 算法,只需引进有 n+1 个分量的向量 p― (见 [19.7]),根据规则依次取 (19.166) 中的列值,第 k 列的值 pi−k,i−k+1,⋯,i (i=k,k+1,⋯,n) 正是 p― 的第 i 个分量 pi . 由于必须向下计算 (19.166) 的列, 故 p― 包含所有必要的数值. 算法有如下两步:

(1) 对 i=0,1,⋯,n ,设 pi=yi .(19.168a)

(2) 对 k=1,2,⋯,n 及 i=n,n−1,⋯,k ,计算 pi=pi+x−xixi−xi−k(pi−pi−1) .(19.168b)

在结束 (19.168b) 的计算后,我们得到元素 pn 在点 x 处要求的函数值 pn(x) .

version 1.24.0