数值分析课程设计--三次样条插值

更新时间:2024-03-03 18:18:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

《数值分析》课程设计

三次样条插值算法

院(系)名称 信息工程学院 专 业 班 级 09普本信计1班 学 号 学 生 姓 名 指 导 教 师

数值分析 课程设计评阅书

题目 学生姓名 指导教师评语及成绩 指导教师签名: 年 月 日 三次样条插值 学号 答辩评语及成绩 答辩教师签名:

年 月 日 教研室意见 总成绩: 教研室主任签名: 年 月 日

课程设计任务书

2008—2009学年第二学期

专业班级: 09普本信计1班 学号: 姓名: 课程设计名称: 数值分析 设计题目: 三次样条插值

完成期限:自 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日

指导教师(签字): 教研室主任(签字): 批准日期: 年 月

课程设计说明书(论文) 第I页

三次样条插值

摘 要

分段低次样条插值虽然计算简单、稳定性好、收敛性有保证且易在电子计算机上实现,但只能保证各小段曲线在连接处的连续性,不能保证整件曲线的光滑性。利用样条插值,既可保持分段低次插值多项式,又可提高插值函数光滑性。故给出分段三次样条插值的构造过程、算法步骤,利用MATLAB软件编写三次样条插值函数通用程序,并通过数值算例证明程序的正确性。

关键字:三次样条 插值函数 MATLAB编程 收敛性 算法步骤

一 三次样条函数定义及特征

定义1:若函数中

S(x)?C[a,b]2?xj,xj?1??上是三次多项式,其,且在每个小区间上?a?x0?x1???xn?b 是给定节点,s(x)是节点x0,x1,?,xn上的三次样

则称

条函数。若节点

xj上 给定函数值

yj?f(xj)(j?0,1,?n) ,且

s(xj)?yj (j?0,1,?n) (1.1)

成立,则称 s(x)为三次样条差值函数。 从定义知,要求出s(x),在每个应小区间

[xj,xj?1] 上确定4个待定系数,共有

n个小区间,故应确定4n 个参数,根据s(x) 在[a,b] 上二阶导数连续,在节点

xj?j?1,2,3,?,n??1

处应满足连续性条件

s(xj?0)?s(xj?0),s'(xj?0)?s'(xj?0),

s''(xj?0)?s''(xj?0) (1.2)

共有 3n-3个条件,再加上

s(x)满足插值条件(1.1)

,共有4n-2个条件,因此还

需要2个条件才能确定s(x)。通常可在区间[a,b] 端点a?x0,b?xn上各加一个条件(称

课程设计说明书(论文) 第II页

边界条件),边界条件可根据实际的问题要求给定。常见的三种:

(1) 已知两端的一节导数值,即

?s'(x0)?f0's'(xn)?fn' (1.3)

(2)两端的二阶导数已知,即

?s''(x0)?f0''s''(xn)?fn'' (1.4)

特殊情况下的边界条件

''''s(x)?s(xn)?0 (1.4)’ 0

称为自然边界条件

x(3)当f(x)是以n条件应满足

?x0 为周期函数时,则要求s(x) 也是周期函数,这时边界

而此时式中

, 这样确定的样条函数

称为周期函数。

二 函数推导原理及构造

我们采用待定一阶导数的方法即设S(Xj)=Mj,j=0,1,...,n,因为分段三次Hermite

插值多项式已经至少是一阶连续可导了,为了让它成为三次样条函数只需确定节点处的一阶导数使这些节点处的二阶导数连续即可!

S??(xi?0)?S??(xi?0),i?1,?,n?1xixi?1?xx?xixi?1?xS(x)?yi?0(x?)?y?()?mh?()?mh?(i?10ii1i?1i1hihihihi)课程设计说明书(论文) 第III页

x?[xi,xi?1],hi?xi?1?xi,i?0,1,?,n?1

?(x)?(2x?1)(x?1)2,?1(x)?x(x?1)2

对S(x)求二阶导数,并整理后得i 6(xi?xi?1?2x)??S(x)?(yi?1?yi) i3hi

6x?2xi?4xi?16x?4xi?2xi?1 ?m?mi?1i hi2hi2

642 ????limS(x)?S(x?0)?(y?y)?m?mi?1ii?1ii x?xi?hi2hihi ?624????limS(x)?S(x?0)?(y?y)?m?mi iii?1i?12x?xi?hhh i?1i?1i?1

由于在内部节点处二阶导数连续条件:

S??(xi?0)?S??(xi?0),i?1,2,?,n?11111mi?1?2(?)mi?mi?1?3(yi?1?yi?yi?yi?1)hi?1hi?1hihihi2hi2?1 整理化简后得:

hihi?1mi?1?2mi?mi?1i?1,?,n?1hi?1?hihi?1?hihiyi?yi?1hi?1yi?1?yi?3(?)hi?1?hihi?1hi?1?hihi?i?hihi?hi?1?i?hi?1?1??ihi?hi?1gi?3(?iyi?yi?1y?y??ii?1i)hi?1hi

共个n?1个方程,n?1个未知量第一类三次样条插值问题方程组由于已知:

S?(x0)?m0S?(xn)?mn基本方程组化为n-1阶方程组

化为矩阵形式

???????2m1??1m2?g1??1f0?hiyh?yyi?yhyhi?1?yiyi?1?yiii??11?3(?3(iii?1??i?1))?kmk?1?2mk??kmk?1h?g?hhh?hhh?hhh?hhi?1kii?i?1i?i,?11?2ii?1iiik1?2i,3,?n ?n?1mn?2?2mn?1?gn?1??n?1fn?课程设计说明书(论文) 第IV页

\\

?2?1??m1??g1??1m0????????2?mg22?2??2??????m3????32?3g3???????2????4?????? ??????????????????n?22?n?2??mn?2??gn?2????g??m??n?12??mn?1?1n?1n??????n?这是一个严格对角占优的三对角方程组,用追赶法可以求解!

第二类三次样条插值问题的方程组,由于已知:

S??(x0)?M0 S??(xn)?Mn M?M?0时,称为自然边界条件n 0故得:

264S??(x0)?2(y1?y0)?m0? m1?M0h0hh0 0

稍加整理得

S??(xn)??642(y?y)?m?mn?Mnnn?1n?12hn?1hn?1hn?1 y1?y0h0?2m0?m1?3?M0 g0h02 yn?yn?1hn?1 mn?1?2mn?3?Mn?gnhn?12 联合基本方程组得一个n+1阶三对角方程组,化成矩阵形式为:仍然是严格对角占优

?21??m0??g0????????2?mg1?1??1??1??22?2???m2??g2???????????32???? ???????????????n?12?n?1??mn?1??gn?1???????1 2????mn??gn?第三类样条插值问题的方程组,由于:

立即可得下式:

S?(x0?0)?S?(xn?0)?m0?mnS??(x0?0)?S??(xn?0)62S??(x0?0)?2(y1?y0)?(m1?2m0)h0h0 26S??(xn?0)?2(yn?yn?1)?(mn?1?2mn)hn?1hn?1 ?nm1??nmn?1?2mn?gn

课程设计说明书(论文) 第V页

其中:

?n?h0hn?1,?n??1??nh0?hn?1h0?hn?1?y1 ?y0yn?yn?1???gn?3??n??nh0hn?1? ??联合基本方程得一个广义三对角或周期三对角方程组:

?0,1,2,......,n?1i

?1??2?1???2?11???m??g? ???1??1??22?2???m2??g2?求解这些不同类型的样条插值问题的方程组,我们可得所要待定的一阶导数: ?32???? ??????m0,m1,m2,?,mn????????? ?g????mn????n??n?12?n?1?再代入S(x)的每一段表达式,就求得三次样条函数的表达式! ??? ?n2?n??x?xixi?1?xxixi?1?x

S(x)?yi?0(hi)?yi?1?0(hi)?mihi?1(x?hi)?mi?1hi?1(hi)

利用插值(即求过已知有限个数据点的近似函数)的基本原理,用多项式作为研究插值的工具,进行代数插值。其基本问题是:已知函数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)的插值节点处的二阶导数存在,因此令各节点处的二阶导数为

课程设计说明书(论文) 第VI页

s'(x)?mk(k?0,1,...,n) (1.01)

根据样条插值函数的定义,三次样条插值函数是s(x)在每一个小区间

[xk,xk?1]](k?0,1....,n?1)[xk,xk?1]](k?0,1....,n?1) 上市不超过三次的多项式。在每一个小区间

上,其二阶导数为线性函数,即

s''(x)?mkxk?1?xx?xk?mk?1xk?1?xkxk?1?xk (1.02)

对式(1.02)积分两次,则得到

(xk?1?x)3(x?xk)3s(x)?mk?mk?1?ak(x?xk)?bk6hk6hk (1.03)

其中

hk?xk?1?xk,ak,bk为任意常数。又根据样条插值函数定义中的条件(3)

,即

s(xk)?f(xk)?yk s(xk?1)?f(xk?1)?yk?1

可以确定

ak与

bk为

yk?1?ykh?k(mk?1?mk)akhk6=

bk?yk?mk

将式(1.04)中

2hk6 (1.04)

ak与

bk的值代入表达式(1.03后,就可以得到样条插值函数

s(x)在区间[xk,xk?1]上的表达式为

(xk?1?x)3(x?xk)3yk?1?ykhkhk2s(x)?mk?mk?1??(mk?1?mk)(x?xk)?yk?mk6hk6hkhk66 (1.05)

其中

mk与

mk?1分别为区间[xk,xk?1]两端点处的二阶导数值。由此可以看处,只要

能确定各点处的二阶导数值

mk(k?0,1....,n?1),则子渠道间上的三次样条插值函数

s(x)也确定了。

本文来源:https://www.bwwdw.com/article/r3va.html

Top