接口 FieldODEStateInterpolator<T extends CalculusFieldElement<T>>

类型参数:
T - 字段元素的类型
所有已知实现类:
AbstractFieldODEStateInterpolator, DummyFieldStepInterpolator

public interface FieldODEStateInterpolator<T extends CalculusFieldElement<T>>
该接口表示ODE积分过程中最后一步的插值器。

各种ODE积分器提供实现此接口的对象给步长处理器。这些对象通常是与积分器内部算法紧密绑定的自定义对象。处理器可以使用这些对象在前一个网格点和当前网格点之间的中间时间检索状态向量(此功能通常称为密集输出)。

另请参阅:
  • 方法详细资料

    • getPreviousState

      FieldODEStateAndDerivative<T> getPreviousState()
      获取前一个网格点时间的状态。
      返回:
      前一个网格点时间的状态
    • isPreviousStateInterpolated

      boolean isPreviousStateInterpolated()
      确定是否通过插值器计算前一个状态,还是直接由积分器计算。

      通常情况下,前一个状态是由积分器直接计算的,但是当检测到事件时,步长会缩短,使得事件发生在步长边界上,这意味着前一个状态可能由插值器计算。

      返回:
      如果前一个状态是由插值器计算的,则为true,如果是由积分器直接计算的,则为false
    • getCurrentState

      FieldODEStateAndDerivative<T> getCurrentState()
      获取当前网格点时间的状态。
      返回:
      当前网格点时间的状态
    • isCurrentStateInterpolated

      boolean isCurrentStateInterpolated()
      确定是否通过积分器直接计算当前状态,还是使用插值计算。

      通常情况下,当前状态是由积分器直接计算的,但是当检测到事件时,步长会缩短,使得事件发生在步长边界上,这意味着当前状态可能由插值器计算。

      返回:
      如果当前状态是由插值器计算的,则为true,如果是由积分器直接计算的,则为false
    • getInterpolatedState

      FieldODEStateAndDerivative<T> getInterpolatedState(T time)
      获取插值时间的状态。

      允许设置超出当前步长的时间,但应谨慎使用,因为远离此步长的插值器精度可能非常差。此允许性已添加以简化在步长端点附近实现搜索算法。

      参数:
      time - 插值点的时间
      返回:
      插值时间的状态
    • isForward

      boolean isForward()
      检查自然积分方向是否为正向。

      此方法提供积分方向,由积分器本身指定,避免了在退化情况下出现一些令人讨厌的问题,例如由于步长初始化、步长控制或离散事件触发而导致的空步长。

      返回:
      如果积分变量(时间)在积分过程中增加,则为true