Hermite 插值
一、问题提出
对于给定的结点 x_0 < x_1 < \cdots < x_k 和正整数 m_0, m_1, \cdots, m_k(m_i \geq 1),求次数不超过 N = m_0 + m_1 + \cdots + m_k - 1 的多项式 p(x),使它在每个结点 x_i (i = 0, 1, \cdots, k) 处,分别满足条件
p^{(j)}(x_i) = f^{(j)}(x_i), \quad j = 0, 1, \cdots, m_i - 1.
即在每个结点 x_i 处,p(x) 与 f(x) 有相同的函数值以及前 m_i - 1 阶导数值。
二、插值基函数的构造
2.1 基函数的定义
对每个结点 x_i,构造 m_i 个插值基函数 L_{ij}(x)(j = 0, 1, \cdots, m_i - 1),其中 L_{ij}(x) 为 N 次多项式,满足:
L_{ij}^{(s)}(x_i) = \delta_{js}, \quad s = 0, 1, \cdots, m_i - 1. \tag{1}
而对除 x_i 以外的各结点,满足
L_{ij}^{(s)}(x_l) = 0, \quad l \neq i, \quad s = 0, 1, \cdots, m_l - 1.
2.2 基函数形式的推导
记
A(x) = (x - x_0)^{m_0}(x - x_1)^{m_1} \cdots (x - x_k)^{m_k}.
我们断言 L_{ij}(x) 具有如下形式:
L_{ij}(x) = \frac{A(x)}{(x - x_i)^{m_i}} \cdot \frac{(x - x_i)^j}{j!} l_{ij}(x), \tag{2}
其中 l_{ij}(x) 为待定的 m_i - j - 1 次多项式。
为什么取这种形式? 这是由 L_{ij}(x) 需要满足的条件决定的。
(1)在其他结点处为零
注意到
\frac{A(x)}{(x - x_i)^{m_i}} = \prod_{l \neq i}(x - x_l)^{m_l}
这个函数在每个结点 x_l(l \neq i)处有 m_l 重零点。因此,\frac{A(x)}{(x - x_i)^{m_i}} 及其前 m_l - 1 阶导数在 x_l 处都为零,这正好满足在其他结点处的条件。
(2)在 x_i 处满足导数条件
为了满足 L_{ij}^{(s)}(x_i) = \delta_{js},我们乘以因子 \frac{(x - x_i)^j}{j!}。这是因为:
- 函数 \frac{(x - x_i)^j}{j!} 在 x_i 处的前 j 阶导数都为零
- 第 j 阶导数为 1
因此,\frac{(x - x_i)^j}{j!} 提供了正确的"骨架"结构。
(3)待定多项式 l_{ij}(x) 的作用
为了调整 L_{ij}(x) 在 x_i 处的各阶导数值,我们引入待定多项式 l_{ij}(x)。由于 \frac{A(x)}{(x - x_i)^{m_i}} 在 x_i 处不为零(记其值为 a_0 \neq 0),我们可以通过选择 l_{ij}(x) 来精确控制 L_{ij}(x) 在 x_i 处的导数值。
2.3 l_{ij}(x) 次数的确定
L_{ij}(x) 的总次数为 N,而
\deg\left(\frac{A(x)}{(x - x_i)^{m_i}}\right) = N + 1 - m_i
所以
\deg(l_{ij}(x)) = N - (N + 1 - m_i) - j = m_i - j - 1
三、待定多项式 l_{ij}(x) 的确定
3.1 方法一:Taylor 展式截断
根据条件 (1),L_{ij}(x) 在 x_i 处的展开必须满足:
L_{ij}(x) = \frac{(x - x_i)^j}{j!} + \sum_{t=m_i}^{N} c_t(x - x_i)^t
由此可得
l_{ij}(x) = \left(1 + \sum_{t=m_i}^{N} \bar{c}_t(x - x_i)^{t-j}\right) \frac{(x - x_i)^{m_i}}{A(x)}
为什么 l_{ij}(x) 必须是 Taylor 展式的低次部分?
将 \frac{(x - x_i)^{m_i}}{A(x)} 在 x = x_i 处作 Taylor 展开:
\frac{(x - x_i)^{m_i}}{A(x)} = d_0 + d_1(x - x_i) + d_2(x - x_i)^2 + \cdots
注意到括号内表达式
1 + \sum_{t=m_i}^{N} \bar{c}_t(x - x_i)^{t-j}
中,最低次项是常数项 1,而 t - j \geq m_i - j(因为 t \geq m_i)。
将两者相乘:
l_{ij}(x) = \left(1 + \bar{c}_{m_i}(x - x_i)^{m_i-j} + \cdots\right)\left(d_0 + d_1(x - x_i) + \cdots\right)
关键观察:
- 用 1 乘以 Taylor 展式,得到 d_0 + d_1(x - x_i) + d_2(x - x_i)^2 + \cdots
- 用 \bar{c}_{m_i}(x - x_i)^{m_i-j} 乘以 Taylor 展式,最低次项是 \bar{c}_{m_i}d_0(x - x_i)^{m_i-j},次数 \geq m_i - j
因此,l_{ij}(x) 中次数 \leq m_i - j - 1 的项完全来自于 Taylor 展式 \frac{(x - x_i)^{m_i}}{A(x)} 中对应的低次部分。
由于 l_{ij}(x) 本身是 m_i - j - 1 次多项式,它必须恰好等于 Taylor 展式中次数不超过 m_i - j - 1 的那部分,记为
l_{ij}(x) = \left\{\frac{(x - x_i)^{m_i}}{A(x)}\right\}_{x_i}^{(m_i-j-1)}
3.2 方法二:递推方程组
将 \frac{A(x)}{(x - x_i)^{m_i}} 在 x = x_i 处作 Taylor 展开:
\frac{A(x)}{(x - x_i)^{m_i}} = a_0 + a_1(x - x_i) + \cdots + a_{N+1-m_i}(x - x_i)^{N+1-m_i} \tag{3}
设
l_{ij}(x) = b_0 + b_1(x - x_i) + \cdots + b_{m_i-j-1}(x - x_i)^{m_i-j-1} \tag{4}
方程组的推导
将 (3) 和 (4) 代入 (2):
L_{ij}(x) = \left(a_0 + a_1(x - x_i) + \cdots\right) \cdot \frac{(x - x_i)^j}{j!} \left(b_0 + b_1(x - x_i) + \cdots\right)
展开乘积,得到:
L_{ij}(x) = \frac{(x - x_i)^j}{j!} \sum_{s=0}^{N} c_s (x - x_i)^s
其中 c_s 是 a 和 b 的卷积:
c_s = \sum_{t=0}^{s} a_t b_{s-t}
根据条件 (1),L_{ij}(x) 在 x_i 处的展开必须满足:
L_{ij}(x) = \frac{(x - x_i)^j}{j!} + \text{次数} \geq m_i \text{ 的项}
这意味着:
- c_0 = a_0 b_0 = 1
- c_s = a_0 b_s + a_1 b_{s-1} + \cdots + a_s b_0 = 0,对于 s = 1, 2, \cdots, m_i - j - 1
于是得到方程组: