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
    • 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.