类 AbstractIntegrator
java.lang.Object
org.hipparchus.ode.AbstractIntegrator
- 所有已实现的接口:
-
ODEIntegrator
管理所有积分器的通用样板基类。
-
构造器概要
构造器 -
方法概要
修饰符和类型方法说明protected ODEStateAndDerivativeacceptStep(AbstractODEStateInterpolator interpolator, double tEnd) 接受一个步骤,触发事件和步骤处理程序。voidaddEventDetector(ODEEventDetector detector) 将事件检测器添加到积分器中。voidaddStepEndHandler(ODEStepEndHandler handler) 将步骤结束处理程序添加到积分器中。voidaddStepHandler(ODEStepHandler handler) 将步骤处理程序添加到此积分器中。void删除已添加到积分器中的所有事件处理程序。void删除已添加到积分器中的所有步骤结束处理程序。void删除已添加到积分器中的所有步骤处理程序。double[]computeDerivatives(double t, double[] y) 计算导数并检查评估次数。double获取当前积分步长的有符号值。protected ExpandableODE获取要积分的微分方程。int获取微分方程函数的评估次数。protected Incrementor获取评估计数器。获取已添加到积分器中的所有事件检测器。int获取函数评估的最大次数。getName()获取方法的名称。获取已添加到积分器中的所有步骤结束处理程序。获取已添加到积分器中的所有步骤处理程序。protected double获取当前步长。获取时间 ti 处的状态。protected ODEStateAndDerivativeinitIntegration(ExpandableODE eqn, ODEState s0, double t) 准备积分的开始。protected boolean检查此步骤是否为最后一个。protected boolean检查上次接受步骤时是否发生了重置。protected voidsanityChecks(ODEState initialState, double t) 检查积分跨度。protected voidsetIsLastStep(boolean isLastStep) 设置上次状态标志。voidsetMaxEvaluations(int maxEvaluations) 设置微分方程函数评估的最大次数。protected voidsetStateInitialized(boolean stateInitialized) 设置stateInitialized标志。protected voidsetStepSize(double stepSize) 设置当前步长。protected voidsetStepStart(ODEStateAndDerivative stepStart) 设置当前步骤开始。从类继承的方法 java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait从接口继承的方法 org.hipparchus.ode.ODEIntegrator
integrate, integrate
-
构造器详细资料
-
AbstractIntegrator
构建一个实例。- 参数:
-
name- 方法的名称
-
-
方法详细资料
-
getName
获取方法的名称。- 指定者:
-
getName在接口中ODEIntegrator - 返回:
- 方法的名称
-
addStepHandler
将步骤处理程序添加到此积分器中。积分器将为每个接受的步骤调用处理程序。
- 指定者:
-
addStepHandler在接口中ODEIntegrator - 参数:
-
handler- 接受步骤的处理程序 - 另请参阅:
-
getStepHandlers
获取已添加到积分器中的所有步骤处理程序。- 指定者:
-
getStepHandlers在接口中ODEIntegrator - 返回:
- 已添加事件处理程序的不可修改集合
- 另请参阅:
-
clearStepHandlers
public void clearStepHandlers()删除已添加到积分器中的所有步骤处理程序。- 指定者:
-
clearStepHandlers在接口中ODEIntegrator - 另请参阅:
-
addEventDetector
将事件检测器添加到积分器中。- 指定者:
-
addEventDetector在接口中ODEIntegrator - 参数:
-
detector- 事件检测器 - 另请参阅:
-
getEventDetectors
获取已添加到积分器中的所有事件检测器。- 指定者:
-
getEventDetectors在接口中ODEIntegrator - 返回:
- 已添加事件检测器的不可修改列表
- 另请参阅:
-
clearEventDetectors
public void clearEventDetectors()删除已添加到积分器中的所有事件处理程序。- 指定者:
-
clearEventDetectors在接口中ODEIntegrator - 另请参阅:
-
addStepEndHandler
将步骤结束处理程序添加到积分器中。处理程序的
handler方法将在每个步骤结束时调用。- 指定者:
-
addStepEndHandler在接口中ODEIntegrator - 参数:
-
handler- 步骤结束处理程序 - 另请参阅:
-
getStepEndHandlers
获取已添加到积分器中的所有步骤结束处理程序。- 指定者:
-
getStepEndHandlers在接口中ODEIntegrator - 返回:
- 已添加步骤结束处理程序的不可修改列表
- 另请参阅:
-
clearStepEndHandlers
public void clearStepEndHandlers()移除已添加到积分器的步结束处理程序。- 指定者:
-
clearStepEndHandlers在接口中ODEIntegrator - 另请参阅:
-
getCurrentSignedStepsize
public double getCurrentSignedStepsize()获取当前积分步长的有符号值。在积分过程中(通常由实现
微分方程问题的对象)可以调用此方法,如果需要尝试的当前步长的有符号值。如果在调用
integrate之外调用该方法,则结果是未定义的。- 指定者:
-
getCurrentSignedStepsize在接口中ODEIntegrator - 返回:
- 当前步长的有符号值
-
setMaxEvaluations
public void setMaxEvaluations(int maxEvaluations) 设置最大的微分方程函数评估次数。此方法的目的是避免无限循环,例如当设置严格的误差约束或触发许多离散事件时可能发生,从而导致许多被拒绝的步骤。
- 指定者:
-
setMaxEvaluations在接口中ODEIntegrator - 参数:
-
maxEvaluations- 微分方程函数评估的最大次数(负值会被静默转换为最大整数值,因此表示几乎无限的评估次数)
-
getMaxEvaluations
public int getMaxEvaluations()获取函数评估的最大次数。- 指定者:
-
getMaxEvaluations在接口中ODEIntegrator - 返回:
- 函数评估的最大次数
-
getEvaluations
public int getEvaluations()获取微分方程函数的评估次数。评估次数对应于对
integrate方法的最后一次调用。如果尚未调用该方法,则为0。- 指定者:
-
getEvaluations在接口中ODEIntegrator - 返回:
- 微分方程函数的评估次数
-
initIntegration
准备开始积分。- 参数:
-
eqn- 要积分的方程 -
s0- 初始状态向量 -
t- 积分的目标时间 - 返回:
- 计算导数后的初始状态。
-
getEquations
获取要积分的微分方程。- 返回:
- 要积分的微分方程
-
getEvaluationsCounter
获取评估计数器。- 返回:
- 评估计数器
-
computeDerivatives
public double[] computeDerivatives(double t, double[] y) throws MathIllegalArgumentException, MathIllegalStateException, NullPointerException 计算导数并检查评估次数。- 参数:
-
t- 独立时间变量的当前值 -
y- 包含状态向量当前值的数组 - 返回:
- 包含导数的状态
- 抛出:
-
MathIllegalArgumentException- 如果数组维度与方程设置不匹配 -
MathIllegalStateException- 如果超过函数评估次数 -
NullPointerException- 如果未设置ODE方程(即在调用integrate之外调用此方法
-
setStateInitialized
protected void setStateInitialized(boolean stateInitialized) 设置stateInitialized标志。在开始积分之前,积分器必须调用此方法,将值设置为
false,以便在第一步上自动进行适当的延迟初始化。- 参数:
-
stateInitialized- 标志的新值
-
acceptStep
protected ODEStateAndDerivative acceptStep(AbstractODEStateInterpolator interpolator, double tEnd) throws MathIllegalArgumentException, MathIllegalStateException 接受一步,触发事件和步处理程序。- 参数:
-
interpolator- 步插值器 -
tEnd- 最终积分时间 - 返回:
- 步结束时的状态
- 抛出:
-
MathIllegalStateException- 如果插值器因函数评估次数过多而抛出异常 -
MathIllegalArgumentException- 如果无法找到事件的位置 -
MathIllegalArgumentException- 如果数组维度与方程设置不匹配
-
sanityChecks
检查积分跨度。- 参数:
-
initialState- 初始状态 -
t- 积分的目标时间 - 抛出:
-
MathIllegalArgumentException- 如果积分跨度太小 -
MathIllegalArgumentException- 如果自适应步长积分器的容差数组维度与方程设置不兼容
-
resetOccurred
protected boolean resetOccurred()检查上次接受步骤时是否发生重置。- 返回:
- 如果上次接受步骤时发生重置,则为true
-
setStepSize
protected void setStepSize(double stepSize) 设置当前步长。- 参数:
-
stepSize- 要设置的步长
-
getStepSize
protected double getStepSize()获取当前步长。- 返回:
- 当前步长
-
setStepStart
设置当前步骤的开始。- 参数:
-
stepStart- 步骤开始
-
getStepStart
获取时间ti处的步骤开始状态。在积分过程中(通常由实现
微分方程问题的对象)可以调用此方法,如果需要尝试的当前步骤的值。如果在调用
integrate之外调用该方法,则结果是未定义的。- 指定者:
-
getStepStart在接口中ODEIntegrator - 返回:
- 时间ti处的状态
-
setIsLastStep
protected void setIsLastStep(boolean isLastStep) 设置最后状态标志。- 参数:
-
isLastStep- 如果为true,则此步骤是最后一个
-
isLastStep
protected boolean isLastStep()检查此步骤是否为最后一个。- 返回:
- 如果此步骤是最后一个,则为true
-