Class HarmonicFitter
java.lang.Object
org.apache.commons.math.optimization.fitting.HarmonicFitter
This class implements a curve fitting specialized for sinusoids.
Harmonic fitting is a very simple case of curve fitting. The
estimated coefficients are the amplitude a, the pulsation ω and
the phase φ: f (t) = a cos (ω t + φ)
. They are
searched by a least square estimator initialized with a rough guess
based on integrals.
- Since:
- 2.0
- Version:
- $Revision: 1073158 $ $Date: 2011-02-21 22:46:52 +0100 (lun. 21 févr. 2011) $
-
Constructor Summary
ConstructorsConstructorDescriptionSimple constructor.HarmonicFitter
(DifferentiableMultivariateVectorialOptimizer optimizer, double[] initialGuess) Simple constructor. -
Method Summary
Modifier and TypeMethodDescriptionvoid
addObservedPoint
(double weight, double x, double y) Add an observed weighted (x,y) point to the sample.fit()
Fit an harmonic function to the observed points.
-
Constructor Details
-
HarmonicFitter
Simple constructor.- Parameters:
optimizer
- optimizer to use for the fitting
-
HarmonicFitter
public HarmonicFitter(DifferentiableMultivariateVectorialOptimizer optimizer, double[] initialGuess) Simple constructor.This constructor can be used when a first guess of the coefficients is already known.
- Parameters:
optimizer
- optimizer to use for the fittinginitialGuess
- guessed values for amplitude (index 0), pulsation ω (index 1) and phase φ (index 2)
-
-
Method Details
-
addObservedPoint
public void addObservedPoint(double weight, double x, double y) Add an observed weighted (x,y) point to the sample.- Parameters:
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 P(x) as close as possible to this value
-
fit
Fit an harmonic function to the observed points.- Returns:
- harmonic function best fitting the observed points
- Throws:
OptimizationException
- if the sample is too short or if the first guess cannot be computed
-