类 StepsizeHelper
java.lang.Object
org.hipparchus.ode.nonstiff.StepsizeHelper
自适应步长控制的辅助类。
- 从以下版本开始:
- 2.0
-
构造器概要
构造器说明StepsizeHelper
(double minStep, double maxStep, double[] vecAbsoluteTolerance, double[] vecRelativeTolerance) 简单构造函数。StepsizeHelper
(double minStep, double maxStep, double scalAbsoluteTolerance, double scalRelativeTolerance) 简单构造函数。 -
方法概要
修饰符和类型方法说明double
filterStep
(double h, boolean forward, boolean acceptSmall) 过滤积分步长。<T extends CalculusFieldElement<T>>
TfilterStep
(T h, boolean forward, boolean acceptSmall) 过滤积分步长。double
获取虚拟步长。double
获取初始步长。int
获取主要集合维度。double
获取最大步长。double
获取最小步长。double
getRelativeTolerance
(int i) 获取一个分量的相对容差。double
getTolerance
(int i, double scale) 获取一个分量的容差。<T extends CalculusFieldElement<T>>
TgetTolerance
(int i, T scale) 获取一个分量的容差。void
setInitialStepSize
(double initialStepSize) 设置初始步长。protected void
setMainSetDimension
(int mainSetDimension) 设置主要集合维度。
-
构造器详细资料
-
StepsizeHelper
public StepsizeHelper(double minStep, double maxStep, double scalAbsoluteTolerance, double scalRelativeTolerance) 简单构造函数。- 参数:
-
minStep
- 最小步长(符号无关,无论是正向还是反向积分,最后一步可以小于此值) -
maxStep
- 最大步长(符号无关,无论是正向还是反向积分,最后一步可以小于此值) -
scalAbsoluteTolerance
- 允许的绝对误差 -
scalRelativeTolerance
- 允许的相对误差
-
StepsizeHelper
public StepsizeHelper(double minStep, double maxStep, double[] vecAbsoluteTolerance, double[] vecRelativeTolerance) 简单构造函数。- 参数:
-
minStep
- 最小步长(符号无关,无论是正向还是反向积分,最后一步可以小于此值) -
maxStep
- 最大步长(符号无关,无论是正向还是反向积分,最后一步可以小于此值) -
vecAbsoluteTolerance
- 允许的绝对误差 -
vecRelativeTolerance
- 允许的相对误差
-
-
方法详细资料
-
setMainSetDimension
设置主要集合维度。- 参数:
-
mainSetDimension
- 主要集合的维度 - 抛出:
-
MathIllegalArgumentException
- 如果自适应步长积分器的容差数组维度与方程设置不兼容
-
getMainSetDimension
public int getMainSetDimension()获取主要集合维度。- 返回:
- 主要集合维度
-
getRelativeTolerance
public double getRelativeTolerance(int i) 获取一个分量的相对容差。- 参数:
-
i
- 选择的分量 - 返回:
- 选择分量的相对容差
-
getTolerance
public double getTolerance(int i, double scale) 获取一个分量的容差。- 参数:
-
i
- 选择的分量 -
scale
- 相对容差的比例因子(即 y[i]) - 返回:
- 选择分量的容差
-
getTolerance
获取一个分量的容差。- 类型参数:
-
T
- 字段元素的类型 - 参数:
-
i
- 选择的分量 -
scale
- 相对容差的比例因子(即 y[i]) - 返回:
- 选择分量的容差
-
filterStep
public double filterStep(double h, boolean forward, boolean acceptSmall) throws MathIllegalArgumentException 过滤积分步长。- 参数:
-
h
- 有符号步长 -
forward
- 正向积分指示器 -
acceptSmall
- 如果为true,则小于最小值的步长会被静默增加到该值,如果为false,这样的小步长会生成异常 - 返回:
- 有界的积分步长(如果未达到边界,则为h,否则为有界值)
- 抛出:
-
MathIllegalArgumentException
- 如果步长太小且acceptSmall为false
-
filterStep
public <T extends CalculusFieldElement<T>> T filterStep(T h, boolean forward, boolean acceptSmall) throws MathIllegalArgumentException 过滤积分步长。- 类型参数:
-
T
- 字段元素的类型 - 参数:
-
h
- 有符号步长 -
forward
- 正向积分指示器 -
acceptSmall
- 如果为true,则小于最小值的步长会被静默增加到该值,如果为false,这样的小步长会生成异常 - 返回:
- 有界的积分步长(如果未达到边界,则为h,否则为有界值)
- 抛出:
-
MathIllegalArgumentException
- 如果步长太小且acceptSmall为false
-
setInitialStepSize
public void setInitialStepSize(double initialStepSize) 设置初始步长。此方法允许用户指定一个初始正步长,而不是让积分器自行猜测。如果在开始积分之前未调用此方法,则积分器将通过自身估算初始步长。
- 参数:
-
initialStepSize
- 要使用的初始步长(必须为正值,即使是反向积分;提供负值或超出最小/最大步长区间的值将导致积分器忽略该值,并由自身计算初始步长)
-
getInitialStep
public double getInitialStep()获取初始步长。- 返回:
- 初始步长
-
getMinStep
public double getMinStep()获取最小步长。- 返回:
- 最小步长
-
getMaxStep
public double getMaxStep()获取最大步长。- 返回:
- 最大步长
-
getDummyStepsize
public double getDummyStepsize()获取虚拟步长。- 返回:
-
getMinStep()
和getMaxStep()
的几何平均值
-