样条函数插值SPLINEINTERPOLATION信息与数学学院内容提要•引言样条函数的物理背景•一般K次样条•3次样条插值•高次自然样条与B-样条基础§4.8样条函数插值4.8.1引言样条函数的物理背景回顾前面几节讲过的各种代数插值,它们有一个共同的弱点,那就是:它们都是相当刚性(stiff)的.也就是说,局部数据误差易向远处传播、放大.以Lagrange插值为例,设数据真值被代之以含有误差的,令是以为插值条件的插值多项式,于是最终的插值误差是由讲义第168页插值公式(6)知,上式右端第二项为这表明结点处的数据误差通过插值基函数放大和扩散.jfxjfxjjjffxfx012,,,,nffffL.nnnnfxLxfxLxLxLxnLx0.nnnjjjLxLxfxlxjxjfxjlx更何况,如果被插函数有奇点,甚至只要解析延拓到复平面有隐秘奇点出现,则当为高次多项式时,误差放大和扩散还将助长很可怕的强振荡!展示Runge现象的著名例子就清楚地描述了这种振荡(右图).jlx相同数据3次样条插值与Lagrangr插值效果比较CubicSplineInterpolationLagrangrInterpolation如果采用分段多项式插值,则由于插值基函数只是局部活跃(它们的支集是局部紧致的),结点上的误差可以被控制在小的范围内,因而也带来了内在的高度稳定性.这是分段插值的一大优势!许多实际问题希望插值函数具有较高阶的整体光滑性.此时,高次Hermite插值或分段高次Hermite插值可以利用(注意:分段高次Lagrange插值和Newton插值等是做不到的,在插值结点上它们只能保证插值函数连续).注:函数的支集Supp定义为Suppfxf0.fxfx但高次Hermite插值在许多场合中看不中用!•提高Hermite插值多项式的次数就要增加约束条件——给出插值结点处被插函数及其直到足够高阶导数之值.•作为约束条件的所有数据都是通过观测得到的,而观测总难免有误差.于是高次插值不仅增添了数据准备和计算的困难,也将导致更大的误差.还有许多应用不仅要求插值函数具有足够高阶的整体光滑性,还要求在某些结点处转折灵活.例如若干点处加载集中力的杆、梁或板弯曲.这就导致本节要讨论的样条函数(Spline)插值.数学里的样条(Spline)一词来源于它的直观几何背景:绘图员或板金工人常用弹性木条或金属条加压铁(构成样条!)来绘制或者放样成光顺曲线或者曲面.但它之所以成为数值分析的标志性成果之一并且在数学物理的广泛领域获得非常成功的应用,还在于它的明确的物理背景.请看下面的例子.例1.如图4.8.1,一均匀弹性弦两端固定于两点,在区间内取点列图4.8.1并在内结点集上分别给集中载荷则载荷分布可表为其中是集中于结点的点脉冲函数.xy0yyx0xanxb,ab,0,,0AaBb012naxxxxbL,1,2,,1,jjqxqjnLqqx11,njjjqxqxxjxxjxx1,0,iixxxxotherwise事实上,在小变形和均匀分布外力假设下,上述弦的平衡问题的微分方程模型乃是两点边值问题现在是作用离散的集中力,此时弦达到平衡状态时位移函数应满足yx,,;0.yqxabyayb110,0.njjjnyxqxxyxyx11njjjqxqxx因此有这意味着:在每一加载点处脉冲间断;是阶梯函数;是分段线性的连续函数,在每一内结点转折灵活.后面我们将指出,如此的便是一次样条函数.yx10,,,1,2,,.jjyxxxxjnLjxyxyxyx110,0.njjjnyxqxxyxyx例2.考察梁弯曲方程与例1类似地加载集中力,只是两端点除给零位移约束外还要加一阶或二阶导数约束.于是集中力作用下的梁弯曲方程成为此时我们得到:图4.8.24,,.yqxab141njjjyxqxxyxab①②在内结点上脉冲间断;③为阶梯函数;④在每个子区间上是三次多项式;⑤和都是上的连续函数.这便是后面我们要着重讨论的三次样条.此例展示了三次样条的如下特征:○它分段三次光滑;○整体二次光滑(足够光滑);○在内结点处三阶导数间断(转折灵活).yxy1,jjxx,yy,abjx410,,,1,2,,;jjyxxxxjnL4yy141njjjyxqxx上面两个例子分别涉及弹性弦和梁的小变形平衡.这就自然会想到弹性力学中联系平衡态与变形能的两个重要的极值原理:最小势能原理和虚功原理.既然一次和三次样条分别与弦和梁的小变形平衡问题联系着,那么直觉告诉我们它们也应有相应的极值性质.后面我们将证明的确如此!作为伏笔,我们指出:上两例中弹性弦和梁的变形能分别表为和2baydx2.baydx4.8.2一般k次样条定义4.8.1(次样条函数)设是区间上的一个分划或分割,即称为定义在区间上关于分划的一个次样条函数,如果:(1)在每一区间上是次数不超过的多项式.(2)在区间上是次连续可微的.kk011:nnaxxxxbL,abk节点处的阶导数间断,因而转折灵活Sx,abS1,iixxk,ab1kixSk次样条函数类记为为方便后面的讨论,我们将样条函数写成如下形式11(,){()|(),,0,1,,1;()[,]}pkiikSkSxSxPxxinSxCabLk00111211,,,,,,(4.1),,.nnnsxxxxsxxxxSxsxxxxMSx例.根据上述定义,0次样条函数为分段常数,即阶梯函数,它可表为1次样条函数为分段线性函数,它可表为一般二次多项式不是严格意义下的二次样条!S00011112111,,,,,,,,.nnnnsxcxxxsxcxxxSxsxcxxx00001111121111,,,,,,,,.nnnnnsxaxbxxxsxaxbxxxSxsxaxbxxxS4.8.33次样条插值问题的提法:给定数据表构造3次样条函数满足插值条件xfx0x1xnx0f1fnf,3pSxSLL(4.2),0,1,,.iiSxfinL构造方法:应具有如下形式并且满足条件(4.2)和,3pSxS111,1,2,,1,(4.4),1,2,,1,,1,2,,1.iiiiiiiiiiiisxsxinsxsxinsxsxinLLL0011123111,,,,,,(4.3),.,,;iiinnnsxxxxsxxxxSxsxCxxsxxxx因是分段3次多项式,故在每个区间上都是3次多项式,从而共须个独立条件确定.①和在个内结点连续,即满足条件(4.4),因而(4.4)给出了个条件;②(4.2)提供了个独立条件;③还差2个条件,有多种给法.最常见的给法是:(i)(简支边界,导致三弯矩关系式,关系式),特别地,(自然边界,三次自然样条);(ii)(固支边界,导致三转角关系式,关系式).Sxisx1,iixx4n1nSx,SSS1n33n000,,nnnSxfxMSxfxM00,nMM000,,nnnSxfxmSxfxmMm111,1,2,,1,(4.4),1,2,,1,,1,2,,1.iiiiiiiiiiiisxsxinsxsxinsxsxinLLL注意:上述①给出的个条件是问题本身隐含的,②和③共个独立条件须提供,故结点三次样插值问题只有个自由度.(请与分段三次Hermite插值比较!)三次自然样条插值关系式的构造方法记注意到于是连续的和分段线性的,从而在每个上是线性的,故可表为对此式积分两次并应用条件(4.2)可得到Sxisx1,iixx3n33n1,.iiiiiSxMhxxM1n3n0,nxx111(4.5),,.iiiiiiiiixxxxsxMMxxxhh微分(4.6)可得到和由(4.4)第二式,(4.7)与(4.8)应相等,于是得到3311221111()()66(4.6),,.66iiiiiiiiiiiiiiiiiiixxxxsxMMhhxxhxxhfMfMxxxhh1111(4.7)36iiiiiiiiiihhsxMMffhh111111111(4.8).63iiiiiiiiiihhsxMMffhh11111112(4.9)66,1,2,,1iiiiiiiiiiiiihMhhMhMffffinhh111,1,2,,1,(4.4),1,2,,1,,1,2,,1.iiiiiiiiiiiisxsxinsxsxinsxsxinLLL利用条件得到关于的线性方程组其中解出代入(4.6)即得到.00nMMiM111122122223222111nnnnnnnnnMvuhMvhuhMvhuhhuMvMMOOO11162,,.iiiiiiiiiiuhhbffvbbh,1,2,,1iMinLiSxCubicSplineInterpolationLagrangrInterpolation类似地可构造关系式(留作练习).下面的两个定理有重要意义.定理(4.1)设则定理(4.2)设则m22(4.10).bbaaSxdxfxdx22(4.11).bbaaSxdxfxdx,1,pSxS,3,pSxS我们只证明第二个定理.证明之前,先解释它的重要意义.(ⅰ)前面曾提到,梁弯曲达到平衡态时变形能(内能)可表为于是(4.11)意味着:在满足端点约束和以及插值条件(*)的一切连续二次可微的函数中,三次自然样条插值函数使得变形能达到最小的.2bafdx0yayb0yayb,1,2,,1jjyxyjnL2bafdx22(4.11)bbaaSxdxfxdx(ⅱ)当时,注意曲线的曲率.而积分达到最小意味着三次自然样条插值函数是各种可能的插值函数中使得均方曲率为最小的插值函数,即在一定意义下最为光顺的插值函数.这是三次自然样条插值函数的一个非常特别和有用的性质.下面证明定理(4.2)证明令,则并且下证gfS0igx2222bbbbaaaafdxSdxgdxSgdx0.baSgdx3221fff