类 AdamsFieldIntegrator<T extends CalculusFieldElement<T>>
java.lang.Object
org.hipparchus.ode.AbstractFieldIntegrator<T>
org.hipparchus.ode.nonstiff.AdaptiveStepsizeFieldIntegrator<T>
org.hipparchus.ode.MultistepFieldIntegrator<T>
org.hipparchus.ode.nonstiff.AdamsFieldIntegrator<T>
- 类型参数:
-
T
- 字段元素的类型
- 所有已实现的接口:
-
FieldODEIntegrator<T>
public abstract class AdamsFieldIntegrator<T extends CalculusFieldElement<T>> extends MultistepFieldIntegrator<T>
Adams-Bashforth
和 Adams-Moulton
积分器的基类。
-
字段概要
从类继承的字段 org.hipparchus.ode.MultistepFieldIntegrator
nordsieck, scaled
-
构造器概要
构造器说明AdamsFieldIntegrator
(Field<T> field, String name, int nSteps, int order, double minStep, double maxStep, double[] vecAbsoluteTolerance, double[] vecRelativeTolerance) 使用给定的阶数和步长控制参数构建Adams积分器。AdamsFieldIntegrator
(Field<T> field, String name, int nSteps, int order, double minStep, double maxStep, double scalAbsoluteTolerance, double scalRelativeTolerance) 使用给定的阶数和步长控制参数构建Adams积分器。 -
方法概要
修饰符和类型方法说明protected abstract double
errorEstimation
(T[] previousState, T predictedTime, T[] predictedState, T[] predictedScaled, FieldMatrix<T> predictedNordsieck) 估计误差。protected abstract org.hipparchus.ode.nonstiff.AdamsFieldStateInterpolator
<T> finalizeStep
(T stepSize, T[] predictedState, T[] predictedScaled, Array2DRowFieldMatrix<T> predictedNordsieck, boolean isForward, FieldODEStateAndDerivative<T> globalPreviousState, FieldODEStateAndDerivative<T> globalCurrentState, FieldEquationsMapper<T> equationsMapper) 完成步骤。protected Array2DRowFieldMatrix
<T> initializeHighOrderDerivatives
(T h, T[] t, T[][] y, T[][] yDot) 在步骤开始时初始化高阶缩放导数。integrate
(FieldExpandableODE<T> equations, FieldODEState<T> initialState, T finalTime) 将微分方程积分到给定时间。updateHighOrderDerivativesPhase1
(Array2DRowFieldMatrix<T> highOrder) 更新Adams积分器的高阶缩放导数(阶段1)。void
updateHighOrderDerivativesPhase2
(T[] start, T[] end, Array2DRowFieldMatrix<T> highOrder) 更新Adams积分器的高阶缩放导数(阶段2)。从类继承的方法 org.hipparchus.ode.MultistepFieldIntegrator
computeStepGrowShrinkFactor, getMaxGrowth, getMinReduction, getNSteps, getSafety, getStarterIntegrator, rescale, setMaxGrowth, setMinReduction, setSafety, setStarterIntegrator, start
从类继承的方法 org.hipparchus.ode.nonstiff.AdaptiveStepsizeFieldIntegrator
getMaxStep, getMinStep, getStepSizeHelper, initializeStep, resetInternalState, sanityChecks, setInitialStepSize, setStepSizeControl, setStepSizeControl
从类继承的方法 org.hipparchus.ode.AbstractFieldIntegrator
acceptStep, addEventDetector, addStepEndHandler, addStepHandler, clearEventDetectors, clearStepEndHandlers, clearStepHandlers, computeDerivatives, getCurrentSignedStepsize, getEquations, getEvaluations, getEvaluationsCounter, getEventDetectors, getField, getMaxEvaluations, getName, getStepEndHandlers, getStepHandlers, getStepSize, getStepStart, initIntegration, isLastStep, resetOccurred, setIsLastStep, setMaxEvaluations, setStateInitialized, setStepSize, setStepStart
-
构造器详细资料
-
AdamsFieldIntegrator
public AdamsFieldIntegrator(Field<T> field, String name, int nSteps, int order, double minStep, double maxStep, double scalAbsoluteTolerance, double scalRelativeTolerance) throws MathIllegalArgumentException 使用给定的阶数和步长控制参数构建Adams积分器。- 参数:
-
field
- 时间和状态向量元素所属的字段 -
name
- 方法的名称 -
nSteps
- 方法的步数,不包括正在计算的步骤 -
order
- 方法的阶数 -
minStep
- 最小步长(符号无关,无论是正向还是反向积分,最后一步可以小于此值) -
maxStep
- 最大步长(符号无关,无论是正向还是反向积分,最后一步可以小于此值) -
scalAbsoluteTolerance
- 允许的绝对误差 -
scalRelativeTolerance
- 允许的相对误差 - 抛出:
-
MathIllegalArgumentException
- 如果阶数小于等于1
-
AdamsFieldIntegrator
public AdamsFieldIntegrator(Field<T> field, String name, int nSteps, int order, double minStep, double maxStep, double[] vecAbsoluteTolerance, double[] vecRelativeTolerance) throws IllegalArgumentException 使用给定的阶数和步长控制参数构建Adams积分器。- 参数:
-
field
- 时间和状态向量元素所属的字段 -
name
- 方法的名称 -
nSteps
- 方法的步数,不包括正在计算的步骤 -
order
- 方法的阶数 -
minStep
- 最小步长(符号无关,无论是正向还是反向积分,最后一步可以小于此值) -
maxStep
- 最大步长(符号无关,无论是正向还是反向积分,最后一步可以小于此值) -
vecAbsoluteTolerance
- 允许的绝对误差 -
vecRelativeTolerance
- 允许的相对误差 - 抛出:
-
IllegalArgumentException
- 如果阶数小于等于1
-
-
方法详细资料
-
integrate
public FieldODEStateAndDerivative<T> integrate(FieldExpandableODE<T> equations, FieldODEState<T> initialState, T finalTime) throws MathIllegalArgumentException, MathIllegalStateException 将微分方程积分到给定时间。此方法解决初始值问题(IVP)。
由于此方法存储一些在积分期间在其公共接口中提供的内部状态变量(可通过
FieldODEIntegrator.getCurrentSignedStepsize()
访问),因此它不是线程安全的。- 参数:
-
equations
- 要积分的微分方程 -
initialState
- 初始状态(时间,主要和次要状态向量) -
finalTime
- 积分的目标时间(可以设置为小于t0
的值以进行反向积分) - 返回:
-
最终状态,其时间将与
finalTime
相同,如果积分达到目标,则可能不同,如果某个FieldODEEventHandler
在某个点停止它。 - 抛出:
-
MathIllegalArgumentException
- 如果积分步长太小 -
MathIllegalArgumentException
- 如果事件的位置无法被包围 -
MathIllegalStateException
- 如果函数评估次数超过限制
-
initializeHighOrderDerivatives
在步骤开始时初始化高阶缩放导数。- 指定者:
-
initializeHighOrderDerivatives
在类中MultistepFieldIntegrator<T extends CalculusFieldElement<T>>
- 参数:
-
h
- 用于缩放的步长 -
t
- 第一步的时间 -
y
- 第一步的状态 -
yDot
- 第一步的导数 - 返回:
- 第一步的Nordieck向量(h2/2 y''n, h3/6 y'''n ... hk/k! y(k)n)
-
updateHighOrderDerivativesPhase1
public Array2DRowFieldMatrix<T> updateHighOrderDerivativesPhase1(Array2DRowFieldMatrix<T> 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(T[] start, T[] end, Array2DRowFieldMatrix<T> 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(T[] previousState, T predictedTime, T[] predictedState, T[] predictedScaled, FieldMatrix<T> predictedNordsieck) 估计误差。- 参数:
-
previousState
- 步骤开始时的状态向量 -
predictedTime
- 步骤结束时的时间 -
predictedState
- 步骤结束时的预测状态向量 -
predictedScaled
- 步骤结束时的缩放导数预测值 -
predictedNordsieck
- 步骤结束时的Nordsieck向量预测值 - 返回:
- 估计的归一化局部离散化误差
- 从以下版本开始:
- 2.0
-
finalizeStep
protected abstract org.hipparchus.ode.nonstiff.AdamsFieldStateInterpolator<T> finalizeStep(T stepSize, T[] predictedState, T[] predictedScaled, Array2DRowFieldMatrix<T> predictedNordsieck, boolean isForward, FieldODEStateAndDerivative<T> globalPreviousState, FieldODEStateAndDerivative<T> globalCurrentState, FieldEquationsMapper<T> equationsMapper) 完成步骤。- 参数:
-
stepSize
- 在缩放和Nordsieck数组中使用的步长 -
predictedState
- 步长结束时的预测状态 -
predictedScaled
- 预测的第一个缩放导数 -
predictedNordsieck
- 预测的Nordsieck向量 -
isForward
- 积分方向指示器 -
globalPreviousState
- 全局步长的起点 -
globalCurrentState
- 全局步长的终点 -
equationsMapper
- ODE方程主要和次要组件的映射器 - 返回:
- 步长插值器
- 从以下版本开始:
- 2.0
-