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

Raf*_*ael 3 python scipy numerical-methods differential-equations runge-kutta

我是一名有兴趣以数字方式解决ODE的物理学生.我通常使用Runge-Kutta方法在C中编写自己的求解器.

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

我查阅了这个文档,但它没有提供太多信息,我也不太了解他们描述的可选参数.

Wrz*_*mft 5

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

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

所有这些求解器都适应步长.这意味着他们估计积分误差,例如,通过比较两个简单积分器(智能交织以节省运行时)的结果.然后将该估计用于调整步长,使得所估计的误差低于由参数指定的用户定义的阈值rtolatol.这些参数允许您控制精度.