090111073高小娣(数值分析课程设计) - 副本
- 格式:doc
- 大小:734.50 KB
- 文档页数:23
《数值分析》课程设计三次样条插值算法院(系)名称信息工程学院专业班级09普本信计1班学号090111073学生姓名宣章然指导教师孔繁民2012年06月08日数值分析课程设计评阅书课程设计任务书2008—2009学年第二学期专业班级:09普本信计1班学号:060111060 姓名:宣章然课程设计名称:数值分析设计题目:三次样条插值完成期限:自2012 年 6 月8 日至2012 年 6 月13 日共 1 周设计依据、要求及主要内容:一、设计目的熟练掌握三次样条插值算法的原理和推导过程,并且能够应用Matlab软件编写相应的程序和使用Matlab软件函数库软件。
二、设计要求(1)用Matlab函数库中相应函数对选定的问题,求出具有一定精度的结果。
(2)使用所用的方法编写Matlab程序求解,对数值结果进行分析。
(3)对于使用多个方法解同一问题的,在界面上设计成菜单形式。
三、设计内容首先构造三次样条插值函数的定义和一般特征,并对实例问题进行实例分析,并总结四、参考文献[1] 黄明游,冯果忱.数值分析[M].北京:高等教育出版社,2008.[2]马东升,雷勇军.数值计算方法[M].北京:机械工业出版社,2006.[3] 石博强,赵金.MATLAB数学计算与工程分析范例教程[M].北京:中国铁道出版社.2005.[4]郝红伟,MATLAB 6,北京,中国电力出版社,2001[5]姜健飞,胡良剑,数值分析及其MATLAB实验,科学出版社,2004[6]薛毅,数值分析实验,北京工业大学出版社,2005计划答辩时间:2012年6月18日指导教师(签字):教研室主任(签字):批准日期:年月三次样条插值摘 要分段低次样条插值虽然计算简单、稳定性好、收敛性有保证且易在电子计算机上实现,但只能保证各小段曲线在连接处的连续性,不能保证整件曲线的光滑性。
利用样条插值,既可保持分段低次插值多项式,又可提高插值函数光滑性。
故给出分段三次样条插值的构造过程、算法步骤,利用MATLAB 软件编写三次样条插值函数通用程序,并通过数值算例证明程序的正确性。
关键字:三次样条 插值函数 MATLAB 编程 收敛性 算法步骤一 三次样条函数定义及特征定义1:若函数2()[,]S x a b C ∈,且在每个小区间上1,j j x x +⎡⎤⎦⎣上是三次多项式,其中01n a x x x b⋯=<<<= 是给定节点,则称()s x 是节点01,,,n x x x ⋯上的三次样条函数。
若节点jx 上 给定函数值()j j y f x =(0,1,)j n ⋯= ,且()j js x y = (0,1,)j n ⋯= (1.1)成立,则称 ()s x 为三次样条差值函数。
从定义知,要求出()s x ,在每个应小区间1[,]j j x x + 上确定4个待定系数,共有n 个小区间,故应确定4n 个参数,根据()s x 在[,]a b 上二阶导数连续,在节点()1,2,3,,1j x j n ⋯=-处应满足连续性条件(0)(0),j j s x s x -=+''(0)(0),j j s x s x -=+''''(0)(0)j j s x s x -=+ (1.2)共有 3n-3个条件,再加上()s x 满足插值条件(1.1),共有4n-2个条件,因此还需要2个条件才能确定()s x 。
通常可在区间[,]a b 端点0,na xb x ==上各加一个条件(称边界条件),边界条件可根据实际的问题要求给定。
常见的三种:(1) 已知两端的一节导数值,即{''00''()()n n s x f s x f == (1.3)(2)两端的二阶导数已知,即{''''00''''()()n n s x f s x f == (1.4)特殊情况下的边界条件 ''''0()()0n s x s x == (1.4)’称为自然边界条件(3)当()f x 是以0nxx - 为周期函数时,则要求()s x 也是周期函数,这时边界条件应满足而此时式中, 这样确定的样条函数称为周期函数。
二 函数推导原理及构造我们采用待定一阶导数的方法即设S(Xj)=Mj,j=0,1,...,n,因为分段三次Hermite 插值多项式已经至少是一阶连续可导了,为了让它成为三次样条函数只需确定节点处的一阶导数使这些节点处的二阶导数连续即可!1,,1),0()0(-=+''=-''n i x S x S i i第一类三次样条插值问题方程组由于已知:基本方程组化为n-1阶方程组化为矩阵形式1,,1,0,],,[11-=-=∈++n ix x h x x x i i i i i 212)1()(,)1)(12()(-=-+=x x x x x x ϕϕ并整理后得求二阶导数对,)(x S i个未知量个方程共个1,1+-n n 00)(m x S ='nn m x S =')(n n n n n n f g m m '-=+-----111212μλ⎪⎪⎩⎪⎪⎨⎧\这是一个严格对角占优的三对角方程组,用追赶法可以求解!第二类三次样条插值问题的方程组,由于已知:故得:稍加整理得第三类样条插值问题的方程组,由于:立即可得下式:1111022223333422221111222222n n n n n n n n n m g m m g m g m g m g m μλλμλμλλμλμ---------⎛⎫⎛⎫⎛⎫ ⎪⎪ ⎪ ⎪⎪ ⎪ ⎪⎪ ⎪ ⎪⎪ ⎪= ⎪⎪ ⎪⎪⎪ ⎪ ⎪⎪ ⎪⎪⎪ ⎪⎪⎪ ⎪-⎝⎭⎝⎭⎝⎭00)(M x S =''n n M x S ='')(时,称为自然边界条件00==n M M ⎪⎪⎪⎪⎪⎪⎪⎪⎭⎫⎝⎛--212222121132211n n μλλμλμλ ⎪⎪⎪⎪⎪⎪⎪⎪⎭⎫ ⎝⎛-n n m m m m m 1210 ⎪⎪⎪⎪⎪⎪⎪⎪⎭⎫⎝⎛=-n n g g g g g 1210 n n n n n g m m m =++-211λμ其中::再代入S(x)利用插值(即求过已知有限个数据点的近似函数)的基本原理,用多项式作为研究插值的工具,进行代数插值。
其基本问题是:已知函数f (x)在区间[a,b]上n +1个不同点x0,…,xn 处的函数值 (i = 0,1,…,n),求一个至多n 次多项式ψn(x)使其在给定点处与 f (x)同值,即满足插值条件: ψn(x)= = .许多工程技术中提出的计算问题对插值函数的光滑性有较高要求,如飞机的机翼外形,内燃机的进、排气门的凸轮曲线,都要求曲线具有较高的光滑程度,不仅要连续,而且要有连续的曲率,这就导致了样条插值的产生。
数学上将具有一定光滑性的分段多项式称为样条函数。
具体地说,给定区间[a,b]的一个分划Δ如果函数s(x) 满足:(i )在每个小区间[ ](i=0,1,…,n)上s(x)是k 次多项式; (ii )s(x)在[a,b]上具有k −1阶连续导数。
则称s(x)为关于分划Δ 的k 次样条函数,其图形称为k 次样条曲线。
由于三次样条插值我、函数s(x)的插值节点处的二阶导数存在,因此令各节点处的二阶导数为n m m m m ,,,,210 1,......,2,1,0-=n i'()(0,1,...,)k s x m k n == (1.01)根据样条插值函数的定义,三次样条插值函数是s(x)在每一个小区间)1....,1,0](,[]1-=+n k x x k k 上市不超过三次的多项式。
在每一个小区间)1....,1,0](,[]1-=+n k x x k k 上,其二阶导数为线性函数,即''1111()k kkk k k k k x x x x s x m m x x x x ++++--=+-- (1.02)对式(1.02)积分两次,则得到kk k kk k k k k b x x a h x x m h x x m x s +-+-++=++)(6)(6)()(3131 (1.03)其中kk k k k b a x x h ,,1-=+为任意常数。
又根据样条插值函数定义中的条件(3),即kk k y x f x s ==)()(111)()(+++==k k k y x f x s可以确定ka 与kb 为k a =)(611k k k k k k m m hh y y ---++62k kk k h m y b -= (1.04)将式(1.04)中ka 与kb 的值代入表达式(1.03后,就可以得到样条插值函数)(x s 在区间],[1+k k x x 上的表达式为6))((66)(6)()(2113131k kk k k k k k k k k k k k k k h m y x x m m h h y y h x x m h x x m x s -+----+-+-=++++ (1.05)其中km 与1+k m 分别为区间],[1+k k x x 两端点处的二阶导数值。
由此可以看处,只要能确定各点处的二阶导数值k m )1....,1,0(-=n k ,则子渠道间上的三次样条插值函数)(x s 也确定了。
)(x s 在区间[a,b]上的一阶导数连续,在各节点的左右两子区间上的s(x)虽然不同,但在连接点处的导数存在,即在连接点处的左右导数相等,有)0()0(''+=-k k x s x s(1.06)为了利用条件(2.18),在x 属于],[]1+k k x x 时,县求)('x s 为)(62)(2)()(112121'k k kk k k k k k k k k m m h h y y h x x m h x x m x s ---+-+--=++++(1.07)当x 属于],[1+k k x x 时,11'63)0(++---=+k k k k k k k k m hm h h y y x s(1.08)整理得:)1,.....,2,1(2)1(11-==++-+-n k m m m k k k k k λμμ(1.09)其中1-+=k k kk h h h μ)(61111--+----+=k k k k k k k k k h y y h y y h h λ三 问题的提出上面讨论的分段低次插值函数都有一致收敛性,但光滑性较差,对于像高速飞机的机翼形线,船体放样等型值线往往要求有二阶光滑度,即有二阶连续导数,早期工程师制图时,把富有弹性的细长木条(所谓样条)用压铁固定在样点上,在其他地方让它自由弯曲,然后画下长条的曲线,称为样条曲线。