类 AdamsIntegrator

所有已实现的接口:
ODEIntegrator
直接已知子类:
AdamsBashforthIntegrator, AdamsMoultonIntegrator

public abstract class AdamsIntegrator extends MultistepIntegrator
Adams-BashforthAdams-Moulton 积分器的基类。
  • 构造器详细资料

    • AdamsIntegrator

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

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

    • integrate

      public ODEStateAndDerivative integrate(ExpandableODE equations, ODEState initialState, double finalTime) throws MathIllegalArgumentException, MathIllegalStateException
      将微分方程积分到给定时间。

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

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

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

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

      public Array2DRowRealMatrix updateHighOrderDerivativesPhase1(Array2DRowRealMatrix 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(double[] start, double[] end, Array2DRowRealMatrix 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(double[] previousState, double predictedTime, double[] predictedState, double[] predictedScaled, RealMatrix predictedNordsieck)
      估计误差。
      参数:
      previousState - 步骤开始时的状态向量
      predictedTime - 步骤结束时的时间
      predictedState - 步骤结束时的预测状态向量
      predictedScaled - 步骤结束时的缩放导数预测值
      predictedNordsieck - 步骤结束时的Nordsieck向量预测值
      返回:
      估计的归一化局部离散化误差
      从以下版本开始:
      2.0
    • finalizeStep

      protected abstract org.hipparchus.ode.nonstiff.AdamsStateInterpolator finalizeStep(double stepSize, double[] predictedState, double[] predictedScaled, Array2DRowRealMatrix predictedNordsieck, boolean isForward, ODEStateAndDerivative globalPreviousState, ODEStateAndDerivative globalCurrentState, EquationsMapper equationsMapper)
      完成步骤。
      参数:
      stepSize - 缩放和Nordsieck数组中使用的步长
      predictedState - 步骤结束时的预测状态
      predictedScaled - 预测的第一个缩放导数
      predictedNordsieck - 预测的Nordsieck向量
      isForward - 积分方向指示器
      globalPreviousState - 全局步骤的起始点
      globalCurrentState - 全局步骤的结束点
      equationsMapper - ODE方程主要和次要分量的映射器
      返回: