T
- the type of the field elementspublic interface FieldSecondaryODE<T extends RealFieldElement<T>>
In some cases users may need to integrate some problem-specific equations along with a primary set of differential equations. One example is optimal control where adjoined parameters linked to the minimized Hamiltonian must be integrated.
This interface allows users to add such equations to a primary set of first order differential equations
thanks to the FieldExpandableODE.addSecondaryEquations(FieldSecondaryODE)
method.
Modifier and Type | Method and Description |
---|---|
T[] |
computeDerivatives(T t,
T[] primary,
T[] primaryDot,
T[] secondary)
Compute the derivatives related to the secondary state parameters.
|
int |
getDimension()
Get the dimension of the secondary state parameters.
|
default void |
init(T t0,
T[] primary0,
T[] secondary0,
T finalTime)
Initialize equations at the start of an ODE integration.
|
int getDimension()
default void init(T t0, T[] primary0, T[] secondary0, T finalTime)
This method is called once at the start of the integration. It may be used by the equations to initialize some internal data if needed.
The default implementation does nothing.
t0
- value of the independent time variable at integration startprimary0
- array containing the value of the primary state vector at integration startsecondary0
- array containing the value of the secondary state vector at integration startfinalTime
- target time for the integrationT[] computeDerivatives(T t, T[] primary, T[] primaryDot, T[] secondary) throws MathIllegalArgumentException, MathIllegalStateException
t
- current value of the independent time variableprimary
- array containing the current value of the primary state vectorprimaryDot
- array containing the derivative of the primary state vectorsecondary
- array containing the current value of the secondary state vectorMathIllegalStateException
- if the number of functions evaluations is exceededMathIllegalArgumentException
- if arrays dimensions do not match equations settingsCopyright © 2016–2017 Hipparchus.org. All rights reserved.