第三章 多项式与插值
3.1 Lagrange插值
插值基函数
KaTeX parse error: Expected 'EOF', got '&' at position 9: L_n(x)=&̲\sum\limits_{i=…
3.2 Newton插值
插值多项式
N
n
(
x
)
=
a
0
+
a
1
(
x
−
x
0
)
+
a
2
(
x
−
x
0
)
(
x
−
x
1
)
+
⋅
⋅
⋅
+
a
n
(
x
−
x
0
)
⋅
⋅
⋅
(
x
−
x
n
−
1
)
N_n(x)=a_0+a_1(x-x_0)+a_2(x-x_0)(x-x_1)+···+a_n(x-x_0)···(x-x_{n-1})
Nn(x)=a0+a1(x−x0)+a2(x−x0)(x−x1)+⋅⋅⋅+an(x−x0)⋅⋅⋅(x−xn−1)
当 x = x 0 , N n ( x 0 ) = a 0 = f ( x 0 ) 当 x = x 1 , N n ( x 1 ) = a 0 + a 1 ( x 1 − x 0 ) = f ( x 1 ) 则 a 1 = f ( x 1 ) − f ( x 0 ) x 1 − x 0 当 x = x 2 , N n ( x 2 ) = a 0 + a 1 ( x 1 − x 0 ) + a 2 ( x 2 − x 1 ) ( x 2 − x 0 ) = f ( x 2 ) 则 a 2 = ⋅ ⋅ ⋅ 当x=x_0,N_n(x_0)=a_0=f(x_0)\\ 当x=x_1,N_n(x_1)=a_0+a_1(x_1-x_0)=f(x_1)\\ 则a_1=\frac{f(x_1)-f(x_0)}{x_1-x_0}\\ 当x=x_2,N_n(x_2)=a_0+a_1(x_1-x_0)+a_2(x_2-x_1)(x_2-x_0)=f(x_2)\\ 则a_2=··· 当x=x0,Nn(x0)=a0=f(x0)当x=x1,Nn(x1)=a0+a1(x1−x0)=f(x1)则a1=x1−x0f(x1)−f(x0)当x=x2,Nn(x2)=a0+a1(x1−x0)+a2(x2−x1)(x2−x0)=f(x2)则a2=⋅⋅⋅
引入一些概念,方便 a i a_i ai的表示与研究
(1)均差
记 f [ x m ] = f ( x m ) f[x_m]=f(x_m) f[xm]=f(xm)为f的零阶均差
f [ x 0 , x m ] = f [ x m ] − f [ x 0 ] x m − x 0 f[x_0,x_m]=\frac{f[x_m]-f[x_0]}{x_m-x_0} f[x0,xm]=xm−x0f[xm]−f[x0]为函数关于点 x 0 , x m x_0,x_m x0,xm的一阶均差
记
k
k
k阶均差为:
f
[
x
0
,
⋅
⋅
⋅
,
x
k
−
1
,
x
m
]
=
f
[
x
0
,
⋅
⋅
⋅
,
x
k
−
2
,
x
m
]
−
f
[
x
0
,
x
1
,
⋅
⋅
⋅
,
x
k
−
1
]
x
m
−
x
k
−
1
f[x_0,···,x_{k-1},x_m]=\frac{f[x_0,···,x_{k-2},x_m]-f[x_0,x_1,···,x_{k-1}]}{x_m-x_{k-1}}
f[x0,⋅⋅⋅,xk−1,xm]=xm−xk−1f[x0,⋅⋅⋅,xk−2,xm]−f[x0,x1,⋅⋅⋅,xk−1]
由上面的论述有:
f
(
x
)
=
f
(
x
0
)
+
f
[
x
,
x
0
]
(
x
−
x
0
)
f
[
x
,
x
0
]
=
f
[
x
0
,
x
1
]
+
f
[
x
,
x
0
,
x
1
]
(
x
−
x
1
)
f
[
x
,
x
0
,
x
1
]
=
f
[
x
0
,
x
1
,
x
2
]
+
f
[
x
,
x
0
,
x
1
,
x
2
]
(
x
−
x
2
)
…
…
f(x)=f(x_0)+f[x,x_0](x-x_0)\\ f[x,x_0]=f[x_0,x_1]+f[x,x_0,x_1](x-x_1)\\ f[x,x_0,x_1]=f[x_0,x_1,x_2]+f[x,x_0,x_1,x_2](x-x_2)\\ ……
f(x)=f(x0)+f[x,x0](x−x0)f[x,x0]=f[x0,x1]+f[x,x0,x1](x−x1)f[x,x0,x1]=f[x0,x1,x2]+f[x,x0,x1,x2](x−x2)……
只要把后一式代入前一式,就得到:
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
1
,
⋅
⋅
⋅
,
x
n
]
(
x
−
x
0
)
(
x
−
x
1
)
⋅
⋅
⋅
(
x
−
x
n
−
1
)
+
f
[
x
,
x
0
,
x
1
,
⋅
⋅
⋅
,
x
n
]
w
n
+
1
(
x
)
=
N
n
(
x
)
+
R
n
(
x
)
\begin{align} 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_1,···,x_n](x-x_0)(x-x_1)···(x-x_{n-1})\\ +&f[x,x_0,x_1,···,x_n]w_{n+1}(x)=N_n(x)+R_n(x) \end{align}
f(x)=++f(x0)+f[x0,x1](x−x0)+f[x0,x1,x2](x−x0)(x−x1)+⋅⋅⋅+f[x0,x1,⋅⋅⋅,xn](x−x0)(x−x1)⋅⋅⋅(x−xn−1)f[x,x0,x1,⋅⋅⋅,xn]wn+1(x)=Nn(x)+Rn(x)
(2) 差分
设
f
k
=
f
(
x
k
)
,
x
k
=
x
0
+
k
h
f_k=f(x_k),x_k=x_0+kh
fk=f(xk),xk=x0+kh,
k
=
0
,
1
,
⋅
⋅
⋅
,
n
k=0,1,···,n
k=0,1,⋅⋅⋅,n记
△
f
k
=
f
k
+
1
−
f
k
▽
f
k
=
f
k
−
f
k
−
1
\triangle{f_k}=f_{k+1}-f_{k}\\ \triangledown{f_k}=f_k-f_{k-1}\\
△fk=fk+1−fk▽fk=fk−fk−1
分别称为
f
(
x
)
f(x)
f(x)在
x
k
x_k
xk处以
h
h
h为步长的一阶向前差分和一阶向后差分。
一般地,可定义 m m m阶向前差分及 m m m阶向后差分为:
△ m f k = △ m − 1 f k + 1 − △ m − 1 f k \triangle^{m}{f_k}=\triangle^{m-1}{f_{k+1}}-\triangle^{m-1}{f_k} △mfk=△m−1fk+1−△m−1fk
▽ m f k = ▽ m − 1 f k − ▽ m − 1 f k − 1 \triangledown^{m}{f_k}=\triangledown^{m-1}{f_{k}}-\triangledown^{m-1}{f_{k-1}} ▽mfk=▽m−1fk−▽m−1fk−1
均差与差分之间的关系:
f
[
x
k
,
x
k
+
1
]
=
f
k
+
1
−
f
k
x
k
+
1
−
x
k
=
△
f
k
h
f
[
x
k
,
x
k
+
1
,
x
k
+
2
]
=
f
[
x
k
+
1
,
x
k
+
2
]
−
f
[
x
k
,
x
k
+
1
]
x
k
+
2
−
x
k
=
1
2
h
2
△
2
f
k
f[x_k,x_{k+1}]=\frac{f_{k+1}-f_k}{x_{k+1}-x_k}=\frac{\triangle{f_k}}{h}\\ f[x_k,x_{k+1},x_{k+2}]=\frac{f[x_{k+1},x_{k+2}]-f[x_k,x_{k+1}]}{x_{k+2}-x_k}=\frac{1}{2h^2}\triangle^{2}{f_k}
f[xk,xk+1]=xk+1−xkfk+1−fk=h△fkf[xk,xk+1,xk+2]=xk+2−xkf[xk+1,xk+2]−f[xk,xk+1]=2h21△2fk
3.3 Hermite插值
给出节点 a ≤ x 0 < x 1 < ⋅ ⋅ ⋅ < x n ≤ b a\leq x_0 < x_1 <···<x_n \leq b a≤x0<x1<⋅⋅⋅<xn≤b,已知 f ( x i ) = f i f(x_i)=f_i f(xi)=fi, f ′ ( x i ) = m i f^{\prime}(x_i)=m_i f′(xi)=mi ( i = 0 , 1 , ⋅ ⋅ ⋅ ⋅ , n ) (i=0,1,····,n) (i=0,1,⋅⋅⋅⋅,n).
可取基函数表示为:
H
2
n
+
1
(
x
)
=
∑
i
=
0
n
[
a
i
(
x
)
f
i
+
b
i
(
x
)
m
i
]
H_{2n+1}(x)=\sum\limits_{i=0}^n\left[a_i(x)f_i+b_i(x)m_i\right]
H2n+1(x)=i=0∑n[ai(x)fi+bi(x)mi]
其中
a
i
(
x
)
a_i(x)
ai(x)及
b
i
(
x
)
b_i(x)
bi(x)满足如下条件:
$$
\begin{align}
a_i(x_k)=\delta_{ik}
=\begin{cases}
0,i\neq k \quad\
1,i=k\
\end{cases},
a_i^{\prime}(x_k)=0\
b_i(x_k)=0,b_i^{\prime}=\delta_{ik},\quad i,k=0,1,···,n
\end{align}
$$
当n=1时,有:
{
a
0
(
x
)
=
(
1
+
2
x
−
x
0
x
1
−
x
0
)
(
x
−
x
1
x
0
−
x
1
)
2
a
1
(
x
)
=
(
1
+
2
x
−
x
1
x
0
−
x
1
)
(
x
−
x
0
x
1
−
x
0
)
2
b
0
(
x
)
=
(
x
−
x
0
)
(
x
−
x
1
x
0
−
x
1
)
2
b
1
(
x
)
=
(
x
−
x
1
)
(
x
−
x
0
x
1
−
x
0
)
2
\begin{cases} a_0(x)=(1+2\frac{x-x_0}{x_1-x_0})(\frac{x-x_1}{x_0-x_1})^2\\ a_1(x)=(1+2\frac{x-x_1}{x_0-x_1})(\frac{x-x_0}{x_1-x_0})^2\\ b_0(x)=(x-x_0)(\frac{x-x_1}{x_0-x_1})^2\\ b_1(x)=(x-x_1)(\frac{x-x_0}{x_1-x_0})^2\\ \end{cases}
⎩
⎨
⎧a0(x)=(1+2x1−x0x−x0)(x0−x1x−x1)2a1(x)=(1+2x0−x1x−x1)(x1−x0x−x0)2b0(x)=(x−x0)(x0−x1x−x1)2b1(x)=(x−x1)(x1−x0x−x0)2
3.4 分段低次插值
龙格现象:插值多项式不收敛的现象称为龙格现象
由于高次插值收敛性没有保证,实际的计算稳定性也没有保证。因此当插值节点n较大时通常不采用高次多项式插值,而改用低次分段插值。
3.5 三次样条插值
定义:
设 [ a , b ] [a,b] [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,若函数 s ( x ) s(x) s(x)满足条件
(1) s ( x ) ∈ C 2 [ a , b ] s(x)\in C^2[a,b] s(x)∈C2[a,b];
(2) s ( x ) s(x) s(x)在每个小区间 [ x i , x i + 1 ] [x_i,x_{i+1}] [xi,xi+1]是三次多项式
则称s(x)是节点 x 0 , x 1 , ⋅ ⋅ ⋅ , x n x_0,x_1,···,x_n x0,x1,⋅⋅⋅,xn上的三次样条函数
若s(x)在节点上还满足插值条件
(3) s ( x i ) = f i s(x_i)=f_i s(xi)=fi, i = 0 , 1 , ⋅ ⋅ ⋅ , n i=0,1,···,n i=0,1,⋅⋅⋅,n
弯矩方程
设
s
(
x
)
s(x)
s(x)在节点
a
≤
x
0
<
x
1
<
⋅
⋅
⋅
<
x
n
≤
b
a\leq x_0<x_1<···<x_n \leq b
a≤x0<x1<⋅⋅⋅<xn≤b上的二阶导数值
s
′
′
(
x
i
)
=
M
i
(
i
=
0
,
1
,
⋅
⋅
⋅
,
n
)
s^{\prime\prime}(x_i)=M_i(i=0,1,···,n)
s′′(xi)=Mi(i=0,1,⋅⋅⋅,n),
h
i
=
x
i
+
1
−
x
i
h_i=x_{i+1}-x_i
hi=xi+1−xi上是三次多项式,故
s
′
′
(
x
)
s^{\prime\prime}(x)
s′′(x)在
[
x
i
,
x
i
+
1
]
[x_i,x_{i+1}]
[xi,xi+1]上是一次函数,可表示为
s
′
′
(
x
)
=
x
i
+
1
−
x
h
i
M
i
+
x
−
x
i
h
i
M
i
+
1
s^{\prime\prime}(x)=\frac{x_{i+1}-x}{h_i}M_i+\frac{x-x_i}{h_i}M_{i+1}
s′′(x)=hixi+1−xMi+hix−xiMi+1
对此积分两次,并利用
s
(
x
i
)
=
f
i
,
s
(
x
i
+
1
)
=
f
i
+
1
s(x_i)=f_i,s(x_{i+1})=f_{i+1}
s(xi)=fi,s(xi+1)=fi+1可得到
s
(
x
)
=
(
x
i
+
1
−
x
)
3
6
h
i
M
i
+
(
x
−
x
i
)
3
6
h
i
M
i
+
1
+
x
i
+
1
−
x
h
i
(
f
i
−
h
i
2
6
M
i
)
+
x
−
x
i
h
i
(
f
i
+
1
−
h
i
2
6
M
i
+
1
)
s(x)=\frac{(x_{i+1}-x)^3}{6h_i}M_i+\frac{(x-x_i)^3}{6h_i}M_{i+1}+\\ \frac{x_{i+1}-x}{h_i}(f_i-\frac{h_i^2}{6}M_i)+\frac{x-x_i}{h_i}(f_{i+1}-\frac{h_i^2}{6}M_{i+1})
s(x)=6hi(xi+1−x)3Mi+6hi(x−xi)3Mi+1+hixi+1−x(fi−6hi2Mi)+hix−xi(fi+1−6hi2Mi+1)
这里
M
i
(
i
=
0
,
1
,
⋅
⋅
⋅
,
n
)
M_i(i=0,1,···,n)
Mi(i=0,1,⋅⋅⋅,n)是未知量,由于
当
x
∈
[
x
i
,
x
i
+
1
]
时,
s
′
(
x
)
=
−
(
x
i
+
1
−
x
)
2
2
h
i
M
i
+
(
x
−
x
i
)
2
2
h
i
M
i
+
1
+
f
i
+
1
−
f
i
h
i
−
h
i
6
(
M
i
+
1
−
M
i
)
当x\in [x_i,x_{i+1}]时,s^{\prime}(x)=-\frac{(x_{i+1}-x)^2}{2h_i}M_i+\frac{(x-x_i)^2}{2h_i}M_{i+1}+\frac{f_{i+1}-f_i}{h_i}-\frac{h_i}{6}(M_{i+1}-M_i)
当x∈[xi,xi+1]时,s′(x)=−2hi(xi+1−x)2Mi+2hi(x−xi)2Mi+1+hifi+1−fi−6hi(Mi+1−Mi) {_i}
当 x ∈ [ x i − 1 , x i ] 时, s ′ ( x ) = − ( x i − x ) 2 2 h i − 1 M i − 1 + ( x − x i − 1 ) 2 2 h i − 1 M i + f i − f i − 1 h i − 1 − h i − 1 6 ( M i − M i − 1 ) 当x\in [x_{i-1},x_{i}]时,s^{\prime}(x)=-\frac{(x_{i}-x)^2}{2h_{i-1}}M_{i-1}+\frac{(x-x_{i-1})^2}{2h_{i-1}}M_{i}+\frac{f_{i}-f_{i-1}}{h_{i-1}}-\frac{h_{i-1}}{6}(M_{i}-M_{i-1}) 当x∈[xi−1,xi]时,s′(x)=−2hi−1(xi−x)2Mi−1+2hi−1(x−xi−1)2Mi+hi−1fi−fi−1−6hi−1(Mi−Mi−1)
由 s ′ ( x i + 0 ) = s ′ ( x i − 0 ) s^{\prime}(x_i+0)=s^{\prime}(x_i-0) s′(xi+0)=s′(xi−0)所以可得到
u i M i − 1 + 2 M i + λ i M i − 1 = d i u_iM_{i-1}+2M_i+\lambda_i M_{i-1}=d_i uiMi−1+2Mi+λiMi−1=di
其中
{
u
i
=
h
i
−
1
h
i
−
1
+
h
i
,
λ
i
=
1
−
u
i
d
i
=
f
[
x
i
−
1
,
x
i
,
x
i
+
1
]
,
i
=
1
,
2
,
⋅
⋅
⋅
,
n
−
1
\begin{cases} u_i=\frac{h_{i-1}}{h_{i-1}+h_i},\lambda_{i}=1-u_i\\ d_i=f[x_{i-1},x_i,x_{i+1}],i=1,2,···,n-1 \end{cases}
{ui=hi−1+hihi−1,λi=1−uidi=f[xi−1,xi,xi+1],i=1,2,⋅⋅⋅,n−1
再补充两个方程:
{
2
M
0
+
M
1
=
6
h
0
(
f
[
x
0
,
x
1
]
−
f
0
′
)
=
d
0
M
n
−
1
+
2
M
n
=
6
h
n
−
1
(
f
n
′
−
f
[
x
n
−
1
,
x
n
]
)
=
d
n
\begin{cases} 2M_0+M_1=\frac{6}{h_0}(f[x_0,x_1]-f^{\prime}_0)=d_0\\ M_{n-1}+2M_n=\frac{6}{h_{n-1}}(f^{\prime}_n-f[x_{n-1},x_n])=d_n \end{cases}
{2M0+M1=h06(f[x0,x1]−f0′)=d0Mn−1+2Mn=hn−16(fn′−f[xn−1,xn])=dn