文章目录
插值方法
1 Hermite插值
1.1 Hermite插值的定义
设在节点
a
≤
x
0
<
x
1
<
.
.
.
<
x
n
≤
b
(
i
=
1
,
2
,
.
.
.
,
n
)
a\leq x_0<x_1<...<x_n\leq b(i=1,2,...,n)
a≤x0<x1<...<xn≤b(i=1,2,...,n)上给出插值条件
y
k
=
f
(
x
k
)
,
y
k
‘
=
f
‘
(
x
k
)
,
k
=
0
,
1
,
.
.
.
,
n
y_k=f(x_k), y_k^{‘}=f^{‘}(x_k), k=0, 1, ...,n
yk=f(xk),yk‘=f‘(xk),k=0,1,...,n此时,在小区间
[
x
i
−
1
,
x
i
]
[x_{i-1},x_i]
[xi−1,xi]上有四个插值条件,所以能构造一个三次多项式
H
3
(
i
)
(
x
)
H_3^{(i)}(x)
H3(i)(x),只要令
H
3
(
i
)
(
x
)
=
ϕ
i
−
1
(
x
)
y
i
−
1
+
ϕ
i
(
x
)
y
i
+
ψ
i
−
1
(
x
)
y
i
−
1
‘
+
ψ
i
(
x
)
y
i
‘
H_3^{(i)}(x)=\phi_{i-1}(x)y_{i-1}+\phi_i(x)y_i+\psi_{i-1}(x)y_{i-1}^{‘}+\psi_i(x)y_i^{‘}
H3(i)(x)=ϕi−1(x)yi−1+ϕi(x)yi+ψi−1(x)yi−1‘+ψi(x)yi‘其中
ϕ
i
−
1
(
x
)
,
ϕ
i
(
x
)
,
ψ
i
−
1
,
ψ
i
(
x
)
\phi_{i-1}(x), \phi_i(x), \psi_{i-1}, \psi_i(x)
ϕi−1(x),ϕi(x),ψi−1,ψi(x)都是三次多项式,而且满足
ϕ
i
−
1
(
x
i
−
1
)
=
1
,
ϕ
i
−
1
(
x
i
)
=
0
,
ϕ
i
−
1
‘
(
x
i
−
1
)
=
0
,
ϕ
i
−
1
‘
(
x
i
)
=
0
\phi_{i-1}(x_{i-1})=1, \phi_{i-1}(x_i)=0, \phi_{i-1}^{‘}(x_{i-1})=0, \phi_{i-1}^{‘}(x_i)=0
ϕi−1(xi−1)=1,ϕi−1(xi)=0,ϕi−1‘(xi−1)=0,ϕi−1‘(xi)=0
ϕ
i
(
x
i
−
1
)
=
0
,
ϕ
i
(
x
i
)
=
1
,
ϕ
i
‘
(
x
i
−
1
)
=
0
,
ϕ
i
‘
(
x
i
)
=
0
\phi_i(x_{i-1})=0, \phi_i(x_i)=1, \phi_i^{‘}(x_{i-1})=0, \phi_i^{‘}(x_i)=0
ϕi(xi−1)=0,ϕi(xi)=1,ϕi‘(xi−1)=0,ϕi‘(xi)=0
ψ
i
−
1
(
x
i
−
1
)
=
0
,
ψ
i
−
1
(
x
i
)
=
0
,
ψ
i
−
1
‘
(
x
i
−
1
)
=
1
,
ψ
i
−
1
‘
(
x
i
)
=
0
\psi_{i-1}(x_{i-1})=0, \psi_{i-1}(x_i)=0, \psi_{i-1}^{‘}(x_{i-1})=1, \psi_{i-1}^{‘}(x_i)=0
ψi−1(xi−1)=0,ψi−1(xi)=0,ψi−1‘(xi−1)=1,ψi−1‘(xi)=0
ψ
i
(
x
i
−
1
)
=
0
,
ψ
i
(
x
i
)
=
0
,
ψ
i
‘
(
x
i
−
1
)
=
0
,
ψ
i
‘
(
x
i
)
=
1
\psi_i(x_{i-1})=0, \psi_i(x_i)=0, \psi_i^{‘}(x_{i-1})=0, \psi_i^{‘}(x_i)=1
ψi(xi−1)=0,ψi(xi)=0,ψi‘(xi−1)=0,ψi‘(xi)=1把
ϕ
i
−
1
(
x
)
,
ϕ
i
(
x
)
,
ψ
i
−
1
(
x
)
,
ψ
i
(
x
)
\phi_{i-1}(x), \phi_i(x), \psi_{i-1}(x), \psi_i(x)
ϕi−1(x),ϕi(x),ψi−1(x),ψi(x)称为三次Hermite插值基函数。
1.2 Hermite插值的求法
因为 ϕ i − 1 ( x i ) = 0 , ϕ i − 1 ‘ ( x i ) = 0 \phi_{i-1}(x_i)=0, \phi_{i-1}^{‘}(x_i)=0 ϕi−1(xi)=0,ϕi−1‘(xi)=0,所以可以将 ϕ i − 1 ( x ) \phi_{i-1}(x) ϕi−1(x)写成 ϕ i − 1 ( x ) = ( a x + b ) ( x − x i ) 2 \phi_{i-1}(x)=(ax+b)(x-x_i)^{2} ϕi−1(x)=(ax+b)(x−xi)2将 ϕ i − 1 ( x i − 1 ) = 1 , ϕ i − 1 ‘ ( x i − 1 ) = 0 \phi_{i-1}(x_{i-1})=1, \phi_{i-1}^{‘}(x_{i-1})=0 ϕi−1(xi−1)=1,ϕi−1‘(xi−1)=0带入可得: ϕ i − 1 ( x ) = 1 h i 3 ( 2 x + x i − 3 x i − 1 ) ( x − x i ) 2 \phi_{i-1}(x)=\frac{1}{h_i^{3}}(2x+x_i-3x_{i-1})(x-x_i)^2 ϕi−1(x)=hi31(2x+xi−3xi−1)(x−xi)2 ϕ i ( x ) = 1 h i 3 ( 3 x i − 2 x − x i − 1 ) ( x − x i − 1 ) 2 \phi_i(x)=\frac{1}{h_i^3}(3x_i-2x-x_{i-1})(x-x_{i-1})^2 ϕi(x)=hi31(3xi−2x−xi−1)(x−xi−1)2
因为 ψ i − 1 ( x i − 1 ) = 0 , ψ i − 1 ( x i ) = 0 , ψ i − 1 ‘ ( x i ) = 0 \psi_{i-1}(x_{i-1})=0, \psi_{i-1}(x_i)=0, \psi_{i-1}^{‘}(x_i)=0 ψi−1(xi−1)=0,ψi−1(xi)=0,ψi−1‘(xi)=0所以有 ψ i − 1 ( x ) = C ( x − x i − 1 ) ( x − x i ) 2 \psi_{i-1}(x)=C(x-x_{i-1})(x-x_i)^2 ψi−1(x)=C(x−xi−1)(x−xi)2将 ψ i − 1 ‘ ( x i − 1 ) = 1 \psi_{i-1}^{‘}(x_{i-1})=1 ψi−1‘(xi−1)=1带入得 C h i 2 = 1 Ch_i^2=1 Chi2=1,即 C = h i − 2 C=h_i^{-2} C=hi−2。所以 ψ i − 1 ( x ) = 1 h i 2 ( x − x i − 1 ) ( x − x i ) 2 \psi_{i-1}(x)=\frac{1}{h_i^2}(x-x_{i-1})(x-x_i)^2 ψi−1(x)=hi21(x−xi−1)(x−xi)2 ψ i ( x ) = 1 h i 2 ( x − x i − 1 ) 2 ( x − x i ) \psi_i(x)=\frac{1}{h_i^2}(x-x_{i-1})^2(x-x_i) ψi(x)=hi21(x−xi−1)2(x−xi)
2 三次样条插值
2.1 三次样条插值的定义
定义:给定节点
a
=
x
0
<
x
1
<
.
.
.
<
x
n
=
b
a=x_0<x_1<...<x_n=b
a=x0<x1<...<xn=b,及其上的函数值
y
k
=
f
(
x
k
)
,
k
=
0
,
1
,
.
.
.
,
n
y_k=f(x_k), k=0,1,...,n
yk=f(xk),k=0,1,...,n.如果函数满足:
(1)S(x)是一个分段的三次多项式且
S
(
x
k
)
=
y
k
S(x_k)=y_k
S(xk)=yk;
(2)
S
(
x
)
∈
C
2
[
a
,
b
]
S(x)\in C^2[a,b]
S(x)∈C2[a,b].
则称S(x)是区间[a,b]上的三次样条插值函数。
S(x)在区间
[
x
i
−
1
,
x
i
]
[x_{i-1}, x_i]
[xi−1,xi]上是三次多项式,
S
(
x
)
=
a
i
x
3
+
b
i
x
2
+
c
i
x
+
d
i
S(x)=a_ix^3+b_ix^2+c_ix+d_i
S(x)=aix3+bix2+cix+di有四个待定系数,所以在整个区间上总的来说,
S
(
x
)
S(x)
S(x)共有4n个待定系数。
S
(
x
j
−
0
)
=
S
(
x
j
+
0
)
S(x_j-0)=S(x_j+0)
S(xj−0)=S(xj+0)
S
‘
(
x
j
−
0
)
=
S
‘
(
x
j
+
0
)
S^{‘}(x_j-0)=S^{‘}(x_j+0)
S‘(xj−0)=S‘(xj+0)
S
‘
’
(
x
j
−
0
)
=
S
‘
’
(
x
j
+
0
)
S^{‘’}(x_j-0)=S^{‘’}(x_j+0)
S‘’(xj−0)=S‘’(xj+0)共有
3
n
−
3
3n-3
3n−3个条件,再加上
S
(
x
)
S(x)
S(x)满足
S
(
x
j
)
=
f
j
,
j
=
0
,
1
,
2
,
.
.
.
n
S(x_j)=f_j, j=0,1,2,...n
S(xj)=fj,j=0,1,2,...n这又有
n
+
1
n+1
n+1个条件。目前,共有
4
n
−
2
4n-2
4n−2个条件。
因此,还需要两个条件才能确定
S
(
x
)
S(x)
S(x)。
通常可在
[
a
,
b
]
[a, b]
[a,b]端点
a
=
x
0
,
b
=
x
n
a=x_0, b=x_n
a=x0,b=xn上各加上一个条件,称为边界条件。
2.2 边界条件
常见的边界条件有:
1)给定两端一阶导数值,
S
‘
(
x
0
)
=
y
’
0
S‘(x_0)=y’_0
S‘(x0)=y’0,
S
‘
(
x
n
)
=
y
’
n
S‘(x_n)=y’_n
S‘(xn)=y’n;
2)给定两端二阶导数值,
S
’
’
(
x
0
)
=
y
’
’
0
S’’(x_0)=y’’_0
S’’(x0)=y’’0,
S
’
’
(
x
n
)
=
y
’
’
n
S’’(x_n)=y’’_n
S’’(xn)=y’’n。特殊的有
S
’
’
(
x
0
)
=
S
’
’
(
x
n
)
=
0
S’’(x_0)=S’’(x_n)=0
S’’(x0)=S’’(xn)=0,称为自然边界条件;
3)假设
f
(
x
)
f(x)
f(x)是以
b
−
a
b-a
b−a为周期的周期函数,这时要求
S
(
x
0
+
0
)
=
S
(
x
n
−
0
)
S(x_0+0)=S(x_n-0)
S(x0+0)=S(xn−0)
S
’
(
x
0
+
0
)
=
S
’
(
x
n
−
0
)
S’(x_0+0)=S’(x_n-0)
S’(x0+0)=S’(xn−0)
S
’
’
(
x
0
+
0
)
=
S
’
’
(
x
n
−
0
)
S’’(x_0+0)=S’’(x_n-0)
S’’(x0+0)=S’’(xn−0)此时,
y
n
=
y
0
y_n=y_0
yn=y0,这样确定的
S
(
x
)
S(x)
S(x)为周期样条函数。
2.3 三次样条函数的求法
2.3.1 三转角方法
当给定左右端点的一阶导数值时,假定
S
’
(
x
j
)
=
m
j
(
j
=
0
,
1
,
2
,
.
.
.
,
n
)
S’(x_j)=m_j(j=0,1,2,...,n)
S’(xj)=mj(j=0,1,2,...,n),再利用三次Hermite插值的一半表达式可知:
S
(
x
)
=
Σ
j
=
0
n
[
y
j
α
j
(
x
)
+
m
j
β
j
(
x
)
]
S(x)=\Sigma_{j=0}^n[y_j\alpha_j(x)+m_j\beta_j(x)]
S(x)=Σj=0n[yjαj(x)+mjβj(x)],其中
α
j
(
x
)
,
β
j
(
x
)
\alpha_j(x), \beta_j(x)
αj(x),βj(x)为分段三次Hermite插值基函数,再利用三次样条函数的定义及其相应的边界条件
S
’
’
(
x
0
)
=
f
’
0
,
S
’
(
x
n
)
=
f
’
n
S’’(x_0)=f’_0, S’(x_n)=f’_n
S’’(x0)=f’0,S’(xn)=f’n当
x
∈
[
x
i
−
1
,
x
i
]
x\in[x_{i-1},x_i]
x∈[xi−1,xi]时,有
S
(
x
)
=
1
h
i
3
[
(
x
i
+
2
x
−
3
x
i
−
1
)
(
x
−
x
i
)
2
y
i
−
1
+
(
3
x
i
−
2
x
−
x
i
)
(
x
−
x
i
−
1
)
2
y
i
]
+
1
h
i
2
[
(
x
−
x
i
−
1
)
(
x
−
x
i
)
2
m
i
−
1
+
(
x
−
x
i
−
1
)
2
(
x
−
x
i
)
m
i
]
S(x)=\frac{1}{h_i^3}[(x_i+2x-3x_{i-1})(x-x_i)^2y_{i-1}+(3x_i-2x-x_i)(x-x_{i-1})^2y_i]\\+ \frac{1}{h_i^2}[(x-x_{i-1})(x-x_i)^2m_{i-1}+(x-x_{i-1})^2(x-x_i)m_i]
S(x)=hi31[(xi+2x−3xi−1)(x−xi)2yi−1+(3xi−2x−xi)(x−xi−1)2yi]+hi21[(x−xi−1)(x−xi)2mi−1+(x−xi−1)2(x−xi)mi]其中
h
i
=
x
i
−
x
i
−
1
h_i=x_i-x_{i-1}
hi=xi−xi−1,为了确定
S
(
x
)
S(x)
S(x),只需要确定
m
i
,
i
=
0
,
1
,
.
.
.
,
n
m_i, i=0,1,...,n
mi,i=0,1,...,n可利用三次样条函数二阶导数连续的性质,即
S
’
’
(
x
i
−
0
)
=
S
’
’
(
x
i
+
0
)
S’’(x_i-0)=S’’(x_i+0)
S’’(xi−0)=S’’(xi+0)。
当
x
∈
[
x
i
−
1
,
x
i
]
x\in[x_{i-1},x_i]
x∈[xi−1,xi]时,由于
S
’
(
x
)
=
2
h
i
3
{
[
(
x
−
x
i
)
2
+
(
x
i
+
2
x
−
3
x
i
−
1
)
(
x
−
x
i
)
]
y
i
−
1
+
[
(
3
x
i
−
2
x
−
x
i
)
(
x
−
x
i
−
1
)
−
2
(
x
−
x
i
−
1
)
2
]
y
i
}
+
1
h
i
2
{
[
(
x
−
x
i
)
2
+
2
(
x
−
x
i
−
1
)
(
x
−
x
i
)
]
m
i
−
1
+
[
(
x
−
x
i
−
1
)
2
+
2
(
x
−
x
i
−
1
)
(
x
−
x
i
)
]
m
i
}
S’(x)=\frac{2}{h_i^3}\{[(x-x_i)^2+(x_i+2x-3x_{i-1})(x-x_i)]y_{i-1} \\ +[(3x_i-2x-x_i)(x-x_{i-1})-2(x-x_{i-1})^2]y_i\} \\ +\frac{1}{h_i^2}\{[(x-x_i)^2+2(x-x_{i-1})(x-x_i)]m_{i-1} \\ +[(x-x_{i-1})^2+2(x-x_{i-1})(x-x_i)]m_i\}
S’(x)=hi32{[(x−xi)2+(xi+2x−3xi−1)(x−xi)]yi−1+[(3xi−2x−xi)(x−xi−1)−2(x−xi−1)2]yi}+hi21{[(x−xi)2+2(x−xi−1)(x−xi)]mi−1+[(x−xi−1)2+2(x−xi−1)(x−xi)]mi}
S
’
’
(
x
)
=
6
h
i
3
(
2
x
−
x
i
−
1
−
x
i
)
(
y
i
−
1
−
y
i
)
+
2
h
i
2
[
(
3
x
−
x
i
−
1
−
2
x
i
)
m
i
−
1
+
(
3
x
−
2
x
i
−
1
−
x
i
)
m
i
]
S’’(x)=\frac{6}{h_i^3}(2x-x_{i-1}-x_i)(y_{i-1}-y_i)\\+\frac{2}{h_i^2}[(3x-x_{i-1}-2x_i)m_{i-1}+(3x-2x_{i-1}-x_i)m_i]
S’’(x)=hi36(2x−xi−1−xi)(yi−1−yi)+hi22[(3x−xi−1−2xi)mi−1+(3x−2xi−1−xi)mi]可以看出
S
’
’
(
x
)
S’’(x)
S’’(x)是一个线性函数的形式。
在
x
i
x_i
xi点处考虑它的左极限和右极限:
S
’
’
(
x
i
−
0
)
=
6
h
i
2
(
y
i
−
1
−
y
i
)
+
2
h
i
(
m
i
−
1
+
2
m
i
)
S’’(x_i-0)=\frac{6}{h_i^2}(y_{i-1}-y_i)+\frac{2}{h_i}(m_{i-1}+2m_i)
S’’(xi−0)=hi26(yi−1−yi)+hi2(mi−1+2mi)
S
’
’
(
x
i
+
0
)
=
6
h
i
+
1
2
(
y
i
+
1
−
y
i
)
−
2
h
i
+
1
(
2
m
i
+
m
i
+
1
)
S’’(x_i+0)=\frac{6}{h_{i+1}^2}(y_{i+1}-y_i)-\frac{2}{h_{i+1}}(2m_i+m_{i+1})
S’’(xi+0)=hi+126(yi+1−yi)−hi+12(2mi+mi+1)由连续性条件
S
’
’
(
x
i
−
0
)
=
S
’
’
(
x
i
+
0
)
S’’(x_i-0)=S’’(x_i+0)
S’’(xi−0)=S’’(xi+0)可得:
1
h
i
m
i
−
1
+
2
(
1
h
i
+
1
h
i
+
1
)
m
i
+
1
h
i
+
1
m
i
+
1
=
3
(
y
i
+
1
−
y
i
h
i
+
1
2
+
y
i
−
y
i
−
1
h
i
2
)
\frac{1}{h_i}m_{i-1}+2\left(\frac{1}{h_i}+\frac{1}{h_{i+1}}\right)m_i+\frac{1}{h_{i+1}}m_{i+1}=3\left(\frac{y_{i+1}-y_i}{h_{i+1}^2}+\frac{y_i-y_{i-1}}{h_i^2}\right)
hi1mi−1+2(hi1+hi+11)mi+hi+11mi+1=3(hi+12yi+1−yi+hi2yi−yi−1)两侧同时除以
(
1
h
i
+
1
h
i
+
1
)
\left(\frac{1}{h_i}+\frac{1}{h_{i+1}}\right)
(hi1+hi+11),并记
h
i
+
1
h
i
+
h
i
+
1
=
λ
i
\frac{h_{i+1}}{h_i+h_{i+1}}=\lambda_i
hi+hi+1hi+1=λi,
h
i
h
i
+
h
i
+
1
=
1
−
λ
i
=
μ
i
\frac{h_i}{h_i+h_{i+1}}=1-\lambda_i=\mu_i
hi+hi+1hi=1−λi=μi,
3
(
λ
i
f
[
x
i
−
1
,
x
i
]
+
μ
i
f
[
x
i
,
x
i
+
1
]
)
=
g
i
3(\lambda_if[x_{i-1},x_i]+\mu_if[x_i,x_{i+1}])=g_i
3(λif[xi−1,xi]+μif[xi,xi+1])=gi,则有
λ
i
m
i
−
1
+
2
m
i
+
μ
i
m
i
+
1
=
g
i
,
i
=
1
,
2
,
.
.
.
,
n
−
1.
\lambda_im_{i-1}+2m_i+\mu_im_{i+1}=g_i, i=1,2,...,n-1.
λimi−1+2mi+μimi+1=gi,i=1,2,...,n−1.这个式子中未知的是
m
i
,
m
i
,
m
i
+
1
m_i, m_i, m_{i+1}
mi,mi,mi+1
若边界条件为:
m
0
=
y
’
0
,
m
n
=
y
’
n
m_0=y’_0, m_n=y’_n
m0=y’0,mn=y’n,带入上面的式子可以得到
可以看出这个形式就变成了
n
−
1
n-1
n−1个未知数和
n
−
1
n-1
n−1个方程。左边是一个稀疏的三对角矩阵,求解方式有很多。
若边界条件为:
S
’
’
(
x
0
)
=
y
’
’
0
,
S
’
’
(
x
n
)
=
y
’
’
n
S’’(x_0)=y’’_0, S’’(x_n)=y’’_n
S’’(x0)=y’’0,S’’(xn)=y’’n则有:
2
m
0
+
m
1
=
3
f
[
x
0
,
x
1
]
−
1
2
h
1
y
’
’
0
=
g
0
2m_0+m_1=3f[x_0,x_1]-\frac{1}{2}h_1y’’_0=g_0
2m0+m1=3f[x0,x1]−21h1y’’0=g0
m
n
−
1
+
2
m
n
=
3
f
[
x
n
−
1
,
x
n
]
+
1
2
h
n
y
’
’
n
=
g
n
m_{n-1}+2m_n=3f[x_{n-1},x_n]+\frac{1}{2}h_ny’’_n=g_n
mn−1+2mn=3f[xn−1,xn]+21hny’’n=gn将这两个方程和上式放在一起就得到了
n
+
1
n+1
n+1个未知数和
n
+
1
n+1
n+1个方程。
若边界条件为周期性边界条件,由
S
’
(
x
0
+
0
)
=
S
’
(
x
n
−
0
)
S’(x_0+0)=S’(x_n-0)
S’(x0+0)=S’(xn−0),
S
’
’
(
x
0
+
0
)
=
S
’
’
(
x
n
−
0
)
S’’(x_0+0)=S’’(x_n-0)
S’’(x0+0)=S’’(xn−0),有
m
0
=
m
n
m_0=m_n
m0=mn和
λ
n
m
n
−
1
+
2
m
n
+
μ
n
m
1
=
g
n
\lambda_nm_{n-1}+2m_n+\mu_nm_1=g_n
λnmn−1+2mn+μnm1=gn,
λ
n
=
h
1
h
1
+
h
n
\lambda_n=\frac{h_1}{h_1+h_n}
λn=h1+hnh1,
μ
n
=
1
−
λ
n
=
h
n
h
1
+
h
n
\mu_n=1-\lambda_n=\frac{h_n}{h_1+h_n}
μn=1−λn=h1+hnhn,
g
n
=
3
(
λ
n
f
[
x
0
,
x
1
]
+
μ
n
f
[
x
n
−
1
,
x
n
]
)
g_n=3(\lambda_nf[x_0,x_1]+\mu_nf[x_{n-1},x_n])
gn=3(λnf[x0,x1]+μnf[xn−1,xn])
所以是一个n个未知数n个方程的线性方程组。
在给定第一类边界条件的情况下,三对角方法很好。8
2.3.2 三弯矩算法
由于三次样条函数在每个小区间上都是一个三次多项式,所以它的二阶导数在整个区间上是一个分段的线性函数,在每个小区间上是一个线性函数。设
S
’
’
(
x
i
)
=
M
i
,
i
=
0
,
1
,
.
.
.
,
n
S’’(x_i)=M_i, i=0,1,...,n
S’’(xi)=Mi,i=0,1,...,n,则对
x
∈
[
x
i
−
1
,
x
i
]
x\in[x_{i-1},x_i]
x∈[xi−1,xi]有:
S
’
’
(
x
)
=
x
−
x
i
x
i
−
1
−
x
i
M
i
−
1
+
x
−
x
i
−
1
x
i
−
x
i
−
1
M
i
S’’(x)=\frac{x-x_i}{x_{i-1}-x_i}M_{i-1}+\frac{x-x_{i-1}}{x_i-x_{i-1}}M_i
S’’(x)=xi−1−xix−xiMi−1+xi−xi−1x−xi−1Mi连续积分两次,并利用
S
(
x
i
−
1
)
=
y
i
−
1
S(x_{i-1})=y_{i-1}
S(xi−1)=yi−1,
S
(
x
i
)
=
y
i
S(x_i)=y_i
S(xi)=yi确定积分常数,可得
S
(
x
)
=
1
6
h
i
[
(
x
i
−
x
)
3
M
i
−
1
+
(
x
−
x
i
−
1
)
3
M
i
]
+
(
y
i
−
1
h
i
−
h
i
M
i
−
1
6
)
(
x
i
−
x
)
+
(
y
i
h
i
−
h
i
M
i
6
)
(
x
−
x
i
−
1
)
S(x)=\frac{1}{6h_i}[(x_i-x)^3M_{i-1}+(x-x_{i-1})^3M_i]\\+\left(\frac{y_{i-1}}{h_i}-\frac{h_iM_{i-1}}{6}\right)(x_i-x)+ \left(\frac{y_i}{h_i}-\frac{h_iM_i}{6}\right)(x-x_{i-1})
S(x)=6hi1[(xi−x)3Mi−1+(x−xi−1)3Mi]+(hiyi−1−6hiMi−1)(xi−x)+(hiyi−6hiMi)(x−xi−1)其中
h
i
=
x
i
−
x
i
−
1
h_i=x_i-x_{i-1}
hi=xi−xi−1,为了确定
S
(
x
)
S(x)
S(x),只需要确定
M
(
i
)
,
i
=
0
,
1
,
.
.
.
,
n
M(i), i=0, 1, ..., n
M(i),i=0,1,...,n,可利用
S
’
(
x
i
−
0
)
=
S
’
(
x
i
+
0
)
S’(x_i-0)=S’(x_i+0)
S’(xi−0)=S’(xi+0)来求出
M
i
M_i
Mi。则有:
S
’
(
x
)
=
1
2
h
i
[
(
x
−
x
i
−
1
)
2
M
i
−
(
x
−
x
i
)
2
M
i
−
1
]
+
f
[
x
i
−
1
,
x
i
]
+
h
i
6
(
M
i
−
1
−
M
i
)
S’(x)=\frac{1}{2h_i}[(x-x_{i-1})^2M_i-(x-x_i)^2M_{i-1}]+f[x_{i-1},x_i]+\frac{h_i}{6}(M_{i-1}-M_i)
S’(x)=2hi1[(x−xi−1)2Mi−(x−xi)2Mi−1]+f[xi−1,xi]+6hi(Mi−1−Mi)于是有
S
’
(
x
i
−
0
)
=
h
i
6
(
M
i
−
1
+
2
M
i
)
+
f
[
x
i
−
1
,
x
i
]
S’(x_i-0)=\frac{h_i}{6}(M_{i-1}+2M_i)+f[x_{i-1},x_i]
S’(xi−0)=6hi(Mi−1+2Mi)+f[xi−1,xi]
S
’
(
x
i
+
0
)
=
−
h
i
+
1
6
(
2
M
i
+
M
i
+
1
)
+
f
[
x
i
,
x
i
+
1
]
S’(x_i+0)=-\frac{h_{i+1}}{6}(2M_i+M_{i+1})+f[x_i,x_{i+1}]
S’(xi+0)=−6hi+1(2Mi+Mi+1)+f[xi,xi+1]
h
i
6
M
i
−
1
+
h
i
+
h
i
+
1
3
M
i
+
h
i
+
1
6
M
i
+
1
=
f
[
x
i
,
x
i
+
1
]
−
f
[
x
i
−
1
,
x
i
]
\frac{h_i}{6}M _{i-1}+\frac{h_i+h_{i+1}}{3}M_i+\frac{h_{i+1}}{6}M_{i+1}=f[x_i,x_{i+1}]-f[x_{i-1},x_i]
6hiMi−1+3hi+hi+1Mi+6hi+1Mi+1=f[xi,xi+1]−f[xi−1,xi]引入记号:
λ
i
=
h
i
+
1
h
i
+
h
i
+
1
,
μ
i
=
h
i
h
i
−
h
i
+
1
,
d
i
=
6
f
[
x
i
−
1
,
x
i
,
x
i
+
1
]
\lambda_i=\frac{h_{i+1}}{h_i+h_{i+1}}, \mu_i=\frac{h_i}{h_i-h_{i+1}}, d_i=6f[x_{i-1},x_i, x_{i+1}]
λi=hi+hi+1hi+1,μi=hi−hi+1hi,di=6f[xi−1,xi,xi+1]
μ
i
M
i
−
1
+
2
M
i
+
λ
i
M
i
+
1
=
d
i
,
i
=
1
,
2
,
.
.
.
,
n
−
1
\mu_iM_{i-1}+2M_i+\lambda_iM_{i+1}=d_i, i=1,2,...,n-1
μiMi−1+2Mi+λiMi+1=di,i=1,2,...,n−1
假如我们有边界条件为:
M
0
=
y
’
’
0
,
M
n
=
y
’
’
n
M_0=y’’_0, M_n=y’’_n
M0=y’’0,Mn=y’’n,可得
假如我们有边界条件为:
S
’
(
x
0
)
=
y
’
0
,
S
’
(
x
n
)
=
y
’
n
S’(x_0)=y’_0, S’(x_n)=y’_n
S’(x0)=y’0,S’(xn)=y’n,则有
2
M
0
+
M
1
=
6
h
1
(
f
[
x
0
,
x
1
]
−
y
’
0
)
=
d
0
2M_0+M_1=\frac{6}{h_1}(f[x_0,x_1]-y’_0)=d_0
2M0+M1=h16(f[x0,x1]−y’0)=d0
M
n
−
1
+
2
M
n
=
6
h
n
(
y
’
n
−
f
[
x
n
−
1
,
x
n
]
)
=
d
n
M_{n-1}+2M_n=\frac{6}{h_n}(y’_n-f[x_{n-1},x_n])=d_n
Mn−1+2Mn=hn6(y’n−f[xn−1,xn])=dn
假如边界条件为周期性边界条件,由
S
’
(
x
0
+
0
)
=
S
’
(
x
n
−
0
)
S’(x_0+0)=S’(x_n-0)
S’(x0+0)=S’(xn−0)和
S
’
’
(
x
0
+
0
)
=
S
’
’
(
x
n
−
0
)
S’’(x_0+0)=S’’(x_n-0)
S’’(x0+0)=S’’(xn−0),有
M
0
=
M
n
M_0=M_n
M0=Mn和
λ
n
M
1
+
μ
n
M
n
−
1
+
2
M
n
=
d
n
\lambda_nM_1+\mu_nM_{n-1}+2M_n=d_n
λnM1+μnMn−1+2Mn=dn其中
λ
n
=
h
1
h
1
+
h
n
,
μ
n
=
1
−
λ
n
=
h
n
h
1
+
h
n
,
d
n
=
6
f
[
x
0
,
x
1
.
x
n
−
1
]
\lambda_n=\frac{h_1}{h_1+h_n}, \mu_n=1-\lambda_n=\frac{h_n}{h_1+h_n}, d_n=6f[x_0,x_1.x_{n-1}]
λn=h1+hnh1,μn=1−λn=h1+hnhn,dn=6f[x0,x1.xn−1]。
所以针对给定第二类边界条件的情况下,三弯矩方法很好。