类 AdamsFieldIntegrator<T extends CalculusFieldElement<T>>

类型参数:
T - 字段元素的类型
所有已实现的接口:
FieldODEIntegrator<T>
直接已知子类:
AdamsBashforthFieldIntegrator, AdamsMoultonFieldIntegrator

public abstract class AdamsFieldIntegrator<T extends CalculusFieldElement<T>> extends MultistepFieldIntegrator<T>
Adams-BashforthAdams-Moulton 积分器的基类。
  • 构造器详细资料

    • AdamsFieldIntegrator

      public AdamsFieldIntegrator(Field<T> field, String name, int nSteps, int order, double minStep, double maxStep, double scalAbsoluteTolerance, double scalRelativeTolerance) throws MathIllegalArgumentException
      使用给定的阶数和步长控制参数构建Adams积分器。
      参数:
      field - 时间和状态向量元素所属的字段
      name - 方法的名称
      nSteps - 方法的步数,不包括正在计算的步骤
      order - 方法的阶数
      minStep - 最小步长(符号无关,无论是正向还是反向积分,最后一步可以小于此值)
      maxStep - 最大步长(符号无关,无论是正向还是反向积分,最后一步可以小于此值)
      scalAbsoluteTolerance - 允许的绝对误差
      scalRelativeTolerance - 允许的相对误差
      抛出:
      MathIllegalArgumentException - 如果阶数小于等于1
    • AdamsFieldIntegrator

      public AdamsFieldIntegrator(Field<T> field, String name, int nSteps, int order, double minStep, double maxStep, double[] vecAbsoluteTolerance, double[] vecRelativeTolerance) throws IllegalArgumentException
      使用给定的阶数和步长控制参数构建Adams积分器。
      参数:
      field - 时间和状态向量元素所属的字段
      name - 方法的名称
      nSteps - 方法的步数,不包括正在计算的步骤
      order - 方法的阶数
      minStep - 最小步长(符号无关,无论是正向还是反向积分,最后一步可以小于此值)
      maxStep - 最大步长(符号无关,无论是正向还是反向积分,最后一步可以小于此值)
      vecAbsoluteTolerance - 允许的绝对误差
      vecRelativeTolerance - 允许的相对误差
      抛出:
      IllegalArgumentException - 如果阶数小于等于1
  • 方法详细资料

    • integrate

      public FieldODEStateAndDerivative<T> integrate(FieldExpandableODE<T> equations, FieldODEState<T> initialState, T finalTime) throws MathIllegalArgumentException, MathIllegalStateException
      将微分方程积分到给定时间。

      此方法解决初始值问题(IVP)。

      由于此方法存储一些在积分期间在其公共接口中提供的内部状态变量(可通过FieldODEIntegrator.getCurrentSignedStepsize()访问),因此它不是线程安全的。

      参数:
      equations - 要积分的微分方程
      initialState - 初始状态(时间,主要和次要状态向量)
      finalTime - 积分的目标时间(可以设置为小于t0的值以进行反向积分)
      返回:
      最终状态,其时间将与finalTime相同,如果积分达到目标,则可能不同,如果某个FieldODEEventHandler在某个点停止它。
      抛出:
      MathIllegalArgumentException - 如果积分步长太小
      MathIllegalArgumentException - 如果事件的位置无法被包围
      MathIllegalStateException - 如果函数评估次数超过限制
    • initializeHighOrderDerivatives

      protected Array2DRowFieldMatrix<T> initializeHighOrderDerivatives(T h, T[] t, T[][] y, T[][] yDot)
      在步骤开始时初始化高阶缩放导数。
      指定者:
      initializeHighOrderDerivatives 在类中 MultistepFieldIntegrator<T extends CalculusFieldElement<T>>
      参数:
      h - 用于缩放的步长
      t - 第一步的时间
      y - 第一步的状态
      yDot - 第一步的导数
      返回:
      第一步的Nordieck向量(h2/2 y''n, h3/6 y'''n ... hk/k! y(k)n
    • updateHighOrderDerivativesPhase1

      public Array2DRowFieldMatrix<T> updateHighOrderDerivativesPhase1(Array2DRowFieldMatrix<T> highOrder)
      更新Adams积分器的高阶缩放导数(阶段1)。

      完整的高阶导数更新形式类似于:\[ r_{n+1} = (s_1(n) - s_1(n+1)) P^{-1} u + P^{-1} A P r_n \] 此方法计算P-1 A P rn部分。

      参数:
      highOrder - 高阶缩放导数(h2/2 y'',... hk/k! y(k))
      返回:
      更新后的高阶导数
      另请参阅:
    • updateHighOrderDerivativesPhase2

      public void updateHighOrderDerivativesPhase2(T[] start, T[] end, Array2DRowFieldMatrix<T> highOrder)
      更新Adams积分器的高阶缩放导数(阶段2)。

      完整的高阶导数更新形式类似于:\[ r_{n+1} = (s_1(n) - s_1(n+1)) P^{-1} u + P^{-1} A P r_n \] 此方法计算(s1(n) - s1(n+1)) P-1 u 部分。

      更新的阶段1必须已经执行。

      参数:
      start - 步骤开始时的一阶缩放导数
      end - 步骤结束时的一阶缩放导数
      highOrder - 高阶缩放导数,将被修改(h2/2 y'',... hk/k! y(k))
      另请参阅:
    • errorEstimation

      protected abstract double errorEstimation(T[] previousState, T predictedTime, T[] predictedState, T[] predictedScaled, FieldMatrix<T> predictedNordsieck)
      估计误差。
      参数:
      previousState - 步骤开始时的状态向量
      predictedTime - 步骤结束时的时间
      predictedState - 步骤结束时的预测状态向量
      predictedScaled - 步骤结束时的缩放导数预测值
      predictedNordsieck - 步骤结束时的Nordsieck向量预测值
      返回:
      估计的归一化局部离散化误差
      从以下版本开始:
      2.0
    • finalizeStep

      protected abstract org.hipparchus.ode.nonstiff.AdamsFieldStateInterpolator<T> finalizeStep(T stepSize, T[] predictedState, T[] predictedScaled, Array2DRowFieldMatrix<T> predictedNordsieck, boolean isForward, FieldODEStateAndDerivative<T> globalPreviousState, FieldODEStateAndDerivative<T> globalCurrentState, FieldEquationsMapper<T> equationsMapper)
      完成步骤。
      参数:
      stepSize - 在缩放和Nordsieck数组中使用的步长
      predictedState - 步长结束时的预测状态
      predictedScaled - 预测的第一个缩放导数
      predictedNordsieck - 预测的Nordsieck向量
      isForward - 积分方向指示器
      globalPreviousState - 全局步长的起点
      globalCurrentState - 全局步长的终点
      equationsMapper - ODE方程主要和次要组件的映射器
      返回:
      步长插值器
      从以下版本开始:
      2.0