接口 StepInterpolator
- 所有超级接口:
-
ODEStateInterpolator
,Serializable
The various ODE integrators provide objects implementing this interface to the step handlers. These objects are often custom objects tightly bound to the integrator internal algorithms. The handlers can use these objects to retrieve the state vector at intermediate times between the previous and the current grid points (this feature is often called dense output).
One important thing to note is that the step handlers may be so tightly bound to the integrators that they often share some internal state arrays. This imply that one should never use a direct reference to a step interpolator outside of the step handler, either for future use or for use in another thread. If such a need arise, the step interpolator must be copied using the dedicated copy()
method.
- 另请参阅:
-
方法概要
修饰符和类型方法说明copy()
已过时。复制实例。double
已过时。as of 1.0, replaced withODEStateInterpolator.getCurrentState()
/ODEState.getTime()
double[]
已过时。as of 1.0, replaced withODEStateInterpolator.getInterpolatedState(double)
.ODEStateAndDerivative.getPrimaryDerivative()
double[]
getInterpolatedSecondaryDerivatives
(int index) 已过时。as of 1.0, replaced withODEStateInterpolator.getInterpolatedState(double)
.ODEStateAndDerivative.getSecondaryDerivative(int)
double[]
getInterpolatedSecondaryState
(int index) 已过时。as of 1.0, replaced withODEStateInterpolator.getInterpolatedState(double)
.ODEState.getSecondaryState(int)
double[]
已过时。as of 1.0, replaced withODEStateInterpolator.getInterpolatedState(double)
.ODEState.getPrimaryState()
double
已过时。as of 1.0, replaced withODEStateInterpolator.getInterpolatedState(double)
/ODEState.getTime()
double
已过时。as of 1.0, replaced withODEStateInterpolator.getPreviousState()
/ODEState.getTime()
boolean
已过时。检查自然积分方向是否为正向。void
setInterpolatedTime
(double time) 已过时。as of 1.0, replaced withODEStateInterpolator.getInterpolatedState(double)
从接口继承的方法 org.hipparchus.ode.sampling.ODEStateInterpolator
getCurrentState, getInterpolatedState, getPreviousState, isCurrentStateInterpolated, isPreviousStateInterpolated
-
方法详细资料
-
getPreviousTime
已过时。as of 1.0, replaced withODEStateInterpolator.getPreviousState()
/ODEState.getTime()
获取上一个网格点的时间。- 返回:
- 上一个网格点的时间
-
getCurrentTime
已过时。as of 1.0, replaced withODEStateInterpolator.getCurrentState()
/ODEState.getTime()
获取当前网格点的时间。- 返回:
- 当前网格点的时间
-
getInterpolatedTime
已过时。as of 1.0, replaced withODEStateInterpolator.getInterpolatedState(double)
/ODEState.getTime()
获取插值点的时间。如果尚未调用setInterpolatedTime(double)
,则返回当前网格点的时间。- 返回:
- 插值点的时间
-
setInterpolatedTime
已过时。as of 1.0, replaced withODEStateInterpolator.getInterpolatedState(double)
设置插值点的时间。现在允许在当前步长之外设置时间,但应谨慎使用,因为插值器的精度远离此步长可能非常差。这种允许性已添加以简化在步长端点附近实现搜索算法。
设置时间会更改实例的内部状态。这包括在
getInterpolatedState()
、getInterpolatedDerivatives()
、getInterpolatedSecondaryState(int)
和getInterpolatedSecondaryDerivatives(int)
中返回的内部数组。因此,如果它们的内容必须在多个调用之间保留,用户必须复制它们。- 参数:
-
time
- 插值点的时间 - 另请参阅:
-
getInterpolatedState
已过时。as of 1.0, replaced withODEStateInterpolator.getInterpolatedState(double)
.ODEState.getPrimaryState()
获取插值点的状态向量。返回的向量是一个重用数组的引用,因此不应修改它,如果需要在多个调用中保留它,则应复制它,并且应在相关的
setInterpolatedTime(double)
方法中。- 返回:
-
时间为
getInterpolatedTime()
时的状态向量 - 抛出:
-
MathIllegalStateException
- 如果超过函数评估的数量 - 另请参阅:
-
getInterpolatedDerivatives
已过时。as of 1.0, replaced withODEStateInterpolator.getInterpolatedState(double)
.ODEStateAndDerivative.getPrimaryDerivative()
获取插值点的状态向量的导数。返回的向量是一个重用数组的引用,因此不应修改它,如果需要在多个调用中保留它,则应复制它,并且应在相关的
setInterpolatedTime(double)
方法中。- 返回:
-
时间为
getInterpolatedTime()
时的状态向量的导数 - 抛出:
-
MathIllegalStateException
- 如果超过函数评估的数量 - 另请参阅:
-
getInterpolatedSecondaryState
已过时。as of 1.0, replaced withODEStateInterpolator.getInterpolatedState(double)
.ODEState.getSecondaryState(int)
获取与次要方程对应的插值次要状态。返回的向量是对重用数组的引用,因此不应修改它,如果需要在多次调用相关的
setInterpolatedTime(double)
方法之间保留它,则应复制它。- 参数:
-
index
- 次要集的索引,由ExpandableODE.addSecondaryEquations(secondary)
返回 - 返回:
- 当前插值日期的插值次要状态
- 抛出:
-
MathIllegalStateException
- 如果函数评估次数超过限制 - 另请参阅:
-
getInterpolatedSecondaryDerivatives
@Deprecated double[] getInterpolatedSecondaryDerivatives(int index) throws MathIllegalStateException 已过时。as of 1.0, replaced withODEStateInterpolator.getInterpolatedState(double)
.ODEStateAndDerivative.getSecondaryDerivative(int)
获取与次要方程对应的插值次要导数。返回的向量是对重用数组的引用,因此不应修改它,如果需要在多次调用时保留它,则应复制它。
- 参数:
-
index
- 次要集的索引,由ExpandableODE.addSecondaryEquations(secondary)
返回 - 返回:
- 当前插值日期的插值次要导数
- 抛出:
-
MathIllegalStateException
- 如果函数评估次数超过限制 - 另请参阅:
-
isForward
boolean isForward()已过时。检查自然积分方向是否为正向。此方法提供由积分器本身指定的积分方向,避免了在退化情况下出现一些麻烦的问题,比如由于步骤初始化、步骤控制或离散事件触发而导致的空步骤。
- 指定者:
-
isForward
在接口中ODEStateInterpolator
- 返回:
- 如果积分变量(时间)在积分过程中增加,则为true
-
copy
已过时。复制实例。复制的实例保证与原始实例独立。两者可以在插值时间设置不同的情况下使用,而不会产生任何副作用。
- 返回:
- 实例的深层复制,可独立使用。
- 抛出:
-
MathIllegalStateException
- 如果在步骤完成期间函数评估次数超过限制 - 另请参阅:
-
ODEStateInterpolator