## org.apache.commons.math3.fitting Class CurveFitter<T extends ParametricUnivariateFunction>

```java.lang.Object
org.apache.commons.math3.fitting.CurveFitter<T>
```
Type Parameters:
`T` - Function to use for the fit.
Direct Known Subclasses:
GaussianFitter, HarmonicFitter, PolynomialFitter

`public class CurveFitter<T extends ParametricUnivariateFunction>extends Object`

Fitter for parametric univariate real functions y = f(x).
When a univariate real function y = f(x) does depend on some unknown parameters p0, p1 ... pn-1, this class can be used to find these parameters. It does this by fitting the curve so it remains very close to a set of observed points (x0, y0), (x1, y1) ... (xk-1, yk-1). This fitting is done by finding the parameters values that minimizes the objective function ∑(yi-f(xi))2. This is really a least squares problem.

Since:
2.0
Version:
\$Id: CurveFitter.java 1416643 2012-12-03 19:37:14Z tn \$

Constructor Summary
`CurveFitter(MultivariateVectorOptimizer optimizer)`
Simple constructor.

Method Summary
` void` ```addObservedPoint(double x, double y)```
Add an observed (x,y) point to the sample with unit weight.
` void` ```addObservedPoint(double weight, double x, double y)```
Add an observed weighted (x,y) point to the sample.
` void` `addObservedPoint(WeightedObservedPoint observed)`
Add an observed weighted (x,y) point to the sample.
` void` `clearObservations()`
Remove all observations.
` double[]` ```fit(int maxEval, T f, double[] initialGuess)```
Fit a curve.
` double[]` ```fit(T f, double[] initialGuess)```
Fit a curve.
` WeightedObservedPoint[]` `getObservations()`
Get the observed points.

Methods inherited from class java.lang.Object
`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

Constructor Detail

### CurveFitter

`public CurveFitter(MultivariateVectorOptimizer optimizer)`
Simple constructor.

Parameters:
`optimizer` - Optimizer to use for the fitting.
Since:
3.1
Method Detail

```public void addObservedPoint(double x,
double y)```
Add an observed (x,y) point to the sample with unit weight.

Calling this method is equivalent to call `addObservedPoint(1.0, x, y)`.

Parameters:
`x` - abscissa of the point
`y` - observed value of the point at x, after fitting we should have f(x) as close as possible to this value
`addObservedPoint(double, double, double)`, `addObservedPoint(WeightedObservedPoint)`, `getObservations()`

```public void addObservedPoint(double weight,
double x,
double y)```
Add an observed weighted (x,y) point to the sample.

Parameters:
`weight` - weight of the observed point in the fit
`x` - abscissa of the point
`y` - observed value of the point at x, after fitting we should have f(x) as close as possible to this value
`addObservedPoint(double, double)`, `addObservedPoint(WeightedObservedPoint)`, `getObservations()`

`public void addObservedPoint(WeightedObservedPoint observed)`
Add an observed weighted (x,y) point to the sample.

Parameters:
`observed` - observed point to add
`addObservedPoint(double, double)`, `addObservedPoint(double, double, double)`, `getObservations()`

### getObservations

`public WeightedObservedPoint[] getObservations()`
Get the observed points.

Returns:
observed points
`addObservedPoint(double, double)`, `addObservedPoint(double, double, double)`, `addObservedPoint(WeightedObservedPoint)`

### clearObservations

`public void clearObservations()`
Remove all observations.

### fit

```public double[] fit(T f,
double[] initialGuess)```
Fit a curve. This method compute the coefficients of the curve that best fit the sample of observed points previously given through calls to the `addObservedPoint` method.

Parameters:
`f` - parametric function to fit.
`initialGuess` - first guess of the function parameters.
Returns:
the fitted parameters.
Throws:
`DimensionMismatchException` - if the start point dimension is wrong.

### fit

```public double[] fit(int maxEval,
T f,
double[] initialGuess)```
Fit a curve. This method compute the coefficients of the curve that best fit the sample of observed points previously given through calls to the `addObservedPoint` method.

Parameters:
`f` - parametric function to fit.
`initialGuess` - first guess of the function parameters.
`maxEval` - Maximum number of function evaluations.
Returns:
the fitted parameters.
Throws:
`TooManyEvaluationsException` - if the number of allowed evaluations is exceeded.
`DimensionMismatchException` - if the start point dimension is wrong.
Since:
3.0