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
-
Constructor Summary
ConstructorsConstructorDescriptionSimple constructor.HarmonicFitter(DifferentiableMultivariateVectorialOptimizer optimizer, double[] initialGuess) Simple constructor. -
Method Summary
Modifier and TypeMethodDescriptionvoidaddObservedPoint(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
-