@Deprecated
public class FirstOrderIntegratorWithJacobians
extends java.lang.Object
In order to compute both the state and its derivatives, the ODE problem is extended with jacobians of the raw ODE and the variational equations are added to form a new compound problem of higher dimension. If the original ODE problem has dimension n and there are p parameters, the compound problem will have dimension n × (1 + n + p).
ParameterizedODE
,
ODEWithJacobians
Constructor and Description |
---|
FirstOrderIntegratorWithJacobians(FirstOrderIntegrator integrator,
ODEWithJacobians ode)
Deprecated.
Build an enhanced integrator using ODE builtin jacobian computation features.
|
FirstOrderIntegratorWithJacobians(FirstOrderIntegrator integrator,
ParameterizedODE ode,
double[] p,
double[] hY,
double[] hP)
Deprecated.
Build an enhanced integrator using internal differentiation to compute jacobians.
|
Modifier and Type | Method and Description |
---|---|
void |
addEventHandler(EventHandlerWithJacobians handler,
double maxCheckInterval,
double convergence,
int maxIterationCount)
Deprecated.
Add an event handler to the integrator.
|
void |
addStepHandler(StepHandlerWithJacobians handler)
Deprecated.
Add a step handler to this integrator.
|
void |
clearEventHandlers()
Deprecated.
Remove all the event handlers that have been added to the integrator.
|
void |
clearStepHandlers()
Deprecated.
Remove all the step handlers that have been added to the integrator.
|
double |
getCurrentSignedStepsize()
Deprecated.
Get the current signed value of the integration stepsize.
|
double |
getCurrentStepStart()
Deprecated.
Get the current value of the step start time ti.
|
int |
getEvaluations()
Deprecated.
Get the number of evaluations of the differential equations function.
|
java.util.Collection<EventHandlerWithJacobians> |
getEventHandlers()
Deprecated.
Get all the event handlers that have been added to the integrator.
|
int |
getMaxEvaluations()
Deprecated.
Get the maximal number of functions evaluations.
|
java.util.Collection<StepHandlerWithJacobians> |
getStepHandlers()
Deprecated.
Get all the step handlers that have been added to the integrator.
|
double |
integrate(double t0,
double[] y0,
double[][] dY0dP,
double t,
double[] y,
double[][] dYdY0,
double[][] dYdP)
Deprecated.
Integrate the differential equations and the variational equations up to the given time.
|
void |
setMaxEvaluations(int maxEvaluations)
Deprecated.
Set the maximal number of differential equations function evaluations.
|
public FirstOrderIntegratorWithJacobians(FirstOrderIntegrator integrator, ParameterizedODE ode, double[] p, double[] hY, double[] hP)
integrator
- underlying integrator to solve the compound problemode
- original problem (f in the equation y' = f(t, y))p
- parameters array (may be null if getParametersDimension()
from original problem is zero)hY
- step sizes to use for computing the jacobian df/dy, must have the
same dimension as the original problemhP
- step sizes to use for computing the jacobian df/dp, must have the
same dimension as the original problem parameters dimensionFirstOrderIntegratorWithJacobians(FirstOrderIntegrator,
ODEWithJacobians)
public FirstOrderIntegratorWithJacobians(FirstOrderIntegrator integrator, ODEWithJacobians ode)
integrator
- underlying integrator to solve the compound problemode
- original problem, which can compute the jacobians by itselfFirstOrderIntegratorWithJacobians(FirstOrderIntegrator,
ParameterizedODE, double[], double[], double[])
public void addStepHandler(StepHandlerWithJacobians handler)
The handler will be called by the integrator for each accepted step.
handler
- handler for the accepted stepsgetStepHandlers()
,
clearStepHandlers()
public java.util.Collection<StepHandlerWithJacobians> getStepHandlers()
addStepHandler(StepHandlerWithJacobians)
,
clearStepHandlers()
public void clearStepHandlers()
public void addEventHandler(EventHandlerWithJacobians handler, double maxCheckInterval, double convergence, int maxIterationCount)
handler
- event handlermaxCheckInterval
- maximal time interval between switching
function checks (this interval prevents missing sign changes in
case the integration steps becomes very large)convergence
- convergence threshold in the event time searchmaxIterationCount
- upper limit of the iteration count in
the event time searchgetEventHandlers()
,
clearEventHandlers()
public java.util.Collection<EventHandlerWithJacobians> getEventHandlers()
addEventHandler(EventHandlerWithJacobians, double, double, int)
,
clearEventHandlers()
public void clearEventHandlers()
public double integrate(double t0, double[] y0, double[][] dY0dP, double t, double[] y, double[][] dYdY0, double[][] dYdP) throws DerivativeException, IntegratorException
This method solves an Initial Value Problem (IVP) and also computes the derivatives of the solution with respect to initial state and parameters. This can be used as a basis to solve Boundary Value Problems (BVP).
Since this method stores some internal state variables made
available in its public interface during integration (getCurrentSignedStepsize()
), it is not thread-safe.
t0
- initial timey0
- initial value of the state vector at t0dY0dP
- initial value of the state vector derivative with respect to the
parameters 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 y0dYdY0
- placeholder where to put the state vector derivative with respect
to the initial state (dy[i]/dy0[j] is in element array dYdY0[i][j]) at each successful
step (and hence at the end of integration)dYdP
- placeholder where to put the state vector derivative with respect
to the parameters (dy[i]/dp[j] is in element array dYdP[i][j]) at each successful
step (and hence at the end of integration)IntegratorException
- if the integrator cannot perform integrationDerivativeException
- this exception is propagated to the caller if
the underlying user function triggers onepublic double getCurrentStepStart()
This method can be called during integration (typically by
the object implementing the differential equations
problem) if the value of the current step that
is attempted is needed.
The result is undefined if the method is called outside of
calls to integrate
.
public double getCurrentSignedStepsize()
This method can be called during integration (typically by
the object implementing the differential equations
problem) if the signed value of the current stepsize
that is tried is needed.
The result is undefined if the method is called outside of
calls to integrate
.
public void setMaxEvaluations(int maxEvaluations)
The purpose of this method is to avoid infinite loops which can occur for example when stringent error constraints are set or when lots of discrete events are triggered, thus leading to many rejected steps.
maxEvaluations
- maximal number of function evaluations (negative
values are silently converted to maximal integer value, thus representing
almost unlimited evaluations)public int getMaxEvaluations()
public int getEvaluations()
The number of evaluations corresponds to the last call to the
integrate
method. It is 0 if the method has not been called yet.
Copyright © 2010 - 2020 Adobe. All Rights Reserved