scipy.integrate.ode.integrate() 可选的“step”和“relax”参数有什么作用?
What do scipy.integrate.ode.integrate() optional `step` and `relax` arguments do?
我很清楚如何以最简单的形式使用 scipy.integrate.ode.integrate(t)
函数,但是 API 读取它还需要两个可选参数,即 step
和 relax
。当前documentation has no information about these arguments, nor are they used in the example。我想知道,它们有什么作用以及它们在哪些情况下有用?
step
和 relax
参数的存在是为了让用户 运行 只是积分算法的一部分,而不是完整的积分。它们对于测试算法的内部结构很有用,但对普通用户不是特别有用。
两个参数都被视为布尔标志以选择不同类型的部分积分。如果 step
为真(非零),则 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 中打开了一个 Pull Request 来澄清这些文档:https://github.com/scipy/scipy/pull/7320/
我很清楚如何以最简单的形式使用 scipy.integrate.ode.integrate(t)
函数,但是 API 读取它还需要两个可选参数,即 step
和 relax
。当前documentation has no information about these arguments, nor are they used in the example。我想知道,它们有什么作用以及它们在哪些情况下有用?
step
和 relax
参数的存在是为了让用户 运行 只是积分算法的一部分,而不是完整的积分。它们对于测试算法的内部结构很有用,但对普通用户不是特别有用。
两个参数都被视为布尔标志以选择不同类型的部分积分。如果 step
为真(非零),则 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 中打开了一个 Pull Request 来澄清这些文档:https://github.com/scipy/scipy/pull/7320/