|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectorg.apache.commons.math.ode.AbstractIntegrator
org.apache.commons.math.ode.nonstiff.AdaptiveStepsizeIntegrator
org.apache.commons.math.ode.nonstiff.EmbeddedRungeKuttaIntegrator
org.apache.commons.math.ode.nonstiff.DormandPrince54Integrator
public class DormandPrince54Integrator
This class implements the 5(4) Dormand-Prince integrator for Ordinary Differential Equations.
This integrator is an embedded Runge-Kutta 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
Field Summary | |
---|---|
private static double |
e1
Error array, element 1. |
private static double |
e3
Error array, element 3. |
private static double |
e4
Error array, element 4. |
private static double |
e5
Error array, element 5. |
private static double |
e6
Error array, element 6. |
private static double |
e7
Error array, element 7. |
private static java.lang.String |
METHOD_NAME
Integrator method name. |
private static double[][] |
staticA
Internal weights Butcher array. |
private static double[] |
staticB
Propagation weights Butcher array. |
private static double[] |
staticC
Time steps Butcher array. |
Fields inherited from class org.apache.commons.math.ode.nonstiff.AdaptiveStepsizeIntegrator |
---|
scalAbsoluteTolerance, scalRelativeTolerance, vecAbsoluteTolerance, vecRelativeTolerance |
Fields inherited from class org.apache.commons.math.ode.AbstractIntegrator |
---|
eventsHandlersManager, stepHandlers, stepSize, stepStart |
Constructor Summary | |
---|---|
DormandPrince54Integrator(double minStep,
double maxStep,
double[] vecAbsoluteTolerance,
double[] vecRelativeTolerance)
Simple constructor. |
|
DormandPrince54Integrator(double minStep,
double maxStep,
double scalAbsoluteTolerance,
double scalRelativeTolerance)
Simple constructor. |
Method Summary | |
---|---|
protected double |
estimateError(double[][] yDotK,
double[] y0,
double[] y1,
double h)
Compute the error ratio. |
int |
getOrder()
Get the order of the method. |
Methods inherited from class org.apache.commons.math.ode.nonstiff.EmbeddedRungeKuttaIntegrator |
---|
getMaxGrowth, getMinReduction, getSafety, integrate, setMaxGrowth, setMinReduction, setSafety |
Methods inherited from class org.apache.commons.math.ode.nonstiff.AdaptiveStepsizeIntegrator |
---|
filterStep, getCurrentStepStart, getMaxStep, getMinStep, initializeStep, resetInternalState, sanityChecks, setInitialStepSize |
Methods inherited from class org.apache.commons.math.ode.AbstractIntegrator |
---|
addEndTimeChecker, addEventHandler, addStepHandler, clearEventHandlers, clearStepHandlers, computeDerivatives, getCurrentSignedStepsize, getEvaluations, getEventHandlers, getMaxEvaluations, getName, getStepHandlers, requiresDenseOutput, resetEvaluations, setEquations, setMaxEvaluations |
Methods inherited from class java.lang.Object |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Field Detail |
---|
private static final java.lang.String METHOD_NAME
private static final double[] staticC
private static final double[][] staticA
private static final double[] staticB
private static final double e1
private static final double e3
private static final double e4
private static final double e5
private static final double e6
private static final double e7
Constructor Detail |
---|
public 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 errorMethod Detail |
---|
public int getOrder()
getOrder
in class EmbeddedRungeKuttaIntegrator
protected double estimateError(double[][] yDotK, double[] y0, double[] y1, double h)
estimateError
in class EmbeddedRungeKuttaIntegrator
yDotK
- 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 step
|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |