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