MATLAB微分代数方程解法MicrosoftWord文档.docVIP

MATLAB微分代数方程解法MicrosoftWord文档.doc

  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文档。上传文档
查看更多
MATLAB微分代数方程解法MicrosoftWord文档

微分代数方程 DAE 的Matlab解法 所谓微分代数方程,是指在微分方程中,某些变量满足某些代数方程的约束。假设微分方程的更一般形式可以写成 前面所介绍的ODEs数值解法主要针对能够转换为一阶常微分方程组的类型,故DAE就无法使用前面介绍的常微分方程解法直接求解,必须借助DAE的特殊解法。 其实对于我们使用Matlab求解DAE时,却没有太大的改变只需增加一个Mass参数即可。描述f t,x 的方法和普通微分方程完全一致。 注意:ode15i没法设置Mass属性,换句话说除了ode15i外其他ode计算器都可以求解DAEs问题 1.当M t,y 非奇异的时候,我们可以将微分方程等效的转换为y inv M *f t,y ,此时就是一个普通的ODE 当然我们可以将它当成DAEs处理 ,对任意一个给定的初值条件都有唯一的解 2.当m t,y 奇异时,我们叫它为DAEs 微分代数方程 ,DAEs问题只有在同时提供状态变量初值y0和状态变量一阶导数初值py0,且满足M t0,y0 *yp0 f t0,y0 时才有唯一解,假如不满足上面的方程,DAEs解算器会将提供的y0和py0作为猜测初始值,并重新计算与提供初值最近的封闭初值 3.质量矩阵可是一个常数矩阵 稀疏矩阵 ,也可以是一个自定义函数的输出。但是ode23s只能求解Mass是常数的DAEs 4.对于Mass奇异的DAEs问题,特别是设置MassSingular为yes时,只能ode15s和ode23t解算器 5.对于DAE我们还有几个参数需要介绍 a.Mass:质量矩阵,不说了,这个是DAE的关键,后面看例子就明白了 b.MStateDependence:质量矩阵M t,y 是否是y的函数,可以选择none| weak |strong,none表示M与y无关,weak和strong都表示与y相关 c.MvPattern:注意这个必须是稀疏矩阵,S i,j 1表示M t,y 的第i行中任意元素都与第j个状态变量yi有关,否则为0 d.MassSingular:设置Mass矩阵是否奇异,当设置为yes时,只能使用ode15s和ode23t e.InitialSlope:状态变量的一阶导数初值yp0,和y0具有相同的size,当使用ode15s和ode23t时,该属性默认为0 下面我们以实例说明,看下面的例子,求解该方程的数值解 【解】 真是万幸,选取状态变量和求状态变量的一阶导数等,微分方程转换工作,题目已经帮我们完成。 可是细心的网友会发现,最后一个方程不是微分方程而是一个代数方程 这就是为什叫DAE的原因 ,其实我们可以将它视为对三个状态变量的约束。 1 用矩阵形式表示出该DAEs 2 编写Matlab代码 odefun @ t,x [-0.2*x 1 +x 2 *x 3 +0.3*x 1 *x 2 ; 2*x 1 *x 2 -5*x 2 *x 3 -2*x 2 *x 2 ; x 1 +x 2 +x 3 -1];%微分方程组 M [1 0 0;0 1 0;0 0 0];%质量矩阵 options odeset mass,M ;%对以DAE问题,mass属性必须设置 x0 [0.8;0.1;0.1];%初值 [t,x] ode15s odefun,[0 20],x0,options ;%这里好像不能使用ode45 figure numbertitle,off,name,DAE demo—by Matlabsky plot t,x legend x1 t ,x2 t ,x3 t

文档评论(0)

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

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

1亿VIP精品文档

相关文档