Class LutherFieldIntegrator<T extends RealFieldElement<T>>
java.lang.Object
org.apache.commons.math3.ode.AbstractFieldIntegrator<T>
org.apache.commons.math3.ode.nonstiff.RungeKuttaFieldIntegrator<T>
org.apache.commons.math3.ode.nonstiff.LutherFieldIntegrator<T>
- Type Parameters:
T
- the type of the field elements
- All Implemented Interfaces:
FirstOrderFieldIntegrator<T>
,FieldButcherArrayProvider<T>
public class LutherFieldIntegrator<T extends RealFieldElement<T>>
extends RungeKuttaFieldIntegrator<T>
This class implements the Luther sixth order Runge-Kutta
integrator for Ordinary Differential Equations.
This method is described in H. A. Luther 1968 paper An explicit Sixth-Order Runge-Kutta Formula.
This method is an explicit Runge-Kutta method, its Butcher-array is the following one :
0 | 0 0 0 0 0 0 1 | 1 0 0 0 0 0 1/2 | 3/8 1/8 0 0 0 0 2/3 | 8/27 2/27 8/27 0 0 0 (7-q)/14 | ( -21 + 9q)/392 ( -56 + 8q)/392 ( 336 - 48q)/392 ( -63 + 3q)/392 0 0 (7+q)/14 | (-1155 - 255q)/1960 ( -280 - 40q)/1960 ( 0 - 320q)/1960 ( 63 + 363q)/1960 ( 2352 + 392q)/1960 0 1 | ( 330 + 105q)/180 ( 120 + 0q)/180 ( -200 + 280q)/180 ( 126 - 189q)/180 ( -686 - 126q)/180 ( 490 - 70q)/180 |-------------------------------------------------------------------------------------------------------------------------------------------------- | 1/20 0 16/45 0 49/180 49/180 1/20where q = √21
- Since:
- 3.6
- See Also:
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionprotected org.apache.commons.math3.ode.nonstiff.LutherFieldStepInterpolator
<T> createInterpolator
(boolean forward, T[][] yDotK, FieldODEStateAndDerivative<T> globalPreviousState, FieldODEStateAndDerivative<T> globalCurrentState, FieldEquationsMapper<T> mapper) Create an interpolator.T[][]
getA()
Get the internal weights from Butcher array (without the first empty row).T[]
getB()
Get the external weights for the high order method from Butcher array.T[]
getC()
Get the time steps from Butcher array (without the first zero).Methods inherited from class org.apache.commons.math3.ode.nonstiff.RungeKuttaFieldIntegrator
fraction, integrate, singleStep
Methods inherited from class org.apache.commons.math3.ode.AbstractFieldIntegrator
acceptStep, addEventHandler, addEventHandler, addStepHandler, clearEventHandlers, clearStepHandlers, computeDerivatives, getCurrentSignedStepsize, getCurrentStepStart, getEquations, getEvaluations, getEvaluationsCounter, getEventHandlers, getField, getMaxEvaluations, getName, getStepHandlers, getStepSize, getStepStart, initIntegration, isLastStep, resetOccurred, sanityChecks, setIsLastStep, setMaxEvaluations, setStateInitialized, setStepSize, setStepStart
-
Constructor Details
-
LutherFieldIntegrator
Simple constructor. Build a fourth-order Luther integrator with the given step.- Parameters:
field
- field to which the time and state vector elements belongstep
- integration step
-
-
Method Details
-
getC
Get the time steps from Butcher array (without the first zero).- Returns:
- time steps from Butcher array (without the first zero
-
getA
Get the internal weights from Butcher array (without the first empty row).- Returns:
- internal weights from Butcher array (without the first empty row)
-
getB
Get the external weights for the high order method from Butcher array.- Returns:
- external weights for the high order method from Butcher array
-
createInterpolator
protected org.apache.commons.math3.ode.nonstiff.LutherFieldStepInterpolator<T> createInterpolator(boolean forward, T[][] yDotK, FieldODEStateAndDerivative<T> globalPreviousState, FieldODEStateAndDerivative<T> globalCurrentState, FieldEquationsMapper<T> mapper) Create an interpolator.- Specified by:
createInterpolator
in classRungeKuttaFieldIntegrator<T extends RealFieldElement<T>>
- Parameters:
forward
- integration direction indicatoryDotK
- slopes at the intermediate pointsglobalPreviousState
- start of the global stepglobalCurrentState
- end of the global stepmapper
- equations mapper for the all equations- Returns:
- external weights for the high order method from Butcher array
-