|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectorg.apache.commons.math.optimization.fitting.CurveFitter
public class CurveFitter
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.
Nested Class Summary | |
---|---|
private class |
CurveFitter.TheoreticalValuesFunction
Vectorial function computing function theoretical values. |
Field Summary | |
---|---|
private List<WeightedObservedPoint> |
observations
Observed points. |
private DifferentiableMultivariateVectorialOptimizer |
optimizer
Optimizer to use for the fitting. |
Constructor Summary | |
---|---|
CurveFitter(DifferentiableMultivariateVectorialOptimizer 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. |
double[] |
fit(ParametricRealFunction 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 |
Field Detail |
---|
private final DifferentiableMultivariateVectorialOptimizer optimizer
private final List<WeightedObservedPoint> observations
Constructor Detail |
---|
public CurveFitter(DifferentiableMultivariateVectorialOptimizer optimizer)
optimizer
- optimizer to use for the fittingMethod Detail |
---|
public void addObservedPoint(double x, double y)
Calling this method is equivalent to call
addObservedPoint(1.0, x, y)
.
x
- abscissa of the pointy
- observed value of the point at x, after fitting we should
have f(x) as close as possible to this valueaddObservedPoint(double, double, double)
,
addObservedPoint(WeightedObservedPoint)
,
getObservations()
public void addObservedPoint(double weight, double x, double y)
weight
- weight of the observed point in the fitx
- abscissa of the pointy
- observed value of the point at x, after fitting we should
have f(x) as close as possible to this valueaddObservedPoint(double, double)
,
addObservedPoint(WeightedObservedPoint)
,
getObservations()
public void addObservedPoint(WeightedObservedPoint observed)
observed
- observed point to addaddObservedPoint(double, double)
,
addObservedPoint(double, double, double)
,
getObservations()
public WeightedObservedPoint[] getObservations()
addObservedPoint(double, double)
,
addObservedPoint(double, double, double)
,
addObservedPoint(WeightedObservedPoint)
public double[] fit(ParametricRealFunction f, double[] initialGuess) throws FunctionEvaluationException, OptimizationException, IllegalArgumentException
This method compute the coefficients of the curve that best
fit the sample of observed points previously given through calls
to the addObservedPoint
method.
f
- parametric function to fitinitialGuess
- first guess of the function parameters
FunctionEvaluationException
- if the objective function throws one during
the search
OptimizationException
- if the algorithm failed to converge
IllegalArgumentException
- if the start point dimension is wrong
|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |