2.7三次样条插值
加以整理后可得
hk 2( x xk ) hk 2( x xk 1 ) 2 Sk ( x) ( x xk 1 ) yk ( x xk )2 yk 1 hk3 hk3 ( x xk 1 ) ( x xk ) 2 ( x xk 1 ) mk ( x xk )2 mk 1 hk2 hk2
f ( x j ) y j , j 0,1,, n 而三次样条函数 (x)满足 S S( x j ) y j , j 0,1,, n
------(1)
则称S( x)为f ( x)在[a, b]上的三次样条插值函数
2.7 三次样条
/* Cubic Spline */
2
定义 设 a x0 x1 ... xn b 。三次样条函数 S( x) C
f(x) H(x)
S(x)
二、三次样条插值多项式
a x0 , x1 ,, xn b为区间 a, b]的一个分割 [ 如果函数 ( x)在节点x0 , x1 ,, xn处的函数值为 f
f ( x j ) y j , j 0,1,, n 如果S( x)是f ( x)的三次样条插值函数则其必满足 ,
x xk
lim S k 1 ( x )
由于以上两式相等,得
1 hk 1 mk 1 2( 1 hk 1 1 1 y y y y )mk mk 1 3( k 1 2 k k 2 k 1 ) hk hk hk hk 1
共个n 1个方程, n 1个未知量
g0 gn
与基本方程组(12)联合,并化为矩阵形式,得
2 1 1 2
2
1 3
2
2
2
n 1
2 n 1 1 2
m0 g 0 m1 g 1 m2 g 2 mn 1 g n 1 m g n n
p 1,2
一般使用第一、二类边界条件, 常用第二类边界条件 加上任何一类边界条件(至少两个)后
确定S( x)必须确定4n个待定的系数的条件正 好也是4n个
即
lim S ( x ) lim S ( x ) lim S ( x) lim S ( x) m lim S ( x) lim S ( x) S ( x ) f S( x ) f 或
a x0 , x1 ,, xn b为区间 a, b]的一个分割 [ 如果函数S( x)在区间 a, b]上满足条件: [
(1) S( x), S( x), S( x)都在区间 a, b]上连续,即S( x) C 2 [a, b] [
(2) S( x)在每个小区间xk , xk 1 ]上都是三次多项式 [ 则称 S( x)为区间 a, b]上的三次样条函数 [ (3) 如果函数f ( x)在节点x0 , x1 ,, xn处的函数值为
S ( x0 ) f0 S ( xn ) f n
设 S( x j ) mj , j 0,1,, n
逐个求f ( x)在小区间 xk , xk 1 ]上的三次插值多项式 k ( x) [ S 将Sk ( x)表示为 xk , xk 1 ]上的两点三次 [ Hermite 插值多项式
将(13)式化为矩阵形式
2 2
1 3
2
2 4
2
2
3
n 2
n 1
2
m1 g 1 1 f 0 m2 g2 g3 m3 n 2 mn 2 gn2 2 mn 1 g n 1 n 1 f n
2
2
x xk x x k k 1
2
2
x xk 1 x xk mk 1 x xk 1 mk x xk x x xk x k 1 k k 1
令hk xk 1 xk, 0,1,, n 1 k
S ( x)在[a , b]上必 然是分段函数即 ,
x [ x0 , x1 ] S0 ( x ) S1 ( x ) x [ x1 , x2 ] S (x ) S ( x) x [ x , x ] n1 n 1 n
Sk ( x)是[ xk , xk 1 ]上的(两点)三次样条插值多项式满足 ,
lim S k( x ) lim S k 1 ( x )
共4n 2个条件
Sk ( x)是[ xk , xk 1 ]上的三次样条插值多项 , 应有4个待定的系数 式 即要确定S( x)必须确定4n个待定的系数
少两个条件
并且我们不能只对插值函数在中间节点的状态进行限制
也要对插值多项式在两端点的状态加以要求
k 1 , , n 1
用
1 hk 1
1 除上式的两边, 并加以整理, 得 hk
k mk 1 2mk k mk 1k hk hk 1
------(12)
k 1 , , n 1
yk yk 1 yk 1 yk g k 3(k k ) hk 1 hk
例1. 对于给定的节点及函数值 k 0 1 2 3 xk 1 2 4 5 f ( xk ) 1 3 4 2
求满足自然边界条件 ( x0 ) S ( xn ) 0的三次样条 S 插值函数S ( x),并求f ( 3)的近似值
lim S k( x ) lim S k 1 ( x )
x xk
k 1,2 ,, n 1
x xk
lim S k( x )
6 4 2 ( yk 1 yk ) mk mk 1 2 hk hk hk 4 6 2 ( yk yk 1 ) mk 1 mk 2 hk 1 hk 1 hk 1
( ( ( ( ( Sk (x) H3k ) ( x) yk0k ) ( x) yk 11k ) ( x) mk 0k ) ( x) mk 1 1k ) ( x)
x xk yk 1 2 xk 1 xk
x xk 1 x xk 1 x x yk 1 1 2 x x k 1 k k 1 k
这是一个三对角方程组 如果问题要求满足第二类(二阶自然)边界条件:
S ( x0 ) f0 S ( xn ) f n
f0 f n 0时,称为自然边界条件
由(11)式,可知
6( x0 x1 2 x0 ) S0( x0 ) ( y1 y0 ) 3 h0 6 x0 2 x0 4 x1 6 x0 4 x0 2 x1 m0 m1 2 2 h0 h0 4 2 6 2 ( y1 y0 ) m0 m1 f 0 h0 h0 h0
x xk
Sk ( x j ) y j
k
j 0,1,, n
k 1,2 ,, n 1 k 1,2 ,, n 1 k 1,2 ,, n 1
x xk
k 1
x xk
k
x xk
k 1 k 1
k
x xk
k
x xk
0
0
n
n
6 4 2 Sn 1 ( xn ) 2 ( yn yn 1 ) mn 1 mn f n hn 1 hn 1 hn 1
(15)(16)式是关于m0 , m1 , mn 1 , mn的方程, 整理后得
y1 y0 h0 2m0 m1 3 f 0 h0 2 yn yn 1 hn 1 mn 1 2 mn 3 f n hn 1 2
(19)式与(14)一样,都是三对角方程组,并且都严格对角占优
可以使用追赶法求解,并且解是唯一的
对于问题要求满足第三类(周期)边界条件 请同学们自己思考 现在回到(10)式
通过(14)或(19)式, 解出m0 , m1 ,, mn后 将m0 , m1 ,, mn代入(10)式
便可得到S0 ( x), S1 ( x),, Sn 1 ( x)从而得到 三次样条插值函数 ( x) S
对Sk (x)求二阶导数,并整理后得
6( xk xk 1 2 x) Sk( x) ( yk 1 yk ) 3 hk 6 x 2 xk 4 xk 1 6 x 4 xk 2 xk 1 mk mk 1 2 2 hk hk
由条件
x xk
S0 ( x0 ) y0 , Sn1 ( xn ) yn
Sk ( xk ) Sk 1 ( xk ) yk
x xk x xk
lim S k ( x ) lim S k 1 ( x )
x xk x xk
k 1,2 ,, n 1
也就是所谓的边界条件:
第一类(一阶)边界条件:
第二类(二阶)边界条件 第三类(周期)边界条件
S ( x0 ) f0 S ( xn ) f n S ( x0 ) f0 S ( xn ) f n
x x0 ( ( p) lim S0 p ) ( x) lim Sn 1 ( x) x xn
§ 2.7 三次样条插值
什么是样条: 是 指飞机或轮船等的制造过程中为描绘 出光滑的外形曲线(放样)所用的工具
样条本质上是一段一段的三次多项式拼合而成的曲线 在拼接处,不仅函数是连续的,且一阶和二阶导数也是连续的 1946年,Schoenberg将样条引入数学,即所谓的样条函数