scypy python 模块中的 odeint() 如何工作?

How does odeint() from scypy python module work?

我是一名物理专业的学生,​​对以数值方式求解 ODE 很感兴趣。我通常使用 Runge–Kutta 方法在 C 中编写自己的求解器。

最近学了Python,用SciPy的odeint函数求解ODE。但我担心函数算法是如何工作的,因为它不采用步长参数。那么,我怎样才能了解它是如何工作的呢?我怎么知道他们结果的精度是多少?

我咨询过this documentation, 但它并没有提供太多信息,我也不太理解他们描述的可选参数。

SciPy 具有三个用于集成 ODE 的模块:

请注意,在询问第一个模块时,您使用了第二个模块的文档。

All 这些求解器调整步长。 这意味着他们估计积分误差,例如,通过比较两个简单积分器的结果(它们智能地交织在一起以节省运行时间)。 然后使用此估计来调整步长,使估计误差低于由参数 rtolatol 指定的用户定义阈值。 这些参数允许您控制精度。