scipy.integrate.DOP853

class scipy.integrate.DOP853(fun, t0, y0, t_bound, max_step=inf, rtol=0.001, atol=1e-06, vectorized=False, first_step=None, **extraneous)[源代码]

8阶显式Runge-Kutta方法。

这是最初用Fortran编写的“DOP853”算法的Python实现 [1], [2]. 请注意,这不是文字翻译,但算法核心和系数是相同的。

可应用于复杂领域。

参数
fun可调用

系统的右侧。调用签名为 fun(t, y) 。这里, t 是标量,ndarray有两个选项 y :它可以是形状(n,);然后 fun 必须返回形状为(n,)的ARRAY_LIKE。或者,它可以具有形状(n,k);然后 fun 必须返回形状为(n,k)的array_like,即每列对应于 y 。在这两个选项之间的选择由以下因素决定 vectorized 参数(见下文)。

t0浮动

初始时间。

y0类似数组,形状(n,)

初始状态。

t_bound浮动

边界时间-积分将不会超过它。它还决定了整合的方向。

first_step浮动或无,可选

初始步长。默认值为 None 这意味着算法应该选择。

max_step浮动,可选

允许的最大步长。默认值为np.inf,即步长不受限制,仅由解算器确定。

RTOL,ATOLFLOAT和ARRAY_LIKE,可选

相对公差和绝对公差。求解器使局部误差估计值小于 atol + rtol * abs(y) 。这里 rtol 控制相对精度(正确的位数)。但是如果一个组件 y 大约低于 atol ,误差只需要落在相同的 atol 阈值,并且不保证正确的位数。如果y的分量具有不同的刻度,则设置不同的刻度可能是有益的 atol 通过为传递具有形状(n,)的array_like来获取不同组件的值 atol 。的默认值为1e-3 rtol 1e-6用于 atol

vectorized布尔值,可选

是否 fun 是以矢量化的方式实现的。默认值为False。

参考文献

1

海尔,S.P.Norsett G.Wanner,“解常微分方程I:非刚性问题”,美国科学出版社。二、二、

2

Page with original Fortran code of DOP853 _.

属性
n集成

方程式的数量。

status字符串

求解器的当前状态:“正在运行”、“已完成”或“失败”。

t_bound浮动

边界时间。

direction浮动

集成方向:+1或-1。

t浮动

当前时间。

yndarray

当前状态。

t_old浮动

上一次。如果还没有采取任何步骤,就不会有任何进展。

step_size浮动

上次成功步骤的大小。如果还没有采取任何步骤,就不会有任何进展。

nfev集成

系统右侧的数字求值。

njev集成

雅可比的求值次数。此求解器的值始终为0,因为它不使用雅可比。

nlu集成

逻辑单元分解数。此解算器的值始终为0。

方法:

dense_output \()

计算上一成功步骤中的局部插值。

step \()

执行一个集成步骤。