Implements the Levenberg-Marquardt algorithm for non-linear least-squares.

Namespace: Extreme.Mathematics.Curves
Assembly: Extreme.Numerics (Extreme.Numerics)

Syntax

Visual Basic (Declaration)
Public MustInherit Class CurveFitter
C#
public abstract class CurveFitter
C++
public ref class CurveFitter abstract

Methods

IconTypeDescription
Equals(Object)
Determines whether the specified Object is equal to the current Object.
Finalize()
Allows an Object to attempt to free resources and perform other cleanup operations before the Object is reclaimed by garbage collection.
Fit()
Calculates the least-squares fit.
GetHashCode()
Serves as a hash function for a particular type.
GetStandardDeviations()
Gets the standard deviations.
GetType()
Gets the Type of the current instance.
MemberwiseClone()
Creates a shallow copy of the current Object.
Scale(GeneralVector)
Scales the components of a vector using the values from ScaleVector.
Scale(Vector)
Scales the components of a vector using the values from ScaleVector.
ToString()
Returns a String that represents the current Object.
Unscale(GeneralVector)
Undoes the scaling of the components of a vector using the values from ScaleVector.
Unscale(Vector)
Undoes the scaling of the components of a vector using the values from ScaleVector.

Constructors

IconTypeDescription
CurveFitterNew()
Constructs a new NonlinearCurveFitter object.

Properties

IconTypeDescription
BestFitParameters
Gets the curve parameters corresponding to the best fit.
Curve
Gets or sets the curve that is being fitted.
InitialGuess
Gets or sets the initial value for the iteration.
Residuals
Gets the residuals for the observations.
ScaleVector
Gets or sets the Vector used to scale the curve parameters.
WeightFunction
Gets or sets the weight function.
WeightVector
Gets or sets the weight vector.
XValues
Gets or sets the vector of x-values.
YValues
Gets or sets the vector of y-values.

Remarks

Use the NonlinearCurveFitter class to fit data to a nonlinear curve by the method of least squares. The curve, which must be of a type that inherits from NonlinearCurve, is specified by the Curve property. The data is supplied as Vector objects through the XValues and YValues properties.

The Fit() method performs the actual curve fit. This method returns the Curve that best fits the supplied data. To verify that the algorithm terminated normally, you can inspect the Status property, which is of type AlgorithmStatus. A value of Normal indicates that the algorithm terminated normally. However, it is still possible that the algorithm didn't converge to the actual best fit. A visual inspection is always recommended.

By default, the observations are unweighted. You can supply a weighting method in two ways. You can set the WeightFunction property to a BivariateRealFunction delegate that computes the weight for each observation. The WeightFunctions class provides predefined delegates for the most common weight functions. Alternatively, you can set the individual weights by setting the WeightVector property to a Vector that contains the weight for each individual observation.

Inheritance Hierarchy

System.Object
  Extreme.Mathematics.Curves.CurveFitter