三次样条插值算法详解

上传人:宝路 文档编号:47965183 上传时间:2018-07-07 格式:PPT 页数:59 大小:1.10MB
返回 下载 相关 举报
三次样条插值算法详解_第1页
第1页 / 共59页
三次样条插值算法详解_第2页
第2页 / 共59页
三次样条插值算法详解_第3页
第3页 / 共59页
三次样条插值算法详解_第4页
第4页 / 共59页
三次样条插值算法详解_第5页
第5页 / 共59页
点击查看更多>>
资源描述

《三次样条插值算法详解》由会员分享,可在线阅读,更多相关《三次样条插值算法详解(59页珍藏版)》请在金锄头文库上搜索。

1、1三次样条插值鉴于高次插值不收敛又不稳定的特点,低次插值既具有收敛 性又具有稳定性,因此低次值更具有实用价值,但是低次插 值的光滑性较差,比如分段线性插值多项式在插值区间中仅 具有连续性,在插值节点处有棱角,一阶导数不存在;分段 三次Hermite插值多项式在插值区间中仅具有一阶导数即一 阶光滑性但不具备二阶光滑性,不能满足某些实际应用比如 汽车、轮船、飞机等的外形中流线形设计。样条是在二十世 纪初期经常用于图样设计的一种富有弹性的细长条,多个样 条互相弯曲连接后沿其边缘画出的曲线就是三次样条曲线。 后来数学上对其进行了抽象,定义了m次样条函数,并成为 数值逼近的重要研究分枝,进一步扩大了样条

2、函数的应用范 围。2样条函数的定义定义4.1 设区间a,b上给定一个节点划分 a=x0x1xn-1xn=b 如果存在正整数k使得a,b上的分段函数s(x)满足如 下两条: (1)在a,b上有直到k-1阶连续导数。 (2)在每个小区间xi,xi+1上是次数不大于k的多项式 。 则称分段函数s(x)是以(2.6)为节点集的k次样条函数 。3三次样条插值函数的定义并且关于这个节点集的三次样条函数s(x)满足插值条 件:则称这个三次样条函数s(x)为三次样条插值函数。4三次样条插值函数的边界条件插值条件:连续性条件:一阶导数连续条件:二阶导数连续条件:5(1)因为s(x)在每个小区间上是一个次小于三次

3、的多 项式,故有四个未知系数;(2)因为s(x)有n分段,从而共有4n个未知系数!(3)但插值条件与样条条件仅给出4n-2个条件,无法 定出4n个未知系数,还差2个条件!这2个条件我们用 边界条件给出!6通常我们对插值多项式在两端点的状态加以要求也就是 所谓的边界条件:第一边界条件:由区间端点处的一阶导数给出即7第二边界条件:由区间端点处的二阶导数给出即特殊情况为自然边界条件: 由区间端点处的二阶导数恒为0给出即8这样三次样条插 值问题就分成三 类!其实不止这 三类!第三类又称周期边界条件: 由区间端点处的函数值或导数值满足周期条件给出 9样条函数的例子容易验证:是满足如下数据的第一类边界样条

4、插值问题解:x0123 y0000 y1010样条函数的例子11通常有三转角法、三弯矩法、B样条基函数法。三次样条插值函数的求法这三种方法的基本思想是类似的,都是通 过待定某些参数来确定插值函数,但肯定 不是待定4n个参数。而是利用已知条件将 待定参数减小到最少。 比如:待定一阶导数、待定二阶导数、采 用基函数方法来确定插值函数。12三转角法:待定一阶数为了确定三次样条插值函数的表达式 S(x), 我们采用待定系数法来求解,我们待定什么系数呢?考虑到带一阶导数的分段三次Hermite插值多项式13我们采用待定一阶导数的方法即设因为分段三次Hermite插值多项式已经至少是一阶连续 可导了,为了

5、让它成为三次样条函数只需确定节点处 的一阶导数使这些节点处的二阶导数连续即可!1415由于在内部节点处二阶导数连续条件:整理化简后得:16称为三转 角法基本 方程组以上推导还没有考虑边界 条件!针对不同类型的三 次样条问题,就可以导出 不同的方程组!17第一类三次样条插值问题方程组基本方程组化为n-1阶方程组由于已知:化为矩阵形式18这是一个严格对角占优的三对角方程组, 用追赶法可以求解!19第二类三次样条插值问题的方程组由于已知:故得:20稍加整理得联合基本方程组得一个n+1阶三对角方程组, 化成矩阵形式为:仍然是严格对角占优21第三类样条插值问题的方程组立即可得下式:由于:22其中:联合基

6、本方程得一个广义三对角或周期三对角方程组:这个方程 组的系数 矩阵仍然 是严格对 角占优阵 !23求解这些不同类型的样条插值问题的方程组,我们可得 所要待定的一阶导数:称为三次样条插 值问题三转角公 式!再代入S(x)的每一段表达式,就求得三次样条函数的表达式!24例1. 对于给定的节点及函数值解:这是自然边界条件下的样条问题。25我们可以将上述计算列于表中:k0123 xk1245 yk1342 mk? Mk0?0 hk121* k*2/31/3* k*1/32/3* gk69/2-7/2-626由些得如下方程组:利用三转角公式:27同样可以求得第三段表达式!282930三弯矩法:待定二阶导

7、数选择二阶导数作为待定参数:由于三次样条S(x)是三次多项式,故它的二阶导数是一次多项 式,从而思考:(1)的原因?3132从而推导出了三次样条S(x)在第k个小区间xk,xk+1上的 表达式为:它的系数都是 用二阶导数与 函数值表示!33对所有中间节点xk,k=1,2,n-1,左边小区间与右边小区间上 的三次多项式的一阶导数应当连续!确定二阶导数34三弯矩法基本方程注意到这个基本方程只包括了n-1个方程!但却 有n个二阶导数需要待定,这是一个欠定方程组, 还需要根据边界条件再确定两个方程!35曲率调整样条这种样条的边界条件是已知两端点的二阶导数值!这样从三弯矩基本方程可以导数确定其它n-2个

8、待定参数 的方程组:36自然样条这种样条的边界条件是:已知两端点的二阶导数值为0!这样从三弯矩基本方程可以导数确定其它n-2个待定参数 的方程组:37固支样条这种样条的边界条件是:已知两端点的一阶导数值!根据前面推导过程中得到的样条函数S(x)的一阶导数的表 达式(2.11),得方程38固支样条这样从三弯矩基本方程可以导数确定n个待定 参数的方程组:39非扭结样条这种样条的边界条件是:要求样条S(x)在开始的两个小 区间x0,x1,x1,x2上的三阶导数相同,在最后两个小区间 xn-2,xn-1,xn-1,xn上的三阶导数相同.对表达式(2.9)再求一次导数得方程40非扭结样条再由三弯矩基本方

9、程,可得41周期样条这种样条的边界条件是:要求样条S(x)及其导数是以区 间长度xn-x0为周期的函数即这些条件可以确定如下两个方程:42再由三弯矩基本方程,可得周期样条431. 在Matlab中数据点称之为断点。如果三次样条插值没有边 界条件,最常用的方法,就是采用非扭结(not-a-knot) 条件。这个条件强迫第1个和第2个三次多项式的三阶导数 相等,对最后一个和倒数第2个三次多项式也做同样地处理 。 2. Matlab中三次样条插值也有现成的函数: y=interp1(x0,y0,x,spline); y=spline(x0,y0,x); pp=csape(x0,y0,conds),

10、pp=csape(x0,y0,conds,valconds), y=ppval(pp,x)。 其中x0,y0是已知数据点,x是插值点,y是插值点的函 数值。 3. 对于三次样条插值,我们提倡使用函数csape,csape的返 回值是pp形式,要求插值点的近似函数值,必须调用函数 ppval。MATLAB中三次样条函数法实现44pp=csape(x0,y0,conds,valconds) conds指定插值的边界条件,其值可为: complete 边界为一阶导数,一阶导数的值在 valconds参数中给出。 not-a-knot 非扭结条件 periodic 周期条件 second 边界为二阶导

11、数,二阶导数的值在 valconds参数中给出,若忽略valconds参数,二阶导数的 缺省值为0, 0。MATLAB中三次样条函数法实现45例2:第一边界条件的例题x1245y1342y17/8-19/8clear; x=1,2,4,5; y=1,3,4,2; pp=csape(x,y,complete,17/8,-19/8); pp.coefsMATLAB代码46第一边界条件的例题pp = form: ppbreaks: 1 2 4 5coefs: 3x4 doublepieces: 3order: 4dim: 1 pp.coefs-0.1250 0 2.1250 1.0000-0.125

12、0 -0.3750 1.7500 3.00000.3750 -1.1250 -1.2500 4.0000分段多项式结构与系数矩阵47如下代码求解上述样条问题:x-4-3-2-101234y00.151.122.362.361.460.490.060y00例3:自然边界条件例题48x=-4 -3-2-101234;y=00.151.122.362.361.460.490.060;pp=csape(x,y,second);xx=-4:0.01:4;yy=ppval(pp,xx);hold on;plot(x,y,ok);plot(xx,yy,k-);hold off;MATLAB程序49pp =f

13、orm: ppbreaks: -4 -3 -2 -1 0 1 2 3 4coefs: 8x4 doublepieces: 8order: 4dim: 1分段多项式结构:50pp.coefs=0.18085603829161 0.00000000000000 -0.03085603829161 0-0.08428019145803 0.54256811487482 0.51171207658321 0.15000000000000-0.39373527245950 0.28972754050074 1.34400773195876 1.120000000000000.14922128129602

14、 -0.89147827687776 0.74225699558174 2.360000000000000.13685014727540 -0.44381443298969 -0.59303571428571 2.360000000000000.13337812960236 -0.03326399116348 -1.07011413843888 1.46000000000000-0.06036266568483 0.36687039764359 -0.73650773195876 0.49000000000000-0.06192746686303 0.18578240058910 -0.183

15、85493372607 0.06000000000000分段多项式的系数矩阵:51图像52例4:对如下Runge现象中的函数,求用n分点作节 点的三次样条插值多项式s3(x)的图象。取n=5,10,15,20等,将区间等分成n份,取分点作为插值 节点,利用matlab函数csape()作出它的三次样条插值函 数,并作出这些插值函数与被插函数的图像。但由于插值节点数目较多,故不列出插值函数的表达式, 只画出它们的图象与被插函数的图象的复合,从这些图象 可以看出,随着节点数目的增多,样条插值函数图象越来 越符合被插函数,因此避免Runge现象,也就是说三次样 条插值函数具有收敛性。 5354555657三次样条函数的一致收敛性这个定理告诉我们:当插值节点较 多时,三次样条插值函数可以十分 接近被插函数!不会产生Runge现 象中的不收敛情况!58设被插函数f(x)有直到四阶的连续导数,则对第一、二类样 条插值问题的样条插值函数S(x)有如下估计: 三次样条函数的插值余项59在三次样条插值法中,插值节点处函数值的波动,只对这个 节点两边的分段有影响,而对离该点较远的分段的影响会逐 渐变小,因此样条插值法具有较好的稳定性! 三次样条函数法的稳定性

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 中学教育 > 教学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号