scipy.integrate.odeint和scipy.integrate.ode有什么区别?
我看过这些文档,里面提到 odeint
是“基于 ODEPACK 的 lsoda 的一个更简单的接口的积分器”。
那么,实际的区别是什么呢?在什么情况下使用其中一个会更合适呢?
2 个回答
0
我也在想同样的问题,后来发现scipy.integrate里还有另一个API可用。这个方法在文档里解释得很清楚。
这可能会吸引那些在比较odeint(复杂数用odeintw)和ode(复杂数用complex_ode)的人。
这个方法叫做scipy.integrate.solve_ivp,从scipy v1.0.0开始就可以用了:https://scipy.github.io/devdocs/generated/scipy.integrate.solve_ivp.html#scipy.integrate.solve_ivp。在这个求解器中,LSODA不能处理复杂数,但在我的情况下,BDF的速度更快。
14
如果你能用 odeint
来解决你的问题,我建议你使用它。这个函数就是用来通过 lsoda 方法来进行微分方程的积分。
如果你需要更多的选择,ode
是一个包含许多方法和求解器的类: