eLynx SDK
v3.3.0 C++ image processing API reference |
Interface to function of n-variables and m-parameters, which is non-linear in the meaning of parameters, and thus can't be directly used for least squares fitting. More...
#include <IFunctionNL.h>
Public Member Functions | |
virtual | ~IFunctionNL () |
Default virtual destructor implementation. | |
virtual uint32 | GetVariablesCount () const =0 |
Returns the number of function idependent variables (x, y, ...) | |
virtual uint32 | GetParametersCount () const =0 |
Returns the number of function parameters or coefficients. | |
virtual double | Evaluate (const IVector &iVars, const IVector &iParams) const =0 |
Evaluates the function value for given values of variables and parameters. | |
virtual double | EvalDerivativeByParam (const IVector &iVars, const IVector &iParams, uint32 iByParam) const =0 |
Evaluates the function derivative by given parameter. |
Interface to function of n-variables and m-parameters, which is non-linear in the meaning of parameters, and thus can't be directly used for least squares fitting.
There are no restrictions on linearity or non-linearity of variables. This interface is used to provide a function to the system of iterative non-linear function fitting. You need to be able to evaluate function derivatives by its parameters to implement this interface. Typical example of function for this interface is gaussian (bell) curve or it's 3D alternative.
virtual double eLynx::Math::IFunctionNL::EvalDerivativeByParam | ( | const IVector & | iVars, |
const IVector & | iParams, | ||
uint32 | iByParam | ||
) | const [pure virtual] |
Evaluates the function derivative by given parameter.
Both variable values and actual parameter values are given as vectors. The sizes of vectors must match the function specification. For example, for function y=e^(a*x)+b, the derivative by parameter a is y=x*e^(a*x), while derivative by parameter b is y = 1.
iVars | the vector of independent variables values |
iParams | the vector of function parameters values |
iByParam | the index of the parameter to compute derivative by |
Implemented in eLynx::Math::BellCurve, and eLynx::Math::BellSurface.
virtual double eLynx::Math::IFunctionNL::Evaluate | ( | const IVector & | iVars, |
const IVector & | iParams | ||
) | const [pure virtual] |
Evaluates the function value for given values of variables and parameters.
Both values and parameters are given as vectors. The sizes of vectors must match the function specification.
iVars | the vector of independent variables values |
iParams | the vector of function parameters values |
Implemented in eLynx::Math::BellCurve, and eLynx::Math::BellSurface.
virtual uint32 eLynx::Math::IFunctionNL::GetParametersCount | ( | ) | const [pure virtual] |
Returns the number of function parameters or coefficients.
Optimal values of these parameters are computed in the process of non-linear function fitting.
Implemented in eLynx::Math::BellCurve, and eLynx::Math::BellSurface.
virtual uint32 eLynx::Math::IFunctionNL::GetVariablesCount | ( | ) | const [pure virtual] |
Returns the number of function idependent variables (x, y, ...)
Implemented in eLynx::Math::BellCurve, and eLynx::Math::BellSurface.