第三章 插值法和最小二乘法
3.6 三次样条插值§
3.6 三次样条插值§
什么是样条 : 是 指飞机或轮船等的制造过程中为描绘
出光滑的外形曲线 (放样 )所用的工具
样条本质上是一段一段的三次多项式拼合而成的曲线
在拼接处 ,不仅函数是连续的 ,且一阶和二阶导数也是连续的
1946年 ,Schoenberg将样条引入数学 ,即所谓的样条函数
一 、 三次样条插值函数
定义 1. 的一个分割为区间 ],[,,, 10 babxxxa n ≤≤ L
:],[)( 上满足条件在区间如果函数 baxS
],[)(,],[)(),(),()1( 2 baCxSbaxSxSxS ∈′′′ 即上连续都在区间
上都是三次多项式在每个小区间 ],[)()2( 1+kk xxxS
上的三次样条函数为区间则称 ],[)( baxS
处的函数值为在节点如果函数 nxxxxf ,,,)()3( 10 L
njyxf jj ,,1,0,)( L==
满足而三次样条函数 )(xS
njyxS jj ,,1,0,)( L==
上的三次样条插值函数在为则称 ],[)()( baxfxS
------(1)
二 、 三次样条插值多项式
处的函数值为在节点如果函数 nxxxxf ,,,)( 10 L
njyxf jj ,,1,0,)( L==
的一个分割为区间 ],[,,, 10 babxxxa n ≤≤ L
则其必满足的三次样条插值函数是如果 ,)()( xfxS
njyxS jj ,,1,0,)( L==
1,,1,)()(lim ?==′=′
→
njmxSxS jj
xx j
L
1,,1),()(lim ?=′′=′′
→
njxSxS j
xx j
L
1,,1,)()(lim ?===
→
njyxSxS jj
xx j
L
------(2)
???
???
?
条件个共要满足上述四组 )24()( ?nxS
即然是分段函数
上必在
,
],[)( baxS
],[)(
],[)(
],[)(
11
211
100
nnn xxxxS
xxxxS
xxxxS
?? ∈
∈
∈
MM
???
???
?
=)(xS
满足三次样条插值多项式两点上的是 ,)(],[)( 1+kkk xxxS
jjk yxS =)(
)(lim)(lim 1 xSxS k
xxkxx kk ?→→ ?+
=
)(lim)(lim 1 xSxS k
xxkxx kk ?→→
′=′
?+
)(lim)(lim 1 xSxS k
xxkxx kk ?→→
′′=′′
?+
1,,2,1 ?= nk L
个条件共 24 ?n
1,;1,,2,1,0 +=?= kkjnk L
------(3)
???
???
?
------(4)
个待定的系数应有式上的三次样条插值多项是 4,],[)( 1+kkk xxxS
个待定的系数必须确定即要确定 nxS 4)( 少两个条件
并且我们不能只对插值函数在中间节点的状态进行限制
也要对插值多项式在两端点的状态加以要求
也就是所谓的边界条件 :
第一类 (一阶 )边界条件 : 00 )( fxS ′=′ nn fxS ′=′ )(
第二类 (二阶 )边界条件 00 )( fxS ′′=′′ nn fxS ′′=′′ )(
第三类 (周期 )边界条件 )(lim)(lim )( 1)(0
0
xSxS pn
xx
p
xx n ?→→ ?+
=
2,1,0=p
------(5)
------(6)
------(7)
加上任何一类边界条件 (至少两个 )后
个好也是个待定的系数的条件正必须确定确定 nnxS 44)(
一般使用第一 、 二类边界条件 ,
即 jjk yxS =)(
)(lim)(lim 1 xSxS k
xxkxx kk ?→→ ?+
=
)(lim)(lim 1 xSxS k
xxkxx kk ?→→
′=′
?+
)(lim)(lim 1 xSxS k
xxkxx kk ?→→
′′=′′
?+
1,,2,1 ?= nk L
1,;1,,1,0 +=?= kkjnk L
1,,2,1 ?= nk L
1,,2,1 ?= nk L
km=
00 )( fxS ′=′ nn fxS ′=′ )(
???
???
?
------(8)
00 )( fxS ′′=′′ nn fxS ′′=′′ )(或
常用第二类边界条件
njmxS jj ,,1,0,)( L==′设
)(],[)( 1 xSxxxf kkk 上的三次插值多项式在小区间逐个求 +
插值多项式上的两点三次表示为将 HermitexxxS kkk ],[)( 1+
)(xSk )()()()()( )(11)(0)(11)(0)(3 xmxmxyxyxH kkkkkkkkk bbaa ++ +++==
???
?
???
?
?
?++
+
+
+
1
1
1 21
kk
k
k xx
xxy 2
1
???
?
???
?
?
?
+ kk
k
xx
xx
( )kk xxm ?+
2
1
1 ??
?
?
???
?
?
?
+
+
kk
k
xx
xx 2
1
???
?
???
?
?
?
+ kk
k
xx
xx( )
11 ++ ?+ kk xxm
???
?
???
?
?
?+=
+ kk
k
k xx
xxy
1
21
2
1
1 ??
?
?
???
?
?
?
+
+
kk
k
xx
xx
------(9)
kk
k
kk
k yxxh
xxhxS 2
13 )(
)(2)(
+?
?+=
1
2
3
1 )()(2
+
+ ???+
kk
k
kk yxx
h
xxh
kk
k
k mxx
h
xx 2
12 )(
)(
+?
?+
1
2
2
1 )()(
+
+ ??+
kk
k
k mxx
h
xx
加以整理后可得
并整理后得求二阶导数对 ,)(xSk
)()2(6)( 13 1 kk
k
kk
k yyh
xxxxS ??+=′′
+
+
k
k
kk m
h
xxx
2
1426 +??+
12
1246
+
+??+
k
k
kk m
h
xxx
------(10)
------(11)
1,,1,01 ?=?= + nkxxh kkk L,令
)(lim)(lim 1 xSxS k
xxkxx kk ?→→
′′=′′
?+
1,,2,1 ?= nk L由条件
)(lim xSk
xx k
′′
+→
)(6 12 kk
k
yyh ?= + k
k
mh4? 12 +? k
k
mh
)(lim 1 xSk
xx k ?→
′′
?
)(6 12
1
?
?
??= kk
k
yyh 1
1
2
?
?
+ k
k
mh k
k
mh
1
4
?
+
由于以上两式相等 ,得
1
1
1
1
1)11(21
+
?
?
?
+++ k
k
k
kk
k
k
mhmhhmh )(3 2
1
1
2
1
?
?+ ?+?=
k
kk
k
kk
h
yy
h
yy
1,,1 ?= nk L 个未知量个方程共个 1,1 +? nn
得并加以整理除上式的两边用 ,,11
1 kk hh
+
?
11 2 +? ++ kkkkk mmm ml kg=
1?+
=
kk
k
k hh
hl
1
1
?
?
+= kk
k
k hh
hm
)(3 1
1
1
k
kk
k
k
kk
kk h
yy
h
yyg ?+?= +
?
? ml
1,,1 ?= nk L
------(12)
1,,1 ?= nk L 个未知量个方程共个 1,1 +? nn
(12)式称为基本方程组
如果问题要求满足第一类 (一阶 )边界条件 :
00 )( fxS ′=′ nn fxS ′=′ )( ------(5)
00 fm ′= nn fm ′= ------(5)
基本方程组 (12)化为 n-1阶方程组
0112112 fgmm ′?=+ lm
kkkkkk gmmm =++ +? 11 2 ml 2,,3,2 ?= nk L
nnnnnn fgmm ′?=+ ????? 11121 2 ml?
?
?
???
?
------(13)
即
将 (13)式化为矩阵形式
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
??
2
2
2
2
2
2
1
22
4
33
22
1
n
nn
l
ml
l
ml
ml
m
OOO
O
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
1
2
3
2
1
n
n
m
m
m
m
m
M
M
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
′?
′?
=
??
?
nnn
n
fg
g
g
g
fg
11
2
3
2
011
m
l
M
M
------(14)这是一个三对角方程组
如果问题要求满足第二类 (二阶自然 )边界条件 :
00 )( fxS ′′=′′ nn fxS ′′=′′ )( ------(6)
时 , 称为自然边界条件00 =′′=′′ nff
由 (11)式 ,可知
)()2(6)( 013
0
010
00 yyh
xxxxS ??+=′′
02
0
100 426 m
h
xxx ??+
12
0
100 246 m
h
xxx ??+
)(6 012
0
yyh ?= 0
0
4 m
h? 10
2 m
h? 0f ′′=
)(6)( 12
1
1 ?
?
? ??=′′ nn
n
nn yyhxS 1
1
2
?
?
+ n
n
mh n
n
mh
1
4
?
+ nf ′′=
------(15)
----(16)
整理后得的方程式是关于 ,,,,)16)(15( 110 nn mmmm ?
0
0
0
01
10 232 f
h
h
yymm ′′??=+
n
n
n
nn
nn f
h
h
yymm ′′+?=+ ?
?
?
? 232
1
1
1
1
0g=
ng=
------(17)
------(18)
与 基本方程组 (12)联合 ,并化为矩阵形式 ,得
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
??
21
2
2
2
2
12
11
3
22
11
nn ml
l
ml
ml
OOO
O
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
n
n
m
m
m
m
m
1
2
1
0
M
M
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
=
?
n
n
g
g
g
g
g
1
2
1
0
M
M -----(19)
(19)式与 (14)一样 ,都是三对角方程组 ,并且都严格对角占优
可以使用追赶法求解 ,并且解是唯一的
对于问题要求满足第三类 (周期 )边界条件
请同学们自己思考
现在回到 (10)式
后解出式或通过 nmmm ,,,,)19()14( 10 L
式代入将 )10(,,, 10 nmmm L
)(
)(,),(),( 110
xS
xSxSxS n
三次样条插值函数
从而得到便可得到 ?L
例 1. 对于给定的节点及函数值
2431)(
5421
3210
k
k
xf
x
k
的近似值并求插值函数
的三次样条求满足自然边界条件
)3(),(
0)()( 0
fxS
xSxS n =′′=′′
解 : 由 (12)式可得
3
2
1 =l 3
1
2 =l
3
1
1 =m 3
2
2 =m
1?+
=
kk
k
k hh
hl
1
1
?
?
+= kk
k
k hh
hm
kl?= 1
2
9
1 =g 2
7
2 ?=g60 =g 63 ?=g
??
?
?
?
?
??
?
?
?
?
21
3/223/1
3/123/2
12
??
?
?
?
?
??
?
?
?
?
3
2
1
0
m
m
m
m
??
?
?
?
?
??
?
?
?
?
=
3
2
1
0
g
g
g
g
由 (19)式得基本方程组
8
19,
4
5,
4
7,
8
17
3210 ?=?=== mmmm解方程组得 :
将上述结果代入 (10)式
)(3 1
1
1
k
kk
k
k
kk
kk h
yy
h
yyg ?+?= +
?
? ml
0
0
0
01
0 23 f
h
h
yyg ′′??=
n
n
n
nn
n f
h
h
yyg ′′+?= ?
?
?
23
1
1
1
211478381)( 230 ≤≤?++?= xxxxxS
421478381)( 231 ≤≤?++?= xxxxxS
5433410384583)( 232 ≤≤?+?= xxxxxS
211478381 23 ≤≤?++? xxxx
421478381 23 ≤≤?++? xxxx
5433410384583 23 ≤≤?+? xxxx?
?
?
???
?
=)(xS
4
17)3()3( =≈ Sf Sanciyangtiao.m
例 2.
]5,5[1 1 2 ?∈+= xxy
函数使用不同的插值方法于
chazhibijiao.m
定理 .
次样条插值函数 ,满足任意边界条件的三为节点
是以设
,
),,1,0()(],,[)( 2 nkxxSbaCxf k L=∈
,min,max,
10101 iniiniiii
hhhxxh
?≤≤?≤≤+
==?= d设 时则当 ∞<≤ ch
d
)()(],[)()( xfxfbaxSxS ′′ 和上一致收敛到在和
最后 , 介绍一个有用的结果
则有且若 ],,[)( 4 baCxf ∈
)(|)()(|max 4)()( kkk
bxa
hoxSxf ?
≤≤
=?
2,1=k