注册 登录  
 加关注
查看详情
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

逍遥子 曰:

得失失得 何必患得患失 舍得得舍 不妨不舍不得

 
 
 

日志

 
 

样条插值  

2012-12-15 11:15:08|  分类: 算法 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

                       
    问题的背景 高次插值函数的计算量大, 有剧烈振荡, 数值稳定性差;而分段线性插值在分段点上仅连续而不光滑(导数不连续)。样条函数可以同时解决这两个问题, 使插值函数既是低阶分段函数,又是光滑的函数。

    1. 样条函数
    在[a,b]上取n+1个插值结点a=x0<x1 <…<xn =b,已知函数f(x)在这n+1个点的函数值为yk=f(xk ), 则在[a,b]上函数y=f(x)m次样条插值函数S(x)满足:
    (1) S(x)(a,b)上直到m-1阶导数连续;
    (2) S(xk)=yk ,(k=0,1,…,n) ;
    (3) 在区间[xk ,xk+1 ](k=0,1,…,n-1)上,S(x)m次多项式。

    2. 三次样条函数
    在[a,b]上函数y=f(x)的三次样条插值函数S(x)满足:
    (1) 在(a,b)0、1、2阶导数连续; 即: 

         s'(xk-0)=s'(xk+0),s(xk-0)=s(xk+0) ,(k=0,1,…,n-1) 

    (2)  S(xk)=yk ,(k=0,1,…,n) ;

    (3) 在区间[xk ,xk+1 ](k=0,1,…,n-1)上,S(x)是三次多项式。

    3. 三次样条函数的计算 
    由二阶导数连续, 设样条插值 - 逍遥子 - 逍遥子 曰:是未知待定的数。因S(x)是分段三次多项式, 则在每个区间[xk ,xk+1 ]内,S(x)是分段一次多项式, 记hk=xk+1 -xk , 则:
          样条插值 - 逍遥子 - 逍遥子 曰:
将上式在区间[xk ,xk+1 ]上积分两次,并且由S(xk )=yk ,S(xk+1 )=yk+1 来确定两个积分常数。当x∈[xk ,xk+1 ]时, 
          样条插值 - 逍遥子 - 逍遥子 曰:
利用S(x)一阶导数连续的性质,对上式求导,得:
          样条插值 - 逍遥子 - 逍遥子 曰:
在上式中,令x=xk ,得:
          样条插值 - 逍遥子 - 逍遥子 曰:
将上式中的k换成k-1,得: s'(x)[xk-1 ,xk]上的表达式, 将x=xk 代入,
          样条插值 - 逍遥子 - 逍遥子 曰:
s'(xk +0)=s'(xk-0), 联立上述两式, 得到关于m 的方程:
     样条插值 - 逍遥子 - 逍遥子 曰:

两边乘以  样条插值 - 逍遥子 - 逍遥子 曰: , 得:
     样条插值 - 逍遥子 - 逍遥子 曰:
上式中,等式左边含未知量mk-1 ,mk ,mk+1 ,等式右边yk-1 ,yk ,yk+1 是已知的,令
          样条插值 - 逍遥子 - 逍遥子 曰:
则得:
          λkmk-1 +2mkk mk+1 = Ck ,(k=1,2,…,n-1). 

这是含有n+1个未知量m0 ,m1 ,…,mn ,共有n-1个方程组成的线性方程组。欲确定方程的解,尚缺2个方程,因此求三次样条函数还要2个附加条件。

常用的问题有下面两种提法: 

    第一类问题:附加条件为s″(x0)=m0 ,s″(xn)=mn

则方程组为:
      样条插值 - 逍遥子 - 逍遥子 曰:
其系数矩阵为: 
       样条插值 - 逍遥子 - 逍遥子 曰:
   
这是一个三对角矩阵,由于λkk =1<2 ,因而它是严格对角占优的。原方程组是个三对角方程组,可以用追赶法求解。 

    第二类问题:给出边界端点的一阶导数值:
        样条插值 - 逍遥子 - 逍遥子 曰:
利用前面已推导的公式:当x∈[xk ,xk+1 ]时,
        样条插值 - 逍遥子 - 逍遥子 曰:
k=0,x=x0 ,得: 
        样条插值 - 逍遥子 - 逍遥子 曰:
k=n-1,x=xn ,得: 
        样条插值 - 逍遥子 - 逍遥子 曰:
移项,得:
        样条插值 - 逍遥子 - 逍遥子 曰:
于是, 我们可以建立如下方程组:
        样条插值 - 逍遥子 - 逍遥子 曰:
其系数矩阵是严格对角占优的三对角矩阵: 
        样条插值 - 逍遥子 - 逍遥子 曰:
从而可以解出m0 ,m1 ,…,mn , 解出后可以得到三次样条函数的分段表达式, 即当x∈[xk ,xk+1 ]时,
        样条插值 - 逍遥子 - 逍遥子 曰:
 例 已知y=f(x)的函数值为:
        样条插值 - 逍遥子 - 逍遥子 曰:

m0=0,mn=0,求函数的三次样条插值。

 解:    h0=1,h1 =2,h2 =1
        样条插值 - 逍遥子 - 逍遥子 曰:
样条插值 - 逍遥子 - 逍遥子 曰:
        样条插值 - 逍遥子 - 逍遥子 曰:
建立方程组:
        样条插值 - 逍遥子 - 逍遥子 曰:
解得:样条插值 - 逍遥子 - 逍遥子 曰:从而得到函数的三次样条插值:
x∈[x0 ,x1 ]=[1,2]时,
     样条插值 - 逍遥子 - 逍遥子 曰:

x∈[x1,x2]=[2,4]时,
  样条插值 - 逍遥子 - 逍遥子 曰:

x∈[x2,x3]=[4,5]时,
   样条插值 - 逍遥子 - 逍遥子 曰:
所以

        样条插值 - 逍遥子 - 逍遥子 曰:
  评论这张
 
阅读(488)| 评论(0)
推荐 转载

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2018