public class DormandPrince54Integrator extends RungeKuttaFehlbergIntegrator
This integrator is an embedded Runge-Kutta-Fehlberg integrator of order 5(4) used in local extrapolation mode (i.e. the solution is computed using the high order formula) with stepsize control (and automatic step initialization) and continuous output. This method uses 7 functions evaluations per step. However, since this is an fsal, the last evaluation of one step is the same as the first evaluation of the next step and hence can be avoided. So the cost is really 6 functions evaluations per step.
This method has been published (whithout the continuous output that was added by Shampine in 1986) in the following article :
A family of embedded Runge-Kutta formulae J. R. Dormand and P. J. Prince Journal of Computational and Applied Mathematics volume 6, no 1, 1980, pp. 19-26
handler, scalAbsoluteTolerance, scalRelativeTolerance, stepSize, stepStart, switchesHandler, vecAbsoluteTolerance, vecRelativeTolerance| Constructor and Description |
|---|
DormandPrince54Integrator(double minStep,
double maxStep,
double[] vecAbsoluteTolerance,
double[] vecRelativeTolerance)
Simple constructor.
|
DormandPrince54Integrator(double minStep,
double maxStep,
double scalAbsoluteTolerance,
double scalRelativeTolerance)
Simple constructor.
|
| Modifier and Type | Method and Description |
|---|---|
protected double |
estimateError(double[][] yDotK,
double[] y0,
double[] y1,
double h)
Compute the error ratio.
|
java.lang.String |
getName()
Get the name of the method.
|
int |
getOrder()
Get the order of the method.
|
getMaxGrowth, getMinReduction, getSafety, integrate, setMaxGrowth, setMinReduction, setSafetyaddSwitchingFunction, filterStep, getCurrentStepsize, getCurrentStepStart, getMaxStep, getMinStep, getStepHandler, initializeStep, resetInternalState, setInitialStepSize, setStepHandlerpublic DormandPrince54Integrator(double minStep,
double maxStep,
double scalAbsoluteTolerance,
double scalRelativeTolerance)
minStep - minimal step (must be positive even for backward
integration), the last step can be smaller than thismaxStep - maximal step (must be positive even for backward
integration)scalAbsoluteTolerance - allowed absolute errorscalRelativeTolerance - allowed relative errorpublic DormandPrince54Integrator(double minStep,
double maxStep,
double[] vecAbsoluteTolerance,
double[] vecRelativeTolerance)
minStep - minimal step (must be positive even for backward
integration), the last step can be smaller than thismaxStep - maximal step (must be positive even for backward
integration)vecAbsoluteTolerance - allowed absolute errorvecRelativeTolerance - allowed relative errorpublic java.lang.String getName()
getName in interface FirstOrderIntegratorgetName in class RungeKuttaFehlbergIntegratorpublic int getOrder()
getOrder in class RungeKuttaFehlbergIntegratorprotected double estimateError(double[][] yDotK,
double[] y0,
double[] y1,
double h)
estimateError in class RungeKuttaFehlbergIntegratoryDotK - derivatives computed during the first stagesy0 - estimate of the step at the start of the stepy1 - estimate of the step at the end of the steph - current stepCopyright © 2001-2007 Luc Maisonobe. All Rights Reserved.