【发布时间】:2019-03-14 13:35:50
【问题描述】:
我有以下问题:
我必须使用 ode-solver 来求解化学反应方程式。速率常数是时间的函数,可以突然变化(放电脉冲)。
解决这个问题的一种方法是保持步长非常小hmax < dt。这导致高补偿。 afort -> 耗时。我的问题是:有没有一种有效的方法来完成这项工作?我想def hmax(puls_ON) 与plus_ON=True 在脉冲内和plus_ON=False 之间。然而,由于 dt 随时间增加,它甚至可能无法识别脉冲,因为时间间隔在增加 hmax=hmax(t)。
时间网格将是我认为的最佳选择,但我认为 odeint 不可能做到这一点?
或者是否有可能以某种方式强制求解器在特定时间点进行积分(例如 t0 ->(hmax=False)->tpuls_1_start->(hmax=dt)->tpuls_1_end->(hmax=False) ->puls_2_start.....)?
谢谢
【问题讨论】:
标签: scipy integrate odeint timestep