什么scipy.integrate.ode.integrate()可选`step`和`relax`参数呢?

时间:2017-04-19 16:13:26

标签: python numpy scipy ode numerical-integration

我很清楚如何以最简单的形式使用scipy.integrate.ode.integrate(t)函数,但API读取它还需要两个可选参数,即steprelax。当前documentation没有关于这些参数的信息,也没有在example中使用它们。我想知道,他们做了什么以及他们有用的情况是什么?

1 个答案:

答案 0 :(得分:6)

存在steprelax参数,以允许用户仅运行部分集成算法而不是完全集成。它们对于测试算法的内部结构非常有用,但对普通用户来说并不是特别有用。

两个参数都被视为布尔标志,以选择不同类型的部分集成。如果step为True(非零),则integrate()运行积分器的step()方法,其文档字符串显示"""Make one integration step and return (y1,t1)."""基本上它只在正常的集成过程中运行一步

如果relax为True(非零),那么integrate()会运行积分器的run_relax()方法,其文档字符串显示"""Integrate from t=t0 to t>=t1 and return (y1,t)."""基本上,它会运行整合,直到通过期望的值,但没有额外的后退步骤到指定的值。

这一切都可以在IntegratorBase source code中找到。

编辑:我在SciPy中打开了拉取请求以澄清这些文档:https://github.com/scipy/scipy/pull/7320/