第三章 插值法和最小二乘法 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