Package org.apache.commons.math3.ode
Class ParameterJacobianWrapper
- java.lang.Object
-
- org.apache.commons.math3.ode.ParameterJacobianWrapper
-
- All Implemented Interfaces:
Parameterizable,ParameterJacobianProvider
class ParameterJacobianWrapper extends java.lang.Object implements ParameterJacobianProvider
Wrapper class to compute Jacobian matrices by finite differences for ODE which do not compute them by themselves.- Since:
- 3.0
-
-
Field Summary
Fields Modifier and Type Field Description private FirstOrderDifferentialEquationsfodeMain ODE set.private java.util.Map<java.lang.String,java.lang.Double>hParamSteps for finite difference computation of the Jacobian df/dp w.r.t.private ParameterizedODEpodeRaw ODE without Jacobian computation skill to be wrapped into a ParameterJacobianProvider.
-
Constructor Summary
Constructors Constructor Description ParameterJacobianWrapper(FirstOrderDifferentialEquations fode, ParameterizedODE pode, ParameterConfiguration[] paramsAndSteps)Wrap aParameterizedODEinto aParameterJacobianProvider.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description voidcomputeParameterJacobian(double t, double[] y, double[] yDot, java.lang.String paramName, double[] dFdP)Compute the Jacobian matrix of ODE with respect to one parameter.java.util.Collection<java.lang.String>getParametersNames()Get the names of the supported parameters.booleanisSupported(java.lang.String name)Check if a parameter is supported.
-
-
-
Field Detail
-
fode
private final FirstOrderDifferentialEquations fode
Main ODE set.
-
pode
private final ParameterizedODE pode
Raw ODE without Jacobian computation skill to be wrapped into a ParameterJacobianProvider.
-
hParam
private final java.util.Map<java.lang.String,java.lang.Double> hParam
Steps for finite difference computation of the Jacobian df/dp w.r.t. parameters.
-
-
Constructor Detail
-
ParameterJacobianWrapper
ParameterJacobianWrapper(FirstOrderDifferentialEquations fode, ParameterizedODE pode, ParameterConfiguration[] paramsAndSteps)
Wrap aParameterizedODEinto aParameterJacobianProvider.- Parameters:
fode- main first order differential equations setpode- secondary problem, without parameter Jacobian computation skillparamsAndSteps- parameters and steps to compute the Jacobians df/dp- See Also:
JacobianMatrices.setParameterStep(String, double)
-
-
Method Detail
-
getParametersNames
public java.util.Collection<java.lang.String> getParametersNames()
Get the names of the supported parameters.- Specified by:
getParametersNamesin interfaceParameterizable- Returns:
- parameters names
- See Also:
Parameterizable.isSupported(String)
-
isSupported
public boolean isSupported(java.lang.String name)
Check if a parameter is supported.Supported parameters are those listed by
Parameterizable.getParametersNames().- Specified by:
isSupportedin interfaceParameterizable- Parameters:
name- parameter name to check- Returns:
- true if the parameter is supported
- See Also:
Parameterizable.getParametersNames()
-
computeParameterJacobian
public void computeParameterJacobian(double t, double[] y, double[] yDot, java.lang.String paramName, double[] dFdP) throws DimensionMismatchException, MaxCountExceededExceptionCompute the Jacobian matrix of ODE with respect to one parameter.If the parameter does not belong to the collection returned by
Parameterizable.getParametersNames(), the Jacobian will be set to 0, but no errors will be triggered.- Specified by:
computeParameterJacobianin interfaceParameterJacobianProvider- Parameters:
t- current value of the independent time variabley- array containing the current value of the main state vectoryDot- array containing the current value of the time derivative of the main state vectorparamName- name of the parameter to considerdFdP- placeholder array where to put the Jacobian matrix of the ODE with respect to the parameter- Throws:
DimensionMismatchException- if arrays dimensions do not match equations settingsMaxCountExceededException- if the number of functions evaluations is exceeded
-
-