Class ClassicalRungeKuttaStateInterpolator
java.lang.Object
org.hipparchus.ode.sampling.AbstractODEStateInterpolator
org.hipparchus.ode.nonstiff.interpolators.RungeKuttaStateInterpolator
org.hipparchus.ode.nonstiff.interpolators.ClassicalRungeKuttaStateInterpolator
- All Implemented Interfaces:
Serializable
,ODEStateInterpolator
This class implements a step interpolator for the classical fourth
order Runge-Kutta integrator.
This interpolator allows to compute dense output inside the last step computed. The interpolation equation is consistent with the integration scheme :
- Using reference point at step start:
y(tn + θ h) = y (tn) + θ (h/6) [ (6 - 9 θ + 4 θ2) y'1 + ( 6 θ - 4 θ2) (y'2 + y'3) + ( -3 θ + 4 θ2) y'4 ] - Using reference point at step end:
y(tn + θ h) = y (tn + h) + (1 - θ) (h/6) [ (-4 θ^2 + 5 θ - 1) y'1 +(4 θ^2 - 2 θ - 2) (y'2 + y'3) -(4 θ^2 + θ + 1) y'4 ]
where θ belongs to [0 ; 1] and where y'1 to y'4 are the four evaluations of the derivatives already computed during the step.
- See Also:
-
Field Summary
Fields inherited from class org.hipparchus.ode.nonstiff.interpolators.RungeKuttaStateInterpolator
yDotK
-
Constructor Summary
ConstructorsConstructorDescriptionClassicalRungeKuttaStateInterpolator
(boolean forward, double[][] yDotK, ODEStateAndDerivative globalPreviousState, ODEStateAndDerivative globalCurrentState, ODEStateAndDerivative softPreviousState, ODEStateAndDerivative softCurrentState, EquationsMapper mapper) Simple constructor. -
Method Summary
Modifier and TypeMethodDescriptionprotected ODEStateAndDerivative
computeInterpolatedStateAndDerivatives
(EquationsMapper mapper, double time, double theta, double thetaH, double oneMinusThetaH) Compute the state and derivatives at the interpolated time.protected ClassicalRungeKuttaStateInterpolator
create
(boolean newForward, double[][] newYDotK, ODEStateAndDerivative newGlobalPreviousState, ODEStateAndDerivative newGlobalCurrentState, ODEStateAndDerivative newSoftPreviousState, ODEStateAndDerivative newSoftCurrentState, EquationsMapper newMapper) Create a new instance.Methods inherited from class org.hipparchus.ode.nonstiff.interpolators.RungeKuttaStateInterpolator
create, currentStateLinearCombination, derivativeLinearCombination, previousStateLinearCombination
Methods inherited from class org.hipparchus.ode.sampling.AbstractODEStateInterpolator
getCurrentState, getGlobalCurrentState, getGlobalPreviousState, getInterpolatedState, getMapper, getPreviousState, isCurrentStateInterpolated, isForward, isPreviousStateInterpolated, restrictStep
-
Constructor Details
-
ClassicalRungeKuttaStateInterpolator
public ClassicalRungeKuttaStateInterpolator(boolean forward, double[][] yDotK, ODEStateAndDerivative globalPreviousState, ODEStateAndDerivative globalCurrentState, ODEStateAndDerivative softPreviousState, ODEStateAndDerivative softCurrentState, EquationsMapper mapper) Simple constructor.- Parameters:
forward
- integration direction indicatoryDotK
- slopes at the intermediate pointsglobalPreviousState
- start of the global stepglobalCurrentState
- end of the global stepsoftPreviousState
- start of the restricted stepsoftCurrentState
- end of the restricted stepmapper
- equations mapper for the all equations
-
-
Method Details
-
create
protected ClassicalRungeKuttaStateInterpolator create(boolean newForward, double[][] newYDotK, ODEStateAndDerivative newGlobalPreviousState, ODEStateAndDerivative newGlobalCurrentState, ODEStateAndDerivative newSoftPreviousState, ODEStateAndDerivative newSoftCurrentState, EquationsMapper newMapper) Create a new instance.- Specified by:
create
in classRungeKuttaStateInterpolator
- Parameters:
newForward
- integration direction indicatornewYDotK
- slopes at the intermediate pointsnewGlobalPreviousState
- start of the global stepnewGlobalCurrentState
- end of the global stepnewSoftPreviousState
- start of the restricted stepnewSoftCurrentState
- end of the restricted stepnewMapper
- equations mapper for the all equations- Returns:
- a new instance
-
computeInterpolatedStateAndDerivatives
protected ODEStateAndDerivative computeInterpolatedStateAndDerivatives(EquationsMapper mapper, double time, double theta, double thetaH, double oneMinusThetaH) Compute the state and derivatives at the interpolated time. This is the main processing method that should be implemented by the derived classes to perform the interpolation.- Specified by:
computeInterpolatedStateAndDerivatives
in classAbstractODEStateInterpolator
- Parameters:
mapper
- mapper for ODE equations primary and secondary componentstime
- interpolation timetheta
- normalized interpolation abscissa within the step (theta is zero at the previous time step and one at the current time step)thetaH
- time gap between the previous time and the interpolated timeoneMinusThetaH
- time gap between the interpolated time and the current time- Returns:
- interpolated state and derivatives
-