Top Description Fields Constructors Methods
org.apache.commons.math3.ode.nonstiff

public Class DormandPrince54Integrator

extends EmbeddedRungeKuttaIntegrator
Class Inheritance
Imports
org.apache.commons.math3.util.FastMath

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

Since
1.2

Field Summary

Modifier and TypeField and Description
private static final double
E1

Error array, element 1.

private static final double
E3

Error array, element 3.

private static final double
E4

Error array, element 4.

private static final double
E5

Error array, element 5.

private static final double
E6

Error array, element 6.

private static final double
E7

Error array, element 7.

private static final String
METHOD_NAME

Integrator method name.

private static final double[][]
STATIC_A

Internal weights Butcher array.

private static final double[]
STATIC_B

Propagation weights Butcher array.

private static final double[]
STATIC_C

Time steps Butcher array.

Constructor Summary

AccessConstructor and Description
public
DormandPrince54Integrator(final double
minimal step (sign is irrelevant, regardless of integration direction, forward or backward), the last step can be smaller than this
minStep
,
final double
maximal step (sign is irrelevant, regardless of integration direction, forward or backward), the last step can be smaller than this
maxStep
,
final double
allowed absolute error
scalAbsoluteTolerance
,
final double
allowed relative error
scalRelativeTolerance
)

Simple constructor.

public
DormandPrince54Integrator(final double
minimal step (sign is irrelevant, regardless of integration direction, forward or backward), the last step can be smaller than this
minStep
,
final double
maximal step (sign is irrelevant, regardless of integration direction, forward or backward), the last step can be smaller than this
maxStep
,
final double[]
allowed absolute error
vecAbsoluteTolerance
,
final double[]
allowed relative error
vecRelativeTolerance
)

Simple constructor.

Method Summary

Modifier and TypeMethod and Description
protected double
estimateError(final double[][]
derivatives computed during the first stages
yDotK
,
final double[]
estimate of the step at the start of the step
y0
,
final double[]
estimate of the step at the end of the step
y1
,
final double
current step
h
)

Implements abstract org.apache.commons.math3.ode.nonstiff.EmbeddedRungeKuttaIntegrator.estimateError.

Compute the error ratio.

public int
Inherited from org.apache.commons.math3.ode.nonstiff.EmbeddedRungeKuttaIntegrator:
getMaxGrowthgetMinReductiongetSafetyintegratesetMaxGrowthsetMinReductionsetSafety

Field Detail

E1back to summary
private static final double E1

Error array, element 1.

E3back to summary
private static final double E3

Error array, element 3.

E4back to summary
private static final double E4

Error array, element 4.

E5back to summary
private static final double E5

Error array, element 5.

E6back to summary
private static final double E6

Error array, element 6.

E7back to summary
private static final double E7

Error array, element 7.

METHOD_NAMEback to summary
private static final String METHOD_NAME

Integrator method name.

STATIC_Aback to summary
private static final double[][] STATIC_A

Internal weights Butcher array.

STATIC_Bback to summary
private static final double[] STATIC_B

Propagation weights Butcher array.

STATIC_Cback to summary
private static final double[] STATIC_C

Time steps Butcher array.

Constructor Detail

DormandPrince54Integratorback to summary
public DormandPrince54Integrator(final double minStep, final double maxStep, final double scalAbsoluteTolerance, final double scalRelativeTolerance)

Simple constructor. Build a fifth order Dormand-Prince integrator with the given step bounds

Parameters
minStep:double

minimal step (sign is irrelevant, regardless of integration direction, forward or backward), the last step can be smaller than this

maxStep:double

maximal step (sign is irrelevant, regardless of integration direction, forward or backward), the last step can be smaller than this

scalAbsoluteTolerance:double

allowed absolute error

scalRelativeTolerance:double

allowed relative error

DormandPrince54Integratorback to summary
public DormandPrince54Integrator(final double minStep, final double maxStep, final double[] vecAbsoluteTolerance, final double[] vecRelativeTolerance)

Simple constructor. Build a fifth order Dormand-Prince integrator with the given step bounds

Parameters
minStep:double

minimal step (sign is irrelevant, regardless of integration direction, forward or backward), the last step can be smaller than this

maxStep:double

maximal step (sign is irrelevant, regardless of integration direction, forward or backward), the last step can be smaller than this

vecAbsoluteTolerance:double[]

allowed absolute error

vecRelativeTolerance:double[]

allowed relative error

Method Detail

estimateErrorback to summary
protected double estimateError(final double[][] yDotK, final double[] y0, final double[] y1, final double h)

Implements abstract org.apache.commons.math3.ode.nonstiff.EmbeddedRungeKuttaIntegrator.estimateError.

Doc from org.apache.commons.math3.ode.nonstiff.EmbeddedRungeKuttaIntegrator.estimateError.

Compute the error ratio.

Parameters
yDotK:double[][]

derivatives computed during the first stages

y0:double[]

estimate of the step at the start of the step

y1:double[]

estimate of the step at the end of the step

h:double

current step

Returns:double

error ratio, greater than 1 if step should be rejected

Annotations
@Override
getOrderback to summary
public int getOrder()

Implements abstract org.apache.commons.math3.ode.nonstiff.EmbeddedRungeKuttaIntegrator.getOrder.

Doc from org.apache.commons.math3.ode.nonstiff.EmbeddedRungeKuttaIntegrator.getOrder.

Get the order of the method.

Returns:int

order of the method

Annotations
@Override