类 DenseOutputModel
java.lang.Object
org.hipparchus.ode.DenseOutputModel
- 所有已实现的接口:
-
Serializable
,ODEStepHandler
- 直接已知子类:
-
ContinuousOutputModel
此类存储ODE积分器在积分过程中提供的所有信息,并从中构建解的连续模型。
从积分器的角度来看,此类充当步骤处理程序。在积分过程中,它被迭代调用,并将所有步骤信息的副本存储在排序集合中以供以后使用。一旦积分过程结束,用户可以使用getInterpolatedState
方法随时检索此信息。在尝试调用getInterpolatedState
之前等待积分结束非常重要,因为一些内部变量只有在处理最后一步后才设置。
例如,如果用户应用程序的主循环应保持独立于积分过程,或者如果需要模仿数值模型的行为(即需要能够随时获取模型值或浏览数据),则此类非常有用。
如果问题建模使用多个连续区间的单独积分阶段完成,则可以将相同的DenseOutputModel用作所有积分阶段的步骤处理程序,只要它们按顺序和相同方向执行。例如,可以使用一个模型(即一组微分方程)来外推卫星的轨迹,然后在机动开始之前使用另一个更复杂的模型,包括推进器建模和精确的姿态控制,在机动期间。机动结束后恢复到第一个模型。如果同一个连续输出模型处理所有积分阶段的步骤,用户无需在意机动何时开始或结束,他可以以透明的方式获得所有数据。
此类的一个重要特点是它实现了Serializable
接口。这意味着积分的结果可以被序列化并在以后(如果存储在像文件系统或数据库这样的持久介质中)或其他地方(如果发送到另一个应用程序)重用。只存储积分的结果,没有对积分问题本身的引用。
应该注意,如果状态向量很大,积分间隔很长,或者步长很小(这可能是由于自适应步长积分器
中的小容差设置导致的),则在DenseOutputModel实例中存储的数据量可能很大。
- 另请参阅:
-
构造器概要
-
方法概要
修饰符和类型方法说明void
append
(DenseOutputModel model) 在实例的末尾附加另一个模型。void
finish
(ODEStateAndDerivative finalState) 完成积分。double
获取最终积分时间。double
获取初始积分时间。getInterpolatedState
(double time) 获取插值时间处的状态。void
handleStep
(ODEStateInterpolator interpolator) 处理最后接受的步骤。void
init
(ODEStateAndDerivative initialState, double targetTime) 在ODE积分开始时初始化步骤处理程序。
-
构造器详细资料
-
DenseOutputModel
public DenseOutputModel()简单构造函数。构建一个空的连续输出模型。
-
-
方法详细资料
-
append
public void append(DenseOutputModel model) throws MathIllegalArgumentException, MathIllegalStateException 在实例的末尾附加另一个模型。- 参数:
-
model
- 要添加到实例末尾的模型 - 抛出:
-
MathIllegalArgumentException
- 如果要附加的模型与实例不兼容(状态向量的维数、传播方向、日期之间的间隙) -
MathIllegalStateException
- 如果在步骤完成时超过了函数评估的数量
-
init
在ODE积分开始时初始化步骤处理程序。此方法在积分开始时仅调用一次。如果需要,步骤处理程序可以使用此方法初始化一些内部数据。
默认实现不执行任何操作
- 指定者:
-
init
在接口中ODEStepHandler
- 参数:
-
initialState
- 初始时间、状态向量和导数 -
targetTime
- 积分的目标时间
-
handleStep
处理最后接受的步骤。- 指定者:
-
handleStep
在接口中ODEStepHandler
- 参数:
-
interpolator
- 最后接受步骤的插值器
-
finish
完成积分。- 指定者:
-
finish
在接口中ODEStepHandler
- 参数:
-
finalState
- 积分结束时的状态
-
getInitialTime
public double getInitialTime()获取初始积分时间。- 返回:
- 初始积分时间
-
getFinalTime
public double getFinalTime()获取最终积分时间。- 返回:
- 最终积分时间
-
getInterpolatedState
获取插值时间处的状态。- 参数:
-
time
- 插值点的时间 - 返回:
- 插值时间处的状态
-