呵呵,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 编辑 ] |