三次样条插值函数
(2010-03-05 10:39:05)
标签:
杂谈 |
转:http://blog.163.com/weizhong99@126/blog/static/123355833200963110439753
高次插值函数的计算量大,有剧烈振荡,且数值稳定性差;在分段插值中,分段线性插值在分 段点上仅连续而不可导,分段三次埃尔米特插值有连续的一阶导数,如此光滑程度常不能满足物理问题的需要,样条函数可以同时解决这两个问题,使插值函数既是低阶分段函数,又 是光滑的函数,并且只需在区间端点提供某些导数信息。
5.6.1三次样条函数
定义
a= =b
函数y=f(x)在各个节点处的函数值为 =f( )(i=0,1,…,n),若S(x)满足:
(1) S( )= ,i=0,1,…,n ;
(2) 在区间[a,b]上,S(x)具有连续的二阶导数;
(3) 在区间[ ](i=0,1,…,n-1)上,S(x) 是x的三次多项式;
称S(x) 是函数y=f(x)在上[a,b]上的三次样条插
S′( +0)=S′(
-0),
S″( +0)=S″( -0)
此时 ,这样确定的样条函数S(x)称为周期样条函数。
5.6.2三次样条函数的计算
1用节点处的二阶导数表示的三次样条函数——三弯矩方程
由于S(x)的二阶导数连续,设S(x)在节点 的二阶导数为 ,即
S″( )= ,i=0,1,…,n,
是未知、待定的数。因S(x)是分段三次多项式,则S″(x)是分段一次多项式,且在每个 区间[ ]上,S″(x)可表示为
记 = - ,则
将上式在区间[ ]上积分两次,并且由S( )= ,S( ) = 来确定两个积分常数,可得当x∈[ ]时,
S(x)=
对上式求导得:
S′(x)= (7)
利用S(x)一阶导数连续的性质,在上式中令x= ,得:
将式(7)中的i换成i-1,得S′(x)在[ ]上的表达式
S′(x)=
用x= 代入,得:
利用S′( -0)=S′( +0)可得:
两边乘以 ,得:
其中
这是含有n+1个未知量 共有n-1个方程组成的线性方程组,欲确定该方 程组的解,尚缺2个方程。因此求三次样条函数还要2个附加条件。
常见的问题有下面两种提法:
①第一类问题
利用前面已推导的公式,当x∈[ ]时,
S′(x)=
=
取i=n-1,x= ,得:
移项,得:
其中 与式(8)联立得一n+1元线性方程组:
其系数矩阵是严格对角占优的三对角矩阵:
可以用追赶法解出 (i=0,1,…,n),将其代入式(6),即得到三次样条函数的分段表达式。
②第二类问题
其系数矩阵为
这是一个三对角矩阵,由于 ,因而它是严格对角占优的。原方程组 是个三对角方程组,可以用追赶法解出 ,代入式(6),即得到三次样条函数的分段表达式。
2用节点处的一阶导数表示的三次样条函数——三转角方程
由于S(x)的一阶导数连续,设S(x)在节点 处的一阶导数值为 ,即
S′( )= ,i=0,1,…,n,
是未知、待定的数。因S(x)是分段三次多项式,则在每个区间[ ] 上是三次多项式,且满足
S( )= ,S( )= ,S′( )= ,S′( )= ,
故S(x)是[ , ]上的分段三次埃尔米特插值多项式,当x∈[ ]时
S(x)= ( ) + ( ) +
或写为
将上式在区间[ ]上求导两次,可得当x∈[ ]时,
S′(x)= +
和
利用S(x)二阶导数连续的性质, 在上式 中令x= ,得:
S″( +0)=
将上式中的i换成i-1 ,得S″(x)在[ ]上的表达式
S″(x) == +
用x= 代入,得:
S″( -0)=
利用S″( -0)=S″( +0)可得:
两边乘以 ,得:
其中
这是含有n+1个未知 量 共有n-1个方程组成的线性方程组,欲确定该方程组的解,尚缺2个 方程。因此,求三次样条函数还要2个附加条件。有关情形与节点处的二阶导数表示的三次样条函数类似,叙述如下:
①第一类问题 附加条件①,即给出边界端点的一阶导数值: 时,则方程组为:
②第二类问题 附加条件②,即给出边界端点的二阶导数值:S″( ) = ,
S″( )= , 时,利用前面己推导的公式,当x∈[ ]时,
S″(x) = +
取i=0,x= ,得:
取i=n-1,x= ,得
移项,得:
其中g0=3f[x0,x1]-〖SX()h0〖〗2〖SX〗〗M0,gn=3f[x n-1,xn]+〖SX()hn-1〖〗2〖SX〗〗Mn.与式(13)联立可以建立如下方程组 :
两种情形的系数矩阵均为严格对角占优的三 对角矩阵,可 以用追赶法求解,从而得到三次样条函数的分段表达式。
例1 已知f(x)的函数值为
|
|
0 |
1 |
2 |
3 |
|
|
0 |
0 |
0 |
0 |
试分别求函数f(x)满足下列边界条件的三次样条插值函数:
(1) S′(0)=1,S′(3)=0;
(2) S″(0)=1,S″(3)=0.
解, ,i=1,2.
(1)边界条件为 =0,用式(15)求解简单。由式(14)计算得
〖JZ〗f[0,1]=f[1,2]=f[2,3]=0, =0
代入式(15)得方程组
解得
利用公式
S(x)= +
i=0,1,2
并注意到边界条件 =0,求得三次样条函数如下:
s(x)=
(2)边界条件为 ,用式(11)计算简单。由
得
代入式(11)得方程组
解得
S(x)= +
i=0,1,2
并注意到 求得三次样条函数如下:
s(x)=

加载中…