【信息与计算科学专业毕业论文】三次样插值在Delphi与MATLAB中的实现.doc
《【信息与计算科学专业毕业论文】三次样插值在Delphi与MATLAB中的实现.doc》由会员分享,可在线阅读,更多相关《【信息与计算科学专业毕业论文】三次样插值在Delphi与MATLAB中的实现.doc(27页珍藏版)》请在三一办公上搜索。
1、毕 业 论 文学生姓名: 学 号: 学 院: 理学院 专 业: 信息与计算科学 题 目: 三次样插值在Delphi与MATLAB 中的实现 指导教师: 评阅教师: * 年 *月河北科技大学毕业设计(论文)成绩评定表姓 名李江娜学 号05104131成 绩专 业信息与计算科学题 目三次样插值在Delphi与MATLAB中的实现 指导教师评语及成绩 指导教师: 年 月 日评阅教师评语及成绩 评阅教师: 年 月 日答辩小组评语及成绩答辩小组组长: 年 月 日答辩委员会意见 学院答辩委员会主任: 年 月 日 注:该表一式两份,一份归档,一份装入学生毕业设计说明书(论文)中。毕 业 设 计(论文) 中
2、文 摘 要随着科学技术的发展,科学与工程计算已被推向科学活动的前沿,科学与工程计算的范围扩大到了所有科学领域,并与实验、理论三足鼎立,相辅相成,成为人类科学活动的三大方法之一。因此熟练的运用计算机进行科学计算,已成为科技工作者的一项基本技能。这就要求人们去研究和掌握适用于计算机上使用的数值计算方法。三次样条插值是科学与工程计算中的一类主要算法,本文主要是以数值分析中三次样条插值算法为基础,借助于Matlab数学软件进行处理,以Delphi开发软件为实现平台,将Delphi开发软件和Matlab数学工具相结合,利用Delphi灵活强大方便的编程功能,以及Matlab强大的科学计算功能来实现三次样
3、条插值的可视化计算,从而使计算更为简单、实用且易操作。关键词 三次样条 插值函数 Matlab程序 Dephi程序毕 业 设 计(论文) 外 文 摘 要Title Realization of Cubic Spline Interpolation Fuction in Delphi and MATLAB AbstractAlong with the development of technology,science and engineering calculation have already occupied the forward position of scientific activ
4、ities ,and its range has spreaded to all the scientific fields.It has the same status with experiment and theory, and supplements each other,becomes one of the three famous methods of human scientificActivities. So it is essential skill for engineer to master calculation,and it is necessary for peop
5、le to research calculation and master calculation in computer Cubic spline is a very important arithmetic in the science and engineering calculation .This article is based on the cubic spline arithmetic of numerical analysis ,uses Matlab software to deal with the data, and Delphi as the actualizing
6、flat, combine Delphi with Matlab,then make full use of the smart, strong, convenient programming function of Delphi and the powerful calculating capacity of Matlab, and carrys out the visible calculation of cubic spline, which is easier and more practical.Key Words Cubic spline Interpolation functio
7、n Matlab program Delphi program目 录1 引言12 三次样条函数12.1 定义12.2 边界条件22.3三次样条函数插值的构造32.4 三次样条插值的算法63 用MATLAB做三次样条插值计算73.1 三次样条插值的源代码73.2 三次样条插值的各种边界条件在MATLAB中的命令124 程序设计164.1 设计步骤164.2程序代码18结 论22致 谢23参 考 文 献241 引言我们知道,高次插值不仅计算复杂,而且可能出现龙格现象。而分段低次插值有计算简单、插值曲线连续及能逼近函数的特点,但在分段插值多项式的分段点处有“尖点”出现,及光滑性比较差。例如,分段线性
8、插值是在给定了插值节点上的函数值和微商值以后,构造一个整体上具有一阶连续微商的插值函数。为了提高整体光滑度,并且在只给出插值点上的函数值的情况下构造一个整体上具有二阶连续微商的插值函数,这就是三次样条插值。样条这一名词来源于工程中的样条曲线。绘图员为了将一些指定的点(或样点)连接成一条光滑曲线,往往用细长的木条(或样条)把相近的几点连接在一起,在逐步延伸连接起全部节点,使其形成一条光滑的样条曲线,它在连接处具有连续曲率。对绘图员的样条曲线进行数学模拟,得到的函数叫做样条函数,它在连接处具有一阶和二阶连续微商。本论文以数值分析中三次样条插值算法和Matlab数学软件为基础,以Delphi为实现平
9、台来实现三次样条插值的可视化计算,从而使计算更为简单、更方便。Delphi作为一种功能强大的编程工具,具有易学易用、开发效率高,界面制作美观方便等优点,因此被很多程序员所青睐。Pascal作为历史上第一种结构化的高级语言,在从事复杂算法编写方面也有着诸多优点,可是在软件开发快速运作的今天,用Pascal原始开发一些复杂的算法,不仅编译效率不高而且也影响开发进度,因此Delphi如何与科学计算软件相结合,从而高效地完成编程任务成为一个困扰很多程序员的问题。而Matlab就正是一种高效率的科学工程计算语言,它在矩阵运算、数值计算、数字信号处理、系统识别、自动控制、神经网络、图形显示等方面比其它语言
10、有难以比拟的优势。将Delphi和Matlab相结合,利用Delphi灵活强大方便的编程能力,Matlab强大的科学计算能力就可以开发出功能强大、操作灵活的软件。2 三次样条函数 样条插值属于分段光滑插值。它的基本思想是,在由两个相邻结点所构成的每一个小区间内用低次多项式来逼近,并且,在各结点的连接处又保证是光滑的(即导数连续)。2.1 定义定义:设函数定义在区间上,给定个节点: 若满足(1)在上有二阶连续的导数(2)在每个小区间上是一个三次多项式则称为三次样条函数。若还满足 (3) 则称为三次样条插值函数。2.2 边界条件由样条插值函数的定义可知,在每个小区间上都是三次函数,即 (2.1)
11、其中系数、待定,它满足条件:(1) 插值条件 (2.2)(2) 连续条件 (2.3)式(2.2)、式(2.3)共给出了个条件,而待定系数有个,因此还需要个条件才能确定。通常是在区间端点、上个加一个条件,称为边界条件。(3)边界条件常用的边界条件有三种类型:.已知两端点的一阶导数值,即令 , (2.4).已知两端点的二阶导数值,即令 , (2.5).当是以为周期的函数时,则要求也是周期函数,这时边界条件应满足,当时, 。2.3三次样条函数插值的构造从原则上来讲,我们可以利用方程组(2.2)、(2.3)以及边界条件(2.4)或边界条件(2.5)、(2.6),求出个待定系数、,从而得到在每个小区间上
12、的表达式。但是,由于这种做法的计算量相当大,在实际计算时很少用到。这里介绍一种简单的求法,因为三次样条插值函数可以有多种表达方法,既可以用节点处的二阶导数表示,也可以用节点处的一阶导数表示。所以为了简化计算,我们利用在节点处的二阶导数值表示;用在内节点上的连续性和边界条件来确定。具体步骤如下:1.的表达式由表示因为在每个小区间上是三次多项式,所以在此小区间上是一次多项式,并设,则的表达式为 (2.6)将上式积分两次并利用条件和,可得 (2.7)2.利用连续条件列出关于的方程组由式(2.7)可知,只要求出,就可以确定分段三次样条插值函数在每个小区间上的表达式。为求,将式(2.7)求导,得到 (2
13、.8)这样 (2.9) (2.10)由可得 整理得 (2.11)其中 , 3.利用边界条件来求解对于型边界条件,把、分别代入式(2.9)和式(2.10),得 即 (2.12) (2.13)其中,。令、,将式(2.11)、式(2.12)、式(2.13)三式合成为矩阵形式: (2.14)对于型边界条件,把、代入,由式(2.11)得 相应的矩阵方程为 (2.15)对于型边界条件,因为,由(2.9)式、式(2.10)得 由得,代入上式整理得 其中 , 相应的矩阵方程为 (2.16)方程组(2.14)-(2.16)对应的系数矩阵矩阵均为严格对角占优阵,因此都有唯一解,这样求这样插值函数的步骤为(1) 求
14、、 ;(2) 对不同边界条件选用相应的矩阵方程,求;(3) 代入式(2.7),求出三次样条插值函数。2.4 三次样条插值的算法对于定义在点上的函数,构造三次样条插值,满足边界条件和。输入 数函数值;边界条件、及待求点输出 函数值Step1 对于,计算 Step2 对于,计算 Step3 计算 Step4 求解线性方程祖,解出: Step5 当时执行Step6;Step6 判定所在的区间;Step7 按照上述公式计算: Step8 输出。3 用MATLAB做三次样条插值计算3.1 三次样条插值的源代码在Matlab 环境下根据上述算法步骤进行编程,源程序如下:function output =
15、spline(x,y,xx) %三次样条插值%yi=spline(x,y,xi)等价于YI=interp(x,y,xi,spline),% 根据数据(x,y)给出在xi的线性插值结果yi.% 使用非扭结端点条件, 即强迫第一二端多项式三次项系数相同,% 最后一段和倒数第二段三次项系数相同.%pp=spline(x,y)返回样条插值的分段多项式(pp形式).%breaks,coefs=unmkpp(pp)将pp形式展开,其中breaks为结点,coefs为各段多项式系数.%yi=ppval(pp,xi),pp形式在xi的函数值.%例 考虑数据% x | 1 2 4 5% -|-% y | 1 3
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 信息与计算科学专业毕业论文 信息 计算 科学 专业 毕业论文 三次 样插值 Delphi MATLAB 中的 实现
![提示](https://www.31ppt.com/images/bang_tan.gif)
链接地址:https://www.31ppt.com/p-2386446.html