Click or drag to resize

BoundedOneVariableFunctionFitterM Class

Class BoundedOneVariableFunctionFitter fits a parameterized one variable function to a set of points, where the functions parameters are constrained by upper and lower bounds.
Inheritance Hierarchy
SystemObject
  CenterSpace.NMath.CoreOneVariableFunctionFitterM
    CenterSpace.NMath.CoreBoundedOneVariableFunctionFitterM

Namespace: CenterSpace.NMath.Core
Assembly: NMath (in NMath.dll) Version: 7.4
Syntax
public class BoundedOneVariableFunctionFitter<M> : OneVariableFunctionFitter<M>
where M : new(), IBoundedNonlinearLeastSqMinimizer

Type Parameters

M

[Missing <typeparam name="M"/> documentation for "T:CenterSpace.NMath.Core.BoundedOneVariableFunctionFitter`1"]

The BoundedOneVariableFunctionFitterM type exposes the following members.

Constructors
 NameDescription
Public methodBoundedOneVariableFunctionFitterM(DoubleParameterizedFunction) Constructs a BddOneVariableFunctionFitter instance with the given parameterized function.
Public methodBoundedOneVariableFunctionFitterM(FuncDoubleVector, Double, Double) Constructs a BddOneVariableFunctionFitter instance with the given parameterized function delegate.
Public methodBoundedOneVariableFunctionFitterM(DoubleParameterizedFunction, M) Constructs a BddOneVariableFunctionFitter instance with the given parameterized function and minimizer.
Top
Properties
 NameDescription
Public propertyFunction Gets and sets the parameterized function.
(Inherited from OneVariableFunctionFitterM)
Public propertyMinimizer Gets and sets the function minimizer.
(Inherited from OneVariableFunctionFitterM)
Top
Methods
 NameDescription
Public methodClone Creates a deep copy of this OneVariableFunctionFitter.
(Inherited from OneVariableFunctionFitterM)
Public methodFit(DoubleVector, DoubleVector, DoubleVector) Fits a function to the specified points.
(Inherited from OneVariableFunctionFitterM)
Public methodFit(DoubleVector, DoubleVector, DoubleVector, DoubleVector) Fits a function to the specified points.
(Inherited from OneVariableFunctionFitterM)
Public methodFit(DoubleVector, DoubleVector, DoubleVector, DoubleVector, DoubleVector) Fits a function to the specified points.
Public methodResidualVector Computes the residual vector from the given data points and solution.
(Inherited from OneVariableFunctionFitterM)
Public methodWeightedResidualVector Computes the residual vector from the given data points and solution.
(Inherited from OneVariableFunctionFitterM)
Top
Fields
 NameDescription
Protected fieldminimizer_ The nonlinear least squares minimizer to use.
(Inherited from OneVariableFunctionFitterM)
Protected fieldparameterizedFunction_ Parameterized funtion.
(Inherited from OneVariableFunctionFitterM)
Protected fieldresidualFunction_ The actual funtion minimized by the minimizer.
(Inherited from OneVariableFunctionFitterM)
Top
Remarks
In the space of the function parameters, begining at a specified starting point, finds a minimum (possibly local) in the sum of the squared residuals with respect to a set of data points. Uses nonlinear least squares minimization with solution bounds to compute the solution. You must supply at least as many data points to fit as your function has parameters.
For example, the following code fits a 4-parameter logistic function to a set of 10 data points, beginning at point (0.1, 0.1, 0.1, 0.1) in a constrained parameter space.
C#
BoundedOneVariableFunctionFitter<TrustRegionMinimizer>; fitter = new BoundedOneVariableFunctionFitter<TrustRegionMinimizer>(NMathFunctions.FourParameterLogistic);

DoubleVector xValues = new DoubleVector(55, 64, 70, 76, 80, 90, 72, 65, 86, 75);
DoubleVector yValues = new DoubleVector(338, 328, 308, 225, 180, 142, 283, 325, 143, 250);
DoubleVector initialParameters = new DoubleVector("0.1 0.1 0.1 0.1");
DoubleVector parameterLowerBounds = new DoubleVector("-2.3, -4.5, -5.0, 0.0");
DoubleVector parameterUpperBounds = new DoubleVector("20.3, 14.5, 5.0, 10.0");
DoubleVector solution = fitter.Fit(xValues, yValues, initialParameters, parameterLowerBounds, parameterUpperBounds);
Note that problems can have multiple local minima. Trying different initial parameter points is recommended for better solutions.
See Also