Class NonLinearLeastSquare


  • public class NonLinearLeastSquare
    extends Object
    Non linear least square calculator.
    • Constructor Detail

      • NonLinearLeastSquare

        public NonLinearLeastSquare()
    • Method Detail

      • solve

        public LeastSquareResults solve​(DoubleArray x,
                                        DoubleArray y,
                                        ParameterizedFunction<Double,​DoubleArray,​Double> func,
                                        DoubleArray startPos)
        Use this when the model is in the ParameterizedFunction form and analytic parameter sensitivity is not available.
        Parameters:
        x - Set of measurement points
        y - Set of measurement values
        func - The model in ParameterizedFunction form (i.e. takes measurement points and a set of parameters and returns a model value)
        startPos - Initial value of the parameters
        Returns:
        A LeastSquareResults object
      • solve

        public LeastSquareResults solve​(DoubleArray x,
                                        DoubleArray y,
                                        double sigma,
                                        ParameterizedFunction<Double,​DoubleArray,​Double> func,
                                        DoubleArray startPos)
        Use this when the model is in the ParameterizedFunction form and analytic parameter sensitivity is not available but a measurement error is.
        Parameters:
        x - Set of measurement points
        y - Set of measurement values
        sigma - y Set of measurement errors
        func - The model in ParameterizedFunction form (i.e. takes measurement points and a set of parameters and returns a model value)
        startPos - Initial value of the parameters
        Returns:
        A LeastSquareResults object
      • solve

        public LeastSquareResults solve​(DoubleArray x,
                                        DoubleArray y,
                                        DoubleArray sigma,
                                        ParameterizedFunction<Double,​DoubleArray,​Double> func,
                                        DoubleArray startPos)
        Use this when the model is in the ParameterizedFunction form and analytic parameter sensitivity is not available but an array of measurements errors is.
        Parameters:
        x - Set of measurement points
        y - Set of measurement values
        sigma - Set of measurement errors
        func - The model in ParameterizedFunction form (i.e. takes measurement points and a set of parameters and returns a model value)
        startPos - Initial value of the parameters
        Returns:
        A LeastSquareResults object
      • solve

        public LeastSquareResults solve​(DoubleArray x,
                                        DoubleArray y,
                                        ParameterizedFunction<Double,​DoubleArray,​Double> func,
                                        ParameterizedFunction<Double,​DoubleArray,​DoubleArray> grad,
                                        DoubleArray startPos)
        Use this when the model is in the ParameterizedFunction form and analytic parameter sensitivity.
        Parameters:
        x - Set of measurement points
        y - Set of measurement values
        func - The model in ParameterizedFunction form (i.e. takes a measurement points and a set of parameters and returns a model value)
        grad - The model parameter sensitivities in ParameterizedFunction form (i.e. takes a measurement points and a set of parameters and returns a model parameter sensitivities)
        startPos - Initial value of the parameters
        Returns:
        value of the fitted parameters
      • solve

        public LeastSquareResults solve​(DoubleArray x,
                                        DoubleArray y,
                                        double sigma,
                                        ParameterizedFunction<Double,​DoubleArray,​Double> func,
                                        ParameterizedFunction<Double,​DoubleArray,​DoubleArray> grad,
                                        DoubleArray startPos)
        Use this when the model is in the ParameterizedFunction form and analytic parameter sensitivity and a single measurement error are available.
        Parameters:
        x - Set of measurement points
        y - Set of measurement values
        sigma - Measurement errors
        func - The model in ParameterizedFunction form (i.e. takes a measurement points and a set of parameters and returns a model value)
        grad - The model parameter sensitivities in ParameterizedFunction form (i.e. takes a measurement points and a set of parameters and returns a model parameter sensitivities)
        startPos - Initial value of the parameters
        Returns:
        value of the fitted parameters
      • solve

        public LeastSquareResults solve​(DoubleArray x,
                                        DoubleArray y,
                                        DoubleArray sigma,
                                        ParameterizedFunction<Double,​DoubleArray,​Double> func,
                                        ParameterizedFunction<Double,​DoubleArray,​DoubleArray> grad,
                                        DoubleArray startPos)
        Use this when the model is in the ParameterizedFunction form and analytic parameter sensitivity and measurement errors are available.
        Parameters:
        x - Set of measurement points
        y - Set of measurement values
        sigma - Set of measurement errors
        func - The model in ParameterizedFunction form (i.e. takes a measurement points and a set of parameters and returns a model value)
        grad - The model parameter sensitivities in ParameterizedFunction form (i.e. takes a measurement points and a set of parameters and returns a model parameter sensitivities)
        startPos - Initial value of the parameters
        Returns:
        value of the fitted parameters
      • solve

        public LeastSquareResults solve​(DoubleArray observedValues,
                                        Function<DoubleArray,​DoubleArray> func,
                                        DoubleArray startPos)
        Use this when the model is given as a function of its parameters only (i.e. a function that takes a set of parameters and return a set of model values, so the measurement points are already known to the function), and analytic parameter sensitivity is not available
        Parameters:
        observedValues - Set of measurement values
        func - The model as a function of its parameters only
        startPos - Initial value of the parameters
        Returns:
        value of the fitted parameters
      • solve

        public LeastSquareResults solve​(DoubleArray observedValues,
                                        DoubleArray sigma,
                                        Function<DoubleArray,​DoubleArray> func,
                                        DoubleArray startPos)
        Use this when the model is given as a function of its parameters only (i.e. a function that takes a set of parameters and return a set of model values, so the measurement points are already known to the function), and analytic parameter sensitivity is not available
        Parameters:
        observedValues - Set of measurement values
        sigma - Set of measurement errors
        func - The model as a function of its parameters only
        startPos - Initial value of the parameters
        Returns:
        value of the fitted parameters
      • solve

        public LeastSquareResults solve​(DoubleArray observedValues,
                                        DoubleArray sigma,
                                        Function<DoubleArray,​DoubleArray> func,
                                        DoubleArray startPos,
                                        DoubleArray maxJumps)
        Use this when the model is given as a function of its parameters only (i.e. a function that takes a set of parameters and return a set of model values, so the measurement points are already known to the function), and analytic parameter sensitivity is not available
        Parameters:
        observedValues - Set of measurement values
        sigma - Set of measurement errors
        func - The model as a function of its parameters only
        startPos - Initial value of the parameters
        maxJumps - A vector containing the maximum absolute allowed step in a particular direction in each iteration. Can be null, in which case no constant on the step size is applied.
        Returns:
        value of the fitted parameters
      • solve

        public LeastSquareResults solve​(DoubleArray observedValues,
                                        DoubleArray sigma,
                                        Function<DoubleArray,​DoubleArray> func,
                                        Function<DoubleArray,​DoubleMatrix> jac,
                                        DoubleArray startPos)
        Use this when the model is given as a function of its parameters only (i.e. a function that takes a set of parameters and return a set of model values, so the measurement points are already known to the function), and analytic parameter sensitivity is available
        Parameters:
        observedValues - Set of measurement values
        sigma - Set of measurement errors
        func - The model as a function of its parameters only
        jac - The model sensitivity to its parameters (i.e. the Jacobian matrix) as a function of its parameters only
        startPos - Initial value of the parameters
        Returns:
        value of the fitted parameters
      • solve

        public LeastSquareResults solve​(DoubleArray observedValues,
                                        DoubleArray sigma,
                                        Function<DoubleArray,​DoubleArray> func,
                                        Function<DoubleArray,​DoubleMatrix> jac,
                                        DoubleArray startPos,
                                        DoubleArray maxJumps)
        Use this when the model is given as a function of its parameters only (i.e. a function that takes a set of parameters and return a set of model values, so the measurement points are already known to the function), and analytic parameter sensitivity is available
        Parameters:
        observedValues - Set of measurement values
        sigma - Set of measurement errors
        func - The model as a function of its parameters only
        jac - The model sensitivity to its parameters (i.e. the Jacobian matrix) as a function of its parameters only
        startPos - Initial value of the parameters
        maxJumps - A vector containing the maximum absolute allowed step in a particular direction in each iteration. Can be null, in which case on constant on the step size is applied.
        Returns:
        value of the fitted parameters
      • solve

        public LeastSquareResults solve​(DoubleArray observedValues,
                                        DoubleArray sigma,
                                        Function<DoubleArray,​DoubleArray> func,
                                        Function<DoubleArray,​DoubleMatrix> jac,
                                        DoubleArray startPos,
                                        Function<DoubleArray,​Boolean> constraints,
                                        DoubleArray maxJumps)
        Use this when the model is given as a function of its parameters only (i.e. a function that takes a set of parameters and return a set of model values, so the measurement points are already known to the function), and analytic parameter sensitivity is available
        Parameters:
        observedValues - Set of measurement values
        sigma - Set of measurement errors
        func - The model as a function of its parameters only
        jac - The model sensitivity to its parameters (i.e. the Jacobian matrix) as a function of its parameters only
        startPos - Initial value of the parameters
        constraints - A function that returns true if the trial point is within the constraints of the model
        maxJumps - A vector containing the maximum absolute allowed step in a particular direction in each iteration. Can be null, in which case on constant on the step size is applied.
        Returns:
        value of the fitted parameters
      • calInverseJacobian

        public DoubleMatrix calInverseJacobian​(DoubleArray sigma,
                                               Function<DoubleArray,​DoubleArray> func,
                                               Function<DoubleArray,​DoubleMatrix> jac,
                                               DoubleArray originalSolution)
        the inverse-Jacobian where the i-j entry is the sensitivity of the ith (fitted) parameter (a_i) to the jth data point (y_j).
        Parameters:
        sigma - Set of measurement errors
        func - The model as a function of its parameters only
        jac - The model sensitivity to its parameters (i.e. the Jacobian matrix) as a function of its parameters only
        originalSolution - The value of the parameters at a converged solution
        Returns:
        inverse-Jacobian