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

2024-07-07 07:04:49 发布

您现在位置:Python中文网/ 问答频道 /正文

我是一名物理系的学生,对用数值求解常微分方程很感兴趣。我通常使用Runge-Kutta方法用C编写自己的求解器。在

我最近学习了Python,并使用SciPy的odeint函数来求解ode。但我担心函数算法的工作原理,因为它不采用步长参数。那么,我怎样才能知道它是如何工作的呢?我怎么知道他们的结果精确到什么程度?在

我咨询了this documentation, 但是它没有提供太多的信息,我也不太理解他们所描述的可选论点。在


Tags: 方法函数算法参数scipy学生数值原理
1条回答
网友
1楼 · 发布于 2024-07-07 07:04:49

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

  • ^{},它使用LSODA算法。在
  • ^{},它支持四个不同的后端(LSODA、DoPri5、DoP853和VODE)。在
  • ^{},支持五个后端(LSODA、DoPri5、Bogacki-Shampine、Radau和一个反向微分方法)。在

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

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

相关问题 更多 >