Python中过于僵硬的ODE

时间:2017-04-12 08:21:31

标签: python matlab ode

我正在开发一种过于僵硬的Michaelis-Menten型系统(已经在Matlab中实现并发布,可以使用ode15s轻松解决)。我将其翻译为Python,但没有解决方案可以继续在集成中的第2步之后。 我试过了:

#time
t_start = -10
t_end = 12
t_step = 0.01

# Number of time steps: 1 extra for initial condition
num_steps = np.floor((t_end - t_start)/t_step) + 1
[...]
#integration

r = integrate.ode(JahanModel_ODE).set_integrator('lsoda', atol=1e-8,rtol=1e-6)

以及积分器:

 r = integrate.ode(JahanModel_ODE).set_integrator('vode',method='bdf', order=5)

具有不同的公差。

我得到的只是

  

UserWarning:lsoda:此次调用已完成的工作(可能是错误的Dfun   类型)。 '意外的istate =%s'%istate))

  

UserWarning:vode:此次调用已完成的工作量过多。 (也许是错误的MF。)   '意外的istate =%s'%istate))

我也为t_step尝试了不同的值。

这里似乎有一个令人满意的答案:Integrate stiff ODEs with Python,但链接不再起作用了,谷歌搜索表明lsoda已经优于LSODE。

编辑:这是完整的代码,没有绘图实例。 Gistlink

0 个答案:

没有答案