数值分析作业插值法2
埃尔米特插值
不仅要求函数值重合,而且要求若干阶导数也重合,这种插值问题称为埃尔米特插值问题。
低次埃尔米特插值多项式
-
二点三次埃尔米特插值多项式
**问题描述:**给定区间 [ x 0 , x 1 ] [x_0, x_1] [x0,x1] 两端点的函数值与导数值:
x x x x 0 x_0 x0 x 1 x_1 x1 f ( x ) f(x) f(x) y 0 y_0 y0 y 1 y_1 y1 f ′ ( x ) f'(x) f′(x) m 0 m_0 m0 m 1 m_1 m1 要求构造三次多项式 H 3 ( x ) H_3(x) H3(x),满足:
{ H 3 ( x 0 ) = y 0 , H 3 ( x 1 ) = y 1 H 3 ′ ( x 0 ) = m 0 , H 3 ′ ( x 1 ) = m 1 \begin{cases} H_3(x_0) = y_0, & H_3(x_1) = y_1 \\ H_3'(x_0) = m_0, & H_3'(x_1) = m_1 \end{cases} {H3(x0)=y0,H3′(x0)=m0,H3(x1)=y1H3′(x1)=m1
解法形式
设 H 3 ( x ) H_3(x) H3(x) 为:
H 3 ( x ) = α 0 ( x ) y 0 + α 1 ( x ) y 1 + β 0 ( x ) m 0 + β 1 ( x ) m 1 H_3(x) = \alpha_0(x)y_0 + \alpha_1(x)y_1 + \beta_0(x)m_0 + \beta_1(x)m_1 H3(x)=α0(x)y0+α1(x)y1+β0(x)m0+β1(x)m1
其中 α i ( x ) \alpha_i(x) αi(x) 和 β i ( x ) \beta_i(x) βi(x) 为基函数(三次式),满足以下条件:-
插值条件:
- α i ( x j ) = δ i j \alpha_i(x_j) = \delta_{ij} αi(xj)=δij( δ i j \delta_{ij} δij 为克罗内克函数)
- α i ′ ( x j ) = 0 \alpha'_i(x_j) = 0 αi′(xj)=0
- β i ( x j ) = 0 \beta_i(x_j) = 0 βi(xj)=0
- β i ′ ( x j ) = δ i j \beta'_i(x_j) = \delta_{ij} βi′(xj)=δij
-
基函数构造:
[
\alpha_i(x) = (a_i x + b_i) l_i^2(x), \quad \beta_i(x) = c_i(x - x_i) l_i^2(x)
]
其中 l i ( x ) = x − x j x i − x j l_i(x) = \frac{x - x_j}{x_i - x_j} li(x)=xi−xjx−xj( j ≠ i j \neq i j=i)为拉格朗日基函数。
基函数推导
α 0 ( x ) \alpha_0(x) α0(x) 的构造
通过条件 α 0 ( x 0 ) = 1 \alpha_0(x_0) = 1 α0(x0)=1 和 α 0 ′ ( x 0 ) = 0 \alpha'_0(x_0) = 0 α0′(x0)=0,解得:
{ a 0 = − 2 x 0 − x 1 , b 0 = 1 + 2 x 0 x 0 − x 1 \begin{cases} a_0 = -\dfrac{2}{x_0 - x_1}, \\ b_0 = 1 + \dfrac{2x_0}{x_0 - x_1} \end{cases} ⎩ ⎨ ⎧a0=−x0−x12,b0=1+x0−x12x0
最终形式为:
α 0 ( x ) = ( 1 − 2 x − x 0 x 0 − x 1 ) ( x − x 1 x 0 − x 1 ) 2 \alpha_0(x) = \left(1 - 2\dfrac{x - x_0}{x_0 - x_1}\right)\left(\dfrac{x - x_1}{x_0 - x_1}\right)^2 α0(x)=(1−2x0−x1x−x0)(x0−x1x−x1)2
α 1 ( x ) = ( 1 − 2 x − x 1 x 1 − x 0 ) ( x − x 0 x 1 − x 0 ) 2 \alpha_1(x) = \left(1 - 2\dfrac{x - x_1}{x_1 - x_0}\right)\left(\dfrac{x - x_0}{x_1 - x_0}\right)^2 α1(x)=(1−2x1−x0x−x1)(x1−x0x−x0)2
β i ( x ) \beta_i(x) βi(x) 的构造
β 0 ( x ) = ( x − x 0 ) ( x − x 1 x 0 − x 1 ) 2 , β 1 ( x ) = ( x − x 1 ) ( x − x 0 x 1 − x 0 ) 2 \beta_0(x) = (x - x_0)\left(\dfrac{x - x_1}{x_0 - x_1}\right)^2, \quad \beta_1(x) = (x - x_1)\left(\dfrac{x - x_0}{x_1 - x_0}\right)^2 β0(x)=(x−x0)(x0−x1x−x1)2,β1(x)=(x−x1)(x1−x0x−x0)2
最终表达式
H 3 ( x ) = y 0 ( 1 − 2 x − x 0 x 0 − x 1 ) ( x − x 1 x 0 − x 1 ) 2 H_3(x) = y_0\left(1 - 2\dfrac{x - x_0}{x_0 - x_1}\right)\left(\dfrac{x - x_1}{x_0 - x_1}\right)^2 H3(x)=y0(1−2x0−x1x−x0)(x0−x1x−x1)2- y 1 ( 1 − 2 x − x 1 x 1 − x 0 ) ( x − x 0 x 1 − x 0 ) 2 y_1\left(1 - 2\dfrac{x - x_1}{x_1 - x_0}\right)\left(\dfrac{x - x_0}{x_1 - x_0}\right)^2 y1(1−2x1−x0x−x1)(x1−x0x−x0)2
- m 0 ( x − x 0 ) ( x − x 1 x 0 − x 1 ) 2 m_0(x - x_0)\left(\dfrac{x - x_1}{x_0 - x_1}\right)^2 m0(x−x0)(x0−x1x−x1)2
- m 1 ( x − x 1 ) ( x − x 0 x 1 − x 0 ) 2 m_1(x - x_1)\left(\dfrac{x - x_0}{x_1 - x_0}\right)^2 m1(x−x1)(x1−x0x−x0)2
∑ i = 0 1 α i ( x ) = 1 (当 f ( x ) = 1 时) \sum_{i=0}^1 \alpha_i(x) = 1 \quad \text{(当 $f(x) = 1$ 时)} i=0∑1αi(x)=1(当 f(x)=1 时)
余项为:
R ( x ) = 1 4 ! f ( 4 ) ( ξ ) ( x − x 0 ) 2 ( x − x 1 ) 2 , ξ ∈ ( x 0 , x 1 ) R(x) = \frac{1}{4!}f^{(4)}(\xi)(x - x_0)^2(x - x_1)^2, \quad \xi \in (x_0, x_1) R(x)=4!1f(4)(ξ)(x−x0)2(x−x1)2,ξ∈(x0,x1) -
-
三点三次带一个导数值的插值多项式
问题描述
给定函数表如下:x x x x 0 x_0 x0 x 1 x_1 x1 x 2 x_2 x2 f ( x ) f(x) f(x) y 0 y_0 y0 y 1 y_1 y1 y 2 y_2 y2 f ′ ( x ) f'(x) f′(x) m 1 m_1 m1 要求构造三次多项式 H 3 ( x ) H_3(x) H3(x),满足:
{ H 3 ( x i ) = y i , i = 0 , 1 , 2 H 3 ′ ( x 1 ) = m 1 \begin{cases} H_3(x_i) = y_i, & i = 0, 1, 2 \\ H_3'(x_1) = m_1 \end{cases} {H3(xi)=yi,H3′(x1)=m1i=0,1,2解法形式
利用满足插值条件的 Newton 插值多项式,设:
H 3 ( x ) = y 0 + f [ x 0 , x 1 ] ( x − x 0 ) + f [ x 0 , x 1 , x 2 ] ( x − x 0 ) ( x − x 1 ) + k ( x − x 0 ) ( x − x 1 ) ( x − x 2 ) H_3(x) = y_0 + f[x_0, x_1](x - x_0) + f[x_0, x_1, x_2](x - x_0)(x - x_1) + k(x - x_0)(x - x_1)(x - x_2) H3(x)=y0+f[x0,x1](x−x0)+f[x0,x1,x2](x−x0)(x−x1)+k(x−x0)(x−x1)(x−x2)
其中 k k k 为待定系数。待定系数求解
通过导数条件 H 3 ′ ( x 1 ) = m 1 H_3'(x_1) = m_1 H3′(x1)=m1 确定 k k k:
H 3 ′ ( x 1 ) = f [ x 0 , x 1 ] + f [ x 0 , x 1 , x 2 ] ( x 1 − x 0 ) + k ( x 1 − x 0 ) ( x 1 − x 2 ) = m 1 H_3'(x_1) = f[x_0, x_1] + f[x_0, x_1, x_2](x_1 - x_0) + k(x_1 - x_0)(x_1 - x_2) = m_1 H3′(x1)=f[x0,x1]+f[x0,x1,x2](x1−x0)+k(x1−x0)(x1−x2)=m1
解得:
k = m 1 − f [ x 0 , x 1 ] − f [ x 0 , x 1 , x 2 ] ( x 1 − x 0 ) ( x 1 − x 0 ) ( x 1 − x 2 ) k = \frac{m_1 - f[x_0, x_1] - f[x_0, x_1, x_2](x_1 - x_0)}{(x_1 - x_0)(x_1 - x_2)} k=(x1−x0)(x1−x2)m1−f[x0,x1]−f[x0,x1,x2](x1−x0)最终表达式
将 k k k 代入后, H 3 ( x ) H_3(x) H3(x) 的完整形式为:
H 3 ( x ) = y 0 + f [ x 0 , x 1 ] ( x − x 0 ) + f [ x 0 , x 1 , x 2 ] ( x − x 0 ) ( x − x 1 ) H_3(x) = y_0 + f[x_0, x_1](x - x_0) + f[x_0, x_1, x_2](x - x_0)(x - x_1) H3(x)=y0+f[x0,x1](x−x0)+f[x0,x1,x2](x−x0)(x−x1)- m 1 − f [ x 0 , x 1 ] − f [ x 0 , x 1 , x 2 ] ( x 1 − x 0 ) ( x 1 − x 0 ) ( x 1 − x 2 ) ( x − x 0 ) ( x − x 1 ) ( x − x 2 ) \frac{m_1 - f[x_0, x_1] - f[x_0, x_1, x_2](x_1 - x_0)}{(x_1 - x_0)(x_1 - x_2)} (x - x_0)(x - x_1)(x - x_2) (x1−x0)(x1−x2)m1−f[x0,x1]−f[x0,x1,x2](x1−x0)(x−x0)(x−x1)(x−x2)
余项为:
R ( x ) = 1 4 ! f ( 4 ) ( ξ ) ( x − x 0 ) ( x − x 1 ) 2 ( x − x 2 ) , ξ ∈ ( x 0 , x 2 ) R(x) = \frac{1}{4!}f^{(4)}(\xi)(x - x_0)(x - x_1)^2(x - x_2), \quad \xi \in (x_0, x_2) R(x)=4!1f(4)(ξ)(x−x0)(x−x1)2(x−x2),ξ∈(x0,x2)
一般埃尔米特插值多项式
问题描述
已知节点
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 和导数值
y
0
′
,
y
1
′
,
…
,
y
n
′
y'_0, y'_1, \ldots, y'_n
y0′,y1′,…,yn′,要求构造次数为
2
n
+
1
2n+1
2n+1 的多项式
H
2
n
+
1
(
x
)
H_{2n+1}(x)
H2n+1(x)(这样的Hermite 插值唯一),满足:
{
H
2
n
+
1
(
x
i
)
=
y
i
,
H
2
n
+
1
′
(
x
i
)
=
y
i
′
(
i
=
0
,
1
,
…
,
n
)
\begin{cases} H_{2n+1}(x_i) = y_i, \\ H'_{2n+1}(x_i) = y'_i \end{cases} \quad (i = 0, 1, \ldots, n)
{H2n+1(xi)=yi,H2n+1′(xi)=yi′(i=0,1,…,n)
解法形式
设多项式为:
H
2
n
+
1
(
x
)
=
∑
i
=
0
n
y
i
α
i
(
x
)
+
∑
i
=
0
n
y
i
′
β
i
(
x
)
H_{2n+1}(x) = \sum_{i=0}^n y_i \alpha_i(x) + \sum_{i=0}^n y'_i \beta_i(x)
H2n+1(x)=i=0∑nyiαi(x)+i=0∑nyi′βi(x)
其中基函数
α
i
(
x
)
\alpha_i(x)
αi(x) 和
β
i
(
x
)
\beta_i(x)
βi(x) 满足:
{
α
i
(
x
j
)
=
δ
i
j
,
α
i
′
(
x
j
)
=
0
β
i
(
x
j
)
=
0
,
β
i
′
(
x
j
)
=
δ
i
j
\begin{cases} \alpha_i(x_j) = \delta_{ij}, & \alpha'_i(x_j) = 0 \\ \beta_i(x_j) = 0, & \beta'_i(x_j) = \delta_{ij} \end{cases}
{αi(xj)=δij,βi(xj)=0,αi′(xj)=0βi′(xj)=δij
α i ( x ) \alpha_i(x) αi(x) 和 β i ( x ) \beta_i(x) βi(x) 均为 2 n + 1 2n+1 2n+1 次多项式。
基函数构造
α i ( x ) \alpha_i(x) αi(x) 的构造
-
零点性质: α i ( x ) \alpha_i(x) αi(x) 在 x 0 , x 1 , … , x n x_0, x_1, \ldots, x_n x0,x1,…,xn 处有二重零点(除 x i x_i xi 外)。
-
形式假设:
α i ( x ) = [ A i x + B i ] l i 2 ( x ) \alpha_i(x) = [A_i x + B_i] l_i^2(x) αi(x)=[Aix+Bi]li2(x)
其中 l i ( x ) = ∏ j ≠ i x − x j x i − x j l_i(x) = \prod_{\substack{j \neq i}} \dfrac{x - x_j}{x_i - x_j} li(x)=∏j=ixi−xjx−xj 为拉格朗日基函数。 -
条件求解:
- α i ( x i ) = 1 ⇒ B i = 1 \alpha_i(x_i) = 1 \Rightarrow B_i = 1 αi(xi)=1⇒Bi=1
- α i ′ ( x i ) = 0 ⇒ A i = − 2 l i ′ ( x i ) \alpha'_i(x_i) = 0 \Rightarrow A_i = -2 l_i'(x_i) αi′(xi)=0⇒Ai=−2li′(xi)
最终形式为:
α i ( x ) = [ 1 − 2 l i ′ ( x i ) ( x − x i ) ] l i 2 ( x ) \alpha_i(x) = \left[ 1 - 2 l_i'(x_i)(x - x_i) \right] l_i^2(x) αi(x)=[1−2li′(xi)(x−xi)]li2(x)
β i ( x ) \beta_i(x) βi(x) 的构造
-
零点性质: β i ( x ) \beta_i(x) βi(x) 在 x 0 , x 1 , … , x n x_0, x_1, \ldots, x_n x0,x1,…,xn 处有二重零点(除 x i x_i xi 外)。
-
形式假设:
[
\beta_i(x) = C_i (x - x_i) l_i^2(x)
] -
条件求解:
- β i ′ ( x i ) = 1 ⇒ C i = 1 \beta'_i(x_i) = 1 \Rightarrow C_i = 1 βi′(xi)=1⇒Ci=1
最终形式为:
β i ( x ) = ( x − x i ) l i 2 ( x ) \beta_i(x) = (x - x_i) l_i^2(x) βi(x)=(x−xi)li2(x)
余项分析
设区间 [ a , b ] [a, b] [a,b] 满足 a = x 0 < x 1 < ⋯ < x n = b a = x_0 < x_1 < \cdots < x_n = b a=x0<x1<⋯<xn=b,且 f ∈ C 2 n + 2 [ a , b ] f \in C^{2n+2}[a, b] f∈C2n+2[a,b],则插值余项为:
R n ( x ) = f ( 2 n + 2 ) ( ξ ) ( 2 n + 2 ) ! [ ∏ i = 0 n ( x − x i ) ] 2 R_n(x) = \frac{f^{(2n+2)}(\xi)}{(2n+2)!} \left[ \prod_{i=0}^n (x - x_i) \right]^2 Rn(x)=(2n+2)!f(2n+2)(ξ)[i=0∏n(x−xi)]2
其中 ξ ∈ ( a , b ) \xi \in (a, b) ξ∈(a,b)。
分段低次插值
分段线性插值
定义
设已知节点
a
<
x
0
<
x
1
<
⋯
<
x
n
=
b
a < x_0 < x_1 < \cdots < x_n = b
a<x0<x1<⋯<xn=b 处的函数值为
f
0
,
f
1
,
…
,
f
n
f_0, f_1, \ldots, f_n
f0,f1,…,fn,记区间宽度:
h
k
=
x
k
+
1
−
x
k
,
h
=
max
k
h
k
h_k = x_{k+1} - x_k, \quad h = \max_k h_k
hk=xk+1−xk,h=kmaxhk
分段线性插值通过折线段连接插值点逼近
f
(
x
)
f(x)
f(x),构造折线函数
I
h
(
x
)
I_h(x)
Ih(x) 满足:
- 连续性: I h ( x ) ∈ C [ a , b ] I_h(x) \in C[a, b] Ih(x)∈C[a,b]
- 插值条件: I h ( x k ) = f k ( k = 0 , 1 , … , n ) I_h(x_k) = f_k \quad (k = 0, 1, \ldots, n) Ih(xk)=fk(k=0,1,…,n)
- 分段线性:在每段区间 [ x k , x k + 1 ] [x_k, x_{k+1}] [xk,xk+1] 上, I h ( x ) I_h(x) Ih(x) 为线性函数。
分段线性插值函数可表示为:
I
h
(
x
)
=
∑
k
=
0
n
f
k
l
k
(
x
)
I_h(x) = \sum_{k=0}^n f_k l_k(x)
Ih(x)=k=0∑nfklk(x)
其中
l
k
(
x
)
l_k(x)
lk(x) 为分段线性基函数。
基函数定义
基函数
l
k
(
x
)
l_k(x)
lk(x) 在区间内的表达式为:
l
k
(
x
)
=
{
x
−
x
k
−
1
x
k
−
x
k
−
1
,
x
∈
[
x
k
−
1
,
x
k
]
(
k
≠
0
)
x
−
x
k
+
1
x
k
−
x
k
+
1
,
x
∈
[
x
k
,
x
k
+
1
]
(
k
≠
n
)
0
,
x
∉
[
x
k
−
1
,
x
k
+
1
]
l_k(x) = \begin{cases} \dfrac{x - x_{k-1}}{x_k - x_{k-1}}, & x \in [x_{k-1}, x_k] \quad (k \neq 0) \\ \dfrac{x - x_{k+1}}{x_k - x_{k+1}}, & x \in [x_k, x_{k+1}] \quad (k \neq n) \\ 0, & x \notin [x_{k-1}, x_{k+1}] \end{cases}
lk(x)=⎩
⎨
⎧xk−xk−1x−xk−1,xk−xk+1x−xk+1,0,x∈[xk−1,xk](k=0)x∈[xk,xk+1](k=n)x∈/[xk−1,xk+1]
区间分段表达式
左半区间
[
x
k
−
1
,
x
k
]
[x_{k-1}, x_k]
[xk−1,xk]:
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) = \dfrac{x - x_{k-1}}{x_k - x_{k-1}} f_k + \dfrac{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
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) = \dfrac{x - x_{k+1}}{x_k - x_{k+1}} f_k + \dfrac{x - x_k}{x_{k+1} - x_k} f_{k+1}
Ih(x)=xk−xk+1x−xk+1fk+xk+1−xkx−xkfk+1
收敛性与性质
-
一致收敛性:当 h → 0 h \to 0 h→0 时, I h ( x ) I_h(x) Ih(x) 在 [ a , b ] [a, b] [a,b] 上一致收敛到 f ( x ) f(x) f(x)。
-
光滑性缺失:分段线性插值函数仅连续( C 0 C^0 C0),但不可导(失去原函数的光滑性)。
插值误差
max x k ≤ x ≤ x k + 1 ∣ f ( x ) − I h ( x ) ∣ ≤ M 2 2 max x k ≤ x ≤ x k + 1 ∣ ( x − x k ) ( x − x k + 1 ) ∣ \max_{x_k \leq x \leq x_{k+1}} |f(x) - I_h(x)| \leq \frac{M_2}{2} \max_{x_k \leq x \leq x_{k+1}} |(x - x_k)(x - x_{k+1})| xk≤x≤xk+1max∣f(x)−Ih(x)∣≤2M2xk≤x≤xk+1max∣(x−xk)(x−xk+1)∣
或
max a ≤ x ≤ b ∣ f ( x ) − I h ( x ) ∣ ≤ M 2 8 h 2 \max_{a \leq x \leq b} |f(x) - I_h(x)| \leq \frac{M_2}{8} h^2 a≤x≤bmax∣f(x)−Ih(x)∣≤8M2h2
其中
M 2 = max a ≤ x ≤ b ∣ f ′ ′ ( x ) ∣ M_2 = \max_{a \leq x \leq b} |f''(x)| M2=a≤x≤bmax∣f′′(x)∣
分段三次 Hermite 插值
问题描述
在节点
x
0
<
x
1
<
⋯
<
x
n
x_0 < x_1 < \cdots < x_n
x0<x1<⋯<xn 上已知函数值
f
k
f_k
fk 和导数值
f
k
′
=
m
k
f'_k = m_k
fk′=mk,构造分段插值多项式函数
I
h
(
x
)
I_h(x)
Ih(x) 满足:
- 光滑性: I h ∈ C 1 [ a , b ] I_h \in C^1[a, b] Ih∈C1[a,b]
- 插值条件:
I h ( x k ) = f k , I h ′ ( x k ) = f k ′ ( k = 0 , 1 , … , n ) I_h(x_k) = f_k, \quad I'_h(x_k) = f'_k \quad (k = 0, 1, \ldots, n) Ih(xk)=fk,Ih′(xk)=fk′(k=0,1,…,n) - 分段三次多项式:在每段区间 [ x k , x k + 1 ] [x_k, x_{k+1}] [xk,xk+1] 上, I h ( x ) I_h(x) Ih(x) 为三次多项式。
全局表达式
插值函数可表示为:
I
h
(
x
)
=
∑
k
=
0
n
[
f
(
x
k
)
α
k
(
x
)
+
f
′
(
x
k
)
β
k
(
x
)
]
I_h(x) = \sum_{k=0}^n \left[ f(x_k) \alpha_k(x) + f'(x_k) \beta_k(x) \right]
Ih(x)=k=0∑n[f(xk)αk(x)+f′(xk)βk(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
)
2
(
1
+
2
x
−
x
k
x
k
+
1
−
x
k
)
f
k
(
x
−
x
k
x
k
+
1
−
x
k
)
2
(
1
+
2
x
−
x
k
+
1
x
k
−
x
k
+
1
)
f
k
+
1
(
x
−
x
k
+
1
x
k
−
x
k
+
1
)
2
(
x
−
x
k
)
f
k
′
(
x
−
x
k
x
k
+
1
−
x
k
)
2
(
x
−
x
k
+
1
)
f
k
+
1
′
\begin{aligned} I_h(x) = &\left( \dfrac{x - x_{k+1}}{x_k - x_{k+1}} \right)^2 \left( 1 + 2 \dfrac{x - x_k}{x_{k+1} - x_k} \right) f_k \\ &\left( \dfrac{x - x_k}{x_{k+1} - x_k} \right)^2 \left( 1 + 2 \dfrac{x - x_{k+1}}{x_k - x_{k+1}} \right) f_{k+1} \\ &\left( \dfrac{x - x_{k+1}}{x_k - x_{k+1}} \right)^2 (x - x_k) f'_k \\ &\left( \dfrac{x - x_k}{x_{k+1} - x_k} \right)^2 (x - x_{k+1}) f'_{k+1} \end{aligned}
Ih(x)=(xk−xk+1x−xk+1)2(1+2xk+1−xkx−xk)fk(xk+1−xkx−xk)2(1+2xk−xk+1x−xk+1)fk+1(xk−xk+1x−xk+1)2(x−xk)fk′(xk+1−xkx−xk)2(x−xk+1)fk+1′
(基函数 α k ( x ) \alpha_k(x) αk(x) 和 β k ( x ) \beta_k(x) βk(x) 的定义已在前面详细给出,此处可省略重复内容以保持简洁)
α
k
(
x
)
\alpha_k(x)
αk(x) 的分段表达式
α
k
(
x
)
=
{
(
x
−
x
k
−
1
x
k
−
x
k
−
1
)
2
(
1
+
2
x
−
x
k
x
k
−
1
−
x
k
)
,
x
∈
[
x
k
−
1
,
x
k
]
(
k
≠
0
)
(
x
−
x
k
+
1
x
k
−
x
k
+
1
)
2
(
1
+
2
x
−
x
k
x
k
+
1
−
x
k
)
,
x
∈
[
x
k
,
x
k
+
1
]
(
k
≠
n
)
0
,
其他区间
\alpha_k(x) = \begin{cases} \left( \dfrac{x - x_{k-1}}{x_k - x_{k-1}} \right)^2 \left( 1 + 2 \dfrac{x - x_k}{x_{k-1} - x_k} \right), & x \in [x_{k-1}, x_k] \quad (k \neq 0) \\ \left( \dfrac{x - x_{k+1}}{x_k - x_{k+1}} \right)^2 \left( 1 + 2 \dfrac{x - x_k}{x_{k+1} - x_k} \right), & x \in [x_k, x_{k+1}] \quad (k \neq n) \\ 0, & \text{其他区间} \end{cases}
αk(x)=⎩
⎨
⎧(xk−xk−1x−xk−1)2(1+2xk−1−xkx−xk),(xk−xk+1x−xk+1)2(1+2xk+1−xkx−xk),0,x∈[xk−1,xk](k=0)x∈[xk,xk+1](k=n)其他区间
β
k
(
x
)
\beta_k(x)
βk(x) 的分段表达式
β
k
(
x
)
=
{
(
x
−
x
k
−
1
x
k
−
x
k
−
1
)
2
(
x
−
x
k
)
,
x
∈
[
x
k
−
1
,
x
k
]
(
k
≠
0
)
(
x
−
x
k
+
1
x
k
−
x
k
+
1
)
2
(
x
−
x
k
)
,
x
∈
[
x
k
,
x
k
+
1
]
(
k
≠
n
)
0
,
其他区间
\beta_k(x) = \begin{cases} \left( \dfrac{x - x_{k-1}}{x_k - x_{k-1}} \right)^2 (x - x_k), & x \in [x_{k-1}, x_k] \quad (k \neq 0) \\ \left( \dfrac{x - x_{k+1}}{x_k - x_{k+1}} \right)^2 (x - x_k), & x \in [x_k, x_{k+1}] \quad (k \neq n) \\ 0, & \text{其他区间} \end{cases}
βk(x)=⎩
⎨
⎧(xk−xk−1x−xk−1)2(x−xk),(xk−xk+1x−xk+1)2(x−xk),0,x∈[xk−1,xk](k=0)x∈[xk,xk+1](k=n)其他区间
样条插值
样条插值的概念
对于给定节点 a = x 0 < x 1 < ⋯ < x n = b a = x_0 < x_1 < \cdots < x_n = b a=x0<x1<⋯<xn=b,若存在函数 s ( x ) s(x) s(x) 满足:
- 在每个小区间 [ x j , x j + 1 ] [x_j, x_{j+1}] [xj,xj+1] 上是一个次数不超过3的多项式;
- 在每一个内节点上具有直到二阶的连续导数,
则称 s ( x ) s(x) s(x) 是节点 x 0 , x 1 , ⋯ , x n x_0, x_1, \cdots, x_n x0,x1,⋯,xn 上的三次样条函数。
若在节点上给定函数值
f
(
x
j
)
=
y
j
(
j
=
0
,
⋯
,
n
)
f(x_j) = y_j \ (j = 0, \cdots, n)
f(xj)=yj (j=0,⋯,n),并满足
3.
s
(
x
j
)
=
y
j
,
j
=
0
,
⋯
,
n
s(x_j) = y_j, \ j = 0, \cdots, n
s(xj)=yj, j=0,⋯,n
则称
s
(
x
)
s(x)
s(x) 是三次样条插值函数。
三次样条插值函数 s ( x ) s(x) s(x) 的确定:
s
(
x
)
=
{
s
1
(
x
)
,
x
0
≤
x
≤
x
1
,
⋮
s
n
(
x
)
,
x
n
−
1
≤
x
≤
x
n
.
s(x) = \begin{cases} s_1(x), & x_0 \leq x \leq x_1, \\ \vdots \\ s_n(x), & x_{n-1} \leq x \leq x_n. \end{cases}
s(x)=⎩
⎨
⎧s1(x),⋮sn(x),x0≤x≤x1,xn−1≤x≤xn.
在每个
[
x
j
,
x
j
+
1
]
[x_j, x_{j+1}]
[xj,xj+1] 上要确定4个待定系数,共
4
n
4n
4n 个参数。因二阶导数连续,故在内节点
x
j
x_j
xj 上满足连续性条件:
s
(
x
j
−
0
)
=
s
(
x
j
+
0
)
,
s
′
(
x
j
−
0
)
=
s
′
(
x
j
+
0
)
,
s
′
′
(
x
j
−
0
)
=
s
′
′
(
x
j
+
0
)
,
(
j
=
1
,
⋯
,
n
−
1
)
\begin{gathered} s(x_j - 0) = s(x_j + 0), \quad s'(x_j - 0) = s'(x_j + 0), \\ s''(x_j - 0) = s''(x_j + 0), \quad (j = 1, \cdots, n-1) \end{gathered}
s(xj−0)=s(xj+0),s′(xj−0)=s′(xj+0),s′′(xj−0)=s′′(xj+0),(j=1,⋯,n−1)
再加上插值条件,共
4
n
−
2
4n - 2
4n−2 个条件。还需2个条件,通常在两个端点加上边界条件。
常见三种边界条件:
- 第一种边界条件: s ′ ( x 0 ) = y 0 ′ , s ′ ( x n ) = y n ′ s'(x_0) = y_0', \quad s'(x_n) = y_n' s′(x0)=y0′,s′(xn)=yn′。
- 第二种边界条件:
s
′
′
(
x
0
)
=
y
0
′
′
,
s
′
′
(
x
n
)
=
y
n
′
′
s''(x_0) = y_0'', \quad s''(x_n) = y_n''
s′′(x0)=y0′′,s′′(xn)=yn′′。
特别地,自然边界条件: s ′ ′ ( x 0 ) = 0 , s ′ ′ ( x n ) = 0 s''(x_0) = 0, \quad 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'(x_0 + 0) = s'(x_n - 0), \quad s''(x_0 + 0) = s''(x_n - 0). s′(x0+0)=s′(xn−0),s′′(x0+0)=s′′(xn−0).
注意:因插值条件 y 0 = y n y_0 = y_n y0=yn,故 s ( x 0 + 0 ) = s ( x n − 0 ) s(x_0 + 0) = s(x_n - 0) s(x0+0)=s(xn−0) 已经成立。
三次样条插值函数的建立
求三次样条插值函数常用三弯矩法和三转角法。
三转角法:假定
s
′
(
x
j
)
=
m
j
(
j
=
0
,
⋯
,
n
)
s'(x_j) = m_j \ (j = 0, \cdots, n)
s′(xj)=mj (j=0,⋯,n),根据分段三次埃尔米特插值多项式,
s
(
x
)
=
∑
j
=
0
n
[
f
j
α
j
(
x
)
+
m
j
β
j
(
x
)
]
s(x) = \sum_{j=0}^n \left[ f_j \alpha_j(x) + m_j \beta_j(x) \right]
s(x)=j=0∑n[fjαj(x)+mjβj(x)]
由插值条件、连续性条件和边界条件,可得关于
m
j
m_j
mj 的三对角方程组,求出
m
j
m_j
mj,得到三次样条插值函数。
三弯矩法:令
s
′
′
(
x
j
)
=
M
j
,
j
=
0
,
⋯
,
n
,
h
j
=
x
j
+
1
−
x
j
s''(x_j) = M_j, \quad j = 0, \cdots, n, \quad h_j = x_{j+1} - x_j
s′′(xj)=Mj,j=0,⋯,n,hj=xj+1−xj
则
s
′
′
(
x
)
=
x
j
+
1
−
x
h
j
M
j
+
x
−
x
j
h
j
M
j
+
1
,
x
∈
[
x
j
,
x
j
+
1
]
s''(x) = \frac{x_{j+1} - x}{h_j} M_j + \frac{x - x_j}{h_j} M_{j+1}, \quad x \in [x_j, x_{j+1}]
s′′(x)=hjxj+1−xMj+hjx−xjMj+1,x∈[xj,xj+1]
s
′
(
x
)
=
−
(
x
j
+
1
−
x
)
2
2
h
j
M
j
+
(
x
−
x
j
)
2
2
h
j
M
j
+
1
+
c
1
,
s
(
x
)
=
(
x
j
+
1
−
x
)
3
6
h
j
M
j
+
(
x
−
x
j
)
3
6
h
j
M
j
+
1
+
c
1
x
+
c
2
,
s
(
x
j
)
=
1
6
h
j
2
M
j
+
c
1
x
j
+
c
2
=
y
j
,
s
(
x
j
+
1
)
=
1
6
h
j
2
M
j
+
1
+
c
1
x
j
+
1
+
c
2
=
y
j
+
1
,
c
1
=
y
j
+
1
−
y
j
h
j
−
1
6
h
j
(
M
j
+
1
−
M
j
)
,
c
2
=
y
j
x
j
+
1
−
y
j
+
1
x
j
h
j
−
1
6
h
j
(
x
j
+
1
M
j
−
x
j
M
j
+
1
)
.
\begin{aligned} s'(x) &= -\frac{(x_{j+1} - x)^2}{2 h_j} M_j + \frac{(x - x_j)^2}{2 h_j} M_{j+1} + c_1, \\ s(x) &= \frac{(x_{j+1} - x)^3}{6 h_j} M_j + \frac{(x - x_j)^3}{6 h_j} M_{j+1} + c_1 x + c_2, \\ s(x_j) &= \frac{1}{6} h_j^2 M_j + c_1 x_j + c_2 = y_j, \\ s(x_{j+1}) &= \frac{1}{6} h_j^2 M_{j+1} + c_1 x_{j+1} + c_2 = y_{j+1}, \\ c_1 &= \frac{y_{j+1} - y_j}{h_j} - \frac{1}{6} h_j (M_{j+1} - M_j), \\ c_2 &= \frac{y_j x_{j+1} - y_{j+1} x_j}{h_j} - \frac{1}{6} h_j (x_{j+1} M_j - x_j M_{j+1}). \end{aligned}
s′(x)s(x)s(xj)s(xj+1)c1c2=−2hj(xj+1−x)2Mj+2hj(x−xj)2Mj+1+c1,=6hj(xj+1−x)3Mj+6hj(x−xj)3Mj+1+c1x+c2,=61hj2Mj+c1xj+c2=yj,=61hj2Mj+1+c1xj+1+c2=yj+1,=hjyj+1−yj−61hj(Mj+1−Mj),=hjyjxj+1−yj+1xj−61hj(xj+1Mj−xjMj+1).
s ( x ) = ( x j + 1 − x ) 3 6 h j M j + ( x − x j ) 3 6 h j M j + 1 + ( y j − M j h j 2 6 ) x j + 1 − x h j + ( y j + 1 − M j + 1 h j 2 6 ) x − x j h j s(x) = \frac{(x_{j+1} - x)^3}{6 h_j} M_j + \frac{(x - x_j)^3}{6 h_j} M_{j+1} + \left( y_j - \frac{M_j h_j^2}{6} \right) \frac{x_{j+1} - x}{h_j} + \left( y_{j+1} - \frac{M_{j+1} h_j^2}{6} \right) \frac{x - x_j}{h_j} s(x)=6hj(xj+1−x)3Mj+6hj(x−xj)3Mj+1+(yj−6Mjhj2)hjxj+1−x+(yj+1−6Mj+1hj2)hjx−xj
s ′ ( x ) = − ( x j + 1 − x ) 2 2 h j M j + ( x − x j ) 2 2 h j M j + 1 + y j + 1 − y j h j − M j + 1 − M j 6 h j . s'(x) = -\frac{(x_{j+1} - x)^2}{2 h_j} M_j + \frac{(x - x_j)^2}{2 h_j} M_{j+1} + \frac{y_{j+1} - y_j}{h_j} - \frac{M_{j+1} - M_j}{6} h_j. s′(x)=−2hj(xj+1−x)2Mj+2hj(x−xj)2Mj+1+hjyj+1−yj−6Mj+1−Mjhj.
为了求
M
0
,
⋯
,
M
n
M_0, \cdots, M_n
M0,⋯,Mn,要用导数连续条件:
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
)
=
−
h
j
3
M
j
−
h
j
6
M
j
+
1
+
y
j
+
1
−
y
j
h
j
,
s
′
(
x
j
+
1
−
0
)
=
h
j
6
M
j
+
h
j
3
M
j
+
1
+
y
j
+
1
−
y
j
h
j
,
s
′
(
x
j
−
0
)
=
h
j
−
1
6
M
j
−
1
+
h
j
−
1
3
M
j
+
y
j
−
y
j
−
1
h
j
−
1
.
h
j
−
1
6
M
j
−
1
+
h
j
−
1
+
h
j
3
M
j
+
h
j
6
M
j
+
1
=
y
j
−
y
j
−
1
h
j
−
1
−
y
j
+
1
−
y
j
h
j
,
j
=
1
,
⋯
,
n
−
1
,
\begin{align*} s'(x_j + 0) &= -\frac{h_j}{3} M_j - \frac{h_j}{6} M_{j+1} + \frac{y_{j+1} - y_j}{h_j}, \\ s'(x_{j+1} - 0) &= \frac{h_j}{6} M_j + \frac{h_j}{3} M_{j+1} + \frac{y_{j+1} - y_j}{h_j}, \\ s'(x_j - 0) &= \frac{h_{j-1}}{6} M_{j-1} + \frac{h_{j-1}}{3} M_j + \frac{y_j - y_{j-1}}{h_{j-1}}. \\ \frac{h_{j-1}}{6} M_{j-1} + \frac{h_{j-1} + h_j}{3} M_j + \frac{h_j}{6} M_{j+1} &= \frac{y_j - y_{j-1}}{h_{j-1}} - \frac{y_{j+1} - y_j}{h_j}, \quad j = 1, \cdots, n-1, \end{align*}
s′(xj+0)s′(xj+1−0)s′(xj−0)6hj−1Mj−1+3hj−1+hjMj+6hjMj+1=−3hjMj−6hjMj+1+hjyj+1−yj,=6hjMj+3hjMj+1+hjyj+1−yj,=6hj−1Mj−1+3hj−1Mj+hj−1yj−yj−1.=hj−1yj−yj−1−hjyj+1−yj,j=1,⋯,n−1,
μ
j
M
j
−
1
+
2
M
j
+
λ
j
M
j
+
1
=
d
j
,
j
=
1
,
⋯
,
n
−
1
,
\mu_j M_{j-1} + 2 M_j + \lambda_j M_{j+1} = d_j, \quad j = 1, \cdots, n-1,
μjMj−1+2Mj+λjMj+1=dj,j=1,⋯,n−1,
其中
d
j
=
6
f
[
x
j
−
1
,
x
j
,
x
j
+
1
]
d_j = 6 f[x_{j-1}, x_j, x_{j+1}]
dj=6f[xj−1,xj,xj+1],
λ
j
=
h
j
h
j
−
1
+
h
j
,
μ
j
=
h
j
−
1
h
j
−
1
+
h
j
.
\lambda_j = \frac{h_j}{h_{j-1} + h_j}, \quad \mu_j = \frac{h_{j-1}}{h_{j-1} + h_j}.
λj=hj−1+hjhj,μj=hj−1+hjhj−1.
在第一边界条件下:
[
2
1
μ
1
2
λ
1
⋱
⋱
⋱
μ
n
−
1
2
λ
n
−
1
1
2
]
[
M
0
M
1
⋮
M
n
−
1
M
n
]
=
\begin{bmatrix} 2 & 1 & & & \\ \mu_1 & 2 & \lambda_1 & & \\ & \ddots & \ddots & \ddots & \\ & & \mu_{n-1} & 2 & \lambda_{n-1} \\ & & & 1 & 2 \end{bmatrix} \begin{bmatrix} M_0 \\ M_1 \\ \vdots \\ M_{n-1} \\ M_n \end{bmatrix} =
2μ112⋱λ1⋱μn−1⋱21λn−12
M0M1⋮Mn−1Mn
=
$
[
d
0
d
1
⋮
d
n
−
1
d
n
]
\begin{bmatrix} d_0 \\ d_1 \\ \vdots \\ d_{n-1} \\ d_n \end{bmatrix}
d0d1⋮dn−1dn
λ 0 = 1 , μ n = 1 , d 0 = 6 h 0 ( f [ x 0 , x 1 ] − f 0 ′ ) , d j = 6 f [ x j , x j + 1 ] − f [ x j − 1 , x j ] h j − 1 + h j = 6 f [ x j − 1 , x j , x j + 1 ] , j = 1 , 2 , … , n − 1 , d n = 6 h n − 1 ( f n ′ − f [ x n − 1 , x n ] ) . \lambda_0 = 1, \quad \mu_n = 1, \\ d_0 = \frac{6}{h_0} \left( f[x_0, x_1] - f'_0 \right), \\ d_j = 6 \frac{f[x_j, x_{j+1}] - f[x_{j-1}, x_j]}{h_{j-1} + h_j} = 6 f[x_{j-1}, x_j, x_{j+1}], \quad j = 1, 2, \dots, n-1, \\ d_n = \frac{6}{h_{n-1}} \left( f'_n - f[x_{n-1}, x_n] \right). λ0=1,μn=1,d0=h06(f[x0,x1]−f0′),dj=6hj−1+hjf[xj,xj+1]−f[xj−1,xj]=6f[xj−1,xj,xj+1],j=1,2,…,n−1,dn=hn−16(fn′−f[xn−1,xn]).
第二边界条件矩阵方程
[ 2 λ 1 μ 2 2 λ 2 ⋱ ⋱ ⋱ μ n − 1 2 ] \begin{bmatrix} 2 & \lambda_1 & & \\ \mu_2 & 2 & \lambda_2 & \\ & \ddots & \ddots & \ddots \\ & & \mu_{n-1} & 2 \end{bmatrix} 2μ2λ12⋱λ2⋱μn−1⋱2
[ M 1 M 2 ⋮ M n − 1 ] = \begin{bmatrix} M_1 \\ M_2 \\ \vdots \\ M_{n-1} \end{bmatrix} = M1M2⋮Mn−1 =
[
d
1
−
μ
1
f
0
′
′
d
2
⋮
d
n
−
1
−
λ
n
−
1
f
n
′
′
]
\begin{bmatrix} d_1 - \mu_1 f''_0 \\ d_2 \\ \vdots \\ d_{n-1} - \lambda_{n-1} f''_n \end{bmatrix}
d1−μ1f0′′d2⋮dn−1−λn−1fn′′
边界条件约束:
{
M
0
=
f
0
′
′
,
M
n
=
f
n
′
′
.
\begin{cases} M_0 = f''_0, \\ M_n = f''_n. \end{cases}
{M0=f0′′,Mn=fn′′.
第三边界条件(周期边界条件)矩阵方程
[
2
λ
1
μ
1
μ
2
2
λ
2
⋱
⋱
⋱
μ
n
−
1
2
λ
n
−
1
λ
n
μ
n
2
]
[
M
1
M
2
⋮
M
n
−
1
M
n
]
=
\begin{bmatrix} 2 & \lambda_1 & & & \mu_1 \\ \mu_2 & 2 & \lambda_2 & & \\ & \ddots & \ddots & \ddots & \\ & & \mu_{n-1} & 2 & \lambda_{n-1} \\ \lambda_n & & & \mu_n & 2 \end{bmatrix} \begin{bmatrix} M_1 \\ M_2 \\ \vdots \\ M_{n-1} \\ M_n \end{bmatrix} =
2μ2λnλ12⋱λ2⋱μn−1⋱2μnμ1λn−12
M1M2⋮Mn−1Mn
=
[ d 1 d 2 ⋮ d n − 1 d n ] \begin{bmatrix} d_1 \\ d_2 \\ \vdots \\ d_{n-1} \\ d_n \end{bmatrix} d1d2⋮dn−1dn
特殊约束条件
{
x
0
=
x
n
(
周期条件
)
,
M
0
=
M
n
(
弯矩周期约束
)
,
μ
n
M
n
−
1
+
2
M
n
+
λ
n
M
1
=
d
n
(
闭环方程
)
.
\begin{cases} x_0 = x_n \quad (\text{周期条件}), \\ M_0 = M_n \quad (\text{弯矩周期约束}), \\ \mu_n M_{n-1} + 2M_n + \lambda_n M_1 = d_n \quad (\text{闭环方程}). \end{cases}
⎩
⎨
⎧x0=xn(周期条件),M0=Mn(弯矩周期约束),μnMn−1+2Mn+λnM1=dn(闭环方程).
参数定义
μ
n
=
h
n
−
1
h
n
−
1
+
h
0
(
末节点弯矩传递系数
)
,
λ
n
=
h
0
h
n
−
1
+
h
0
(
首节点弯矩传递系数
)
,
d
n
=
6
f
[
x
n
−
1
,
x
n
,
x
1
]
(
三阶差商计算
)
.
\begin{aligned} \mu_n &= \frac{h_{n-1}}{h_{n-1} + h_0} \quad (\text{末节点弯矩传递系数}), \\ \lambda_n &= \frac{h_0}{h_{n-1} + h_0} \quad (\text{首节点弯矩传递系数}), \\ d_n &= 6f[x_{n-1}, x_n, x_1] \quad (\text{三阶差商计算}). \end{aligned}
μnλndn=hn−1+h0hn−1(末节点弯矩传递系数),=hn−1+h0h0(首节点弯矩传递系数),=6f[xn−1,xn,x1](三阶差商计算).
误差界与收敛性
设
f
(
x
)
∈
C
4
[
a
,
b
]
f(x) \in C^4[a,b]
f(x)∈C4[a,b],
S
(
x
)
S(x)
S(x) 满足第一或第二边界条件,
令
h
=
max
0
≤
i
≤
n
−
1
h
i
h = \max\limits_{0 \leq i \leq n-1} h_i
h=0≤i≤n−1maxhi,其中
h
i
=
x
i
+
1
−
x
i
h_i = x_{i+1} - x_i
hi=xi+1−xi,则有估计式:
max
a
≤
x
≤
b
∣
f
(
k
)
(
x
)
−
s
(
k
)
(
x
)
∣
≤
C
k
(
max
a
≤
x
≤
b
∣
f
(
4
)
(
x
)
∣
)
h
4
−
k
\max_{a \leq x \leq b} \left| f^{(k)}(x) - s^{(k)}(x) \right| \leq C_k \left( \max_{a \leq x \leq b} \left| f^{(4)}(x) \right| \right) h^{4-k}
a≤x≤bmax
f(k)(x)−s(k)(x)
≤Ck(a≤x≤bmax
f(4)(x)
)h4−k
其中常数项系数为:
{
C
0
=
5
384
,
C
1
=
1
24
,
C
2
=
3
8
(
k
=
0
,
1
,
2
)
.
\begin{cases} C_0 = \dfrac{5}{384}, \\ C_1 = \dfrac{1}{24}, \\ C_2 = \dfrac{3}{8} \end{cases} \quad (k = 0, 1, 2).
⎩
⎨
⎧C0=3845,C1=241,C2=83(k=0,1,2).