第二章 插值法
插值法定义
插值函数定义
设函数
y
=
f
(
x
)
y = f(x)
y=f(x) 在区间 [a,b] 上有定义,且满足节点排列:
a
≤
x
0
<
x
1
<
⋯
<
x
n
≤
b
a \leq x_0 < x_1 < \cdots < x_n \leq b
a≤x0<x1<⋯<xn≤b
已知在点 x 0 , x 1 , … , x n {x_0, x_1, \ldots, x_n} x0,x1,…,xn 上的对应函数值 y 0 , y 1 , … , y n {y_0, y_1, \ldots, y_n} y0,y1,…,yn。
若存在一简单函数
p
(
x
)
p(x)
p(x),满足插值条件:
p
(
x
i
)
=
y
i
(
i
=
0
,
1
,
2
,
…
,
n
)
(2.1)
p(x_i) = y_i \quad (i = 0, 1, 2, \ldots, n) \tag{2.1}
p(xi)=yi(i=0,1,2,…,n)(2.1) (1)
则称:
- p ( x ) p(x) p(x) 为 f ( x ) f(x) f(x) 的插值函数
- x 0 , x 1 , … , x n {x_0, x_1, \ldots, x_n} x0,x1,…,xn 为插值节点
- 包含节点的区间 [a, b]为插值区间
- 式 (1) 为插值条件
- 求插值函数的方法称为插值法
插值函数分类
当 p ( x ) p(x) p(x) 具有以下形式时:
-
多项式插值
p ( x ) = a _ 0 + a _ 1 x + ⋯ + a _ n x n ( a _ i ∈ R ) (2.2) p(x) = a\_0 + a\_1x + \cdots + a\_nx^n \quad (a\_i \in \mathbb{R}) \tag{2.2} p(x)=a_0+a_1x+⋯+a_nxn(a_i∈R)(2.2)
其中多项式次数 ≤ n \leq n ≤n -
分段插值
p ( x ) p(x) p(x) 为分段多项式 -
三角插值
p ( x ) p(x) p(x) 为三角多项式
满足 p ( x i ) = y i , i = 0 , ⋯ n p(x_i)=y_i,i=0,\cdots n p(xi)=yi,i=0,⋯n 次数不超过n的插值多项式是唯一存在的
拉格朗日插值
定义
求 n次多项式:
L
n
(
x
)
=
y
0
l
0
(
x
)
+
y
1
l
1
(
x
)
+
⋯
+
y
n
l
n
(
x
)
L_n(x) = y_0 l_0(x) + y_1 l_1(x) + \cdots + y_n l_n(x)
Ln(x)=y0l0(x)+y1l1(x)+⋯+ynln(x)
满足插值条件:
L
n
(
x
i
)
=
y
i
(
i
=
0
,
1
,
2
,
l
d
o
t
s
,
n
)
L_n(x_i) = y_i \quad (i = 0,1,2,\\ldots,n)
Ln(xi)=yi(i=0,1,2,ldots,n)
约束条件:
- 无重合节点:当 i ≠ j i \neq j i=j 时, x i ≠ x j x_i \neq x_j xi=xj
线性插值特例 ( n = 1 n=1 n=1)
已知两点
(
x
0
,
y
0
)
(x_0, y_0)
(x0,y0) 和
(
x
1
,
y
1
)
(x_1, y_1)
(x1,y1),构造一次多项式:
L
1
(
x
)
=
l
0
(
x
)
y
0
+
l
1
(
x
)
y
1
L_1(x) = l_0(x)y_0 + l_1(x)y_1
L1(x)=l0(x)y0+l1(x)y1
插值条件:
{
L
1
(
x
0
)
=
y
0
L
1
(
x
1
)
=
y
1
\begin{cases} L_1(x_0) = y_0 \\ L_1(x_1) = y_1 \end{cases}
{L1(x0)=y0L1(x1)=y1
几何意义: L 1 ( x ) L_1(x) L1(x) 是过点 ( x 0 , y 0 ) (x_0, y_0) (x0,y0) 和 ( x 1 , y 1 ) (x_1, y_1) (x1,y1) 的直线
插值公式
L 1 ( x ) = x − x 1 x 0 − x 1 y 0 + x − x 0 x 1 − x 0 y 1 L_1(x) = \frac{x - x_1}{x_0 - x_1} y_0 + \frac{x - x_0}{x_1 - x_0}y_1 L1(x)=x0−x1x−x1y0+x1−x0x−x0y1
x − x 1 x 0 − x 1 与 x − x 0 x 1 − x 0 称为拉氏基函数 \frac{x - x_1}{x_0 - x_1}与\frac{x - x_0}{x_1 - x_0}称为拉氏基函数 x0−x1x−x1与x1−x0x−x0称为拉氏基函数
等价于点斜式:
L
1
(
x
)
=
y
0
+
y
1
−
y
0
x
1
−
x
0
(
x
−
x
0
)
L_1(x) = y_0 + \frac{y_1 - y_0}{x_1 - x_0}(x - x_0)
L1(x)=y0+x1−x0y1−y0(x−x0)
公式说明
符号 | 含义 |
---|---|
l i ( x ) l_i(x) li(x) | 拉格朗日基函数,满足 l i ( x j ) = δ i j l_i(x_j) = \delta_{ij} li(xj)=δij |
δ i j \delta_{ij} δij | 克罗内克函数,当 i = j i=j i=j 时为1,否则为0 |
x i x_i xi | 互不相同的插值节点 |
n ≥ 1 n \geq 1 n≥1时的插值公式
目标:希望找到
l
i
(
x
j
)
l_i(x_j)
li(xj),满足下式:
l
i
(
x
j
)
=
δ
i
j
=
{
1
i
=
j
0
i
≠
j
(
i
,
j
=
0
,
1
,
…
,
n
)
l_i(x_j) = \delta_{ij} = \begin{cases} 1 & i = j \\ 0 & i \neq j \end{cases} \quad (i,j=0,1,\dots,n)
li(xj)=δij={10i=ji=j(i,j=0,1,…,n)
然后令:
L
n
(
x
)
=
∑
i
=
0
n
l
i
(
x
)
y
i
显然满足
L
n
(
x
i
)
=
y
i
L_n(x) = \sum_{i=0}^n l_i(x) y_i \quad \text{显然满足} \quad L_n(x_i) = y_i
Ln(x)=i=0∑nli(x)yi显然满足Ln(xi)=yi
-
零点分析:
每个基函数 l i ( x ) l_i(x) li(x) 在 n n n 个节点处取零值:
l i ( x j ) = 0 ( j ≠ i ) l_i(x_j) = 0 \quad (j \neq i) li(xj)=0(j=i)
即多项式可表示为:
l i ( x ) = C i ∏ _ j = 0 j ≠ i n ( x − x j ) l_i(x) = C_i \prod\_{\substack {j=0 \ j \neq i}}^n (x - x_j) li(x)=Ci∏_j=0 j=in(x−xj) -
归一化条件:
通过 l i ( x i ) = 1 l_i(x_i) = 1 li(xi)=1 确定常数 C i C_i Ci:
C i = 1 ∏ _ j = 0 j ≠ i n ( x i − x j ) C_i = \frac{1}{\prod\_{\substack{j=0 \ j \neq i}}^n (x_i - x_j)} Ci=∏_j=0 j=in(xi−xj)1 -
最终基函数表达式
l i ( x ) = ∏ j = 0 j ≠ i n x − x j x i − x j l_i(x) = \prod_{\substack{j=0 \ j \neq i}}^n \frac{x - x_j}{x_i - x_j} li(x)=j=0 j=i∏nxi−xjx−xj
一点零次插值、线性插值、抛物插值公式
- 一点零次插值
条件:仅1个节点 ( x 0 , y 0 ) (x_0, y_0) (x0,y0)
多项式:
L
n
(
x
)
=
y
0
L_n(x) = y_0
Ln(x)=y0
- 两点一次插值(线性插值)
条件:2个节点 ( x 0 , y 0 ) (x_0, y_0) (x0,y0) 和 ( x 1 , y 1 ) (x_1, y_1) (x1,y1)
多项式:
L
1
(
x
)
=
x
−
x
1
x
0
−
x
1
y
0
+
x
−
x
0
x
1
−
x
0
y
1
L_1(x) = \frac{x - x_1}{x_0 - x_1} y_0 + \frac{x - x_0}{x_1 - x_0} y_1
L1(x)=x0−x1x−x1y0+x1−x0x−x0y1
等价形式:
L
1
(
x
)
=
y
0
+
y
1
−
y
0
x
1
−
x
0
(
x
−
x
0
)
L_1(x) = y_0 + \frac{y_1 - y_0}{x_1 - x_0}(x - x_0)
L1(x)=y0+x1−x0y1−y0(x−x0)
- 三点二次插值(抛物插值)
条件:3个节点
(
x
0
,
y
0
)
(x_0, y_0)
(x0,y0),
(
x
1
,
y
1
)
(x_1, y_1)
(x1,y1),
(
x
2
,
y
2
)
(x_2, y_2)
(x2,y2)
多项式:
L
2
(
x
)
=
(
x
−
x
1
)
(
x
−
x
2
)
(
x
0
−
x
1
)
(
x
0
−
x
2
)
y
0
+
(
x
−
x
0
)
(
x
−
x
2
)
(
x
1
−
x
0
)
(
x
1
−
x
2
)
y
1
+
(
x
−
x
0
)
(
x
−
x
1
)
(
x
2
−
x
0
)
(
x
2
−
x
1
)
y
2
L_2(x) = \frac{(x - x_1)(x - x_2)}{(x_0 - x_1)(x_0 - x_2)} y_0 + \frac{(x - x_0)(x - x_2)}{(x_1 - x_0)(x_1 - x_2)} y_1 + \frac{(x - x_0)(x - x_1)}{(x_2 - x_0)(x_2 - x_1)} y_2
L2(x)=(x0−x1)(x0−x2)(x−x1)(x−x2)y0+(x1−x0)(x1−x2)(x−x0)(x−x2)y1+(x2−x0)(x2−x1)(x−x0)(x−x1)y2
插值余项与误差估计
条件:
- 函数 f ( n ) ( x ) f^{(n)}(x) f(n)(x) 在区间 [ a , b ] [a, b] [a,b] 上连续
- f ( n + 1 ) ( x ) f^{(n+1)}(x) f(n+1)(x) 在 ( a , b ) (a, b) (a,b) 内存在
- L n ( x ) L_n(x) Ln(x) 是满足插值条件的 n n n 次多项式,插值节点为 a ≤ x 0 < x 1 < ⋯ < x n ≤ b a \leq x_0 < x_1 < \cdots < x_n \leq b a≤x0<x1<⋯<xn≤b( n + 1 n+1 n+1 个)
结论:
R
n
(
x
)
=
f
(
x
)
−
L
n
(
x
)
=
f
(
n
+
1
)
(
ξ
)
(
n
+
1
)
!
∏
j
=
0
n
(
x
−
x
j
)
R_n(x) = f(x) - L_n(x) = \frac{f^{(n+1)}(\xi)}{(n+1)!} \prod_{j=0}^n (x - x_j)
Rn(x)=f(x)−Ln(x)=(n+1)!f(n+1)(ξ)j=0∏n(x−xj)
其中
ξ
∈
(
a
,
b
)
\xi \in (a, b)
ξ∈(a,b),且
ξ
\xi
ξ 的值依赖于
x
x
x。
误差上界估计
若记
max
x
∈
[
a
,
b
]
∣
f
(
n
+
1
)
(
x
)
∣
=
M
n
+
1
\max_{x \in [a,b]} |f^{(n+1)}(x)| = M_{n+1}
maxx∈[a,b]∣f(n+1)(x)∣=Mn+1,则余项绝对误差满足:
∣
R
n
(
x
)
∣
≤
M
n
+
1
(
n
+
1
)
!
⋅
∣
ω
n
+
1
(
x
)
∣
|R_n(x)| \leq \frac{M_{n+1}}{(n+1)!} \cdot |\omega_{n+1}(x)|
∣Rn(x)∣≤(n+1)!Mn+1⋅∣ωn+1(x)∣
其中
ω
n
+
1
(
x
)
=
∏
j
=
0
n
(
x
−
x
j
)
\omega_{n+1}(x) = \prod_{j=0}^n (x - x_j)
ωn+1(x)=∏j=0n(x−xj) 为节点多项式。
进一步地,节点多项式的展开形式为:
ω
n
+
1
(
x
)
=
(
x
−
x
0
)
(
x
−
x
1
)
⋯
(
x
−
x
n
)
\omega_{n+1}(x) = (x - x_0)(x - x_1)\cdots(x - x_n)
ωn+1(x)=(x−x0)(x−x1)⋯(x−xn)
节点多项式在节点
x
k
x_k
xk 处的导数为:
ω
n
+
1
′
(
x
k
)
=
(
x
k
−
x
0
)
⋯
(
x
k
−
x
k
−
1
)
(
x
k
−
x
k
+
1
)
⋯
(
x
k
−
x
n
)
\omega'_{n+1}(x_k) = (x_k - x_0)\cdots(x_k - x_{k-1})(x_k - x_{k+1})\cdots(x_k - x_n)
ωn+1′(xk)=(xk−x0)⋯(xk−xk−1)(xk−xk+1)⋯(xk−xn)
拉格朗日插值多项式
L
n
(
x
)
L_n(x)
Ln(x) 可表示为:
L
n
(
x
)
=
∑
k
=
0
n
y
k
ω
n
+
1
(
x
)
(
x
−
x
k
)
ω
n
+
1
′
(
x
k
)
L_n(x) = \sum_{k=0}^{n} y_k \frac{\omega_{n+1}(x)}{(x - x_k)\omega'_{n+1}(x_k)}
Ln(x)=k=0∑nyk(x−xk)ωn+1′(xk)ωn+1(x)
- 节点多项式 ω n + 1 ( x ) \omega_{n + 1}(x) ωn+1(x) 是 ( n + 1 ) (n + 1) (n+1) 个线性因子的乘积。
- 导数 ω n + 1 ′ ( x k ) \omega'_{n + 1}(x_k) ωn+1′(xk) 计算时排除 ( x k − x k ) (x_k - x_k) (xk−xk) 项。
- 基函数构造 ω n + 1 ( x ) ( x − x k ) \frac{\omega_{n + 1}(x)}{(x - x_k)} (x−xk)ωn+1(x) 确保在 x = x k x = x_k x=xk 时取值为 1。
n = 1 时,线性插值余项
[
R
1
(
x
)
=
1
2
f
′
′
(
ξ
)
ω
2
(
x
)
=
1
2
f
′
′
(
ξ
)
(
x
−
x
0
)
(
x
−
x
1
)
,
ξ
∈
[
x
0
,
x
1
]
]
[ R_1(x) = \frac{1}{2} f''(\xi) \omega_2(x) = \frac{1}{2} f''(\xi) (x - x_0)(x - x_1), \quad \xi \in [x_0, x_1] ]
[R1(x)=21f′′(ξ)ω2(x)=21f′′(ξ)(x−x0)(x−x1),ξ∈[x0,x1]]
n = 2 时,抛物插值余项
[
R
2
(
x
)
=
1
6
f
′
′
′
(
ξ
)
(
x
−
x
0
)
(
x
−
x
1
)
(
x
−
x
2
)
,
ξ
∈
[
x
0
,
x
2
]
]
[ R_2(x) = \frac{1}{6} f'''(\xi) (x - x_0)(x - x_1)(x - x_2), \quad \xi \in [x_0, x_2] ]
[R2(x)=61f′′′(ξ)(x−x0)(x−x1)(x−x2),ξ∈[x0,x2]]
差商与牛顿插值
差商及其性质
差商(均差)的定义
1 阶差商
[
f
[
x
i
,
x
j
]
=
f
(
x
i
)
−
f
(
x
j
)
x
i
−
x
j
(
i
≠
j
,
x
i
≠
x
j
)
]
[ f[x_i, x_j] = \frac{f(x_i) - f(x_j)}{x_i - x_j} \quad (i \neq j, x_i \neq x_j) ]
[f[xi,xj]=xi−xjf(xi)−f(xj)(i=j,xi=xj)]
2 阶差商
[
f
[
x
i
,
x
j
,
x
k
]
=
f
[
x
i
,
x
j
]
−
f
[
x
j
,
x
k
]
x
i
−
x
k
(
i
≠
k
)
]
[ f[x_i, x_j, x_k] = \frac{f[x_i, x_j] - f[x_j, x_k]}{x_i - x_k} \quad (i \neq k) ]
[f[xi,xj,xk]=xi−xkf[xi,xj]−f[xj,xk](i=k)]
k
+
1
k + 1
k+1 阶差商
[
f
[
x
0
,
…
,
x
k
+
1
]
=
f
[
x
0
,
x
1
,
…
,
x
k
]
−
f
[
x
1
,
…
,
x
k
,
x
k
+
1
]
x
0
−
x
k
+
1
=
f
[
x
0
,
…
,
x
k
−
1
,
x
k
]
−
f
[
x
0
,
…
,
x
k
−
1
,
x
k
+
1
]
x
k
−
x
k
+
1
]
[ f[x_0, \ldots, x_{k + 1}] = \frac{f[x_0, x_1, \ldots, x_k] - f[x_1, \ldots, x_k, x_{k + 1}]}{x_0 - x_{k + 1}} = \frac{f[x_0, \ldots, x_{k - 1}, x_k] - f[x_0, \ldots, x_{k - 1}, x_{k + 1}]}{x_k - x_{k + 1}} ]
[f[x0,…,xk+1]=x0−xk+1f[x0,x1,…,xk]−f[x1,…,xk,xk+1]=xk−xk+1f[x0,…,xk−1,xk]−f[x0,…,xk−1,xk+1]]
k 阶差商必须由 k + 1 k + 1 k+1 个节点构成, k k k 个节点是构造不出 k k k 阶差商的。
差商的值与 x i x_i xi 顺序无关。
差商性质
-
k 阶差商的线性组合
k 阶差商可以表示为函数值 f ( x 0 ) , f ( x 1 ) , … , f ( x k ) f(x_0), f(x_1), \ldots, f(x_k) f(x0),f(x1),…,f(xk) 的线性组合,即
[ f [ x 0 , x 1 , … , x k ] = ∑ j = 0 k f ( x j ) ( x j − x 0 ) ⋯ ( x j − x j − 1 ) ( x j − x j + 1 ) ⋯ ( x j − x k ) (用数学归纳法证明) ] [ f[x_0, x_1, \ldots, x_k] = \sum_{j = 0}^k \frac{f(x_j)}{(x_j - x_0) \cdots (x_j - x_{j - 1})(x_j - x_{j + 1}) \cdots (x_j - x_k)} \text{(用数学归纳法证明)} ] [f[x0,x1,…,xk]=j=0∑k(xj−x0)⋯(xj−xj−1)(xj−xj+1)⋯(xj−xk)f(xj)(用数学归纳法证明)] -
对称性
差商具有对称性,即
[ f [ x 0 , x 1 , … , x k ] = f [ x 1 , x 0 , x 2 , … , x k ] = ⋯ = f [ x 1 , … , x k , x 0 ] ] [ f[x_0, x_1, \ldots, x_k] = f[x_1, x_0, x_2, \ldots, x_k] = \cdots = f[x_1, \ldots, x_k, x_0] ] [f[x0,x1,…,xk]=f[x1,x0,x2,…,xk]=⋯=f[x1,…,xk,x0]] -
与导数的关系
若函数 f ( x ) f(x) f(x) 在区间 [ a , b ] [a, b] [a,b] 上有 n n n 阶导数,且节点 x i ∈ [ a , b ] x_i \in [a, b] xi∈[a,b]( i = 0 , 1 , … , n i = 0, 1, \ldots, n i=0,1,…,n),则 n n n 阶差商与 n n n 阶导数有如下关系式:
[ f [ x 0 , x 1 , … , x n ] = f ( n ) ( ξ ) n ! ] [ f[x_0, x_1, \ldots, x_n] = \frac{f^{(n)}(\xi)}{n!} ] [f[x0,x1,…,xn]=n!f(n)(ξ)]
其中 ξ ∈ [ a , b ] \xi \in [a, b] ξ∈[a,b]。 -
多项式性质
若 f ( x ) f(x) f(x) 是 n n n 次多项式,则其 k k k 阶差商 f [ x 0 , x 1 , … , x k − 1 , x ] f[x_0, x_1, \ldots, x_{k - 1}, x] f[x0,x1,…,xk−1,x] 当 k ≤ n k \leq n k≤n 时是一个 n − k n - k n−k 次多项式,而当 k > n k > n k>n 时恒为零。
差商表
x i x_i xi | f ( x i ) f(x_i) f(xi) | 一阶差商 | 二阶差商 | 三阶差商 |
---|---|---|---|---|
x 0 x_0 x0 | f ( x 0 ) f(x_0) f(x0) | |||
x 1 x_1 x1 | f ( x 1 ) f(x_1) f(x1) | f [ x 0 , x 1 ] f[x_0, x_1] f[x0,x1] | ||
x 2 x_2 x2 | f ( x 2 ) f(x_2) f(x2) | f [ x 1 , x 2 ] f[x_1, x_2] f[x1,x2] | f [ x 0 , x 1 , x 2 ] f[x_0, x_1, x_2] f[x0,x1,x2] | |
x 3 x_3 x3 | f ( x 3 ) f(x_3) f(x3) | f [ x 2 , x 3 ] f[x_2, x_3] f[x2,x3] | f [ x 1 , x 2 , x 3 ] f[x_1, x_2, x_3] f[x1,x2,x3] | f [ x 0 , x 1 , x 2 , x 3 ] f[x_0, x_1, x_2, x_3] f[x0,x1,x2,x3] |
牛顿插值
Newton 插值是通过选取特殊的基函数来实现的,这时,取
[
φ
0
(
x
)
=
1
]
[ \varphi_0(x) = 1 ]
[φ0(x)=1]
[
φ
i
+
1
(
x
)
=
(
x
−
x
i
)
φ
i
(
x
)
,
i
=
0
,
1
,
…
,
n
−
1
]
[ \varphi_{i + 1}(x) = (x - x_i)\varphi_i(x), \quad i = 0, 1, \ldots, n - 1 ]
[φi+1(x)=(x−xi)φi(x),i=0,1,…,n−1]
作为 Newton 插值的以
x
0
,
x
1
,
…
,
x
n
x_0, x_1, \ldots, x_n
x0,x1,…,xn 为节点的基函数,而次数不超过
n
n
n 的多项式
N
n
(
x
)
N_n(x)
Nn(x) 可表示为
[
N
n
(
x
)
=
c
0
+
c
1
(
x
−
x
0
)
+
c
2
(
x
−
x
0
)
(
x
−
x
1
)
+
⋯
+
c
n
(
x
−
x
0
)
(
x
−
x
1
)
⋯
(
x
−
x
n
−
1
)
]
[ N_n(x) = c_0 + c_1(x - x_0) + c_2(x - x_0)(x - x_1) + \cdots + c_n(x - x_0)(x - x_1)\cdots(x - x_{n - 1}) ]
[Nn(x)=c0+c1(x−x0)+c2(x−x0)(x−x1)+⋯+cn(x−x0)(x−x1)⋯(x−xn−1)]
其中
c
0
,
c
1
,
…
,
c
n
c_0, c_1, \ldots, c_n
c0,c1,…,cn 是待定系数。
下面推导待定系数:
f
(
x
0
)
=
N
n
(
x
0
)
=
c
0
f(x_0) = N_n(x_0) = c_0
f(x0)=Nn(x0)=c0
f ( x 1 ) = N n ( x 1 ) = c 0 + c 1 ( x 1 − x 0 ) = f ( x 0 ) + c 1 ( x 1 − x 0 ) f(x_1) = N_n(x_1) = c_0 + c_1(x_1 - x_0) = f(x_0) + c_1(x_1 - x_0) f(x1)=Nn(x1)=c0+c1(x1−x0)=f(x0)+c1(x1−x0)
c 1 = f ( x 1 ) − f ( x 0 ) x 1 − x 0 = f [ x 0 , x 1 ] c_1 = \frac{f(x_1) - f(x_0)}{x_1 - x_0} = f[x_0, x_1] c1=x1−x0f(x1)−f(x0)=f[x0,x1]
通过插值条件运用数学归纳法可以求得:
c
k
=
f
[
x
0
,
x
1
,
…
,
x
k
]
c_k = f[x_0, x_1, \ldots, x_k]
ck=f[x0,x1,…,xk]
因此,得到满足插值条件的
n
n
n 次插值多项式:
N
n
(
x
)
=
c
0
+
c
1
(
x
−
x
0
)
+
c
2
(
x
−
x
0
)
(
x
−
x
1
)
+
⋯
+
c
n
(
x
−
x
0
)
⋯
(
x
−
x
n
−
1
)
N_n(x) = c_0 + c_1(x - x_0) + c_2(x - x_0)(x - x_1) + \cdots + c_n(x - x_0)\cdots(x - x_{n-1})
Nn(x)=c0+c1(x−x0)+c2(x−x0)(x−x1)+⋯+cn(x−x0)⋯(x−xn−1)
余项的推导
f
(
x
)
=
f
(
x
0
)
+
(
x
−
x
0
)
f
[
x
,
x
0
]
(1)
f(x) = f(x_0) + (x - x_0)f[x, x_0] \quad \text{(1)}
f(x)=f(x0)+(x−x0)f[x,x0](1)
f [ x , x 0 ] = f [ x 0 , x 1 ] + ( x − x 1 ) f [ x , x 0 , x 1 ] (2) f[x, x_0] = f[x_0, x_1] + (x - x_1)f[x, x_0, x_1] \quad \text{(2)} f[x,x0]=f[x0,x1]+(x−x1)f[x,x0,x1](2)
⋮ \vdots ⋮
f [ x , x 0 , … , x n − 1 ] = f [ x 0 , … , x n ] + ( x − x n ) f [ x , x 0 , … , x n ] (n-1) f[x, x_0, \ldots, x_{n-1}] = f[x_0, \ldots, x_n] + (x - x_n)f[x, x_0, \ldots, x_n] \quad \text{(n-1)} f[x,x0,…,xn−1]=f[x0,…,xn]+(x−xn)f[x,x0,…,xn](n-1)
将上述等式依次代入并累加:
(1)
+
(
x
−
x
0
)
×
(2)
+
⋯
+
(
x
−
x
0
)
⋯
(
x
−
x
n
−
1
)
×
(n-1)
\text{(1)} + (x - x_0) \times \text{(2)} + \cdots + (x - x_0)\cdots(x - x_{n-1}) \times \text{(n-1)}
(1)+(x−x0)×(2)+⋯+(x−x0)⋯(x−xn−1)×(n-1)
最终得到:
f
(
x
)
=
f
(
x
0
)
+
f
[
x
0
,
x
1
]
(
x
−
x
0
)
+
f
[
x
0
,
x
1
,
x
2
]
(
x
−
x
0
)
(
x
−
x
1
)
+
⋯
+
f
[
x
0
,
…
,
x
n
]
(
x
−
x
0
)
⋯
(
x
−
x
n
−
1
)
+
f
[
x
,
x
0
,
⋯
,
x
n
]
(
x
−
x
0
)
⋯
(
x
−
x
n
−
1
)
(
x
−
x
n
)
f(x) = f(x_0) + f[x_0, x_1](x - x_0) + f[x_0, x_1, x_2](x - x_0)(x - x_1) + \cdots + f[x_0, \ldots, x_n](x - x_0)\cdots(x - x_{n-1}) + f[x, x_0, \cdots, x_n](x - x_0)\cdots(x - x_{n-1})(x - x_n)
f(x)=f(x0)+f[x0,x1](x−x0)+f[x0,x1,x2](x−x0)(x−x1)+⋯+f[x0,…,xn](x−x0)⋯(x−xn−1)+f[x,x0,⋯,xn](x−x0)⋯(x−xn−1)(x−xn)
c i = f [ x 0 , … , x i ] c_i = f[x_0, \ldots, x_i] ci=f[x0,…,xi]
R n ( x ) = f [ x , x 0 , … , x n ] ( x − x 0 ) ⋯ ( x − x n − 1 ) ( x − x n ) = f [ x , x 0 , … , x n ] ω n + 1 ( x ) R_n(x) = f[x, x_0, \ldots, x_n](x - x_0)\cdots(x - x_{n-1})(x - x_n) = f[x, x_0, \ldots, x_n]\omega_{n+1}(x) Rn(x)=f[x,x0,…,xn](x−x0)⋯(x−xn−1)(x−xn)=f[x,x0,…,xn]ωn+1(x)
ω n + 1 ( x ) = ( x − x 0 ) ( x − x 1 ) ⋯ ( x − x n ) \omega_{n+1}(x) = (x - x_0)(x - x_1)\cdots(x - x_n) ωn+1(x)=(x−x0)(x−x1)⋯(x−xn)
注:
由插值多项式的唯一性可知
N
n
(
x
)
≡
L
n
(
x
)
N_n(x) \equiv L_n(x)
Nn(x)≡Ln(x),故其余项也相同,即:
f
[
x
,
x
0
,
…
,
x
n
]
ω
n
+
1
(
x
)
=
f
(
n
+
1
)
(
ξ
x
)
(
n
+
1
)
!
ω
n
+
1
(
x
)
f[x, x_0, \ldots, x_n] \omega_{n+1}(x) = \frac{f^{(n+1)}(\xi_x)}{(n+1)!} \omega_{n+1}(x)
f[x,x0,…,xn]ωn+1(x)=(n+1)!f(n+1)(ξx)ωn+1(x)
进一步可得差商与导数的关系:
f
[
x
0
,
…
,
x
k
]
=
f
(
k
)
(
ξ
)
k
!
,
ξ
∈
(
x
min
,
x
max
)
f[x_0, \ldots, x_k] = \frac{f^{(k)}(\xi)}{k!}, \quad \xi \in (x_{\min}, x_{\max})
f[x0,…,xk]=k!f(k)(ξ),ξ∈(xmin,xmax)
差分形式的牛顿插值公式
节点等距分布条件:
当节点满足等距分布时:
[
x
i
=
x
0
+
i
h
(
i
=
0
,
…
,
n
)
]
[ x_i = x_0 + ih \quad (i = 0, \ldots, n) ]
[xi=x0+ih(i=0,…,n)]
向前差分
[
Δ
f
i
=
f
i
+
1
−
f
i
]
[ \Delta f_i = f_{i+1} - f_i ]
[Δfi=fi+1−fi]
[
Δ
k
f
i
=
Δ
(
Δ
k
−
1
f
i
)
=
Δ
k
−
1
f
i
+
1
−
Δ
k
−
1
f
i
]
[ \Delta^k f_i = \Delta(\Delta^{k-1}f_i) = \Delta^{k-1}f_{i+1} - \Delta^{k-1}f_i ]
[Δkfi=Δ(Δk−1fi)=Δk−1fi+1−Δk−1fi]
向后差分
[
∇
f
i
=
f
i
−
f
i
−
1
]
[ \nabla f_i = f_i - f_{i-1} ]
[∇fi=fi−fi−1]
[
∇
k
f
i
=
∇
(
∇
k
−
1
f
i
)
=
∇
k
−
1
f
i
−
∇
k
−
1
f
i
−
1
]
[ \nabla^k f_i = \nabla(\nabla^{k-1}f_i) = \nabla^{k-1}f_i - \nabla^{k-1}f_{i-1} ]
[∇kfi=∇(∇k−1fi)=∇k−1fi−∇k−1fi−1]
中心差分
[
δ
f
i
=
f
i
+
1
2
−
f
i
−
1
2
其中
f
i
±
1
2
=
f
(
x
i
±
h
2
)
]
[ \delta f_i = f_{i+\frac{1}{2}} - f_{i-\frac{1}{2}} \quad \text{其中} \quad f_{i\pm\frac{1}{2}} = f\left(x_i \pm \frac{h}{2}\right) ]
[δfi=fi+21−fi−21其中fi±21=f(xi±2h)]
[
δ
k
f
i
=
δ
k
−
1
f
i
+
1
2
−
δ
k
−
1
f
i
−
1
2
]
[ \delta^k f_i = \delta^{k-1}f_{i+\frac{1}{2}} - \delta^{k-1}f_{i-\frac{1}{2}} ]
[δkfi=δk−1fi+21−δk−1fi−21]
差分的重要性质:
-
差分可由函数值计算
[ Δ n f k = ∑ j = 0 n ( − 1 ) j ( n j ) f n + k − j ] [ \Delta^n f_k = \sum_{j=0}^n (-1)^{j} \binom{n}{j} f_{n+k-j} ] [Δnfk=j=0∑n(−1)j(jn)fn+k−j]
[ ∇ n f k = ∑ j = 0 n ( − 1 ) n − j ( n j ) f k + j − n ] [ \nabla^n f_k = \sum_{j=0}^n (-1)^{n-j} \binom{n}{j} f_{k+j-n} ] [∇nfk=j=0∑n(−1)n−j(jn)fk+j−n]
其中:- ( n j ) = n ( n − 1 ) ⋯ ( n − j + 1 ) j ! \binom{n}{j} = \frac{n(n-1)\cdots(n-j+1)}{j!} (jn)=j!n(n−1)⋯(n−j+1) 是二项式系数。
-
函数值可由差分值算出
[ f n + k = ∑ j = 0 n ( n j ) Δ j f k ] [ f_{n+k} = \sum_{j=0}^n \binom{n}{j} \Delta^j f_k ] [fn+k=j=0∑n(jn)Δjfk] -
差商和差分的关系
[ f [ x k , x k + 1 , … , x k + m ] = 1 m ! h m Δ m f k ] [ f[x_k, x_{k+1}, \ldots, x_{k+m}] = \frac{1}{m! h^m} \Delta^m f_k ] [f[xk,xk+1,…,xk+m]=m!hm1Δmfk]
[ f [ x k , x k − 1 , … , x k − m ] = 1 m ! h m ∇ m f k ] [ f[x_k, x_{k-1}, \ldots, x_{k-m}] = \frac{1}{m! h^m} \nabla^m f_k ] [f[xk,xk−1,…,xk−m]=m!hm1∇mfk] -
差分与导数的关系
[ Δ n f k = h n f ( n ) ( ξ ) , ξ ∈ ( x k , x k + n ) ] [ \Delta^n f_k = h^n f^{(n)}(\xi), \quad \xi \in (x_k, x_{k+n}) ] [Δnfk=hnf(n)(ξ),ξ∈(xk,xk+n)]
牛顿公式:
[
N
n
(
x
)
=
f
(
x
0
)
+
f
[
x
0
,
x
1
]
(
x
−
x
0
)
+
⋯
+
f
[
x
0
,
…
,
x
n
]
(
x
−
x
0
)
⋯
(
x
−
x
n
−
1
)
]
[ N_n(x) = f(x_0) + f[x_0, x_1](x - x_0) + \cdots + f[x_0, \ldots, x_n](x - x_0)\cdots(x - x_{n-1}) ]
[Nn(x)=f(x0)+f[x0,x1](x−x0)+⋯+f[x0,…,xn](x−x0)⋯(x−xn−1)]
牛顿前插公式:
设
x
=
x
0
+
t
h
x = x_0 + th
x=x0+th(
0
≤
t
≤
1
0 \leq t \leq 1
0≤t≤1),则
[
N
n
(
x
)
=
N
n
(
x
0
+
t
h
)
=
∑
k
=
0
n
(
t
k
)
Δ
k
f
(
x
0
)
]
[ N_n(x) = N_n(x_0 + th) = \sum_{k=0}^{n} \binom{t}{k} \Delta^k f(x_0) ]
[Nn(x)=Nn(x0+th)=k=0∑n(kt)Δkf(x0)]
余项:
[
R
n
(
x
)
=
f
(
n
+
1
)
(
ξ
)
(
n
+
1
)
!
t
(
t
−
1
)
⋯
(
t
−
n
)
h
n
+
1
,
ξ
∈
(
x
0
,
x
n
)
]
[ R_n(x) = \frac{f^{(n+1)}(\xi)}{(n+1)!} t(t-1)\cdots(t-n) h^{n+1}, \quad \xi \in (x_0, x_n) ]
[Rn(x)=(n+1)!f(n+1)(ξ)t(t−1)⋯(t−n)hn+1,ξ∈(x0,xn)]
牛顿后插公式:
将节点顺序倒置:
[
N
n
(
x
)
=
f
(
x
n
)
+
f
[
x
n
,
x
n
−
1
]
(
x
−
x
n
)
+
⋯
+
f
[
x
n
,
…
,
x
0
]
(
x
−
x
n
)
⋯
(
x
−
x
1
)
]
[ N_n(x) = f(x_n) + f[x_n, x_{n-1}](x - x_n) + \cdots + f[x_n, \ldots, x_0](x - x_n)\cdots(x - x_1) ]
[Nn(x)=f(xn)+f[xn,xn−1](x−xn)+⋯+f[xn,…,x0](x−xn)⋯(x−x1)]
设
x
=
x
n
+
t
h
x = x_n + th
x=xn+th(
−
1
≤
t
≤
0
-1 \leq t \leq 0
−1≤t≤0),则
[
N
n
(
x
)
=
N
n
(
x
n
+
t
h
)
=
∑
k
=
0
n
(
−
1
)
k
(
−
t
k
)
∇
k
f
(
x
n
)
]
[ N_n(x) = N_n(x_n + th) = \sum_{k=0}^{n} (-1)^k \binom{-t}{k} \nabla^k f(x_n) ]
[Nn(x)=Nn(xn+th)=k=0∑n(−1)k(k−t)∇kf(xn)]
余项:
[
R
n
(
x
)
=
f
(
n
+
1
)
(
ξ
)
(
n
+
1
)
!
t
(
t
+
1
)
⋯
(
t
+
n
)
h
n
+
1
,
ξ
∈
(
x
0
,
x
n
)
]
[ R_n(x) = \frac{f^{(n+1)}(\xi)}{(n+1)!} t(t+1)\cdots(t+n) h^{n+1}, \quad \xi \in (x_0, x_n) ]
[Rn(x)=(n+1)!f(n+1)(ξ)t(t+1)⋯(t+n)hn+1,ξ∈(x0,xn)]
注: 一般当 x x x 靠近 x 0 x_0 x0 时用前插,靠近 x n x_n xn 时用后插,故两种公式亦称为表初公式和表末公式。
差分表