一阶微分方程的MATLAB数值解法.doc
《一阶微分方程的MATLAB数值解法.doc》由会员分享,可在线阅读,更多相关《一阶微分方程的MATLAB数值解法.doc(43页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、精选优质文档-倾情为你奉上 毕业论文题 目 一阶微分方程的matlab数值解法 学 院 数学科学学院 专 业 数学与应用数学 班 级 数学1303班 学 生 邹健峰 学 号 7 指导教师 邢顺来讲师 二一七年五月七日专心-专注-专业摘 要微分方程的数值解法是近现代数学家和科学家们研究的热点,微分方程的MATLAB数值解法可以帮助我们解决现实生活中的许多数学问题,提高计算机帮助我们解决问题的效率。本文主要讨论研究一阶微分方程的MATLAB数值解法中的三种Euler法和三种Runge-Kutta法,介绍以上六种方法的主要内容,简单介绍了MATLAB的相关内容和微分方程的发展简史。通过具体的微分方程
2、来研究以上算法的编程实现,通过MATBLAB求解具体的一阶微分方程来探究以上方法的优缺点,通过图表来分析得出结论:改进Euler法和四阶Runge-Kutta法的阶的精度较高,具有较好的算法稳定性。关键词:一阶微分方程;数值解法;MATLAB;Euler法;Runge-Kutta法ABSTRACTThe numerical solution of differential equations is a hot spot for modern mathematicians and scientists, the MATLAB numerical solution of the different
3、ial equation can help us solve many mathematical problems in real life, improve the efficiency of the computer to help us solve the problem. This paper mainly discusses three kinds of Euler methods and three Runge-Kutta methods in MATLAB numerical solution of first order differential equation, intro
4、duce the main contents of the above six methods, a brief introduction to the development of MATLAB related content and differential equations of a brief history. The programming of the above algorithm is studied by the concrete differential equation, he advantages and disadvantages of the above meth
5、ods are explored through MATBLAB solving the specific first-order differential equation, through the chart to analyze the conclusions: The improved Euler method and the fourth order Runge-Kutta method have higher accuracy,has good algorithm stability.Key words:First Order Differential Equation; Nume
6、rical Solution; MATLAB; Euler Method; Runge-Kutta Method目 录摘要IABSTRACTII1 前言11.1 引言11.2常微分方程的发展简史21.3 国内外研究现状21.4 研究主要内容及研究方案31.4.1 研究的主要内容31.4.2 研究方案31.5 研究难点32 预备知识42.1 显式Euler法42.2 隐式Euler法52.3 改进Euler法52.4 二阶Runge-Kutta法62.5 三阶Runge-Kutta法72.6 四阶Runge-Kutta法72.7 单步法的收敛性和稳定性93 微分方程数值解法的编程实现113.1
7、常微分方程的符号解法113.2 显式Euler法的编程实现123.3 隐式Euler法的编程实现143.4 改进Euler法的编程实现173.5 二阶Runge-Kutta法的编程实现203.6 三阶Runge-Kutta法的编程实现223.7 四阶Runge-Kutta法的编程实现24结论29参考文献30致谢31附录321 前言1.1 引言James Bernoulli在1676年写给Newton的信中首次谈到了微分方程。大约到了十八世纪中期,微分方程才成为一门独立的学科,微分方程是研究和揭示自然规律不可或缺的重要工具。众所周知,在1846年数学家和天文学家共同发现的海王星就是微分方程的功劳
8、。还有在1991年,科学考察队在Alps山脉发现了一个冰封保存完好的人类,然后通过仪器测得碳元素衰变的速率,建立微分方程数学模型,得出了这个人是生活在距今5000多年前的时代。Newton、Leibniz、Bernoulli family、Lagrange、Laplace等著名数学家们都对微分方程的发展做出了巨大的贡献。微分方程的定义:如果知道自变量、未知函数以及函数的导数(或微分)组成的关系式我们就称为微分方程。常微分方程的定义:通过求解微分方程得出未知函数,并且自变量只有一个的微分方程我们就叫做常微分方程,自变量个数为两个或者两个以上的微分方程称为偏微分方程1。我们把含有n个互不相等的任意
9、常数的解称为n阶常微分方程的通解。微分方程的特解是指满足微分方程初值条件的解1。我们在生活中会经常用到一些常微分方程模型,例如英国著名人口统计学家Malthus提出的著名的Malthus人口模型;荷兰著名生物学家Verhulst提出的logistic人口增长模型;传染病模型SI模型、SIS模型(无免疫性)、SIR(强免疫性)模型;两生物种群生态模型;气象学家Lorenz提出的Lorenz方程用来预测天气变化;化学动力学模型2。可见微分方程与我们的生活有着密不可分的关系。MATLAB是分别取了Matrix和Laboratory两个单词的前三个字母组成的,是矩阵实验室的名称缩写。MATLAB是来自
10、美国大学的计算机老师Cleve Moler创造的,并且由Cleve Moler和John Lillte把其推向了市场,并得到了广大用户的喜爱。MATLAB是数学科学和工程科学的高级计算机语言,用户可以用数学语言来编写程序,编程逻辑非常类似人们日常书写数学公式的逻辑,具有简单性、广泛性、开放性、效率高、价格低等特点。并且MATLAB工具箱储存的MATLAB函数库里面有大量的函数程序,可以解决许多的数学和工程科学问题。从2010版开始MATLAB的功能越来越多,编译器可以把M文件转换为C语言文件或者其他几种常用的计算机文件,并给用户提供源程序代码进行自我开发,结合Math Works公司提供的数据
11、库,用户可以利用MATLAB来开发出功能强大的程序3,4,5。微分方程的MATLAB数值解法可以帮助我们解决许多现实生活中的数学问题,提高计算机帮助我们解决问题的效率,如今微分方程的MATLAB数值解法已经发展得比较成熟,有许多关于数学领域的MATLAB书籍可供我们选择阅读,很好的解决了我们的学习需求和使用问题。MATLAB应用领域也非常广泛,比如在数学建模和数学实验领域,我们可以通过直接调用MATLAB里面的微分方程函数文件,在操作界面输入初始数据,还把抽象复杂的数学问题变成简单形象的二维或者三维图形,来帮助我们分析问题,找出解题方法,从而解决我们生活中负责的数学问题,体现了数学源自生活又联
12、系生活的主要特征。除此之外,在物理学、工程科学等科学领域中MATLAB也具有重要地位 6,7。1.2 常微分方程的发展简史常微分方程的发展可以简单的分为以下几个阶段:“求通解”阶段;“求定解”阶段;“求所有解”阶段;“求特殊解”阶段。在常微分方程的“求通解”阶段,人们希望能够用初等函数来表示解,Newton就希望能够用分离变量法来求解一阶微分方程问题,但Euler却尝试用积分因子来求解一阶微分方程问题。而Bernoulli在研究微分方程的过程中提出了著名的Bernoulli方程,Riccati也在研究过程中提出了Riccati方程,他们的发现对微分方程未来的发展打下了基础,起到了积极的作用。直
13、到Liouville证明了Riccati方程没有一般的初等解,还有Cauchy提出了微分方程的初值问题,常微分方程进入了“求定解”阶段。直到19世纪末,由于天体力学的研究需求,常微分方程从“求定解”阶段进入了“求所有解”的阶段。首先是Poincar提出了定性理论,接着是Hilbert提出了关于极限环个数的问题,促进了微分方程定性理论的发展,紧接着Lyapunov提出了运动稳定性理论,广泛应用在物理和工程学中。而在动力系统方面,Birkhoff、Arnold、Smale都做出了贡献。到了20世纪70年代计算机技术的发展带动了常微分方程的发展,从“求所有解”阶段进入到了“求特定解”阶段,发现了一些
14、特定解和方程,比如混沌(解)、孤立子、奇异吸引子、分形。关于常微分方程的研究还在继续,如今研究的领域更加广泛,更多的微分方程模型被提出和应用起来了1,8,9,10。 1.3 国内外研究现状关于微分方程数值解法的研究,在没有MATLAB以及类似的计算机软件问世之前,数学家和科学家们只能研究和解决一些低阶的微分方程问题,并且有些方程的解题过程过于繁琐和复杂。但是MATLAB的出现促进了数学科学研究的发展,对数学和相关领域的发展做出了巨大贡献。微分方程的MATLAB数值解法也迅速发展起来,国内外现在主要研究通过MATLAB等计算机软件来研究:一些高阶微分方程的解的有关问题;一些复杂的微分方程是否存在
15、定解问题;利用MATLAB来计算一些著名的数学模型问题,比如Volterra被捕食 捕食模型、竞争模型、共生模型、商品供需模型等等;研究混沌(解)、孤立子。在以上几方面的研究上都取得了不小的进步,使常微分方程的体系更加的完善了。在国内,2009年中国数学会成功举办了第四届全国青年常微分方程学术会议,许多国内知名学者和学术研究者都到场参加学术交流,这一项活动促进了我国常微分方程领域的发展,为青年学者提供了宝贵经验,这次会议也受到了国外数学爱好者的高度关注。在书籍方面,我国也发行了许多关于微分方程数值分析和微分方程数值解法方面的书籍,都有详细介绍微分方程关于MATLAB的数值解法,比如林成森编著的
16、第二版数值计算方法里面就有详细介绍常微分方程初值问题的数值解法,包括有:离散变量法和离散误差法;单步法;单步法的相容性、收敛性和稳定性;多步法;差分方程的简介;线性步法的相容性、收敛性和数值稳定性;常微分方程组和高阶微分方程的数值解法等几个方面,成为了21世纪高等院校的教材。周品、何正风等编著的MATLAB数值分析作为了理工科各专业本科生、研究生以及应用MATLAB相关科技人员学习MATLAB数值分析、建模、仿真的教材或者参考书。现如今,由于信息时代的飞速发展,数值计算方面的计算机软件越来越多,功能也越来越全面,所以微分方程的数值解法受到了更多人的重视,发展前景变得更好了,这对于学习微分方程的
17、数值解法的人来说是非常好的消息。1.4 研究的主要内容与方法1.4.1 研究的主要内容本文针对一阶常微分方程的数值解法中的MATLAB数值解法进行算法介绍和编程实现,利用MATLAB对一阶微分方程中的Euler法、隐式Euler法、改进Euler法以及Runge-Kutta法进行精度分析并比较,揭示以上几种方法的优缺点,编程实现以上方法的数值解法,并通过具体事例来验证程序的完整性、稳定性、以及不足。1.4.2 研究方法一阶微分方程的MATLAB数值解法的编程实现需要通过Euler法、隐式Euler法、改进Euler法以及二到四阶Runge-Kutta法等方法的算法逻辑,针对不同一阶微分方程来编
18、写MATLAB程序,然后再反复调试程序,找出其中的不足并改进,然后保存程序并做记录,以便下次使用时直接调用。1.5 研究难点(1)微分方程的模型多样,研究方向多,不同的模型有不同的数值分析和数值解法;(2)微分方程的MATLAB数值解法需要符合实际问题,限制条件比较多;(3)微分方程的类型多样,MATLAB的函数库里只有部分微分方程的调用函数,不能满足研究的需求,需要自定义调用函数;(4)微分方程的MATLAB数值解法需要反复调试,得出满意结果花费时间较长。2 预备知识2.1 显式Euler法显示Euler法也被人们简称为Euler法,是解决微分方程初值问题最简单的数值方法。初值问题的解代表通
19、过点的一条称为微分方程的积分曲线。积分曲线上每一点的切线斜率等于函数在这点的值。Euler方法的求解过程是从初始点出发,作积分曲线在点的切线(其斜率为),与直线相交与点,得到作为的近似值,过点,以为斜率的切线方程为当时,得这样就获得了点的坐标3,11。不断重复上述过程,就可以得到一系列的点。对已求得的点以为斜率做直线,当时,便可得到方程取,这样从逐一算出所对应的数值解,同样也获得了一条曲线作为原始曲线的近似曲线,因此又称Euler法为折线法。在计算时,一般取(常数),则显式Euler公式为 . (2.1)2.2 隐式Euler法假设我们用近似等式来替代显式Euler公式右端的积分项,就得到再用
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 一阶 微分方程 MATLAB 数值 解法
限制150内