org.apache.commons.math.optimization.fitting
Class HarmonicFitter

java.lang.Object
  extended by org.apache.commons.math.optimization.fitting.HarmonicFitter

public class HarmonicFitter
extends java.lang.Object

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
HarmonicFitter(DifferentiableMultivariateVectorialOptimizer optimizer)
          Simple constructor.
HarmonicFitter(DifferentiableMultivariateVectorialOptimizer optimizer, double[] initialGuess)
          Simple constructor.
 
Method Summary
 void addObservedPoint(double weight, double x, double y)
          Add an observed weighted (x,y) point to the sample.
 HarmonicFunction fit()
          Fit an harmonic function to the observed points.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

HarmonicFitter

public HarmonicFitter(DifferentiableMultivariateVectorialOptimizer optimizer)
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 fitting
initialGuess - guessed values for amplitude (index 0), pulsation ω (index 1) and phase φ (index 2)
Method Detail

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 fit
x - abscissa of the point
y - observed value of the point at x, after fitting we should have P(x) as close as possible to this value

fit

public HarmonicFunction fit()
                     throws OptimizationException
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


Copyright © 2003-2011 Apache Software Foundation. All Rights Reserved.