多项式插值:Lagrange 与 Newton 公式
插值问题的核心在于:给定 n+1 个互异节点 x0,x1,…,xn 及其对应的函数值 y0,y1,…,yn,寻找一个次数不超过 n 的多项式 Pn(x),使得:
Pn(xi)=yi,i=0,1,…,n.
Lagrange 插值的思想是将 Pn(x) 表示为基函数的线性组合。
定义 Lagrange 插值基函数 li(x) 为一个 n 次多项式,满足:
li(xj)=δij={1,0,i=ji=j
构造可得:
li(x)=∏j=0,j=inxi−xjx−xj
Ln(x)=∑i=0nyili(x)
定理:若 f(x) 在包含节点 [a,b] 的区间内有 n+1 阶连续导数,则对于任意 x∈[a,b],存在 ξ∈(a,b) 使得:
Rn(x)=f(x)−Ln(x)=(n+1)!f(n+1)(ξ)ωn+1(x)
其中 ωn+1(x)=∏i=0n(x−xi)。
Lagrange 插值的缺点在于:增加新节点时,所有基函数均需重新计算。Newton 插值通过差商 (Divided Differences) 解决了这一问题。
- 零阶差商:f[xi]=f(xi)
- 一阶差商:f[xi,xj]=xj−xif[xj]−f[xi]
- k 阶差商:f[x0,x1,…,xk]=xk−x0f[x1,…,xk]−f[x0,…,xk−1]
Nn(x)=f[x0]+f[x0,x1](x−x0)+⋯+f[x0,…,xn]∏i=0n−1(x−xi)
Newton 插值具有很好的承袭性。若增加一个节点 xn+1,只需在原有的 Nn(x) 基础上增加一项即可:
Nn+1(x)=Nn(x)+f[x0,…,xn+1]ωn+1(x)
在等距节点下增加插值阶数,并不一定能提高逼近精度。
对于函数 f(x)=1+25x21 在 [−1,1] 上进行等距插值,当 n→∞ 时,在区间边缘处插值多项式会出现剧烈的震荡。这启示我们:高次多项式插值并不总是可靠的,实际应用中常采用分段低次插值(如三次样条插值)。
为解决高次插值的 Runge 现象,样条插值采用分段低次多项式,并在节点处保证函数值及各阶导数的连续性。
设在 [a,b] 上给定节点 a=x0<x1<⋯<xn=b,函数 S(x) 称为 f(x) 关于该划分的三次样条插值函数,如果:
- 在每个子区间 [xi−1,xi] 上,S(x) 是一个不高于 3 次的多项式;
- S(xi)=f(xi) (插值条件);
- S(x) 在整个区间 [a,b] 上二阶连续可微,即 S(x)∈C2[a,b]。
设 Mi=S′′(xi) 为第 i 个节点处的二阶导数。由连续性条件可推导得关于 Mi 的三对角方程组:
μiMi−1+2Mi+λiMi+1=di,i=1,2,…,n−1
其中系数由步长 hi=xi−xi−1 及差商决定。求解该方程组(通常使用 Thomas 算法)即可确定整个样条函数。
为了封闭方程组,需要额外的边界条件:
- 自然边界条件 (Natural Spline):S′′(a)=S′′(b)=0。
- 固支边界条件 (Clamped Spline):已知 S′(a)=f′(a),S′(b)=f′(b)。
- 周期边界条件:S(k)(a)=S(k)(b),k=0,1,2。
定理:若 f∈C4[a,b],且 h=maxhi,则三次样条插值满足:
∥f−S∥∞≤Ch4∥f(4)∥∞
这意味着样条插值具有 O(h4) 的收敛阶,远优于分段线性插值的 O(h2),且不会发生剧烈震荡。
例 1:已知三个节点 (0, 1), (1, 2), (2, 5),构造 Lagrange 插值多项式并求 L(0.5)。
解析:
- 构造基函数:
- l0(x)=(0−1)(0−2)(x−1)(x−2)=21(x2−3x+2)
- l1(x)=(1−0)(1−2)(x−0)(x−2)=−(x2−2x)
- l2(x)=(2−0)(2−1)(x−0)(x−1)=21(x2−x)
- 组合多项式:
L2(x)=1⋅l0(x)+2⋅l1(x)+5⋅l2(x)=x2+1
- 计算:
L2(0.5)=0.52+1=1.25
例 2:计算三次样条插值的维度。
对于 n+1 个节点,有 n 个子区间。每个子区间对应一个 3 次多项式,共有 4n 个待定参数。
约束条件:
- 插值条件:每个区间两端点,2n 个。
- 一阶导数连续:n−1 个内部节点,n−1 个。
- 二阶导数连续:n−1 个内部节点,n−1 个。
总约束数:2n+(n−1)+(n−1)=4n−2。
自由度:4n−(4n−2)=2。因此需要 2 个边界条件来唯一确定。
前往 数值分析专题练习库 挑战更高难度的误差估计、Hermite 插值与样条弯矩方程计算题目。