前言
设函数
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<....<x_n\leq b
a≤x0<x1<....<xn≤b上的值
y
0
,
y
1
.
.
.
y
n
y_0,y_1...y_n
y0,y1...yn,若存在一简单函数
P
(
x
)
P(x)
P(x),使
P
(
x
i
)
=
y
i
,
i
=
0
,
1
,
.
.
.
n
P(x_i)=y_i,i=0,1,...n
P(xi)=yi,i=0,1,...n,则称
P
(
X
)
P(X)
P(X)为
f
(
x
)
f(x)
f(x)的插值函数,
x
0
,
x
1
.
.
.
x
n
x_0,x_1...x_n
x0,x1...xn为插值节点
P
(
x
)
=
a
0
+
a
1
x
1
+
a
2
x
2
+
.
.
.
.
.
+
a
n
x
n
P(x)=a_0+a_1x_1+a_2x_2+.....+a_nx_n
P(x)=a0+a1x1+a2x2+.....+anxn, 且
a
i
a_i
ai为实数,就称
P
(
x
)
P(x)
P(x)为插值多项式,满足条件
P
(
x
i
)
=
y
i
,
i
=
0
,
1
,
.
.
.
n
P(x_i)=y_i,i=0,1,...n
P(xi)=yi,i=0,1,...n的插值多项式存在且唯一,拉格朗日插值和牛顿插值形式不同,余项是相等的。
一、拉格朗日插值
(1)通用步骤:
(已知n+1个插值节点
x
0
,
x
1
.
.
.
x
n
x_0,x_1...x_n
x0,x1...xn和其对应的函数值
y
0
,
y
1
.
.
.
y
n
y_0,y_1...y_n
y0,y1...yn )
步骤 | 操作 |
---|---|
计算 ω n + 1 ( x ) \omega_{n+1}(x) ωn+1(x) | ω n + 1 ( x ) = ∏ i = 0 n ( x − x i ) \omega_{n+1}(x)=\prod_{i=0}^n (x-x_i) ωn+1(x)=∏i=0n(x−xi) |
计算插值基函数 l k ( x ) l_k(x) lk(x) | l k ( x ) = ( x − x 0 ) . . . ( x − x k − 1 ) ( x − x k + 1 ) . . . ( x − x n ) ( x k − x 0 ) . . . ( x k − x k − 1 ) ( x k − x k + 1 ) . . . ( x k − x n ) = ω n + 1 ( x ) ( x − x k ) ω n + 1 ′ ( x k ) k = 0 , 1 , . . . n l_k(x)=\frac{(x-x_0)...(x-x_{k-1})(x-x_{k+1})...(x-x_n)}{(x_k-x_0)...(x_k-x_{k-1})(x_k-x_{k+1})...(x_k-x_n)}=\frac{\omega_{n+1}(x)}{(x-x_k)\omega^{'}_{n+1}(x_k)} k=0,1,...n lk(x)=(xk−x0)...(xk−xk−1)(xk−xk+1)...(xk−xn)(x−x0)...(x−xk−1)(x−xk+1)...(x−xn)=(x−xk)ωn+1′(xk)ωn+1(x)k=0,1,...n |
计算 L a g r a n g e Lagrange Lagrange多项式 L n ( x ) L_n(x) Ln(x) | L n ( x ) = ∑ k = 0 n y k l k ( x ) L_n(x)=\sum_{k=0}^ny_kl_k(x) Ln(x)=∑k=0nyklk(x) |
计算插值余项 R n ( x ) R_n ( x ) Rn(x) | R n ( x ) = f ( x ) − L n ( 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) Rn(x)=f(x)−Ln(x)=(n+1)!f(n+1)(ξ)ωn+1(x) |
截断误差限 | M n + 1 = m a x a < x < b ∣ f n + 1 ( x ) ∣ M_{n+1}=max_{a<x<b}\lvert f^{n+1}(x)\rvert Mn+1=maxa<x<b∣fn+1(x)∣; R n ( x ) ≤ M n + 1 ( n + 1 ) ! ω n + 1 ( x ) R_n ( x )\leq \frac{M_{n+1}}{(n+1)!}\omega_{n+1}(x) Rn(x)≤(n+1)!Mn+1ωn+1(x) |
(2)分段线性插值
通过插值点用折线段连接起来逼近
f
(
x
)
f(x)
f(x),已知n+1个插值节点
x
0
,
x
1
.
.
.
x
n
x_0,x_1...x_n
x0,x1...xn和其对应的函数值
y
0
,
y
1
.
.
.
y
n
y_0,y_1...y_n
y0,y1...yn,记
h
k
=
x
k
+
1
−
x
k
,
h
=
m
a
x
h
k
h_k=x_{k+1}-x_{k},h=maxh_k
hk=xk+1−xk,h=maxhk,折线函数
I
h
(
x
)
I_h(x)
Ih(x)满足:
(1)
I
h
(
x
)
∈
C
[
a
,
b
]
I_h(x)\in C[a,b]
Ih(x)∈C[a,b]
(2)
I
h
(
x
k
)
=
f
k
;
(
k
=
0
,
1
,
2...
n
)
I_h(x_k)=f_k ;(k=0,1,2...n)
Ih(xk)=fk;(k=0,1,2...n)
(3)
I
h
(
x
)
I_h(x)
Ih(x)在每个小区间
[
x
k
,
x
k
+
1
]
[x_k,x_{k+1}]
[xk,xk+1]上是线性函数
表达式 | 余项 |
---|---|
I h ( x ) = x − x k + 1 x k − x k + 1 f k + x − x k x k + 1 − x k f k + 1 I_h(x)=\frac{x-x_{k+1}}{x_{k}-x_{k+1}}f_k+\frac{x-x_{k}}{x_{k+1}-x_{k}}f_{k+1} Ih(x)=xk−xk+1x−xk+1fk+xk+1−xkx−xkfk+1, x k ≤ x ≤ x k + 1 x_{k}\leq x\leq x_{k+1} xk≤x≤xk+1,k=0,1,…,n-1 | R n ( x ) = f ( x ) − I h ( x ) ≤ M 2 2 m a x ( x − x k ) ( x − x k + 1 ) R_n ( x )=f(x)-I_h(x)\leq \frac{M_2}{2} max(x-x_k)(x-x_{k+1}) Rn(x)=f(x)−Ih(x)≤2M2max(x−xk)(x−xk+1) ≤ M 2 8 h 2 \leq \frac{M_2}{8}h^2 ≤8M2h2,其中 M 2 = m a x ∣ f ′ ′ ( x ) ∣ M_2=max\lvert f^{''}(x)\rvert M2=max∣f′′(x)∣ |
二、均差与牛顿插值多项式
1.插值多项式的逐次生成
拉格朗日插值在节点增减时会计算要重新进行,为了计算方便重新设计了一种逐次生成插值多项式的方法,即牛顿插值 P n ( X ) P_n(X) Pn(X)
n
=
0
n=0
n=0,一个节点的0次插值
P
0
(
X
)
=
f
(
x
0
)
P_0(X)=f(x_0)
P0(X)=f(x0)
n
=
1
n=1
n=1,两个节点的一次插值,
f
[
x
0
,
x
1
]
(
x
−
x
0
)
f[x_0,x_1](x-x_0)
f[x0,x1](x−x0)可以看作是对0次插值
P
0
(
X
)
=
f
(
x
0
)
P_0(X)=f(x_0)
P0(X)=f(x0)的修正
P
1
(
X
)
=
f
(
x
0
)
+
f
[
x
0
,
x
1
]
(
x
−
x
0
)
,
将
节
点
带
入
解
得
f
[
x
0
,
x
1
]
=
f
(
x
1
)
−
f
(
x
0
)
x
1
−
x
0
P_1(X)=f(x_0)+f[x_0,x_1](x-x_0),将节点带入解得f[x_0,x_1]= \frac{f(x_1)-f(x_0)}{x_1-x_0}
P1(X)=f(x0)+f[x0,x1](x−x0),将节点带入解得f[x0,x1]=x1−x0f(x1)−f(x0)
n
=
2
n=2
n=2,三个节点的二次插值
P
2
(
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
1
,
x
2
]
=
f
[
x
0
,
x
1
]
−
f
[
x
1
,
x
2
]
x
0
−
x
2
P_2(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_1,x_2]= \frac{f[x_0,x_1]-f[x_1,x_2]}{x_0-x_2}
P2(X)=f(x0)+f[x0,x1](x−x0)+f[x0,x1,x2](x−x0)(x−x1),将节点带入解得f[x0,x1,x2]=x0−x2f[x0,x1]−f[x1,x2]
…
规律总结,n个节点的n次插值多项式
P
2
(
X
)
=
f
(
x
0
)
+
f
[
x
0
,
x
1
]
(
x
−
x
0
)
+
.
.
.
+
f
[
x
0
,
x
1
,
.
.
.
,
x
n
]
(
x
−
x
0
)
(
x
−
x
1
)
.
.
.
(
x
−
x
n
−
1
)
P_2(X)=f(x_0)+f[x_0,x_1](x-x_0)+...+f[x_0,x_1,...,x_n](x-x_0)(x-x_1)...(x-x_{n-1})
P2(X)=f(x0)+f[x0,x1](x−x0)+...+f[x0,x1,...,xn](x−x0)(x−x1)...(x−xn−1)
2.差商及其性质
定义:k阶均差
f
[
x
0
,
x
1
,
.
.
.
,
x
k
]
=
f
[
x
0
,
x
1
,
.
.
.
,
x
k
−
2
,
x
k
]
−
f
[
x
0
,
x
1
,
.
.
.
,
x
k
−
2
,
x
k
−
1
]
x
k
−
x
k
−
1
f[x_0,x_1,...,x_k]=\frac{f[x_0,x_1,...,x_{k-2},x_{k}]-f[x_0,x_1,...,x_{k-2},x_{k-1}]}{x_k-x_{k-1}}
f[x0,x1,...,xk]=xk−xk−1f[x0,x1,...,xk−2,xk]−f[x0,x1,...,xk−2,xk−1]
基本性质:
(1)k阶均差可表示为函数值
f
(
x
0
)
,
f
(
x
1
)
,
f
(
x
2
)
.
.
.
.
.
f
(
x
k
)
f(x_0),f(x_1),f(x_2).....f(x_k)
f(x0),f(x1),f(x2).....f(xk)的线性组合,均差的值与节点的排列次序无关,即
f
[
x
0
,
x
1
,
.
.
.
,
x
k
]
=
f
[
x
1
,
x
0
,
.
.
.
,
x
k
]
=
.
.
.
=
f
[
x
k
,
x
1
,
.
.
.
,
x
0
]
f[x_0,x_1,...,x_k]=f[x_1,x_0,...,x_k]=...=f[x_k,x_1,...,x_0]
f[x0,x1,...,xk]=f[x1,x0,...,xk]=...=f[xk,x1,...,x0],k阶均差的定义等式右边可以变换
(2)若
f
(
x
)
f(x)
f(x)在[a,b]上存在n阶导数,已知有n个节点
x
0
,
x
1
,
x
2
,
.
.
.
,
x
n
∈
[
a
,
b
]
x_0,x_1,x_2,...,x_n\in[a,b]
x0,x1,x2,...,xn∈[a,b],n阶均差与导数的关系为
f
[
x
1
,
x
0
,
.
.
.
,
x
n
]
=
f
(
n
)
(
ξ
)
n
!
,
ξ
∈
[
a
,
b
]
f[x_1,x_0,...,x_n]=\frac{f^{(n)}(\xi)}{n!},\xi\in[a,b]
f[x1,x0,...,xn]=n!f(n)(ξ),ξ∈[a,b]
(3)差商表
3.差分
定义:在实际情况中,经常会用等距节点进行插值,即
x
k
=
x
0
+
k
h
x_k=x_0+kh
xk=x0+kh的情形,这里h称为步长,此时插值公式可以得到简化,设
x
k
x_k
xk点的函数值为
f
k
=
f
(
x
k
)
(
k
=
0
,
1
,
2....
n
)
f_k=f(x_k)(k=0,1,2....n)
fk=f(xk)(k=0,1,2....n),称
Δ
f
k
=
f
k
+
1
−
f
k
\Delta f_k=f_{k+1}-f_k
Δfk=fk+1−fk为
x
k
x_k
xk处以h为步长的一阶(向前)差分,类似称
Δ
2
f
k
=
Δ
f
k
+
1
−
Δ
f
k
\Delta ^2 f_k=\Delta f_{k+1}-\Delta f_k
Δ2fk=Δfk+1−Δfk为
x
k
x_k
xk处的二阶差分。
Δ
n
f
k
=
Δ
n
−
1
f
k
+
1
−
Δ
n
−
1
f
k
\Delta ^n f_k=\Delta^{n-1} f_{k+1}-\Delta^{n-1} f_k
Δnfk=Δn−1fk+1−Δn−1fk
差分与差商的关系:
f
[
x
k
,
.
.
.
.
,
x
k
+
m
]
=
1
m
!
1
h
m
Δ
m
f
k
,
m
=
1
,
2...
n
f[x_k,....,x_{k+m}]=\frac{1}{m!}\frac{1}{h^m}\Delta ^m f_k,m=1,2...n
f[xk,....,xk+m]=m!1hm1Δmfk,m=1,2...n
差分与导数的关系:
Δ
n
f
k
=
h
n
f
n
(
ξ
)
,
其
中
ξ
∈
(
x
k
,
x
k
+
1
)
\Delta ^n f_k=h^nf^n(\xi),其中\xi\in(x_k,x_{k+1})
Δnfk=hnfn(ξ),其中ξ∈(xk,xk+1)
牛顿前插公式
P
n
(
x
0
+
t
h
)
=
f
0
+
t
Δ
f
0
+
t
(
t
−
1
)
2
!
Δ
2
f
0
+
.
.
.
.
+
t
(
t
−
1
)
.
.
.
(
t
−
n
+
1
)
n
!
Δ
n
f
0
P_{n}(x_0+th)=f_0+t\Delta f_0+\frac{t(t-1)}{2!}\Delta^2 f_0+....+\frac{t(t-1)...(t-n+1)}{n!}\Delta^n f_0
Pn(x0+th)=f0+tΔf0+2!t(t−1)Δ2f0+....+n!t(t−1)...(t−n+1)Δnf0
插值节点
x
0
,
x
0
+
h
,
x
0
+
2
h
,
.
.
.
.
.
.
,
x
0
+
n
h
x_0,x_0+h,x_0+2h,......,x_0+nh
x0,x0+h,x0+2h,......,x0+nh求
f
(
x
0
+
t
h
)
f(x_0+th)
f(x0+th),t一般不是整数,且
t
∈
[
0
,
n
]
t\in[0,n]
t∈[0,n],才可得其余项得计算公式。
4.牛顿插值的极限形式
设
f
∈
C
n
[
a
,
b
]
,
x
0
,
x
1
,
.
.
.
.
,
x
n
f\in C^n[a,b],x_0,x_1,....,x_n
f∈Cn[a,b],x0,x1,....,xn为
[
a
,
b
]
[a,b]
[a,b]上相异的节点,则
f
[
x
0
,
x
1
,
.
.
.
.
,
x
n
]
f[x_0,x_1,....,x_n]
f[x0,x1,....,xn]是其变量连续的函数,如果
[
a
,
b
]
[a,b]
[a,b]上的节点互异,根据均差的定义,若
f
∈
C
1
[
a
,
b
]
f\in C^1[a,b]
f∈C1[a,b],则有
lim
x
→
x
0
f
[
x
0
,
x
]
=
lim
x
→
x
0
f
(
x
)
−
f
(
x
0
)
x
−
x
0
=
f
′
(
x
0
)
\lim_{x\to\ {x_0}} f[x_0,x]=\lim_{x\to\ {x_0}} \frac{f(x)-f(x_0)}{x-x_0} = f^{'}(x_0)
x→ x0limf[x0,x]=x→ x0limx−x0f(x)−f(x0)=f′(x0)
一般的可定义n重节点的均差
f
[
x
0
,
x
0
,
x
0
.
.
.
.
x
0
]
=
lim
x
i
→
x
0
f
[
x
0
,
x
1
,
.
.
.
.
,
x
n
]
=
1
n
!
f
(
n
)
(
x
0
)
f[x_0,x_0,x_0....x_0]=\lim_{x_i\to\ {x_0}}f[x_0,x_1,....,x_n]= \frac{1}{n!} f^{(n)}(x_0)
f[x0,x0,x0....x0]=xi→ x0limf[x0,x1,....,xn]=n!1f(n)(x0)
在牛顿插值多项式中,若令
x
i
→
x
0
(
i
=
1
,
2
,
3
,
4....
n
)
x_i\to x_0(i=1,2,3,4....n)
xi→x0(i=1,2,3,4....n),可得泰勒多项式
P
n
(
x
)
=
f
(
x
0
)
+
f
′
(
x
0
)
(
x
−
x
0
)
+
.
.
.
+
f
(
n
)
(
x
0
)
n
!
(
x
−
x
0
)
n
P_n(x)=f(x_0)+f^{'}(x_0)(x-x_0)+...+ \frac{ f^{(n)}(x_0)}{n!}(x-x_0)^n
Pn(x)=f(x0)+f′(x0)(x−x0)+...+n!f(n)(x0)(x−x0)n
二、插值余项与误差估计
插值余项
R
n
(
x
)
=
f
(
x
)
−
L
n
(
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)
Rn(x)=f(x)−Ln(x)=(n+1)!f(n+1)(ξ)ωn+1(x)
误差估计
∣
R
n
(
x
)
∣
≤
M
n
+
1
(
n
+
1
)
!
∣
ω
n
+
1
(
x
)
∣
,
M
n
+
1
=
m
a
x
a
<
x
<
b
∣
f
(
n
+
1
)
(
x
)
∣
|R_n ( x )|\leq \frac{M_{n+1}}{(n+1)!}|\omega_{n+1}(x)|,M_{n+1}=\underset{a<x<b}{max}\lvert f^{(n+1)}(x)\rvert
∣Rn(x)∣≤(n+1)!Mn+1∣ωn+1(x)∣,Mn+1=a<x<bmax∣f(n+1)(x)∣