网站大量收购独家精品文档,联系QQ:2885784924

[工学]第十章 常微分方程组求解.doc

  1. 1、本文档共70页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
[工学]第十章 常微分方程组求解

求微分方程的解 相关函数(命令)及简介 dsolve(equ1,equ2,…):Matlab求微分方程的解析解。equ1,equ2,…为方程(或条件)。写方程(或条件)时用Dy表示y关于自变量的一阶导数,用D2y表示y关于自变量的二阶导数,依次类推。 simplify(s):对表达式s使用maple的化简规则进行化简。 例如: syms x simplify(sin(x)^2+cos(x)^2) ans=1 3,[r,how]=simple(s):由于Matlab提供了多种化简规则,simple命令就是对表达式s用各种规则进行化简,然后用r返回最简形式,how返回形成这种形式所用的规则。 例如: syms x [r,how]=simple(cos(x)^2-sin(x)^2) r=cos(2*x) how=combine 4,[T,Y]=solver(odefun,tspan,y0),求微分方程的数值解。 (1)其中的solver为命令 ode45,ode23,ode113,ode15s,ode23s,ode23t,ode23tb之一。 (2)odefun是显式常微分方程: (3)在积分区间上,从到,用初始条件求解。 (4)要获得问题在其他指定时间点上的解,则令(要求是单调的) (5)因为没有一种算法可以有效地解决所有的ODE问题,为此,Matlab提供了多种求解器solver,对于不同的ODE问题,采用不同的solver。 求解器solver ODE类型 特点 说明 ode45 非刚性 单步算法:4,5阶的Runge-Kutta 大部分场合的首选算法 方程;累计截断误差达 ode23 非刚性 单步算法:2,3阶的Runge-Kutta 使用于精度较低的情形 方程;累计截断误差达 ode113 非刚性 多步法:Adams算法;高低精度均 计算时间比ode45短 可到。 ode23t 适度刚性 采用梯形算法 适度刚性情形 ode15s 刚性 多步法:反向数值微分 若ode45失败时,可尝精度中等 试使用 ode23s 刚性 单步法:2阶算法; 当精度较低时, 计算 低精度 时间比ode15s短 ode23tb 刚性 梯形算法;低精度 当精度较低时, 计算 时间比ode15s短 (6)要特别说明的是:ode23,ode45是极其常用的用来求解非刚性的标准形式的一阶常微分方程(组)的初值问题的解的Matlab的常用程序,其中: ode23采用龙格-库塔2阶算法,用3阶公式作误差估计来调节步长,具有低等的精度。 ode45则采用龙格-库塔4阶算法,用5阶公式作误差估计来调节步长,具有中等的精度。 5,ezplot(x,y,[tmin,tmax]):符号函数的作图命令,x,y为关于参数t的符号函数,[tmin,tmax]为t的取值范围。 6,inline():建立一个内联函数。格式:inline(expr,var1,var2,…),注意括号里的表达式要加引号。 如:Q=dblquad(inline(y*sin(x)),pi,2*pi,0,pi). 例1:求解微分方程,并加以验证。 求解本问题的Matlab程序: syms x y y=dsolve(Dy+2*x*y=x*exp(-x^2),x) simplify(diff(y,x)+2*x*y-x*exp(-x^2)) 说明: 行1是用命令定义x,y为符号变量。这里可以不写,但为确保正确性,建议写上; 行2是用命令求出的微分方程的解:1/2*exp(-x^2)*x^2+exp(-x^2)*C1 行3使用所求得的解。这里是将解代入原微分方程,结果应该为0,但这里给出:-x^3*exp(-x^2)-2*x*exp(-x^2)*C1+2*x*(1/2*exp(-x^2)*x^2+exp(-x^2)*C1) 行4用simplify()函数对上式进行化简,结果为0,表明y=y(x)的确是微分方程的解。 例2:求解微分方程在初始条件下的特解,并画出解函数的图形。 求解本问题的Matlab程序: syms x y y=dsolve(x*

您可能关注的文档

文档评论(0)

hhuiws1482 + 关注
实名认证
内容提供者

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

版权声明书
用户编号:5024214302000003

1亿VIP精品文档

相关文档