Matlab进程为什么算微分方程会经常死掉?
就是用ODE45的时候,有时算的好好的,但稍微调整一个参数再算的时候就要很久,有时干脆就死了,这是什么原因啊?难道调参数会影响计算量?望大侠帮忙啊 呵呵,ode45算法鲁棒性不好。确实容易卡死,特别是做simulink仿真的时候更明显。所以一般都如果oed45解决不了就用ode23tb(误差会大点,如果这个也解不出,似乎oed组的解法程序都无能为力了),具体也说不多清,自己多看看下边算法的介绍---------------------------------------摘自<精通matlab7>p306------------------------------------------------------
ode23:显示单步Runge-Kutta(一下简称RK)低阶(2阶到3解)解法程序.适合于具有一定难度的问题,对精度要求不高的问题.或者f(x,y)不平滑(比如,非连续)的问题
iode23s:隐含的单步修正Rosenbrock二阶解法程序.适合于对精度要求不高的高难度问题,或者f(t,y)不连续的问题.
oed23t:使用自由插值的隐含单步梯形规则.适合于稍有难度的问题.可以用来求解微分代数方程(DAE)
ode23tb:附带了二阶后向微分算法的隐含梯形规则.与oed23s类似,对误差要求不高的场合,要比oed15s的效率高
ode45:显示的单步RK中阶(4阶或者5阶)解法程序.适合与精度要求有一定要求的非难度问题.当用户用户求解一个新问题时,通常首选这个算法.
ode113:不同阶次(从1阶到13阶)的多步Adams-Bashforth-Moulton PECE解法程序.适合于对精度有一定要求或者较高要求,且f(t,y)计算时开销很大的非难度问题.不适合于f(t,y)不平滑的问题
ode15s:不同阶次(1阶到5阶)的隐含多步数值微分解法程序.适用于对精度要求适中的高难度问题.通常当ode45失效或者效率太低时,用户就选择该解法程序求解.
ode15i:一个用于求解完全隐式微分方程的不同阶次(1阶到5阶)的解法程序.
--------------------------------------------------------------------------------------------------------------------------------
总算全敲上去了,又学习了一遍.建议根据自己的问题选择一个合适的算法,再行求解
[ 本帖最后由 花如月 于 2007-8-3 07:56 编辑 ]
回复 #1 laputasky 的帖子
确实有时候参数的影响,也会出现这种情况,除了考虑楼上的问题之外,最好检查一下你的参数回复 #3 无水1324 的帖子
无水说的对,参数对方程求解影响非常大,特别是非线性微分方程,你可以调一下(基本上以减小为主)你的激励,或者别的参数! 不光是会导致死机,有时候还会显示跳出内存,^_^,然后matlab自动关闭这个参数有很大关系,微分方程尤其是非线性微分方程对于参数的依赖性还是很大的
回复 #5 咕噜噜 的帖子
自动跳出我还没有遇到,只是会出现算很多天没有结果,呵呵:@L
页:
[1]