首页 > 解决方案 > 有没有办法强制 ODEINT 在 Python 中使用特定算法?

问题描述

据我所见,odeint 似乎会自动决定要使用哪种算法。但是,我使用的数学在收敛方面非常挑剔,我想更好地控制使用哪种算法。我尝试过使用 ode(特别是 vode),但由于所有移动部件,我很难调试它。我真的对分解我正在使用的 ode 求解器的所有细节不感兴趣:我只想能够告诉 odeint 使用一种特定的算法并收工。这可能吗,还是我需要调试 ode?

标签: pythonpython-3.xodeodeint

解决方案


使用的 LSODA 方法odeint自动在 Adam 方法(非刚性)和 BDF(刚性)之间切换,据我所知,它不允许改变这种行为。

如果您正在寻找具有类似界面但可以明确选择集成方法的求解器,请查看 scipy 的solve_ivp. 它有一个可选参数method,允许您选择一种集成方法。确保不要选择'LSODA',否则您将再次遇到同样的问题。


推荐阅读