跳到主要内容

多项式插值:Lagrange 与 Newton 公式

插值问题的核心在于:给定 n+1n+1 个互异节点 x0,x1,,xnx_0, x_1, \dots, x_n 及其对应的函数值 y0,y1,,yny_0, y_1, \dots, y_n,寻找一个次数不超过 nn 的多项式 Pn(x)P_n(x),使得: Pn(xi)=yi,i=0,1,,n.P_n(x_i) = y_i, \quad i = 0, 1, \dots, n.


1. Lagrange 插值多项式

Lagrange 插值的思想是将 Pn(x)P_n(x) 表示为基函数的线性组合。

1.1 基函数定义

定义 Lagrange 插值基函数 li(x)l_i(x) 为一个 nn 次多项式,满足: li(xj)=δij={1,i=j0,ijl_i(x_j) = \delta_{ij} = \begin{cases} 1, & i=j \\ 0, & i \neq j \end{cases} 构造可得: li(x)=j=0,jinxxjxixjl_i(x) = \prod_{j=0, j \neq i}^n \frac{x - x_j}{x_i - x_j}

1.2 插值多项式

Ln(x)=i=0nyili(x)L_n(x) = \sum_{i=0}^n y_i l_i(x)

1.3 误差估计 (余项定理)

定理:若 f(x)f(x) 在包含节点 [a,b][a, b] 的区间内有 n+1n+1 阶连续导数,则对于任意 x[a,b]x \in [a, b],存在 ξ(a,b)\xi \in (a, b) 使得: Rn(x)=f(x)Ln(x)=f(n+1)(ξ)(n+1)!ωn+1(x)R_n(x) = f(x) - L_n(x) = \frac{f^{(n+1)}(\xi)}{(n+1)!} \omega_{n+1}(x) 其中 ωn+1(x)=i=0n(xxi)\omega_{n+1}(x) = \prod_{i=0}^n (x - x_i)


2. Newton 插值多项式

Lagrange 插值的缺点在于:增加新节点时,所有基函数均需重新计算。Newton 插值通过差商 (Divided Differences) 解决了这一问题。

2.1 差商定义

  • 零阶差商f[xi]=f(xi)f[x_i] = f(x_i)
  • 一阶差商f[xi,xj]=f[xj]f[xi]xjxif[x_i, x_j] = \frac{f[x_j] - f[x_i]}{x_j - x_i}
  • k 阶差商f[x0,x1,,xk]=f[x1,,xk]f[x0,,xk1]xkx0f[x_0, x_1, \dots, x_k] = \frac{f[x_1, \dots, x_k] - f[x_0, \dots, x_{k-1}]}{x_k - x_0}

2.2 Newton 插值公式

Nn(x)=f[x0]+f[x0,x1](xx0)++f[x0,,xn]i=0n1(xxi)N_n(x) = f[x_0] + f[x_0, x_1](x - x_0) + \dots + f[x_0, \dots, x_n] \prod_{i=0}^{n-1} (x - x_i)

承袭性

Newton 插值具有很好的承袭性。若增加一个节点 xn+1x_{n+1},只需在原有的 Nn(x)N_n(x) 基础上增加一项即可: Nn+1(x)=Nn(x)+f[x0,,xn+1]ωn+1(x)N_{n+1}(x) = N_n(x) + f[x_0, \dots, x_{n+1}] \omega_{n+1}(x)


3. Runge 现象与高次插值的陷阱

在等距节点下增加插值阶数,并不一定能提高逼近精度。

Runge 现象

对于函数 f(x)=11+25x2f(x) = \frac{1}{1 + 25x^2}[1,1][-1, 1] 上进行等距插值,当 nn \to \infty 时,在区间边缘处插值多项式会出现剧烈的震荡。这启示我们:高次多项式插值并不总是可靠的,实际应用中常采用分段低次插值(如三次样条插值)。



4. 三次样条插值 (Cubic Spline Interpolation)

为解决高次插值的 Runge 现象,样条插值采用分段低次多项式,并在节点处保证函数值及各阶导数的连续性。

4.1 定义

设在 [a,b][a, b] 上给定节点 a=x0<x1<<xn=ba = x_0 < x_1 < \dots < x_n = b,函数 S(x)S(x) 称为 f(x)f(x) 关于该划分的三次样条插值函数,如果:

  1. 在每个子区间 [xi1,xi][x_{i-1}, x_i] 上,S(x)S(x) 是一个不高于 3 次的多项式;
  2. S(xi)=f(xi)S(x_i) = f(x_i) (插值条件);
  3. S(x)S(x) 在整个区间 [a,b][a, b] 上二阶连续可微,即 S(x)C2[a,b]S(x) \in C^2[a, b]

4.2 三弯矩方程 (Three-Moment Equation)

Mi=S(xi)M_i = S''(x_i) 为第 ii 个节点处的二阶导数。由连续性条件可推导得关于 MiM_i 的三对角方程组: μiMi1+2Mi+λiMi+1=di,i=1,2,,n1\mu_i M_{i-1} + 2M_i + \lambda_i M_{i+1} = d_i, \quad i = 1, 2, \dots, n-1 其中系数由步长 hi=xixi1h_i = x_i - x_{i-1} 及差商决定。求解该方程组(通常使用 Thomas 算法)即可确定整个样条函数。

4.3 边界条件

为了封闭方程组,需要额外的边界条件:

  • 自然边界条件 (Natural Spline)S(a)=S(b)=0S''(a) = S''(b) = 0
  • 固支边界条件 (Clamped Spline):已知 S(a)=f(a),S(b)=f(b)S'(a) = f'(a), S'(b) = f'(b)
  • 周期边界条件S(k)(a)=S(k)(b),k=0,1,2S^{(k)}(a) = S^{(k)}(b), k=0, 1, 2

4.4 收敛性与误差估计

定理:若 fC4[a,b]f \in C^4[a, b],且 h=maxhih = \max h_i,则三次样条插值满足: fSCh4f(4)\|f - S\|_\infty \le C h^4 \|f^{(4)}\|_\infty 这意味着样条插值具有 O(h4)O(h^4) 的收敛阶,远优于分段线性插值的 O(h2)O(h^2),且不会发生剧烈震荡。


✍️ 典型例题

例 1:已知三个节点 (0, 1), (1, 2), (2, 5),构造 Lagrange 插值多项式并求 L(0.5)。

解析:

  1. 构造基函数:
    • l0(x)=(x1)(x2)(01)(02)=12(x23x+2)l_0(x) = \frac{(x-1)(x-2)}{(0-1)(0-2)} = \frac{1}{2}(x^2 - 3x + 2)
    • l1(x)=(x0)(x2)(10)(12)=(x22x)l_1(x) = \frac{(x-0)(x-2)}{(1-0)(1-2)} = - (x^2 - 2x)
    • l2(x)=(x0)(x1)(20)(21)=12(x2x)l_2(x) = \frac{(x-0)(x-1)}{(2-0)(2-1)} = \frac{1}{2}(x^2 - x)
  2. 组合多项式: L2(x)=1l0(x)+2l1(x)+5l2(x)=x2+1L_2(x) = 1 \cdot l_0(x) + 2 \cdot l_1(x) + 5 \cdot l_2(x) = x^2 + 1
  3. 计算: L2(0.5)=0.52+1=1.25L_2(0.5) = 0.5^2 + 1 = 1.25
例 2:计算三次样条插值的维度。

对于 n+1n+1 个节点,有 nn 个子区间。每个子区间对应一个 3 次多项式,共有 4n4n 个待定参数。 约束条件:

  • 插值条件:每个区间两端点,2n2n 个。
  • 一阶导数连续:n1n-1 个内部节点,n1n-1 个。
  • 二阶导数连续:n1n-1 个内部节点,n1n-1 个。 总约束数:2n+(n1)+(n1)=4n22n + (n-1) + (n-1) = 4n - 2。 自由度:4n(4n2)=24n - (4n-2) = 2。因此需要 2 个边界条件来唯一确定。

🚀 专项训练

前往 数值分析专题练习库 挑战更高难度的误差估计、Hermite 插值与样条弯矩方程计算题目。