matlab常微分方程和常微分方程组的求解.docVIP

matlab常微分方程和常微分方程组的求解.doc

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

常微分方程和常微分方程组的求解 ? 一、实验目的: 熟悉Matlab软件中关于求解常微分方程和常微分方程组的各种命令,掌握利用Matlab软件进行常微分方程和常微分方程组的求解。 ? 二、相关知识 在MATLAB中,由函数dsolve()解决常微分方程(组)的求解问题,其具体格式如下: X=dsolve(‘eqn1’,’eqn2’,…) 函数dsolve用来解符号常微分方程、方程组,如果没有初始条件,则求出通解,如果有初始条件,则求出特解。 例1:求解常微分方程的MATLAB程序为:dsolve(Dy=1/(x+y),x),注意,系统缺省的自变量为t,因此这里要把自变量写明。 结果为:-lambertw(-C1*exp(-x-1))-x-1 其中:Y=lambertw(X)表示函数关系Y*exp(Y)=X。 例2:求解常微分方程的MATLAB程序为:Y2=dsolve(y*D2y-Dy^2=0’,’x’) 结果为: Y2 =[ exp((x+C2)/C1)] [ C2] 我们看到有两个解,其中一个是常数。 例3:求常微分方程组通解的MATLAB程序为: [X,Y]=dsolve(Dx+5*x+y=exp(t),Dy-x-3*y=exp(2*t),t) 例4:求常微分方程组通解的MATLAB程序为: [X,Y]=dsolve(Dx+2*x-Dy=10*cos(t),Dx+Dy+2*y=4*exp(-2*t),x(0)=2,y(0)=0) 以上这些都是常微分方程的精确解法,也称为常微分方程的符号解。但是,我们知道,有大量的常微分方程虽然从理论上讲,其解是存在的,但我们却无法求出其解析解,此时,我们需要寻求方程的数值解,在求常微分方程数值解方面,MATLAB具有丰富的函数,我们将其统称为solver,其一般格式为: [T,Y]=solver(odefun,tspan,y0) 该函数表示在区间tspan=[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短 odefun为显式常微分方程中的 tspan为求解区间,要获得问题在其他指定点上的解,则令(要求单调), y0初始条件。 例5:求解常微分方程,,的MATLAB程序如下:fun=inline(-2*y+2*x*x+2*x);[x,y]=ode23(fun,[0,0.5],1) 结果为: x = 0,0.0400,0.0900,0.1400,0.1900,0.2400,0.2900,0.3400,0.3900,0.4400,0.4900,0.5000 y = 1.0000,0.9247,0.8434,0.7754,0.7199,0.6764,0.6440,0.6222,0.6105,0.6084,0.6154,0.6179 例6:求解常微分方程的解,并画出解的图形。 分析:这是一个二阶非线性方程,用现成的方法均不能求解,但我们可以通过下面的变换,将二阶方程化为一阶方程组,即可求解。 令:,,,则得到: 接着,编写vdp.m如下: function fy=vdp(t,x) fy=[x(2);7*(1-x(1)^2)*x(2)-x(1)]; 再编写m文件sy12_6.m如下: y0=[1;0] [t,x]=ode45(@vdp,[0,40],y0); y=x(:,1);dy=x(:,2); plot(t,y,t,dy) ? ? 三、实验内容 1.利用MATLAB求常微分方程的初值问题,的解。 2.利用MATLAB求常微分方程的初值问题,,的解。 3.利用MATLAB求常微分方程的解。 4.利用MATLAB求常微分方程组的特解。 5.求解常微分方程,,,的特解,并做出解函数的曲线图。 6.完成实验报告。

文档评论(0)

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

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

1亿VIP精品文档

相关文档