程序包 org.hipparchus.ode

接口 OrdinaryDifferentialEquation

所有已知子接口:
FirstOrderDifferentialEquations, MainStateJacobianProvider, ODEJacobiansProvider, ODEStateInterpolatorAbstractTest.ReferenceODE
所有已知实现类:
CloseEventsTest.Equation, FirstOrderConverter, OverlappingEventsTest, StepNormalizerOutputOverlapTest, StepNormalizerOutputTest, StepNormalizerOutputTestBase, StepProblem, TestProblem1, TestProblem2, TestProblem3, TestProblem4, TestProblem5, TestProblem6, TestProblem7, TestProblem8, TestProblemAbstract, VariableCheckInterval

public interface OrdinaryDifferentialEquation
该接口表示一组一阶微分方程。

在实现此接口之前,所有真实的一阶微分方程问题都应该能够通过积分器的ODEIntegrator.integrate(OrdinaryDifferentialEquation, ODEState, double)方法进行处理。

从积分器的角度来看,一阶微分方程问题是状态向量Y的时间导数dY/dt,两者都是一维数组。从积分器的角度来看,这个导数仅取决于当前时间t和状态向量Y

对于真实问题,导数还取决于不属于状态向量的参数(例如动力学模型常数)。这些常数完全超出了此接口的范围,实现它的类可以根据需要处理它们。

另请参阅:
  • 方法概要

    修饰符和类型
    方法
    说明
    double[]
    computeDerivatives(double t, double[] y)
    获取状态向量的当前时间导数。
    int
    获取问题的维度。
    default void
    init(double t0, double[] y0, double finalTime)
    在ODE积分开始时初始化方程。
  • 方法详细资料

    • getDimension

      int getDimension()
      获取问题的维度。
      返回:
      问题的维度
    • init

      default void init(double t0, double[] y0, double finalTime)
      在ODE积分开始时初始化方程。

      此方法在积分开始时调用一次。如果需要,方程可以使用它来初始化一些内部数据。

      默认实现不执行任何操作。

      参数:
      t0 - 积分开始时独立时间变量的值
      y0 - 包含积分开始时状态向量值的数组
      finalTime - 积分的目标时间
    • computeDerivatives

      double[] computeDerivatives(double t, double[] y)
      获取状态向量的当前时间导数。
      参数:
      t - 当前独立时间变量的值
      y - 包含当前状态向量值的数组
      返回:
      状态向量的时间导数