三次样条插值
来源:互联网 发布:开网络直播公司流程 编辑:程序博客网 时间:2024/04/29 07:07
3.7 三次样条插值
3.7.1 三次样条函数
分段低次插值的优点是具有收敛性与稳定性,缺点是光滑性较差,不能满足实际需要.例如高速飞机的机翼形线、船体放样形值线、精密机械加工等都要求有二阶光滑度,即二阶导数连续,通常三次样条(Spline)函数即可满足要求.
定义7.1 设上给出一组节点,若函数s(x)满足条件
(1) ;
(2) s(x)在每个小区间上是三次多项式.
则称s(x)是节点上的三次样条函数.
若s(x)在节点上还满足插值条件
(3) (3.7.1)
则称s(x)为上的三次样条插值函数.
例3.8 设
是以0,1,2为节点的三次样条函数,则,b,c应取何值?
解 因,故在处由及连续,可得
解得=-2,b=3,c=-1.此时s(x)是[0,2]上的三次样条函数.
由定义7.1可知s(x)在每个小区间上是三次多项式,它有四个待定系数,中共有n个小区间,故待定的系数为4n个,而由定义给出的条件,在这(n-1)个内点上应满足
(3.7.2)
它给出了3(n-1)个条件,此外由插值条件(5.7.1)给出了(n+1)个条件,共有(4n-2)个条件,求三次样条插值函数s(x)尚缺两个条件.为此要根据问题要求补充两种边界条件,它们分别是
问题Ⅰ (3.7.3)
问题Ⅱ (3.7.4)
问题Ⅲ 当f(x)为周期函数,因,此时,且,.这时s(x)称为周期样条函数.
由此看到针对不同类型问题,补充相应边界条件后完全可以求得三次样条插值函数s(x).下面我们只就问题Ⅰ及问题Ⅱ介绍三弯矩方程及其解法.
3.7.2弯矩方程
设s(x)在节点上的二阶导数值,在上是三次多项式,故s″(x)在上是一次函数,可表示为
对此式积分两次,并利用可确定积分常数,从而得到
(3.7.5)
这里是未知量,但它可利用条件(5.7.2)中得到关于的方程组,由(3.7.5)对s(x)求导得
(3.7.6)
由此可得
(3.7.7)
当,类似(5.7.6)可得
于是
(3.7.8)
由,可得到
(3.7.9)
其中
(3.7.10)
(3.7.9)是关于的(n-1)个方程,对问题Ⅰ,可由(3.7.3)补充两个方程,它们可由(3.7.7)当i=0时及(3.7.8)当i=n时得到,即
(3.7.11)
将(3.7.9)与(3.7.11)合并则得到关于的线性方程组,用矩阵形式表示为
(3.7.12)
这是关于的三对角方程组.
对于问题Ⅱ,可直接由条件(3.7.4)得到
将它代入(3.7.9),并用矩阵形式表示为
(3.7.13)
它是关于的三对角方程组,不论是(3.7.12)还是(3.7.13),它们中每个方程只与三个相邻的相联系,而在力学上表示细梁在上的截面弯矩,故称(3.7.12)及(3.7.13)为三弯矩方程.方程(3.7.12)及(3.7.13)的系数矩阵都是严格对角占优矩阵,它们可用追赶法求解.得到后,代入(3.7.5),则得到上的三次样条插值函数s(x).
例3.9 设f(x)为定义在[0,3]上的函数,插值节点为,且,,,.当时,试求三次样条插值函数s(x),使其满足问题Ⅰ的边界条件(3.7.3).
解 根据三弯矩方程(3.7.12),首先要求系数矩阵及右端项,由(3.7.10)及(3.7.11)可得
于是由(3.7.12)得三弯矩方程为
(3.7.14)
解此方程时可先消去得
解得,代入(5.7.14)得.将的值代入(3.7.5)可得三次样条函数
的图形见图5-5.
图3-5
3.7.3 三次样条插值收敛性
定理7.1 设为问题Ⅰ或问题Ⅱ的三次样条函数,则有估计式
(3.7.15)
其中,,,.
定理证明见[3].
定理表明当h→0(n→∞)时,分别一致收敛于.
讲解:
分段三次样条插值(简称Spline插值)是通过形值点的一条光滑曲线,从数学上表示就是由定义7.1所给出的三条件得到的,它在区间上是二阶连续的,在每个小区间上是三次多项式并通过给定点,若补充上相应的边界条件,问题或问题,就可求得,通过解三弯矩方程(3.7.12)或(3.7.13)就可得到(3.7.5)所表示的。求三次样条插值函数有现成软件,但对三次样条插值定义及其条件一定要掌握好。
- 三次样条插值
- 三次样条插值
- 三次样条插值
- 三次样条插值
- 三次样条插值
- 三次样条插值
- 三次样条插值
- 三次样条插值
- 三次样条插值
- 三次样条插值 SPLINE
- 二维三次样条插值
- 插值法之三次样条插值
- Spline(三次样条插值)
- 三次样条插值原理
- 三次样条插值函数的计算
- 三次样条插值函数(C++版)
- 三次样条插值(Spline插值)
- Matlab 三次样条插值多项式表示
- VS2010 之TFS入门指南
- ubuntu下编译objectc 与object c++
- C# ASP.NET中无刷新页面 弹出对话框,并且页面跳转
- UML补充学习(关联、依赖、聚合、组合、泛化)
- 转:linux下 s3c2440 lcd驱动移植详解
- 三次样条插值
- LINUX是如何make驱动程序模块的
- vfptr
- VC动态内存分配
- OFBiz快速入门
- 网络通讯模型
- MYSQL初学者使用指南
- SQL Server 2008中的代码安全(八):透明加密(TDE)
- 如何在ubuntu下搭建Objective-C开发环境