类 AbstractODEStateInterpolator
java.lang.Object
org.hipparchus.ode.sampling.AbstractODEStateInterpolator
- 所有已实现的接口:
-
Serializable,ODEStateInterpolator
- 直接已知子类:
-
DummyStepInterpolator
这个抽象类表示ODE积分过程中最后一步的插值器。
各种ODE积分器为步处理器提供扩展此类的对象。处理器可以使用这些对象在前一个和当前网格点之间的中间时间检索状态向量(密集输出)。
- 另请参阅:
-
构造器概要
构造器限定符构造器说明protectedAbstractODEStateInterpolator(boolean isForward, ODEStateAndDerivative globalPreviousState, ODEStateAndDerivative globalCurrentState, ODEStateAndDerivative softPreviousState, ODEStateAndDerivative softCurrentState, EquationsMapper equationsMapper) 简单构造函数。 -
方法概要
修饰符和类型方法说明protected abstract ODEStateAndDerivativecomputeInterpolatedStateAndDerivatives(EquationsMapper equationsMapper, double time, double theta, double thetaH, double oneMinusThetaH) 计算插值时间点的状态和导数。protected abstract AbstractODEStateInterpolatorcreate(boolean newForward, ODEStateAndDerivative newGlobalPreviousState, ODEStateAndDerivative newGlobalCurrentState, ODEStateAndDerivative newSoftPreviousState, ODEStateAndDerivative newSoftCurrentState, EquationsMapper newMapper) 创建一个新实例。获取当前网格点时间的状态。获取当前全局网格点状态。获取前一个全局网格点状态。getInterpolatedState(double time) 获取插值时间点的状态。protected EquationsMapper获取ODE方程主要和次要分量的映射器。获取前一个网格点时间的状态。booleanboolean检查自然积分方向是否向前。booleanrestrictStep(ODEStateAndDerivative previousState, ODEStateAndDerivative currentState) 创建实例的新受限版本。
-
构造器详细资料
-
AbstractODEStateInterpolator
protected AbstractODEStateInterpolator(boolean isForward, ODEStateAndDerivative globalPreviousState, ODEStateAndDerivative globalCurrentState, ODEStateAndDerivative softPreviousState, ODEStateAndDerivative softCurrentState, EquationsMapper equationsMapper) 简单构造函数。- 参数:
-
isForward- 积分方向指示器 -
globalPreviousState- 全局步骤的起始点 -
globalCurrentState- 全局步骤的结束点 -
softPreviousState- 受限步骤的起始点 -
softCurrentState- 受限步骤的结束点 -
equationsMapper- ODE方程主要和次要分量的映射器
-
-
方法详细资料
-
restrictStep
public AbstractODEStateInterpolator restrictStep(ODEStateAndDerivative previousState, ODEStateAndDerivative currentState) 创建实例的新受限版本。实例不会发生任何改变。
- 参数:
-
previousState- 受限步骤的起始点 -
currentState- 受限步骤的结束点 - 返回:
- 实例的受限版本
- 另请参阅:
-
create
protected abstract AbstractODEStateInterpolator create(boolean newForward, ODEStateAndDerivative newGlobalPreviousState, ODEStateAndDerivative newGlobalCurrentState, ODEStateAndDerivative newSoftPreviousState, ODEStateAndDerivative newSoftCurrentState, EquationsMapper newMapper) 创建一个新实例。- 参数:
-
newForward- 积分方向指示器 -
newGlobalPreviousState- 全局步骤的起始点 -
newGlobalCurrentState- 全局步骤的结束点 -
newSoftPreviousState- 受限步骤的起始点 -
newSoftCurrentState- 受限步骤的结束点 -
newMapper- 所有方程的方程映射器 - 返回:
- 一个新实例
-
getGlobalPreviousState
获取前一个全局网格点状态。- 返回:
- 前一个全局网格点状态
-
getGlobalCurrentState
获取当前全局网格点状态。- 返回:
- 当前全局网格点状态
-
getPreviousState
获取前一个网格点时间的状态。- 指定者:
-
getPreviousState在接口中ODEStateInterpolator - 返回:
- 前一个网格点时间的状态
-
isPreviousStateInterpolated
public boolean isPreviousStateInterpolated()- 指定者:
-
isPreviousStateInterpolated在接口中ODEStateInterpolator - 返回:
-
如果前一个状态是由插值器计算的,则为
true,如果由积分器直接计算,则为false。
-
getCurrentState
获取当前网格点时间的状态。- 指定者:
-
getCurrentState在接口中ODEStateInterpolator - 返回:
- 当前网格点时间的状态
-
isCurrentStateInterpolated
public boolean isCurrentStateInterpolated()- 指定者:
-
isCurrentStateInterpolated在接口中ODEStateInterpolator - 返回:
-
如果当前状态是由插值器计算的,则为
true,如果由积分器直接计算,则为false。
-
getInterpolatedState
获取插值时间点的状态。允许设置超出当前步骤的时间,但应谨慎使用,因为远离此步骤时,插值器的精度可能非常差。这种允许性是为了简化在步骤端点附近实现搜索算法。
- 指定者:
-
getInterpolatedState在接口中ODEStateInterpolator - 参数:
-
time- 插值点的时间 - 返回:
- 插值时间点的状态
-
isForward
public boolean isForward()检查自然积分方向是否向前。此方法提供积分方向,由积分器本身指定,避免了在退化情况下出现一些麻烦问题,例如由于步骤初始化、步骤控制或离散事件触发而导致的空步骤。
- 指定者:
-
isForward在接口中ODEStateInterpolator - 返回:
-
如果积分变量(时间)在积分过程中增加,则为
true
-
getMapper
获取ODE方程主要和次要分量的映射器。- 返回:
- ODE方程主要和次要分量的映射器
-
computeInterpolatedStateAndDerivatives
protected abstract ODEStateAndDerivative computeInterpolatedStateAndDerivatives(EquationsMapper equationsMapper, double time, double theta, double thetaH, double oneMinusThetaH) throws MathIllegalStateException 计算插值时间点的状态和导数。这是应该由派生类实现的主要处理方法,用于执行插值。- 参数:
-
equationsMapper- ODE方程主要和次要分量的映射器 -
time- 插值时间 -
theta- 步长内的归一化插值横坐标(theta在上一个时间步长为零,在当前时间步长为一) -
thetaH- 前一个时间和插值时间之间的时间间隔 -
oneMinusThetaH- 插值时间和当前时间之间的时间间隔 - 返回:
- 插值状态和导数
- 抛出:
-
MathIllegalStateException- 如果超过函数评估的次数
-