public class CurveFitter extends Object
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 and Description |
|---|
CurveFitter(DifferentiableMultivariateVectorOptimizer optimizer)
Simple constructor.
|
| Modifier and Type | Method and Description |
|---|---|
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,
ParametricUnivariateFunction f,
double[] initialGuess)
Fit a curve.
|
double[] |
fit(ParametricUnivariateFunction f,
double[] initialGuess)
Fit a curve.
|
WeightedObservedPoint[] |
getObservations()
Get the observed points.
|
public CurveFitter(DifferentiableMultivariateVectorOptimizer optimizer)
optimizer - optimizer to use for the fittingpublic 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(ParametricUnivariateFunction f, double[] initialGuess)
addObservedPoint method.f - parametric function to fit.initialGuess - first guess of the function parameters.DimensionMismatchException - if the start point dimension is wrong.public double[] fit(int maxEval,
ParametricUnivariateFunction f,
double[] initialGuess)
addObservedPoint method.f - parametric function to fit.initialGuess - first guess of the function parameters.maxEval - Maximum number of function evaluations.TooManyEvaluationsException - if the number of allowed evaluations is exceeded.DimensionMismatchException - if the start point dimension is wrong.Copyright © 2003-2012 The Apache Software Foundation. All Rights Reserved.