public abstract class AdamsIntegrator extends MultistepIntegrator
Adams-Bashforth
and
Adams-Moulton
integrators.MultistepIntegrator.NordsieckTransformer
Constructor and Description |
---|
AdamsIntegrator(java.lang.String name,
int nSteps,
int order,
double minStep,
double maxStep,
double[] vecAbsoluteTolerance,
double[] vecRelativeTolerance)
Build an Adams integrator with the given order and step control parameters.
|
AdamsIntegrator(java.lang.String name,
int nSteps,
int order,
double minStep,
double maxStep,
double scalAbsoluteTolerance,
double scalRelativeTolerance)
Build an Adams integrator with the given order and step control prameters.
|
Modifier and Type | Method and Description |
---|---|
abstract double |
integrate(FirstOrderDifferentialEquations equations,
double t0,
double[] y0,
double t,
double[] y)
Integrate the differential equations up to the given time.
|
Array2DRowRealMatrix |
updateHighOrderDerivativesPhase1(Array2DRowRealMatrix highOrder)
Update the high order scaled derivatives for Adams integrators (phase 1).
|
void |
updateHighOrderDerivativesPhase2(double[] start,
double[] end,
Array2DRowRealMatrix highOrder)
Update the high order scaled derivatives Adams integrators (phase 2).
|
getMaxGrowth, getMinReduction, getSafety, getStarterIntegrator, setMaxGrowth, setMinReduction, setSafety, setStarterIntegrator
getCurrentStepStart, getMaxStep, getMinStep, initializeStep, setInitialStepSize
addEventHandler, addStepHandler, clearEventHandlers, clearStepHandlers, computeDerivatives, getCurrentSignedStepsize, getEvaluations, getEventHandlers, getMaxEvaluations, getName, getStepHandlers, setMaxEvaluations
public AdamsIntegrator(java.lang.String name, int nSteps, int order, double minStep, double maxStep, double scalAbsoluteTolerance, double scalRelativeTolerance) throws java.lang.IllegalArgumentException
name
- name of the methodnSteps
- number of steps of the method excluding the one being computedorder
- order of the methodminStep
- 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 errorjava.lang.IllegalArgumentException
- if order is 1 or lesspublic AdamsIntegrator(java.lang.String name, int nSteps, int order, double minStep, double maxStep, double[] vecAbsoluteTolerance, double[] vecRelativeTolerance) throws java.lang.IllegalArgumentException
name
- name of the methodnSteps
- number of steps of the method excluding the one being computedorder
- order of the methodminStep
- 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 errorjava.lang.IllegalArgumentException
- if order is 1 or lesspublic abstract double integrate(FirstOrderDifferentialEquations equations, double t0, double[] y0, double t, double[] y) throws DerivativeException, IntegratorException
This method solves an Initial Value Problem (IVP).
Since this method stores some internal state variables made
available in its public interface during integration (ODEIntegrator.getCurrentSignedStepsize()
), it is not thread-safe.
integrate
in interface FirstOrderIntegrator
integrate
in class AdaptiveStepsizeIntegrator
equations
- differential equations to integratet0
- initial timey0
- initial value of the state vector at t0t
- target time for the integration
(can be set to a value smaller than t0
for backward integration)y
- placeholder where to put the state vector at each successful
step (and hence at the end of integration), can be the same object as y0EventHandler
stops it at some point.DerivativeException
- this exception is propagated to the caller if
the underlying user function triggers oneIntegratorException
- if the integrator cannot perform integrationpublic Array2DRowRealMatrix updateHighOrderDerivativesPhase1(Array2DRowRealMatrix highOrder)
The complete update of high order derivatives has a form similar to:
rn+1 = (s1(n) - s1(n+1)) P-1 u + P-1 A P rnthis method computes the P-1 A P rn part.
highOrder
- high order scaled derivatives
(h2/2 y'', ... hk/k! y(k))updateHighOrderDerivativesPhase2(double[], double[], Array2DRowRealMatrix)
public void updateHighOrderDerivativesPhase2(double[] start, double[] end, Array2DRowRealMatrix highOrder)
The complete update of high order derivatives has a form similar to:
rn+1 = (s1(n) - s1(n+1)) P-1 u + P-1 A P rnthis method computes the (s1(n) - s1(n+1)) P-1 u part.
Phase 1 of the update must already have been performed.
start
- first order scaled derivatives at step startend
- first order scaled derivatives at step endhighOrder
- high order scaled derivatives, will be modified
(h2/2 y'', ... hk/k! y(k))updateHighOrderDerivativesPhase1(Array2DRowRealMatrix)
Copyright © 2010 - 2020 Adobe. All Rights Reserved