Package org.apache.commons.math3.fitting

# Class GaussianCurveFitter

java.lang.Object
org.apache.commons.math3.fitting.AbstractCurveFitter
org.apache.commons.math3.fitting.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

## Nested Class Summary

Nested Classes
Modifier and Type
Class
Description
`static class`
`GaussianCurveFitter.ParameterGuesser`
Guesses the parameters `norm`, `mean`, and `sigma` of a `Gaussian.Parametric` based on the specified observed points.

## Nested classes/interfaces inherited from class org.apache.commons.math3.fitting.AbstractCurveFitter

`AbstractCurveFitter.TheoreticalValuesFunction`

## Method Summary

Modifier and Type
Method
Description
`static GaussianCurveFitter`
`create()`
Creates a default curve fitter.
`protected LeastSquaresProblem`
`getProblem(Collection<WeightedObservedPoint> observations)`
Creates a least squares problem corresponding to the appropriate curve.
`GaussianCurveFitter`
`withMaxIterations(int newMaxIter)`
Configure the maximum number of iterations.
`GaussianCurveFitter`
`withStartPoint(double[] newStart)`
Configure the start point (initial guess).

### Methods inherited from class org.apache.commons.math3.fitting.AbstractCurveFitter

`fit, getOptimizer`

### Methods inherited from class java.lang.Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

## Method Details

### create

public static GaussianCurveFitter create()
Creates a default curve fitter. The initial guess for the parameters will be `GaussianCurveFitter.ParameterGuesser` computed automatically, and the maximum number of iterations of the optimization algorithm is set to `Integer.MAX_VALUE`.

Returns:
  a curve fitter.
See Also:
  - `withStartPoint(double[])`
  - `withMaxIterations(int)`

### 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(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`.