当前位置:
文档之家› 详细讲解三次样条插值法及其实现方法
详细讲解三次样条插值法及其实现方法
1
样条函数的定义 定义4.1 设区间[a,b]上给定一个节点划分
a=x0<x1<……<xn-1<xn=b 如果存在正整数k使得[a,b]上的分段函数s(x)满足 如下两条: (1)在[a,b]上有直到k-1阶连续导数。 (2)在每个小区间[xi,xi+1]上是次数不大于k的多项式。 则称分段函数s(x)是以(2.6)为节点集的k次样条函数。
x xi i i 1 hi
) mi1hi
( ) xi1x
1 hi
x [xi , xi1], hi xi1 xi , i 0,1,, n 1
(x) (2x 1)( x 1)2,1(x) x(x 1)2 13
对Si (x)求二阶导数 ,并整理后得
Si( x)
6( xi
xi 1 hi3
2x)
因为分段三次Hermite插值多项式已经至少是一阶连续 可导了,为了让它成为三次样条函数只需确定节点处 的一阶导数使这些节点处的二阶导数连续即可!
S(xi 0) S(xi 0), i 1,, n 1
S(x)
y ( xxi i 0 hi
)
y ( ) m h ( xi1x i1 0 hi
( yn
yn 1 )
2 hn1
(mn1
2mn )
立即可得下式:
21
其中:
nm1 nmn1 2mn gn
n
h0
h0 hn1
, n
hn1 h0 hn1
1 n
gn
3 n
y1 y0 h0
n
yn
yn1 hn1
联合基本方程得一个广义三对角或周期三对角方程组:
2 1
1
1
2
2
1
2
3
2
2
n1
解: 这是自然边界条件下的样条问题。
k
hk
hk hk 1
k
hk 1 hk hk 1
1 k
1
2 3
1
1 3
2
1 3
2
2 3
24
g0 6
g1
9 2
g2
7 2
g3 6
我们可以将上述计算列于表中:
k
0
1
2
g0
3
y1 y0 h0
h0 2
M0
gk
3(k
yk yk 1 hk 1
k
yk 1 hk
19
稍加整理得
2m0
m1
3
y1 y0 h0
h0 2
M0
g0
mn1
2mn
3
yn yn1 hn1
hn1 2
Mn
gn
联合基本方程组得一个n+1阶三对角方程组, 化成矩阵形式为:仍然是严格对角占优
2
1
1 2
1
m0 m1
g0 g1
2 2 2
m2 g2
3 2
x xi i i 1 hi
) mi1hi
( ) xi1x
1 hi
hi xi1 xi , i 0,1,, n 1
H3 (x) HH33((10))((xx))
x0 x x1 x1 x x2
H
( 3
n1)
(
x)
xn1 x xn
12
我们采用待定一阶导数的方法即设
S(x j ) m j , j 0,1,, n
三次样条插值
鉴于高次插值不收敛又不稳定的特点,低次插值既具有收敛 性又具有稳定性,因此低次值更具有实用价值,但是低次插 值的光滑性较差,比如分段线性插值多项式在插值区间中仅 具有连续性,在插值节点处有棱角,一阶导数不存在;分段 三次Hermite插值多项式在插值区间中仅具有一阶导数即一 阶光滑性但不具备二阶光滑性,不能满足某些实际应用比如 汽车、轮船、飞机等的外形中流线形设计。样条是在二十世 纪初期经常用于图样设计的一种富有弹性的细长条,多个样 条互相弯曲连接后沿其边缘画出的曲线就是三次样条曲线。 后来数学上对其进行了抽象,定义了m次样条函数,并成为 数值逼近的重要研究分枝,进一步扩大了样条函数的应用范 围。
3( hi
yi yi1 hi1 yi1 yi )
hi1 hi hi1
hi1 hi hi
15
imi1 2mi imi1 gi , i 1, , n 1
i
hi
hi hi1
i
hi
hi1 hi1
1 i
gi
3(i
yi yi1 hi1
i
yi1 yi ) hi
共个n 1个方程,n 1个未知量
yk )
gn
3
yn yn1 hn1
hn1 2
Mn
3
xk
1
2
4
5
yk
1
3
4
2
mk
?
?
?
?
Mk
0
?
?
0
hk
1
2
1
*
λk
* 2/3 1/3 *
μk
* 1/3 2/3 *
gk
6 9/2 -7/2 -6
25
由些得如下方程组:
2
2 /3
1 2 1/3
1/3 2 1
2 /3 2
m0 m1
m2 m3
n1 2 n1 mn1 gn1
1 2 mn gn
20
第三类样条插值问题的方程组 由于:
S(x0 0) S(xn 0) m0 mn S(x0 0) S(xn 0)
S ( x0
0)
6 h02
( y1
y0 )
2 h0
(m1
2m0 )
S ( xn
0)
6 h2
n1
5
通常我们对插值多项式在两端点的状态加以要求也就是 所谓的边界条件:
第一边界条件:由区间端点处的一阶导数给出即
s3 s3
( (
x0 xn
) )
m0 mn
f f
(x0 ), (xn ),
6
第二边界条件:由区间端点处的二阶导数给出即
s3(x0 ) M0 f (x0 ), s3(xn ) M n f (xn ),
g0 g1 g2 g3
m0
17 8
, m1
7 4
, m2
5 4
, m3
19 8
利用三转角公式:
S(x)Leabharlann yi0( xxi hi
)
y ( ) m h ( xi1x i1 0 hi
x xi i i 1 hi
) mi1hi
( ) xi1x
1 hi
26
S0 (x)
y00
( xx0 h0
)
y1
( ) x1x
0 h0
m h ( xx0 0 0 1 h0
)
m1h01
(
x1 h0
x
)
0
(x
1)
30
(2
x)
17 8
1
(
x
1)
7 4
1
(2
x)
1 x3 3 x2 7 x 1 88 4
1 x 2
S1(x)
y10
(
x x1 h1
)
y20
(
x2 h1
x
)
m1h11
(
x x1 h1
三次样条插值函数的边界条件
如果S(x)是f (x)的三次样条插值函数 ,则其必满足
插值条件: 连续性条件: 一阶导数连续条件: 二阶导数连续条件:
S(x j ) y j , j 0,1,, n
lim
xx j
S(x)
S(xj
)
yj
,
j
1,, n
1
lim
xx j
S ( x)
S ( x j
)
mj
,
j
(
yi1
yi
)
6x
2xi hi2
4 xi 1
mi
6x
4xi hi2
2 xi 1
mi1
lim S(x)
x xi
S ( xi
0)
6 hi2
( yi1
yi )
4 hi
mi
2 hi
mi 1
lim
x xi
S ( x)
S ( xi
0)
6 h2
i 1
( yi
yi 1 )
2 hi1
mi1
4 hi1
mi
14
由于在内部节点处二阶导数连续条件:
S(xi 0) S(xi 0),i 1, 2, , n 1
1
1
hi1 mi1 2( hi1
1
hi
)mi
1
hi
mi1
3(
yi
1 hi2
yi
yi
yi h2
i 1
1
)
整理化简后得:
hi hi1
hi
mi1
2mi
hi1 hi1 hi
mi1
i 1,, n 1
Sk(x)
M k1 hk
Mk
(x xk ) Mk
,
x [xk , xk1]
hk xk1 xk (k 0,1, , n 1)
思考:(1)的原因?
30
(2)
y’ 1
0
9
样条函数的例子
(11x3 26x2 15x) 15
0 x 1
S ( x)
(3x
3
16x2
27x 14)
15
1 x 2