我很清楚如何以最简单的形式使用scipy.integrate.ode.integrate(t)
函数,但API读取它还需要两个可选参数,即step
和relax
。当前documentation没有关于这些参数的信息,也没有在example中使用它们。我想知道,他们做了什么以及他们有用的情况是什么?
答案 0 :(得分:6)
存在step
和relax
参数,以允许用户仅运行部分集成算法而不是完全集成。它们对于测试算法的内部结构非常有用,但对普通用户来说并不是特别有用。
两个参数都被视为布尔标志,以选择不同类型的部分集成。如果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/