Class GaussianCurveFitter


  • public class GaussianCurveFitter
    extends AbstractCurveFitter
    Fits points to a Gaussian function.
    The initial guess values must be passed in the following order:
    • Normalization
    • Mean
    • Sigma
    The optimal values will be returned in the same order.

    Usage example:

       WeightedObservedPoints obs = new WeightedObservedPoints();
       obs.add(4.0254623,  531026.0);
       obs.add(4.03128248, 984167.0);
       obs.add(4.03839603, 1887233.0);
       obs.add(4.04421621, 2687152.0);
       obs.add(4.05132976, 3461228.0);
       obs.add(4.05326982, 3580526.0);
       obs.add(4.05779662, 3439750.0);
       obs.add(4.0636168,  2877648.0);
       obs.add(4.06943698, 2175960.0);
       obs.add(4.07525716, 1447024.0);
       obs.add(4.08237071, 717104.0);
       obs.add(4.08366408, 620014.0);
       double[] parameters = GaussianCurveFitter.create().fit(obs.toList());
     
    Since:
    3.3
    • Field Detail

      • FUNCTION

        private static final Gaussian.Parametric FUNCTION
        Parametric function to be fitted.
      • initialGuess

        private final double[] initialGuess
        Initial guess.
      • maxIter

        private final int maxIter
        Maximum number of iterations of the optimization algorithm.
    • Constructor Detail

      • GaussianCurveFitter

        private GaussianCurveFitter​(double[] initialGuess,
                                    int maxIter)
        Contructor used by the factory methods.
        Parameters:
        initialGuess - Initial guess. If set to null, the initial guess will be estimated using the GaussianCurveFitter.ParameterGuesser.
        maxIter - Maximum number of iterations of the optimization algorithm.
    • Method Detail

      • withStartPoint

        public GaussianCurveFitter withStartPoint​(double[] newStart)
        Configure the start point (initial guess).
        Parameters:
        newStart - new start point (initial guess)
        Returns:
        a new instance.
      • withMaxIterations

        public GaussianCurveFitter withMaxIterations​(int newMaxIter)
        Configure the maximum number of iterations.
        Parameters:
        newMaxIter - maximum number of iterations
        Returns:
        a new instance.
      • getProblem

        protected LeastSquaresProblem getProblem​(java.util.Collection<WeightedObservedPoint> observations)
        Creates a least squares problem corresponding to the appropriate curve.
        Specified by:
        getProblem in class AbstractCurveFitter
        Parameters:
        observations - Sample points.
        Returns:
        the least squares problem to use for fitting the curve to the given points.