Documentation of 'org.spaceroots.mantissa.fitting.HarmonicFitter' Java class
HarmonicFitter
org.spaceroots.mantissa.fitting

Class HarmonicFitter

  • All Implemented Interfaces:
    java.io.Serializable, EstimationProblem


    public class HarmonicFitter
    extends AbstractCurveFitter
    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 omega and the phase phi: f (t) = a cos (omega t + phi). They are searched by a least square estimator initialized with a rough guess based on integrals.

    This class is by no means optimized, neither versus space nor versus time performance.

    See Also:
    Serialized Form
    • Constructor Detail

      • HarmonicFitter

        public HarmonicFitter(Estimator estimator)
        Simple constructor.
        Parameters:
        estimator - estimator to use for the fitting
      • HarmonicFitter

        public HarmonicFitter(EstimatedParameter[] coefficients,
                              Estimator estimator)
        Simple constructor.

        This constructor can be used when a first estimate of the coefficients is already known.

        Parameters:
        coefficients - first estimate of the coefficients. A reference to this array is hold by the newly created object. Its elements will be adjusted during the fitting process and they will be set to the adjusted coefficients at the end.
        estimator - estimator to use for the fitting
      • HarmonicFitter

        public HarmonicFitter(int maxIterations,
                              double convergence,
                              double steadyStateThreshold,
                              double epsilon)
        Deprecated. replaced by HarmonicFitter(Estimator) as of version 7.0
        Simple constructor.
        Parameters:
        maxIterations - maximum number of iterations allowed
        convergence - criterion threshold below which we do not need to improve the criterion anymore
        steadyStateThreshold - steady state detection threshold, the problem has reached a steady state (read converged) if Math.abs (Jn - Jn-1) < Jn * convergence, where Jn and Jn-1 are the current and preceding criterion value (square sum of the weighted residuals of considered measurements).
        epsilon - threshold under which the matrix of the linearized problem is considered singular (see SquareMatrix.solve).
      • HarmonicFitter

        public HarmonicFitter(EstimatedParameter[] coefficients,
                              int maxIterations,
                              double convergence,
                              double steadyStateThreshold,
                              double epsilon)
        Deprecated. replaced by HarmonicFitter(EstimatedParameter[], Estimator) as of version 7.0
        Simple constructor.

        This constructor can be used when a first estimate of the coefficients is already known.

        Parameters:
        coefficients - first estimate of the coefficients. A reference to this array is hold by the newly created object. Its elements will be adjusted during the fitting process and they will be set to the adjusted coefficients at the end.
        maxIterations - maximum number of iterations allowed
        convergence - criterion threshold below which we do not need to improve the criterion anymore
        steadyStateThreshold - steady state detection threshold, the problem has reached a steady state (read converged) if Math.abs (Jn - Jn-1) < Jn * convergence, where Jn and Jn-1 are the current and preceding criterion value (square sum of the weighted residuals of considered measurements).
        epsilon - threshold under which the matrix of the linearized problem is considered singular (see SquareMatrix.solve).
    • Method Detail

      • fit

        public double[] fit()
                     throws EstimationException
        Description copied from class: AbstractCurveFitter
        Perform the fitting.

        This method compute the coefficients of the curve that best fit the sample of weighted pairs previously given through calls to the addWeightedPair method.

        Overrides:
        fit in class AbstractCurveFitter
        Returns:
        coefficients of the curve
        Throws:
        EstimationException - if the fitting is not possible (for example if the sample has to few independant points)
      • getAmplitude

        public double getAmplitude()
        Get the current amplitude coefficient estimate. Get a, where f (t) = a cos (omega t + phi)
        Returns:
        current amplitude coefficient estimate
      • getPulsation

        public double getPulsation()
        Get the current pulsation coefficient estimate. Get omega, where f (t) = a cos (omega t + phi)
        Returns:
        current pulsation coefficient estimate
      • getPhase

        public double getPhase()
        Get the current phase coefficient estimate. Get phi, where f (t) = a cos (omega t + phi)
        Returns:
        current phase coefficient estimate
      • valueAt

        public double valueAt(double x)
        Get the value of the function at x according to the current parameters value.
        Specified by:
        valueAt in class AbstractCurveFitter
        Parameters:
        x - abscissa at which the theoretical value is requested
        Returns:
        theoretical value at x
      • partial

        public double partial(double x,
                              EstimatedParameter p)
        Get the derivative of the function at x with respect to parameter p.
        Specified by:
        partial in class AbstractCurveFitter
        Parameters:
        x - abscissa at which the partial derivative is requested
        p - parameter with respect to which the derivative is requested
        Returns:
        partial derivative

DataMelt 3.0 © DataMelt by jWork.ORG

Ads help maintain this website.