总结三次样条插值函数的误差估计三转角算法三弯矩算法三次样条插值函数的概念三次样条插值三次样条插值学习目标:知道三次样条插值函数的概念,会求三次样条插值函数,进行误差分析。第二章插值与拟合高次插值出现龙格现象L-插值(牛顿插值)Hermite插值分段插值但分段线性插值在节点处不一定光滑分段Hermite插值但导数值不容易提取(找到)三次样条插值(先由函数值确定导数值,再由分段Hermite插值解决问题)举例:1汽车、船的外形设计,流体力学等要求流线型(光滑);2木样条的来源。三次样条插值函数的概念一、背景第二章插值与拟合数学里的样条(Spline)一词来源于它的直观几何背景:绘图员或板金工人常用弹性木条或金属条加压铁(构成样条!)固定在样点上,在其它地方让它自由弯曲,然后画下长条的曲线,称为样条曲线.样条曲线实际上是由分段三次曲线并接而成,在连接点击样点上要求二阶导数连续,从数学上加以概括就得到数学样条这一概念。第二章插值与拟合相同数据3次样条插值与Lagrange插值效果比较CubicSplineInterpolationLagrange第二章插值与拟合定义2.8(三次样条函数))(xSb在每一个小区间1[,]jjxx上是次数1,1,0nj3多项式。),,1,0(),()(nixfxSii若(1)中三次样条函数还满足插值条件:)(xS关于剖分)(xS称为)(xf的三次样条插值函数。baCxSa,)()(2,即具有连续的一阶,二阶导数。满足下述条件:,:10bxxxan)(xS如果函数(1)设有对[a,b]的剖分的一个3次样条函数。)(xS为关于剖分则称)(xfy函数表),,1,0()),(,(nixfxii(2)设给定(2.42)二、样条函数的定义第二章插值与拟合提出问题:)(xS3次样条插值函数是否存在?是否唯一?如何计算?误差估计?问题的提法:给定数据表构造3次样条函数,满足插值条件……xfx0x1xnx0f1fnfSx,0,1,,.(2.42)iiSxfinL第二章插值与拟合111,1,2,,1,,1,2,,1,,1,2,,1.iiiiiiiiiiiiSxSxinSxSxinSxSxinLLL0011123111,,,,,,,.,,;iiinnnSxxxxSxxxxSxSxCxxSxxxx构造方法:S(x)应具有如下形式并且满足条件(2.42)和(2.43)第二章插值与拟合分析:因],[)(1jjxxxS在上是分段3次多项式,即为,)()(32xdxcxbaxSxSjjjjj)1,,1,0(],,[1njxxxjj4n个待定系数:},{},{},{},{jjjjdcba1,,1,0nj从而S(x)共须4n个独立条件确定.)()()()()()(111jjjjjjjjjjjjxSxSxSxSxSxS①内部条件:1,,1njS和S′,S’’在n-1个内结点连续,即满足条件(2.43),因而(2.43)给出了3(n-1)个条件;(2.43)第二章插值与拟合②已有条件:),,1,0(),()(njxfxSjj共有24n个条件,要唯一确定,还必须附加2个条件)(xS(2.42)提供了n+1个独立条件;(边界条件)。③附加2个条件,有多种给法.最常见的给法是:(a)(简支边界,导致三弯矩关系式,M关系式),特别地,(自然边界,三次自然样条);(b)(固支边界,导致三转角关系式,m关系式).000,,nnnSxfxMSxfxM00,nMM000,,nnnSxfxmSxfxm(2.44)(2.45)第二章插值与拟合)(c第3种边界条件(周期边界条件):)(xfy为周期函数,此时称)(xS为周期样条函数。).2,1,0(),()()(0)(kxSxSnkk)(xS亦是周期函数,周期为ab,即取要求注:一般不取一端是一阶导数而另一端是二阶导数。第二章插值与拟合这样,由以上给定的任一种边界条件加上插值条件和连接条件,就能得出4n个方程,可以惟一确定4n个系数。从而得到三次样条插值函数S(x)在各个子区间xi,xi+1上的表达式S(xi)(i=1,2,…,)。但是,这种做法当n较大时,计算工作很大,不便于实际应用。因此我们希望找到一种简单的构造方法。),,1,0()),(,(nixfxii且;10bxxxan(1)如果是定义在上函数且已知)(xfy函数表)(xf],[ba定理2.8(3次样条插值函数存在唯一)唯一3次样条插值函数)(xS,且满足))。)或((或(cba)()(xf],[ba(2)给定边界条件)))或((或(cba)(,则于存在第二章插值与拟合推导方法:1、先确定插值函数)(xS在节点处的一阶导数,记为,)(jjmxS,,,1,0nj该方法即为3次样条插值函数的一阶导数表示。2、先确定插值函数)(xS在节点处的二阶导数,记为,)(jjMxS,,,1,0nj该方法即为3次样条插值函数的二阶导数表示。第二章插值与拟合------三次样条插值函数的二阶导数表示三次样条插值函数可以有多种表达式,有时用二阶导数值表示时,使用更方便。在力学上解释为细梁在处的弯矩,并且得到的弯矩与相邻两个弯矩有关,故称用表示的算法为三弯矩算法。)(xS()(0,1,,)iiSxMinMixiMi)(xS2.3.2三弯矩算法第二章插值与拟合是三次样条因为)(xSj,],,[),()(11jjjjjjxxhxxxxSxS令1,()[,]jjjSxxx所以在上是一次函数,插值函数,),,2,0,1j)(nMxSjj,(令由两点拉格朗日插值可表示为,)(11jjjjjjMhxxMhxxxS参数(2.46)对上式积分,得22111()()(),22jjjjjjxxxxSxMMchh(2.47)(2.48)再积分,得331112()()(),66jjjjjjxxxxSxMMcxchh],[1jjxxxjjjjjxxhxxx11],,[第二章插值与拟合由条件11)(,)(jjjjyxSyxS,确定积分常数12,,cc(2.49)(2.47)(2.48)21221111211(),61(),6jjjjjjjjjjSxhMcxcySxhMcxcy22111()()(),22jjjjjjxxxxSxMMchh331112()()(),66jjjjjjxxxxSxMMcxchh],[1jjxxx111112111(),61().6jjjjjjjjjjjjjjjjyychMMhyxyxchxMxMh第二章插值与拟合将上式代入(2.48)得到三次样条插值函数的表达式331122111()()()66()(),66jjjjjjjjjjjjjjjjxxxxSxMMhhMhxxMhxxyyhh(2.50)由上讨论可知,只要确定Mj(j=0,1,…n)这n+1个值,就可定出三样条插值函数S(x)。为了确定Mj(j=0,1,…n),对S(x)求导得221111()()()226jjjjjjjjjjjjxxxxyyMMSxMMhhhh1[,]jjxxx(2.51)1[,]jjxxx第二章插值与拟合133111122111111112211111()[,]()()()66()(),[,]66()()()22jjjjjjjjjjjjjjjjjjjjjjjjjjjjjSxxxxxxxSxMMhhMhxxMhxxyyxxxhhxxxxSxMMhhyyh类似地可求出在区间上的表达式,从而得1111[,]6jjjjjMMhxxx(2.52)第二章插值与拟合1111111()(0)(0),6361,,1,jjjjjjjjjjjjjjjSxSxSxhhhhyyyyMMMhhjn利用在内接点的连续性,即可得0,,,:(0)(0)njjMMSxSx为了求要用导数连续条件1111111(2.51):(0),36(2.52):(0),63jjjjjjjjjjjjjjjjhhyySxMMhhhyySxMMh由得由得(2.53)(2.54)(2.55)第二章插值与拟合1111111,636jjjjjjjjjjjjjhhhhyyyyMMMhh(2.55)(1,2,,1)jn上式两边同乘以,即得方程16jjhh11111111162jjjjjjjjjjjjjjjjjhhyyyyMMMhhhhhhhh1111111116[]6[,,].jjjjjjjjjjjjjjjjjjjjhhhhhhyyyydfxxxhhhh若记(2.56)第二章插值与拟合11111112,1,,1,,,6[,,].jjjjjjjjjjjjjjjjjjMMMdjnhhdfxxxhhhh其中所得方程可简写成10112121223212111222nnnnnnMMMdMMMdMMMd(2.58)即(2.57)个方程1n——三弯矩方程第二章插值与拟合这是一个含有n+1个未知数、n-1个方程的线性方程组.要完全确定Mi(i=0,1,…,n)的值还需要补充两个条件,这两个条件通常根据实际问题的需要,根据插值区间a,b的两个端点处的边界条件来补充。第二章插值与拟合由(2.53),得0001100063fhyyMhMh由(2.54),得1111136nnnnnnnnhyyfMhMh(1)若已知,,)(,)(000nnnmfxSmfxS11()36jjjjjjjjyyhhSxMMh11111()36jjjjjjjjyyhhSxMMh)(621111nnnnnnnhyyfhMM)(620001010fhyyhMM0dnd则令j=0,令j=n,第二章插值与拟合001,1,{}nnjjM令得满足的方程组nnnnnnnddddMMMM110110111102222(2.59)第二章插值与拟合(2)若nnnfMxSfMxS)(,)(000已知,代入方程(2.58),只需解n-1个方程nnnnnnnnnfdddfdMMMM112201112211222212222(2.60)第二章插值与拟合(3)对第三类边界条件:),0()0(0nxSxS)0()0(0nxSxS0M,nM11001101110)(3166nnnnnnnhyyhyyMhhMhMh两边同除以得,610nhh)(621100110