样条(Spline)函数
- 格式:doc
- 大小:437.65 KB
- 文档页数:6
I、三次Spline插值函数的定义
给定区间],[ba上的一个分划,且
10xxa…bxn
和一组函数值0y,1y,2y,…,ny,如果)(x具有下列性质:
1 ],[)(2baCx;
2 在每个子区间)1](,[1nkxxkk上,)(x是一个三次多项式;
3 iiyx)(,i=0,1,…,n。(称为插值条件)
则称)(x是关于分划的分段三次样条函数,简称为Spline函数。
将)(x表示成如下分段形式:
],[),(],[),(],[),(],[),()(11212101nnnkkkxxxxsxxxxsxxxxsxxxxsx
其中)1)((nkxsk是一个三次多项式,且满足插值条件:
11)(kkkyxs,kkkyxs)(
为了得到)(xsk的具体表达式,根据],[)(2baCx可知,对每个内部结点)11(nkxk有:
)0()()()0(''''kkkkkkxxsxsx
)0()()()0(""""kkkkkkxxsxsx
下面利用上述条件导出)(xsk的表达式。
II、三次Spline插值函数的表示 设)10()('nkmxkk,,,,则kkkkkmxsxs)()('1'。利用分段Hermite插值公式得
)()()()()(1111xmxmxyxyxskkkkkkkkk (*)
其中)(xk和)(xk称为Hermite插值的基函数(在下面附录中将详细介绍),这里的kx一阶导数km是未知待定的。由上式不难看出,只要确定了各插值点的一阶导数,Spline插值函数)(x就相应确定了。对(*)两边同时求二阶导得:
)()()()()(""1""1"11xmxmxyxyxskkkkkkkkk
同理:
)()()()()("1""1""111xmxmxyxyxskkkkkkkkk
利用上面两式再结合二阶导连续的条件可得:
)()()()(""1""111kkkkkkkkxmxmxyxykkkk
)()()()("1""1"11kkkkkkkkxmxmxyxykkkk
利用)(xk和)(xk的性质(在附录中介绍)上式等价于:
)(3)(31)11(21121211111kkkkkkkkkkkyyhyyhmhmhhmhkk (**)
其中1kkkxxh,若令1kkkkhhh,111kkkkkhhh,则(**)可划为:
kkkkkkdmmm112, 121nk,,, (***)
其中kkkkkkkkkhyyhyyd11133, 121nk,,,
这里的(***)构成了关于1n个未知数nmmm,,10的方程组,但是此处只有1n个方程,要确定这些未知数的值,还需要再加两个条件,一般在],[ba的端点上各附加一个条件,称为边界条件,不同的边界条件对应着不同的边值问题,下面是常见的三种边界条件:
第一类边界条件:
'00')(yx, '')(nnyx
即是'00ym,'nnym。记00,'002yd,0n,'2nnyd。 第二类边界条件:
"00")(yx, "")(nnyx
如果0""0nyy,称对应的Spline函数为自然Spline函数。
即有:"00"10"00"10"00")()()()()(10101yxmxmxyxyxs
"""1""1")()()()()(11nnnnnnnnnnnnyxmxmxyxyxsnnn
化简之后为:
)6(32"0110110yhhyymm
)6(32"11nnnnnnnyhhyymm
记10,)6(3"011010yhhyyd,1n,)6(3"1nnnnnnyhhyyd。
第三类边界条件:
)()('0'nxx,)()("0"nxx
这类函数一般要求nyy0,它对应的Spline函数称为周期Spline函数。
针对第一类边界条件和第二类边界条件,他们构成的方程组有如下统一形式:
222212110nnnnmmmm110nndddd110
因为该系数矩阵为三对角阵,且严格对角占优,因此该方程组有唯一解,由此可见,第一、二类型的边值问题的Spline插值函数是存在唯一的,利用追赶法可求得km,这样就得到了)(xsk,从而确定了Spline插值函数)(x。
附录:
前面学过分段三次Hermite插值多项式)(x的表达式为:
],[),(],[),(],[),(],[),()(11212101nnnkkkxxxxsxxxxsxxxxsxxxxsx
其中211121111))(21())(21()(kkkkkkkkkkkkkkkxxxxxxxxyxxxxxxxxyxs
211'211'))(())((1kkkkkkkkxxxxxxyxxxxxxykk
3121321)(2)(3)(2)(3kkkkkkkkkkhxxhxxyhxxhxxy
kkkkkkkkkkhhxxhxxyhhxxhxxykk3121'32')()()()(1
其中1kkkxxh。
分段三次Hermite插值多项式)(x也可表示成以结点的函数值和导数值为系数、关于基函数)(xk和)(xk的线性组合:nkknkkkxyxyxk0'0)()()(
其中
][,0][)(2)(3)(10103112110xxxxxxhxxhxxx,,,
][,0][)(2)(3][)(2)(3)(11131121113121kkkkkkkkkkkkkkkxxxxxxhxxhxxxxxhxxhxxx,,,,,
1,21nk,,
][,0][)(2)(3)(113121nnnnnnnnnxxxxxxhxxhxxx,,,
][0][)()()(101013112110xxxxxxhhxxhxxx,,,,
],[0],[)()(],[)()()(111131121113121kkkkkkkkkkkkkkkkkxxxxxxhhxxhxxxxxhhxxhxxx,,,
1,21nk,,
],[0],[)()()(113121nnnnnnnnnnxxxxxxhhxxhxxx,
基函数)(xk和)(xk有如下性质:
1 ①、1)(1)(0kkkxx,
②、][0)(23][23)(01'11'kkkkkkxxxxhxxxhxkk,,,,
③、2"21"6)0(6)0(kkkkkkhxhx
211"21"6)0(6)0(kkkkkkhxhx
2 ①、][274)(0][0)(274111kkkkkkkkxxxhxxxxxh,,,,且0)()()(11kkkkkkxxx
②、0)()(1)(1)(311'1'''kkkkkkkxxxx;; ③、kkkkkkhxhx4)0(2)0("1"
11"1"2)0(4)0(kkkkkkhxhx
3 当][1kkxxx,时,1)()(1xxkk,1)()()(''1'xxhxkkkk
这些性质的证明只需要对相应的函数求导即可得出,我就不那个了……!
引入上述基函数以后,此时有:
)()()()()(1111xmxmxyxyxskkkkkkkkk,1,,21nk,
这正是上面定义样条函数是用到的式子。