|
casacore
|
Solve non-linear fit with Levenberg-Marquardt method. More...
#include <NonLinearFitLM.h>
Public Member Functions | |
| NonLinearFitLM (Bool svd=False) | |
| Create a fitter: the normal way to generate a fitter object. More... | |
| NonLinearFitLM (const NonLinearFitLM &other) | |
| Copy constructor (deep copy) More... | |
| NonLinearFitLM & | operator= (const NonLinearFitLM &other) |
| Assignment (deep copy) More... | |
| virtual | ~NonLinearFitLM () |
| Destructor. More... | |
Public Member Functions inherited from casacore::NonLinearFit< T > | |
| NonLinearFit (Bool svd=False) | |
| Create a fitter: the normal way to generate a fitter object. More... | |
| NonLinearFit (const NonLinearFit &other) | |
| Copy constructor (deep copy) More... | |
| NonLinearFit & | operator= (const NonLinearFit &other) |
| Assignment (deep copy) More... | |
| virtual | ~NonLinearFit () |
| Destructor. More... | |
| void | setMaxIter (uInt maxIter=MAXITER) |
| setMaxIter() sets the maximum number of iterations to do before stopping. More... | |
| uInt | getMaxIter () const |
| getMaxIter() queries what the maximum number of iterations currently is More... | |
| uInt | currentIteration () const |
| currentIteration() queries what the current iteration is More... | |
| void | setCriteria (const Double criteria=CRITERIUM) |
| setCriteria() sets the convergence criteria. More... | |
| Double | getCriteria () const |
| getCriteria() queries the current criteria More... | |
| Bool | converged () const |
| Check to see if the fit has converged. More... | |
Public Member Functions inherited from casacore::GenericL2Fit< T > | |
| GenericL2Fit () | |
| Create a fitter: the normal way to generate a fitter object. More... | |
| GenericL2Fit (const GenericL2Fit &other) | |
| Copy constructor (deep copy) More... | |
| GenericL2Fit & | operator= (const GenericL2Fit &other) |
| Assignment (deep copy) More... | |
| virtual | ~GenericL2Fit () |
| Destructor. More... | |
| template<class U > | |
| void | setFunction (const Function< U, U > &function) |
| Sets the function to be fitted. More... | |
| template<class U > | |
| Bool | setConstraint (const uInt n, const Function< U, U > &function, const Vector< typename FunctionTraits< T >::BaseType > &x, const typename FunctionTraits< T >::BaseType y=typename FunctionTraits< T >::BaseType(0)) |
| Set the possible constraint functions. More... | |
| Bool | setConstraint (const uInt n, const Vector< typename FunctionTraits< T >::BaseType > &x, const typename FunctionTraits< T >::BaseType y=typename FunctionTraits< T >::BaseType(0)) |
| Bool | setConstraint (const uInt n, const typename FunctionTraits< T >::BaseType y=typename FunctionTraits< T >::BaseType(0)) |
| Bool | addConstraint (const Function< typename FunctionTraits< T >::DiffType, typename FunctionTraits< T >::DiffType > &function, const Vector< typename FunctionTraits< T >::BaseType > &x, const typename FunctionTraits< T >::BaseType y=typename FunctionTraits< T >::BaseType(0)) |
| Bool | addConstraint (const Vector< typename FunctionTraits< T >::BaseType > &x, const typename FunctionTraits< T >::BaseType y=typename FunctionTraits< T >::BaseType(0)) |
| Bool | addConstraint (const typename FunctionTraits< T >::BaseType y=typename FunctionTraits< T >::BaseType(0)) |
| void | setCollinearity (const Double cln) |
| Set the collinearity factor as the square of the sine of the minimum angle allowed between input vectors (default zero for non-SVD, 1e-8 for SVD) More... | |
| void | asWeight (const Bool aswgt) |
| Set sigma values to be interpreted as weight (i.e. More... | |
| void | asSVD (const Bool svd) |
| Set the use of SVD or not (default). More... | |
| Function< typename FunctionTraits< T >::DiffType, typename FunctionTraits< T >::DiffType > * | fittedFunction () |
| Return a pointer to the function being fitted. More... | |
| const Function< typename FunctionTraits< T >::DiffType, typename FunctionTraits< T >::DiffType > * | fittedFunction () const |
| uInt | fittedNumber () const |
| Return the number of fitted parameters. More... | |
| uInt | NConstraints () |
| Return the number of constraints, and pointers to constraint functions. More... | |
| Function< typename FunctionTraits< T >::DiffType, typename FunctionTraits< T >::DiffType > * | getConstraint (const uInt n) |
| Vector< typename LSQTraits< typename FunctionTraits< T >::BaseType >::base > | getSVDConstraint (uInt n) |
Return the nth constraint equation derived from SVD Note that the number present will be given by getDeficiency() More... | |
| void | setParameterValues (const Vector< typename FunctionTraits< T >::BaseType > &parms) |
| Set the parameter values. More... | |
| void | setMaskedParameterValues (const Vector< typename FunctionTraits< T >::BaseType > &parms) |
| Vector< typename FunctionTraits< T >::BaseType > | fit (const Vector< typename FunctionTraits< T >::BaseType > &x, const Vector< typename FunctionTraits< T >::BaseType > &y, const Vector< typename FunctionTraits< T >::BaseType > &sigma, const Vector< Bool > *const mask=0) |
| Fit the function to the data. More... | |
| Vector< typename FunctionTraits< T >::BaseType > | fit (const Matrix< typename FunctionTraits< T >::BaseType > &x, const Vector< typename FunctionTraits< T >::BaseType > &y, const Vector< typename FunctionTraits< T >::BaseType > &sigma, const Vector< Bool > *const mask=0) |
| Vector< typename FunctionTraits< T >::BaseType > | fit (const Vector< typename FunctionTraits< T >::BaseType > &x, const Vector< typename FunctionTraits< T >::BaseType > &y, const Vector< Bool > *const mask=0) |
| Vector< typename FunctionTraits< T >::BaseType > | fit (const Matrix< typename FunctionTraits< T >::BaseType > &x, const Vector< typename FunctionTraits< T >::BaseType > &y, const Vector< Bool > *const mask=0) |
| Vector< typename FunctionTraits< T >::BaseType > | fit (const Vector< Bool > *const mask=0) |
| Bool | fit (Vector< typename FunctionTraits< T >::BaseType > &sol, const Vector< typename FunctionTraits< T >::BaseType > &x, const Vector< typename FunctionTraits< T >::BaseType > &y, const Vector< typename FunctionTraits< T >::BaseType > &sigma, const Vector< Bool > *const mask=0) |
| Bool | fit (Vector< typename FunctionTraits< T >::BaseType > &sol, const Matrix< typename FunctionTraits< T >::BaseType > &x, const Vector< typename FunctionTraits< T >::BaseType > &y, const Vector< typename FunctionTraits< T >::BaseType > &sigma, const Vector< Bool > *const mask=0) |
| Bool | fit (Vector< typename FunctionTraits< T >::BaseType > &sol, const Vector< typename FunctionTraits< T >::BaseType > &x, const Vector< typename FunctionTraits< T >::BaseType > &y, const typename FunctionTraits< T >::BaseType &sigma, const Vector< Bool > *const mask=0) |
| Bool | fit (Vector< typename FunctionTraits< T >::BaseType > &sol, const Matrix< typename FunctionTraits< T >::BaseType > &x, const Vector< typename FunctionTraits< T >::BaseType > &y, const typename FunctionTraits< T >::BaseType &sigma, const Vector< Bool > *const mask=0) |
| Bool | fit (Vector< typename FunctionTraits< T >::BaseType > &sol, const Vector< Bool > *const mask=0) |
| Double | chiSquare () const |
| Obtain the chi squared. More... | |
| const Vector< typename FunctionTraits< T >::BaseType > & | errors () const |
| Get the errors on the solved values. More... | |
| Bool | errors (Vector< typename FunctionTraits< T >::BaseType > &err) const |
| Matrix< Double > | compuCovariance () |
| Get covariance matrix. More... | |
| void | compuCovariance (Matrix< Double > &cov) |
| void | buildNormalMatrix (const Vector< typename FunctionTraits< T >::BaseType > &x, const Vector< typename FunctionTraits< T >::BaseType > &y, const Vector< typename FunctionTraits< T >::BaseType > &sigma, const Vector< Bool > *const mask=0) |
| Generate the normal equations by one or more calls to the buildNormalMatrix(), before calling a fit() without arguments. More... | |
| void | buildNormalMatrix (const Matrix< typename FunctionTraits< T >::BaseType > &x, const Vector< typename FunctionTraits< T >::BaseType > &y, const Vector< typename FunctionTraits< T >::BaseType > &sigma, const Vector< Bool > *const mask=0) |
| void | buildNormalMatrix (const Vector< typename FunctionTraits< T >::BaseType > &x, const Vector< typename FunctionTraits< T >::BaseType > &y, const Vector< Bool > *const mask=0) |
| void | buildNormalMatrix (const Matrix< typename FunctionTraits< T >::BaseType > &x, const Vector< typename FunctionTraits< T >::BaseType > &y, const Vector< Bool > *const mask=0) |
| Bool | residual (Vector< typename FunctionTraits< T >::BaseType > &y, const Array< typename FunctionTraits< T >::BaseType > &x, const Vector< typename FunctionTraits< T >::BaseType > &sol, const Bool model=False) |
| Return the residual after a fit in y. More... | |
| Bool | residual (Vector< typename FunctionTraits< T >::BaseType > &y, const Array< typename FunctionTraits< T >::BaseType > &x, const Bool model=False) |
| uInt | getRank () const |
| Get the rank of the solution (or zero of no fit() done yet). More... | |
Protected Member Functions | |
| virtual Bool | fitIt (Vector< typename FunctionTraits< T >::BaseType > &sol, const Array< typename FunctionTraits< T >::BaseType > &x, const Vector< typename FunctionTraits< T >::BaseType > &y, const Vector< typename FunctionTraits< T >::BaseType > *const sigma, const Vector< Bool > *const mask=0) |
| Generalised fitter. More... | |
Protected Member Functions inherited from casacore::GenericL2Fit< T > | |
| void | buildMatrix (const Array< typename FunctionTraits< T >::BaseType > &x, const Vector< typename FunctionTraits< T >::BaseType > &y, const Vector< typename FunctionTraits< T >::BaseType > *const sigma, const Vector< Bool > *const mask=0) |
| Build the normal matrix. More... | |
| void | buildConstraint () |
| Build the constraint equations. More... | |
| void | fillSVDConstraints () |
| Get the SVD constraints. More... | |
| Bool | buildResidual (Vector< typename FunctionTraits< T >::BaseType > &y, const Array< typename FunctionTraits< T >::BaseType > &x, const Vector< typename FunctionTraits< T >::BaseType > *const sol, const Bool model=False) |
| Calculate residuals. More... | |
| FunctionTraits< T >::BaseType | getVal_p (const Array< typename FunctionTraits< T >::BaseType > &x, uInt j, uInt i) const |
| Function to get evaluated functional value. More... | |
| void | initfit_p (uInt parcnt) |
| Initialise the fitter with number of solvable parameters. More... | |
| uInt | testInput_p (const Array< typename FunctionTraits< T >::BaseType > &x, const Vector< typename FunctionTraits< T >::BaseType > &y, const Vector< typename FunctionTraits< T >::BaseType > *const sigma) |
| Return number of condition equations and check sizes x, y, sigma. More... | |
| void | resetFunction () |
| Reset all the input. More... | |
Private Attributes | |
| Double | lamda_p |
| The parameter that makes this the Levenberg-Marquardt method. More... | |
| Double | fitit_p |
| The current fit state. More... | |
Additional Inherited Members | |
Public Attributes inherited from casacore::GenericL2Fit< T > | |
| const Double | COLLINEARITY |
| Default collinearity test for SVD. More... | |
Static Public Attributes inherited from casacore::NonLinearFit< T > | |
| static const uInt | MAXITER |
| Default maximum number of iterations (30) More... | |
| static const Double | CRITERIUM |
| Default convergence criterium (0.001) More... | |
Protected Attributes inherited from casacore::NonLinearFit< T > | |
| uInt | maxiter_p |
| Maximum number of iterations. More... | |
| uInt | curiter_p |
| Current iteration number. More... | |
| Double | criterium_p |
| Convergence criteria. More... | |
| Bool | converge_p |
| Has fit converged. More... | |
Protected Attributes inherited from casacore::GenericL2Fit< T > | |
| uInt | aCount_ai |
| Adjustable. More... | |
| Bool | svd_p |
| SVD indicator. More... | |
| Function< typename FunctionTraits< T >::DiffType, typename FunctionTraits< T >::DiffType > * | ptr_derive_p |
| Function to use in evaluating condition equation. More... | |
| PtrBlock< Function< typename FunctionTraits< T >::DiffType, typename FunctionTraits< T >::DiffType > * > | constrFun_p |
| List of functions describing the possible constraint equations e.g. More... | |
| PtrBlock< Vector< typename FunctionTraits< T >::BaseType > * > | constrArg_p |
| List of vectors describing the constraint equations' arguments. More... | |
| PtrBlock< typename FunctionTraits< T >::BaseType * > | constrVal_p |
| List of values describing the constraint equations' value. More... | |
| uInt | pCount_p |
| Number of available parameters. More... | |
| uInt | ndim_p |
| Number of dimensions of input data. More... | |
| Bool | needInit_p |
| No normal equations yet. More... | |
| Bool | solved_p |
| Have solution. More... | |
| Bool | errors_p |
| Have errors. More... | |
| Bool | ferrors_p |
| Bool | asweight_p |
| Interpret as weights rather than as sigma the given values. More... | |
| uInt | nr_p |
| The rank of the solution. More... | |
| Vector< typename FunctionTraits< T >::BaseType > | condEq_p |
| Condition equation parameters (for number of adjustable parameters) More... | |
| Vector< typename FunctionTraits< T >::BaseType > | fullEq_p |
| Equation for all available parameters. More... | |
| Vector< typename FunctionTraits< T >::ArgType > | arg_p |
| Contiguous argument areas. More... | |
| Vector< typename FunctionTraits< T >::ArgType > | carg_p |
| Vector< typename FunctionTraits< T >::BaseType > | sol_p |
| Local solution area. More... | |
| Vector< typename FunctionTraits< T >::BaseType > | fsol_p |
| Vector< typename FunctionTraits< T >::BaseType > | err_p |
| Local error area. More... | |
| Vector< typename FunctionTraits< T >::BaseType > | ferr_p |
| FunctionTraits< T >::DiffType | valder_p |
| Local value and derivatives. More... | |
| Vector< Vector< typename LSQTraits< typename FunctionTraits< T >::BaseType >::base > > | consvd_p |
| Local SVD constraints. More... | |
Solve non-linear fit with Levenberg-Marquardt method.
This class uses the Levenberg-Marquardt method to solve the non-linear least-squares fit problem hence NonLinearFitLM
NOTE: Constraints added. Documentation out of date at moment, check the tLinearFitSVD and tNonLinearFirLM programs for examples.
See the NonLinearFit class for a general description.
This class is derived from the general NonLinearFit class. It does a non-linear least-squares fit using the Levenberg-Marquardt method.
See Numerical Recipes for more information on the Levenberg-Marquardt method.
Levenberg-Marquardt method is a standard method for non-linear least-squares fits. It works well in practice over a wide range of problems.
Definition at line 87 of file NonLinearFitLM.h.
|
explicit |
Create a fitter: the normal way to generate a fitter object.
Necessary data will be deduced from the Functional provided with setFunction(). Optionally, a fitter with SVD behaviour
| casacore::NonLinearFitLM< T >::NonLinearFitLM | ( | const NonLinearFitLM< T > & | other | ) |
Copy constructor (deep copy)
|
virtual |
Destructor.
|
protectedvirtual |
Generalised fitter.
Implements casacore::NonLinearFit< T >.
| NonLinearFitLM& casacore::NonLinearFitLM< T >::operator= | ( | const NonLinearFitLM< T > & | other | ) |
Assignment (deep copy)
|
private |
The current fit state.
Definition at line 119 of file NonLinearFitLM.h.
|
private |
The parameter that makes this the Levenberg-Marquardt method.
Definition at line 117 of file NonLinearFitLM.h.
1.8.18