研发埠

标题: 微分方程组求解出了复数,请大家看看什么原因? [打印本页]

作者: 袁郎郎    时间: 2013-5-23 11:13
标题: 微分方程组求解出了复数,请大家看看什么原因?
我用matlab中的 ode45函数option=odeset('RelTol',1e-6,'OutputFcn','odeplot','Mass',@mass_a);[t,yt]=ode45(@adifc,tspan,y,option);求解有关于运动的一个微分方程组 运动方程为My''+Cy'+Ky=F其中y实际上是一个6x1的向量,权重M即为mass_a已经求出,可是计算过程中报错了,我调试了很久 一个时间步一个时间步来调,前几个时间步可以计算,某时间步之后,求解的y就出现了复数了,实际是不应该出现的。不会是函数的调用过程出错的,因为都运行了很多步了。上网了解了下关于ode45的适用范围,对什么是刚性问题之类的不是特别了解,就换了ode23 ode23s,均告失败。还望高手能解释一下,ode45为何会求解出复数,在ode45求解失败的情况下,可以用什么替代方法?和初始条件有关系吗?




欢迎光临 研发埠 (http://bbs.yanfabu.com/) Powered by Discuz! X3.2