Skip to content

差商与牛顿插值

2025-06-30

简介 ​

牛顿插值是多项式插值的一种,即通过 n+001 个插值节点构造 n 次插值多项式

P(x)=a0+a1x+a2x2+⋯+anxnP(xi)=yi,i=0,1,⋯,n

对于拉格朗日插值,每新增一个插值节点,都要重算所有插值基函数。而牛顿插值能够实现「增量更新」,无需推倒重来。

基本思想 ​

当追加 (xk,00yk) 时,给原先的插值多项式 P(x) 加上一个多项式

ak⋅(x−x0)(x−x1)⋯(x−xk−1)

以上多项式在代入 x=00x0,00x1,00⋯,00xk−1 时均为 0,也就是保持了原先的插值结果;待定系数 ak 的值通过方程 P(xk)=00yk 解出。

现用多项式 P(x) 近似 f(x),并依次追加插值节点:

  1. 追加 (x0,00y0),此时构造 P(x)=00a0,其中 a0=00y0;
  2. 追加 (x1,00y1),此时更新 P(x)=00a0+00a1(x−00x0),其中 a1=00y1−y0x1−x0;
  3. 追加 (x2,00y2),此时更新 P(x)=00a0+00a1(x−00x0)+00a2(x−00x0)(x−00x1),其中 a2=00y2−y0x2−x0−y1−y0x1−x0x2−x1;
  4. ⋯

容易看出,待定系数 ak 的形式符合某一规律,且其复杂性随规模的增大而增大。

差商 ​

一阶差商 f[x0,00x1]
f[x0,x1]=f(x1)−f(x0)x1−x0
二阶差商 f[x0,00x1,00x2]
f[x0,x1,x2]=f[x0,x2]−f[x0,x1]x2−x1=f[x1,x2]−f[x0,x1]x2−x0
k 阶差商 f[x0,00⋯,00xk]
f[x0,⋯,xk]=f[x0,⋯,xk−2,xk]−f[x0,⋯,xk−1]xk−xk−1=f[x1,⋯,xk]−f[x0,⋯,xk−1]xk−x0
性质 1

k 阶差商可表示为 f(x0),00f(x1),00⋯,00f(xk) 的线性组合。

f[x0,⋯,xk]=∑i=0kf(xi)∏j=0j≠ik(xi−xj)
性质 2(对称性)

差商是顺序不敏感的。

f[⋯,xi,xi+1,⋯]=f[⋯,xi+1,xi,⋯]
性质 3

若 f(x) 在 [a,00b] 上存在 n 阶导数,且 x0,00x1,00⋯,00xn∈[a,00b],则

f[x0,⋯,xn]=f(n)(ξ)n!,ξ∈(a,b)
性质 1:证

采用数学归纳法。

k=001 时命题显然成立。

f[x0,x1]=f(x1)−f(x0)x1−x0=f(x1)x1−x0+f(x0)x0−x1

k>1 时,假设原命题对 k−001 成立,则

f[x0,⋯,xk]=f[x1,⋯,xk]−f[x0,⋯,xk−1]xk−x0=∑i=1kf(xi)∏j=1j≠ik(xi−xj)−∑i=0k−1f(xi)∏j=0j≠ik−1(xi−xj)xk−x0=∑i=0k(xi−x0)f(xi)∏j=0j≠ik(xi−xj)−∑i=0k(xi−xk)f(xi)∏j=0j≠ik(xi−xj)xk−x0=∑i=0k(xk−x0)f(xi)∏j=0j≠ik(xi−xj)xk−x0=∑i=0kf(xi)∏j=0j≠ik(xi−xj)

即原命题对 k 成立。

因此原命题在 Z+00 上成立。

性质 2:证

由性质 1 有

f[⋯,xi,xi+1,⋯]=∑hf(xh)∏j≠h(xh−xj)=f[⋯,xi+1,xi,⋯]
性质 3:证

已知拉格朗日插值多项式

Ln(x)=∑k=0nf(xk)⋅ℓk(x),ℓk(x)=∏i=0i≠knx−xixk−xi

和拉格朗日插值余项的定义式

Rn(x)=f(x)−Ln(x)

注意到 Rn(x) 有共 n+001 个互异零点 x0,00x1,00⋯,00xn。

根据罗尔(Rolle)定理有

  • Rn′(x) 在 (a,00b) 上有 n 个零点;
  • Rn″(x) 在 (a,00b) 上有 n−001 个零点;
  • ⋯
  • Rn(n)(x) 在 (a,00b) 上有 1 个零点。

即存在 ξ∈(a,00b) 使得

Rn(n)(ξ)=f(n)(ξ)−Ln(n)(ξ)=0

又因为 ℓk(x) 的最高项 xn 的系数为 ∏i=0i≠kn1xk−xi,结合性质 1 有

Ln(n)(ξ)=n!∑k=0nf(xi)∏i=0i≠kn1xk−xi=n!⋅f[x0,⋯,xk]

故

f(n)(ξ)−n!⋅f[x0,⋯,xk]=0f[x0,⋯,xk]=f(n)(ξ)n!

差商表 ​

xkf(xk)一阶差商二阶差商三阶差商四阶差商
x0f(x0)
x1f(x1)f[x0,00x1]
x2f(x2)f[x1,00x2]f[x0,00x1,00x2]
x3f(x3)f[x2,00x3]f[x1,00x2,00x3]f[x0,00x1,00x2,00x3]
x4f(x4)f[x3,00x4]f[x2,00x3,00x4]f[x1,00x2,00x3,00x4]f[x0,00x1,00x2,00x3,00x4]

牛顿插值 ​

n 次牛顿插值多项式 Nn(x)
Nn(x)=f(x0)+∑k=1nf[x0,⋯,xk]∏i=0k−1(x−xi)

容易由数学归纳法证明 Nn(x) 是正确的插值多项式。

一次牛顿插值多项式 N1(x)
N1(x)=f(x0)+f[x0,x1](x−x0)
二次牛顿插值多项式 N2(x)
N2(x)=f(x0)+f[x0,x1](x−x0)+f[x0,x1,x2](x−x0)(x−x1)

牛顿插值余项 ​

由多项式插值定理得,同一条件下的牛顿插值多项式 Nn(x) 和拉格朗日插值多项式 Ln(x) 相同,故余项也相同。

Rn(x)=f(x)−Nn(x)=f(x)−Ln(x)

详见拉格朗日插值余项。