多项式插值的基本概念
给定 n+1 个插值节点 x0,x1,…,xn 及其对应的函数值 y0,y1,…,yn,多项式插值的目标是构造一个 n 次多项式 P(x),满足:
P(xi)=yi(i=0,1,…,n).
多项式插值的唯一性
定理:满足 Ln(xi)=yi 的 n 次多项式是唯一的。
证明:
假设存在两个不同的 n 次多项式 P(x) 和 Q(x) 均满足插值条件,则多项式 R(x)=P(x)−Q(x) 是一个次数不超过 n 的多项式,且在 n+1 个不同点处取零值。根据代数基本定理,只有零多项式才能有超过其次数的根,因此 R(x)≡0,即 P(x)=Q(x)。
Vandermonde矩阵
通过待定系数法可建立线性方程组:
⎩⎪⎪⎪⎪⎨⎪⎪⎪⎪⎧a0+a1x0+⋯+anx0n=y0a0+a1x1+⋯+anx1n=y1⋮a0+a1xn+⋯+anxnn=yn
其系数矩阵为Vandermonde矩阵:
A=⎣⎢⎢⎢⎡11⋮1x0x1⋮xn⋯⋯⋱⋯x0nx1n⋮xnn⎦⎥⎥⎥⎤.
其解向量为 a=[a0,a1,…,an]T,右端向量为 y=[y0,y1,…,yn]T。因此,插值问题可转化为求解线性方程组 Ax=y。
Lagrange插值
核心思想:为每个节点 xk 构造一个基函数 lk(x),满足:
lk(xi)={1,0,i=ki=k.
所有基函数均为 n 次多项式,最终插值多项式表示为它们的线性组合:
Ln(x)=k=0∑nyklk(x).
1. 基函数的构造
- 分子部分:构造一个多项式,在除 xk 外的所有节点处取零值。这可以通过乘积形式实现:\prod_{\substack{j=0 \\ j \neq k}}^n (x - x_j).
- 分母部分:确保 lk(xk)=1。当 x=xk 时,分子为:\prod_{\substack{j=0 \\ j \neq k}}^n (x_k - x_j),
因此基函数定义为:l_k(x) = \frac{\prod_{\substack{j=0 \\ j \neq k}}^n (x - x_j)}{\prod_{\substack{j=0 \\ j \neq k}}^n (x_k - x_j)}.
2. 引入符号 ωn+1(x)
定义多项式:
ωn+1(x)=j=0∏n(x−xj),
其导数为:
\omega_{n+1}'(x) = \sum_{m=0}^n \prod_{\substack{j=0 \\ j \neq m}}^n (x - x_j).
在节点 xk 处求导数值:
\omega_{n+1}'(x_k) = \prod_{\substack{j=0 \\ j \neq k}}^n (x_k - x_j).
因此,基函数可简化为:
lk(x)=(x−xk)⋅ωn+1′(xk)ωn+1(x).
3. 插值多项式的最终形式
将基函数代入线性组合表达式,得到Lagrange插值多项式:
L_n(x) = \sum_{k=0}^n y_k \cdot \frac{\prod_{\substack{j=0 \\ j \neq k}}^n (x - x_j)}{\prod_{\substack{j=0 \\ j \neq k}}^n (x_k - x_j)}.
或等价地:
Ln(x)=k=0∑nyk⋅(x−xk)⋅ωn+1′(xk)ωn+1(x).
4. 举例验证(线性插值,n=1)
对于节点 (x0,y0) 和 (x1,y1),基函数为:
l0(x)=x0−x1x−x1,l1(x)=x1−x0x−x0.
插值多项式为:
L1(x)=y0⋅x0−x1x−x1+y1⋅x1−x0x−x0.
显然,L1(x0)=y0 且 L1(x1)=y1,验证了公式的正确性。
5. 总结
- 构造原理:通过设计在特定节点取值为1、其余节点为0的基函数,将插值问题转化为基函数的线性组合。
- 唯一性:由多项式根的唯一性定理保证。
- 优势:避免求解线性方程组,直接通过乘积形式构造多项式。
- 局限性:节点增减时需重新计算所有基函数,计算复杂度较高。高次插值可能引发Runge现象(震荡误差)。
Newton插值
1. 基本思想与构造方法
动机:在逐步增加插值节点时,动态构造插值多项式。例如:
推广到高次多项式:对于 n 个节点,递推公式为:
Pn(x)=Pn−1(x)+cn(x−x0)(x−x1)⋯(x−xn−1).
最终形式为Newton插值多项式:
Nn(x)=c0+c1(x−x0)+c2(x−x0)(x−x1)+⋯+cni=0∏n−1(x−xi).
2. 差商的定义与计算
差商是Newton插值的核心系数,定义为:
- 0阶差商:$$f[x_i] = f(x_i).$$
- 1阶差商:$$f[x_0, x_i] = \frac{f(x_i) - f(x_0)}{x_i - x_0}.$$
- k阶差商(递归定义):
f[x0,x1,…,xk]=xk−xk−1f[x0,…,xk−2,xk]−f[x0,…,xk−1].
性质:
- 对称性:差商与节点顺序无关,即
f[x0,x1,…,xk]=f[xk,…,x1,x0].
- 显式公式:f[x_0, \ldots, x_k] = \sum_{j=0}^k \frac{f(x_j)}{\prod_{\substack{i=0 \\ i \neq j}}^k (x_j - x_i)}.
3. 差商表与计算示例
差商表用于系统化计算各阶差商:
xk |
f(xk) |
1阶差商 |
2阶差商 |
3阶差商 |
x0 |
f(x0) |
f[x0,x1] |
f[x0,x1,x2] |
f[x0,x1,x2,x3] |
x1 |
f(x1) |
f[x1,x2] |
f[x1,x2,x3] |
— |
x2 |
f(x2) |
f[x2,x3] |
— |
— |
x3 |
f(x3) |
— |
— |
— |
示例6.9:给定节点 (−2,−27), (0,−1), (1,0),构造二次Newton插值多项式:
- 计算差商表:
- 0阶差商:f[−2]=−27, f[0]=−1, f[1]=0.
- 1阶差商:
f[−2,0]=0−(−2)−1−(−27)=13,f[0,1]=1−00−(−1)=1.
- 2阶差商:
f[−2,0,1]=1−(−2)1−13=−4.
- 代入多项式:
N2(x)=−27+13(x+2)−4(x+2)x=−4x2+5x−1.
4. Newton插值余项
插值余项公式与Lagrange形式等价,但通过差商表达:
Rn(x)=f(x)−Nn(x)=f[x,x0,…,xn]⋅i=0∏n(x−xi).
结合Lagrange余项定理,可得:
f[x,x0,…,xn]=(n+1)!f(n+1)(ξ),ξ∈(a,b).
应用:动态增加节点时,余项可近似为:
Rk(x)≈Nk+1(x)−Nk(x)=f[x0,…,xk+1]⋅i=0∏k(x−xi).
5. 方法比较与总结
Newton插值优点:
- 动态增减节点时,仅需更新差商表,无需重新计算所有基函数。
- 差商表可复用,适合逐步优化插值精度。