Class AbstractCurveFitter
- java.lang.Object
-
- org.apache.commons.math4.legacy.fitting.AbstractCurveFitter
-
- Direct Known Subclasses:
SimpleCurveFitter
public abstract class AbstractCurveFitter extends Object
Base class that contains common code for fitting parametric univariate real functionsy = f(pi;x)
, wherex
is the independent variable and thepi
are the parameters.
A fitter will find the optimal values of the parameters by fitting the curve so it remains very close to a set ofN
observed points(xk, yk)
,0 <= k < N
.
An algorithm usually performs the fit by finding the parameter values that minimizes the objective function
which is actually a least-squares problem. This class contains boilerplate code for calling the∑yk - f(xk)2,
fit(Collection)
method for obtaining the parameters. The problem setup, such as the choice of optimization algorithm for fitting a specific function is delegated to subclasses.- Since:
- 3.3
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description protected static class
AbstractCurveFitter.TheoreticalValuesFunction
Vector function for computing function theoretical values.
-
Constructor Summary
Constructors Constructor Description AbstractCurveFitter()
-
Method Summary
All Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description double[]
fit(Collection<WeightedObservedPoint> points)
Fits a curve.protected LeastSquaresOptimizer
getOptimizer()
Creates an optimizer set up to fit the appropriate curve.protected abstract LeastSquaresProblem
getProblem(Collection<WeightedObservedPoint> points)
Creates a least squares problem corresponding to the appropriate curve.
-
-
-
Constructor Detail
-
AbstractCurveFitter
public AbstractCurveFitter()
-
-
Method Detail
-
fit
public double[] fit(Collection<WeightedObservedPoint> points)
Fits a curve. This method computes the coefficients of the curve that best fit the sample of observed points.- Parameters:
points
- Observations.- Returns:
- the fitted parameters.
-
getOptimizer
protected LeastSquaresOptimizer getOptimizer()
Creates an optimizer set up to fit the appropriate curve.The default implementation uses a
Levenberg-Marquardt
optimizer.- Returns:
- the optimizer to use for fitting the curve to the
given
points
.
-
getProblem
protected abstract LeastSquaresProblem getProblem(Collection<WeightedObservedPoint> points)
Creates a least squares problem corresponding to the appropriate curve.- Parameters:
points
- Sample points.- Returns:
- the least squares problem to use for fitting the curve to the
given
points
.
-
-