常微分方程数值解实验.docxVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
常微分方程数值解实验

实验一 常微分方程数值解6.1 实验目的熟悉Matlab软件中求解常微分方程数值解的Runge-Kutta方法;6.2 实验基本知识微分方程的概念:未知的函数以及它的某些阶的导数连同自变量都由一已知方程联系在一起的方程称为微分方程。如果未知函数是一元函数,称为常微分方程。常微分方程的一般形式为微分方程是数学科学联系实际问题的主要桥梁之一,它是含有未知数及其导数的方程。常微分方程的求解是现代科学研究和工程技术中经常遇到的问题,然而,从实际问题中建立起来的微分方程往往具有非常复杂的形式,有写解析式难以计算,有的则根本不能用解析式来表达。在实际上对初值问题,一般是要求得到解在若干个点上满足规定精确度的近似值,或者得到一个满足精确度要求的便于计算的表达式,所以利用数值解法求解实际问题显得非常重要。一阶常微分方程的初值,其一般形式为dydx=f(x,y假设函数f(x,y)连续,且关于y满足莱布尼兹条件,即存在常数L,使得│由微分方程理论可知,初值问题式(1)的解必定存在唯一。若给出节点xn=a+nh(n=0,1,2 …),其中h为步长,设y(xn)代表方程(1)的精确解在xn的值,yn代表某种算法(忽略计算的舍入误差)得到的y(xn)近似值,所谓数值解法,就是寻求y(x)在系列离散点a==b处的近似值yn(n=1,2,…),求解过程是顺着节点的次序一步步的向前推进,即按递推公式由已知的y1,y2,y3… yi求出yi+1。建立数值解法的一些途径用差商代替导数若步长较小,则有固有公式:此即Euler法。使用数值积分对微分方程两边积分得故有公式:和yn+1此即改进的Euler法。四阶Runge-Kutta法 以Euler法为基础,继续推广和处理,可得一、二、三、四阶Runge-Kutta格式,最常用的一种经典Runge-Kutta格式的具体形式如下:yn+1=y利用matlab求解一阶常微分方程的初值解 在MATLAB中,由函数dsolve()解决常微分方程(组)的求解问题,其具体格式如下:X=dsolve(‘f1’,’f2’,…)函数dsolve用来解符号常微分方程、方程组,如果没有初始条件,则求出通解,如果有初始条件,则求出特解。有大量的常微分方程虽然从理论上讲,其解是存在的,但我们却无法求出其解析解,此时,我们需要寻求方程的数值解,在求常微分方程数值解方面,MATLAB具有丰富的函数,我们将其统称为solver,其一般格式为:[T,Y]=solver(odefx,t,y0)该函数表示在区间t=[t0,tf]上,用初始条件y0求解显式常微分方程。solver为命令ode45,ode23,ode113,ode15s,ode23s,ode23t,ode23tb之一,这些命令各有特点。列表说明如下:求解器ODE类型特点说明ode45非刚性一步算法,4,5阶Runge-Kutta方法累积截断误差大部分场合的首选算法ode23非刚性一步算法,2,3阶Runge-Kutta方法累积截断误差使用于精度较低的情形ode113非刚性多步法,Adams算法,高低精度均可达到计算时间比ode45短ode23t适度刚性采用梯形算法适度刚性情形ode15s刚性多步法,Gear’s反向数值积分,精度中等若ode45失效时,可尝试使用ode23s刚性一步法,2阶Rosebrock算法,低精度。当精度较低时,计算时间比ode15s短odefx为显式常微分方程中的,t为求解区间,要获得问题在其他指定点上的解,则令t=[t0,t1,t2,…](要求单调),y0初始条件。MATLAB 中有几个专门用于求解常微分方程的函数,它们的设计思想基于Runge - Kutta方法,基本设计思想为:从改进的欧拉方法比欧拉方法精度高的缘由着手,如果在区间[ x1 , xi+1 ] 多取几个点的斜率值,然后求取平均值,则可以构造出精度更高的计算方法。 这些函数主要包括:ode45、ode23、ode15s、ode113、ode23s、ode23t、ode23tb. 其中最常用的是函数ode45,该函数采用变步长四阶五阶Runge - Kutta法求数值解,并采用自适应变步长的求解方法。ode23采用二阶三阶Runge - Kutta法求数值解,与ode45类似,只是精度低一些。ode15s用来求刚性方程组。ode45函数的调用格式为:[ tout, yout ] = ode45 ( ’yprime’, [ t0, tf ] , y0)其中yprime是表示f ( t, y)的M文件名, t0表示自变量的初始值, tf表示自变量的终值, y0表示初始向量值. 输出向量tout表示节点( t0 ; t1 ; ?; tn) ,输出矩阵yout表示数值。求解实例例1 Rossler方程的数值解法R

文档评论(0)

haocen + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档