我是Matlab的新手,正在尝试求解常数n的微分方程y'=-y / n。我在这样的脚本中定义函数:
function dv = lc(v1)
dv = -v1/(0.0000047*0.000001);
然后尝试解决此问题:
[t,v] = ode23('lc',[0 5],1)
但是该操作永远不会完成执行。它只是吞噬了我的RAM,在角落里说“忙”,直到我按ctrl + c终止它为止。我在这里做错了什么?
您是下溢的受害者。发生的情况是没有无限数量的浮点数(请参阅浮点数学是否已损坏?),因此结果并不完全精确。当数字足够小时,计算机就有可能将其视为数字0
。matlab用于的ode23
过程基于有限差分,其中涉及除法。考虑到下溢错误,可能是按0
问题进行除法,或者可能是溢流,且除数非常小,结果趋于无穷大,无法满足求解条件。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句