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), wherexis the independent variable and thepiare the parameters.
A fitter will find the optimal values of the parameters by fitting the curve so it remains very close to a set ofNobserved 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 classAbstractCurveFitter.TheoreticalValuesFunctionVector 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 LeastSquaresOptimizergetOptimizer()Creates an optimizer set up to fit the appropriate curve.protected abstract LeastSquaresProblemgetProblem(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-Marquardtoptimizer.- 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.
-
-