|
||||||||||
| 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.
| 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. |
void |
clearObservations()
Remove all observations. |
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 |
| Constructor Detail |
|---|
public CurveFitter(DifferentiableMultivariateVectorialOptimizer optimizer)
optimizer - optimizer to use for the fitting| Method 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 void clearObservations()
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 | |||||||||