【问题标题】:SciPy: status of solve_ivp during integrationSciPy:集成期间solve_ivp的状态
【发布时间】:2021-01-19 11:26:23
【问题描述】:

我正在使用scipy.integrate.solve_ivp 在 Python 中运行长时间的 ODE 集成。是否可以在运行时访问集成状态或检查例程处于哪个集成步骤?我的集成花费的时间比预期的要长,我想知道集成商是否卡在某个步骤,或者各个步骤是否需要很长时间。

对于未来的任务;如果我将与 solve_ivp 的集成拆分为子间隔以打印其间的状态消息,这是否会影响某些求解器的步长自适应性?

感谢您的任何反馈!

【问题讨论】:

    标签: python scipy


    【解决方案1】:

    有一个 GitHub 拉取请求来向 solve_ivp 添加详细选项,但这还没有完成。您可以通过修改 scipy 的 solve_ivp 函数(应该很容易)自己实现它,或者只需将求解器给出的时间 t 打印到您的 ODE 函数。我就是做这个的。如果您的系统不是太小,那么您不会因为打印而浪费太多时间。

    按照您建议的方式拆分集成是可行的,但是如果您每隔几个时间步拆分一次,您将失去时间,因为求解器会重新启动每个图块。这种影响与隐式算法有关,因为它们在每次开始时都会重新计算系统的雅可比行列式。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-11-06
      • 1970-01-01
      • 2019-09-16
      • 1970-01-01
      • 2020-10-24
      • 2018-06-23
      • 2021-11-18
      • 1970-01-01
      相关资源
      最近更新 更多