声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

查看: 1911|回复: 5

[编程技巧] Matlab进程为什么算微分方程会经常死掉?

[复制链接]
发表于 2007-8-2 21:33 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?我要加入

x
就是用ODE45的时候,有时算的好好的,但稍微调整一个参数再算的时候就要很久,有时干脆就死了,这是什么原因啊?难道调参数会影响计算量?望大侠帮忙啊
回复
分享到:

使用道具 举报

发表于 2007-8-3 07:54 | 显示全部楼层
呵呵,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

查看全部评分

发表于 2007-8-3 08:39 | 显示全部楼层

回复 #1 laputasky 的帖子

确实有时候参数的影响,也会出现这种情况,除了考虑楼上的问题之外,最好检查一下你的参数

评分

1

查看全部评分

发表于 2007-8-3 09:20 | 显示全部楼层

回复 #3 无水1324 的帖子

无水说的对,参数对方程求解影响非常大,特别是非线性微分方程,你可以调一下(基本上以减小为主)你的激励,或者别的参数!
发表于 2007-8-3 09:55 | 显示全部楼层
不光是会导致死机,有时候还会显示跳出内存,^_^,然后matlab自动关闭
这个参数有很大关系,微分方程尤其是非线性微分方程对于参数的依赖性还是很大的
发表于 2007-8-3 10:13 | 显示全部楼层

回复 #5 咕噜噜 的帖子

自动跳出我还没有遇到,只是会出现算很多天没有结果,呵呵:@L
您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

QQ|小黑屋|Archiver|手机版|联系我们|声振论坛

GMT+8, 2024-11-18 20:49 , Processed in 0.069153 second(s), 19 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表