程序包 org.hipparchus.ode

接口 FieldODEIntegrator<T extends CalculusFieldElement<T>>

类型参数:
T - 字段元素的类型
所有已知实现类:
AbstractFieldIntegrator, AdamsBashforthFieldIntegrator, AdamsFieldIntegrator, AdamsMoultonFieldIntegrator, AdaptiveStepsizeFieldIntegrator, ClassicalRungeKuttaFieldIntegrator, DormandPrince54FieldIntegrator, DormandPrince853FieldIntegrator, EmbeddedRungeKuttaFieldIntegrator, EulerFieldIntegrator, GillFieldIntegrator, HighamHall54FieldIntegrator, LutherFieldIntegrator, MidpointFieldIntegrator, MultistepFieldIntegrator, RungeKuttaFieldIntegrator, ThreeEighthesFieldIntegrator

public interface FieldODEIntegrator<T extends CalculusFieldElement<T>>
该接口表示微分方程的一阶积分器。

专门用于解决一阶微分方程的类应该实现此接口。可以处理的问题应该实现 FieldOrdinaryDifferentialEquation 接口。

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

    • getName

      String getName()
      获取方法的名称。
      返回:
      方法的名称
    • addStepHandler

      void addStepHandler(FieldODEStepHandler<T> handler)
      向此积分器添加步处理程序。

      积分器将为每个接受的步调用处理程序。

      参数:
      handler - 接受的步的处理程序
      另请参阅:
    • getStepHandlers

      List<FieldODEStepHandler<T>> getStepHandlers()
      获取已添加到积分器的所有步处理程序。
      返回:
      已添加的步处理程序的不可修改集合
      另请参阅:
    • clearStepHandlers

      void clearStepHandlers()
      移除已添加到积分器的所有步处理程序。
      另请参阅:
    • addEventDetector

      void addEventDetector(FieldODEEventDetector<T> detector)
      向积分器添加事件检测器。
      参数:
      detector - 事件检测器
      从以下版本开始:
      3.0
      另请参阅:
    • getEventDetectors

      List<FieldODEEventDetector<T>> getEventDetectors()
      获取已添加到积分器的所有事件检测器。
      返回:
      已添加的事件检测器的不可修改集合
      从以下版本开始:
      3.0
      另请参阅:
    • clearEventDetectors

      void clearEventDetectors()
      移除已添加到积分器的所有事件处理程序。
      从以下版本开始:
      3.0
      另请参阅:
    • addStepEndHandler

      void addStepEndHandler(FieldODEStepEndHandler<T> handler)
      向积分器添加步结束处理程序。

      处理程序的 stepEndOccurred(state, forward) 方法将在每个步结束时调用。

      参数:
      handler - 步结束处理程序
      从以下版本开始:
      3.0
      另请参阅:
    • getStepEndHandlers

      List<FieldODEStepEndHandler<T>> getStepEndHandlers()
      获取已添加到积分器的所有步结束处理程序。
      返回:
      已添加的步结束处理程序的不可修改列表
      从以下版本开始:
      3.0
      另请参阅:
    • clearStepEndHandlers

      void clearStepEndHandlers()
      移除已添加到积分器的所有步结束处理程序。
      从以下版本开始:
      3.0
      另请参阅:
    • getStepStart

      FieldODEStateAndDerivative<T> getStepStart()
      获取时间 ti 处的状态。

      如果需要当前尝试的步的值,此方法可以在积分期间调用(通常由实现 微分方程 问题的对象)。

      如果在调用 integrate 之外调用该方法,则结果是未定义的。

      返回:
      时间 ti 处的状态
    • getCurrentSignedStepsize

      T getCurrentSignedStepsize()
      获取当前积分步长的有符号值。

      在积分过程中(通常由实现微分方程问题的对象)可以调用此方法,如果需要尝试的当前步长的有符号值。

      如果在调用integrate之外调用该方法,则结果是未定义的。

      返回:
      步长的当前有符号值
    • setMaxEvaluations

      void setMaxEvaluations(int maxEvaluations)
      设置最大微分方程函数评估次数。

      此方法的目的是避免无限循环,例如当设置严格的误差约束或触发许多离散事件时可能发生,从而导致许多被拒绝的步骤。

      参数:
      maxEvaluations - 微分方程函数评估的最大次数(负值会被静默转换为最大整数值,因此表示几乎无限的评估次数)
    • getMaxEvaluations

      int getMaxEvaluations()
      获取最大函数评估次数。
      返回:
      函数评估的最大次数
    • getEvaluations

      int getEvaluations()
      获取微分方程函数的评估次数。

      评估次数对应于对integrate方法的最后一次调用。如果尚未调用该方法,则为0。

      返回:
      微分方程函数的评估次数
    • integrate

      将微分方程积分到给定时间。

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

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

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