Class JacobianMatrices

    • Constructor Detail

      • JacobianMatrices

        public JacobianMatrices​(FirstOrderDifferentialEquations fode,
                                double[] hY,
                                String... parameters)
                         throws DimensionMismatchException
        Simple constructor for a secondary equations set computing Jacobian matrices.

        Parameters must belong to the supported ones given by Parameterizable.getParametersNames(), so the primary set of differential equations must be Parameterizable.

        Note that each selection clears the previous selected parameters.

        Parameters:
        fode - the primary first order differential equations set to extend
        hY - step used for finite difference computation with respect to state vector
        parameters - parameters to consider for Jacobian matrices processing (may be null if parameters Jacobians is not desired)
        Throws:
        DimensionMismatchException - if there is a dimension mismatch between the steps array hY and the equation dimension
      • JacobianMatrices

        public JacobianMatrices​(MainStateJacobianProvider jode,
                                String... parameters)
        Simple constructor for a secondary equations set computing Jacobian matrices.

        Parameters must belong to the supported ones given by Parameterizable.getParametersNames(), so the primary set of differential equations must be Parameterizable.

        Note that each selection clears the previous selected parameters.

        Parameters:
        jode - the primary first order differential equations set to extend
        parameters - parameters to consider for Jacobian matrices processing (may be null if parameters Jacobians is not desired)
    • Method Detail

      • setParameterizedODE

        public void setParameterizedODE​(ParameterizedODE parameterizedOde)
        Set a parameter Jacobian provider.
        Parameters:
        parameterizedOde - the parameterized ODE to compute the parameter Jacobian matrix using finite differences
      • setParameterStep

        public void setParameterStep​(String parameter,
                                     double hP)
                              throws UnknownParameterException
        Set the step associated to a parameter in order to compute by finite difference the Jacobian matrix.

        Needed if and only if the primary ODE set is a ParameterizedODE.

        Given a non zero parameter value pval for the parameter, a reasonable value for such a step is pval * JdkMath.sqrt(Precision.EPSILON).

        A zero value for such a step doesn't enable to compute the parameter Jacobian matrix.

        Parameters:
        parameter - parameter to consider for Jacobian processing
        hP - step for Jacobian finite difference computation w.r.t. the specified parameter
        Throws:
        UnknownParameterException - if the parameter is not supported
        See Also:
        ParameterizedODE
      • setInitialMainStateJacobian

        public void setInitialMainStateJacobian​(double[][] dYdY0)
                                         throws DimensionMismatchException
        Set the initial value of the Jacobian matrix with respect to state.

        If this method is not called, the initial value of the Jacobian matrix with respect to state is set to identity.

        Parameters:
        dYdY0 - initial Jacobian matrix w.r.t. state
        Throws:
        DimensionMismatchException - if matrix dimensions are incorrect
      • getCurrentMainSetJacobian

        public void getCurrentMainSetJacobian​(double[][] dYdY0)
        Get the current value of the Jacobian matrix with respect to state.
        Parameters:
        dYdY0 - current Jacobian matrix with respect to state.
      • getCurrentParameterJacobian

        public void getCurrentParameterJacobian​(String pName,
                                                double[] dYdP)
        Get the current value of the Jacobian matrix with respect to one parameter.
        Parameters:
        pName - name of the parameter for the computed Jacobian matrix
        dYdP - current Jacobian matrix with respect to the named parameter