类 DormandPrince54Integrator
java.lang.Object
org.hipparchus.ode.AbstractIntegrator
org.hipparchus.ode.nonstiff.AdaptiveStepsizeIntegrator
org.hipparchus.ode.nonstiff.EmbeddedRungeKuttaIntegrator
org.hipparchus.ode.nonstiff.DormandPrince54Integrator
- 所有已实现的接口:
-
ButcherArrayProvider
,ODEIntegrator
该类实现了普通微分方程的5(4) Dormand-Prince积分器。
该积分器是一个5(4)阶的嵌入式Runge-Kutta积分器,采用本地外推模式(即使用高阶公式计算解)进行步长控制(和自动步长初始化)和连续输出。该方法每步使用7个函数评估。然而,由于这是一个fsal,一步的最后评估与下一步的第一个评估相同,因此可以避免。因此,实际成本是每步6个函数评估。
该方法已经发表(1986年Shampine添加了连续输出)在以下文章中:
一族嵌入式Runge-Kutta公式 J. R. Dormand and P. J. Prince Journal of Computational and Applied Mathematics volume 6, no 1, 1980, pp. 19-26
-
构造器概要
构造器说明DormandPrince54Integrator
(double minStep, double maxStep, double[] vecAbsoluteTolerance, double[] vecRelativeTolerance) 简单构造函数。DormandPrince54Integrator
(double minStep, double maxStep, double scalAbsoluteTolerance, double scalRelativeTolerance) 简单构造函数。 -
方法概要
修饰符和类型方法说明protected org.hipparchus.ode.nonstiff.DormandPrince54StateInterpolator
createInterpolator
(boolean forward, double[][] yDotK, ODEStateAndDerivative globalPreviousState, ODEStateAndDerivative globalCurrentState, EquationsMapper mapper) 创建一个插值器。protected double
estimateError
(double[][] yDotK, double[] y0, double[] y1, double h) 计算误差比率。double[][]
getA()
从Butcher数组获取内部权重(不包括第一行空行)。double[]
getB()
从Butcher数组获取高阶方法的外部权重。double[]
getC()
从Butcher数组获取时间步长(不包括第一个零)。int
getOrder()
获取方法的阶数。从类继承的方法 org.hipparchus.ode.nonstiff.EmbeddedRungeKuttaIntegrator
getMaxGrowth, getMinReduction, getSafety, integrate, setMaxGrowth, setMinReduction, setSafety
从类继承的方法 org.hipparchus.ode.nonstiff.AdaptiveStepsizeIntegrator
getMaxStep, getMinStep, getStepSizeHelper, initializeStep, resetInternalState, sanityChecks, setInitialStepSize, setStepSizeControl, setStepSizeControl
从类继承的方法 org.hipparchus.ode.AbstractIntegrator
acceptStep, addEventDetector, addStepEndHandler, addStepHandler, clearEventDetectors, clearStepEndHandlers, clearStepHandlers, computeDerivatives, getCurrentSignedStepsize, getEquations, getEvaluations, getEvaluationsCounter, getEventDetectors, getMaxEvaluations, getName, getStepEndHandlers, getStepHandlers, getStepSize, getStepStart, initIntegration, isLastStep, resetOccurred, setIsLastStep, setMaxEvaluations, setStateInitialized, setStepSize, setStepStart
从类继承的方法 java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
从接口继承的方法 org.hipparchus.ode.ODEIntegrator
integrate
-
构造器详细资料
-
DormandPrince54Integrator
public DormandPrince54Integrator(double minStep, double maxStep, double scalAbsoluteTolerance, double scalRelativeTolerance) 简单构造函数。使用给定的步长界限构建一个五阶Dormand-Prince积分器。- 参数:
-
minStep
- 最小步长(符号无关,无论积分方向是向前还是向后,最后一步可以小于此值) -
maxStep
- 最大步长(符号无关,无论积分方向是向前还是向后,最后一步可以小于此值) -
scalAbsoluteTolerance
- 允许的绝对误差 -
scalRelativeTolerance
- 允许的相对误差
-
DormandPrince54Integrator
public DormandPrince54Integrator(double minStep, double maxStep, double[] vecAbsoluteTolerance, double[] vecRelativeTolerance) 简单构造函数。使用给定的步长界限构建一个五阶Dormand-Prince积分器。- 参数:
-
minStep
- 最小步长(符号无关,无论积分方向是向前还是向后,最后一步可以小于此值) -
maxStep
- 最大步长(符号无关,无论积分方向是向前还是向后,最后一步可以小于此值) -
vecAbsoluteTolerance
- 允许的绝对误差 -
vecRelativeTolerance
- 允许的相对误差
-
-
方法详细资料
-
getC
public double[] getC()从Butcher数组获取时间步长(不包括第一个零)。- 返回:
- 从Butcher数组获取时间步长(不包括第一个零)
-
getA
public double[][] getA()从Butcher数组获取内部权重(不包括第一行空行)。- 返回:
- 从Butcher数组获取内部权重(不包括第一行空行)
-
getB
public double[] getB()从Butcher数组获取高阶方法的外部权重。- 返回:
- 从Butcher数组获取高阶方法的外部权重
-
createInterpolator
protected org.hipparchus.ode.nonstiff.DormandPrince54StateInterpolator createInterpolator(boolean forward, double[][] yDotK, ODEStateAndDerivative globalPreviousState, ODEStateAndDerivative globalCurrentState, EquationsMapper mapper) 创建一个插值器。- 指定者:
-
createInterpolator
在类中EmbeddedRungeKuttaIntegrator
- 参数:
-
forward
- 积分方向指示器 -
yDotK
- 中间点的斜率 -
globalPreviousState
- 全局步骤的起始点 -
globalCurrentState
- 全局步骤的结束点 -
mapper
- 所有方程的方程映射器 - 返回:
- 从Butcher数组获取高阶方法的外部权重
-
getOrder
public int getOrder()获取方法的阶数。- 指定者:
-
getOrder
在类中EmbeddedRungeKuttaIntegrator
- 返回:
- 方法的阶数
-
estimateError
protected double estimateError(double[][] yDotK, double[] y0, double[] y1, double h) 计算误差比率。- 指定者:
-
estimateError
在类中EmbeddedRungeKuttaIntegrator
- 参数:
-
yDotK
- 在第一阶段计算的导数 -
y0
- 步骤开始时的估计 -
y1
- 步骤结束时的估计 -
h
- 当前步长 - 返回:
- 误差比率,如果步骤应该被拒绝,则大于1
-