TR-mbed 1.0
Loading...
Searching...
No Matches
Classes | Public Types | Public Member Functions | Static Public Member Functions | Public Attributes | List of all members
Eigen::LevenbergMarquardt< _FunctorType > Class Template Reference

Performs non linear optimization over a non-linear function, using a variant of the Levenberg Marquardt algorithm. More...

#include <LevenbergMarquardt.h>

Inheritance diagram for Eigen::LevenbergMarquardt< _FunctorType >:
Eigen::internal::no_assignment_operator

Classes

struct  Parameters
 

Public Types

typedef _FunctorType FunctorType
 
typedef FunctorType::QRSolver QRSolver
 
typedef FunctorType::JacobianType JacobianType
 
typedef JacobianType::Scalar Scalar
 
typedef JacobianType::RealScalar RealScalar
 
typedef QRSolver::StorageIndex PermIndex
 
typedef Matrix< Scalar, Dynamic, 1 > FVectorType
 
typedef PermutationMatrix< Dynamic, Dynamic, intPermutationType
 
typedef DenseIndex Index
 
typedef Matrix< Scalar, Dynamic, 1 > FVectorType
 
typedef Matrix< Scalar, Dynamic, DynamicJacobianType
 

Public Member Functions

 LevenbergMarquardt (FunctorType &functor)
 
LevenbergMarquardtSpace::Status minimize (FVectorType &x)
 
LevenbergMarquardtSpace::Status minimizeInit (FVectorType &x)
 
LevenbergMarquardtSpace::Status minimizeOneStep (FVectorType &x)
 
LevenbergMarquardtSpace::Status lmder1 (FVectorType &x, const Scalar tol=std::sqrt(NumTraits< Scalar >::epsilon()))
 
void resetParameters ()
 
void setXtol (RealScalar xtol)
 
void setFtol (RealScalar ftol)
 
void setGtol (RealScalar gtol)
 
void setFactor (RealScalar factor)
 
void setEpsilon (RealScalar epsfcn)
 
void setMaxfev (Index maxfev)
 
void setExternalScaling (bool value)
 
RealScalar xtol () const
 
RealScalar ftol () const
 
RealScalar gtol () const
 
RealScalar factor () const
 
RealScalar epsilon () const
 
Index maxfev () const
 
FVectorTypediag ()
 
Index iterations ()
 
Index nfev ()
 
Index njev ()
 
RealScalar fnorm ()
 
RealScalar gnorm ()
 
RealScalar lm_param (void)
 
FVectorTypefvec ()
 
JacobianTypejacobian ()
 
JacobianTypematrixR ()
 
PermutationType permutation ()
 
ComputationInfo info () const
 Reports whether the minimization was successful.
 
 LevenbergMarquardt (FunctorType &_functor)
 
LevenbergMarquardtSpace::Status lmder1 (FVectorType &x, const Scalar tol=sqrt_epsilon())
 
LevenbergMarquardtSpace::Status minimize (FVectorType &x)
 
LevenbergMarquardtSpace::Status minimizeInit (FVectorType &x)
 
LevenbergMarquardtSpace::Status minimizeOneStep (FVectorType &x)
 
LevenbergMarquardtSpace::Status lmstr1 (FVectorType &x, const Scalar tol=sqrt_epsilon())
 
LevenbergMarquardtSpace::Status minimizeOptimumStorage (FVectorType &x)
 
LevenbergMarquardtSpace::Status minimizeOptimumStorageInit (FVectorType &x)
 
LevenbergMarquardtSpace::Status minimizeOptimumStorageOneStep (FVectorType &x)
 
void resetParameters (void)
 
Scalar lm_param (void)
 

Static Public Member Functions

static LevenbergMarquardtSpace::Status lmdif1 (FunctorType &functor, FVectorType &x, Index *nfev, const Scalar tol=std::sqrt(NumTraits< Scalar >::epsilon()))
 
static LevenbergMarquardtSpace::Status lmdif1 (FunctorType &functor, FVectorType &x, Index *nfev, const Scalar tol=sqrt_epsilon())
 

Public Attributes

Parameters parameters
 
FVectorType fvec
 
FVectorType qtf
 
FVectorType diag
 
JacobianType fjac
 
PermutationMatrix< Dynamic, Dynamicpermutation
 
Index nfev
 
Index njev
 
Index iter
 
Scalar fnorm
 
Scalar gnorm
 
bool useExternalScaling
 

Detailed Description

template<typename _FunctorType>
class Eigen::LevenbergMarquardt< _FunctorType >

Performs non linear optimization over a non-linear function, using a variant of the Levenberg Marquardt algorithm.

Check wikipedia for more information. http://en.wikipedia.org/wiki/Levenberg%E2%80%93Marquardt_algorithm

Member Typedef Documentation

◆ FunctorType

template<typename _FunctorType >
typedef _FunctorType Eigen::LevenbergMarquardt< _FunctorType >::FunctorType

◆ FVectorType [1/2]

template<typename _FunctorType >
typedef Matrix<Scalar,Dynamic,1> Eigen::LevenbergMarquardt< _FunctorType >::FVectorType

◆ FVectorType [2/2]

template<typename _FunctorType >
typedef Matrix< Scalar, Dynamic, 1 > Eigen::LevenbergMarquardt< _FunctorType >::FVectorType

◆ Index

template<typename _FunctorType >
typedef DenseIndex Eigen::LevenbergMarquardt< _FunctorType >::Index

◆ JacobianType [1/2]

template<typename _FunctorType >
typedef FunctorType::JacobianType Eigen::LevenbergMarquardt< _FunctorType >::JacobianType

◆ JacobianType [2/2]

template<typename _FunctorType >
typedef Matrix< Scalar, Dynamic, Dynamic > Eigen::LevenbergMarquardt< _FunctorType >::JacobianType

◆ PermIndex

template<typename _FunctorType >
typedef QRSolver::StorageIndex Eigen::LevenbergMarquardt< _FunctorType >::PermIndex

◆ PermutationType

template<typename _FunctorType >
typedef PermutationMatrix<Dynamic,Dynamic,int> Eigen::LevenbergMarquardt< _FunctorType >::PermutationType

◆ QRSolver

template<typename _FunctorType >
typedef FunctorType::QRSolver Eigen::LevenbergMarquardt< _FunctorType >::QRSolver

◆ RealScalar

template<typename _FunctorType >
typedef JacobianType::RealScalar Eigen::LevenbergMarquardt< _FunctorType >::RealScalar

◆ Scalar

template<typename _FunctorType >
typedef JacobianType::Scalar Eigen::LevenbergMarquardt< _FunctorType >::Scalar

Constructor & Destructor Documentation

◆ LevenbergMarquardt() [1/2]

template<typename _FunctorType >
Eigen::LevenbergMarquardt< _FunctorType >::LevenbergMarquardt ( FunctorType functor)
inline

◆ LevenbergMarquardt() [2/2]

template<typename _FunctorType >
Eigen::LevenbergMarquardt< _FunctorType >::LevenbergMarquardt ( FunctorType _functor)
inline

Member Function Documentation

◆ diag()

template<typename _FunctorType >
FVectorType & Eigen::LevenbergMarquardt< _FunctorType >::diag ( )
inline
Returns
a reference to the diagonal of the jacobian

◆ epsilon()

template<typename _FunctorType >
RealScalar Eigen::LevenbergMarquardt< _FunctorType >::epsilon ( ) const
inline
Returns
the error precision

◆ factor()

template<typename _FunctorType >
RealScalar Eigen::LevenbergMarquardt< _FunctorType >::factor ( ) const
inline
Returns
the step bound for the diagonal shift

◆ fnorm()

template<typename _FunctorType >
RealScalar Eigen::LevenbergMarquardt< _FunctorType >::fnorm ( )
inline
Returns
the norm of current vector function

◆ ftol()

template<typename _FunctorType >
RealScalar Eigen::LevenbergMarquardt< _FunctorType >::ftol ( ) const
inline
Returns
the tolerance for the norm of the vector function

◆ fvec()

template<typename _FunctorType >
FVectorType & Eigen::LevenbergMarquardt< _FunctorType >::fvec ( )
inline
Returns
a reference to the current vector function

◆ gnorm()

template<typename _FunctorType >
RealScalar Eigen::LevenbergMarquardt< _FunctorType >::gnorm ( )
inline
Returns
the norm of the gradient of the error

◆ gtol()

template<typename _FunctorType >
RealScalar Eigen::LevenbergMarquardt< _FunctorType >::gtol ( ) const
inline
Returns
the tolerance for the norm of the gradient of the error vector

◆ info()

template<typename _FunctorType >
ComputationInfo Eigen::LevenbergMarquardt< _FunctorType >::info ( ) const
inline

Reports whether the minimization was successful.

Returns
Success if the minimization was successful, NumericalIssue if a numerical problem arises during the minimization process, for example during the QR factorization NoConvergence if the minimization did not converge after the maximum number of function evaluation allowed InvalidInput if the input matrix is invalid

◆ iterations()

template<typename _FunctorType >
Index Eigen::LevenbergMarquardt< _FunctorType >::iterations ( )
inline
Returns
the number of iterations performed

◆ jacobian()

template<typename _FunctorType >
JacobianType & Eigen::LevenbergMarquardt< _FunctorType >::jacobian ( )
inline
Returns
a reference to the matrix where the current Jacobian matrix is stored

◆ lm_param() [1/2]

template<typename _FunctorType >
RealScalar Eigen::LevenbergMarquardt< _FunctorType >::lm_param ( void  )
inline
Returns
the LevenbergMarquardt parameter

◆ lm_param() [2/2]

template<typename _FunctorType >
Scalar Eigen::LevenbergMarquardt< _FunctorType >::lm_param ( void  )
inline

◆ lmder1() [1/2]

template<typename _FunctorType >
LevenbergMarquardtSpace::Status Eigen::LevenbergMarquardt< _FunctorType >::lmder1 ( FVectorType x,
const Scalar  tol = sqrt_epsilon() 
)

◆ lmder1() [2/2]

template<typename FunctorType , typename Scalar >
LevenbergMarquardtSpace::Status Eigen::LevenbergMarquardt< FunctorType, Scalar >::lmder1 ( FVectorType x,
const Scalar  tol = std::sqrt(NumTraits<Scalar>::epsilon()) 
)

◆ lmdif1() [1/2]

template<typename _FunctorType >
static LevenbergMarquardtSpace::Status Eigen::LevenbergMarquardt< _FunctorType >::lmdif1 ( FunctorType functor,
FVectorType x,
Index nfev,
const Scalar  tol = sqrt_epsilon() 
)
static

◆ lmdif1() [2/2]

template<typename FunctorType , typename Scalar >
LevenbergMarquardtSpace::Status Eigen::LevenbergMarquardt< FunctorType, Scalar >::lmdif1 ( FunctorType functor,
FVectorType x,
Index nfev,
const Scalar  tol = std::sqrt(NumTraits<Scalar>::epsilon()) 
)
static

◆ lmstr1()

template<typename FunctorType , typename Scalar >
LevenbergMarquardtSpace::Status Eigen::LevenbergMarquardt< FunctorType, Scalar >::lmstr1 ( FVectorType x,
const Scalar  tol = sqrt_epsilon() 
)

◆ matrixR()

template<typename _FunctorType >
JacobianType & Eigen::LevenbergMarquardt< _FunctorType >::matrixR ( )
inline
Returns
a reference to the triangular matrix R from the QR of the jacobian matrix.
See also
jacobian()

◆ maxfev()

template<typename _FunctorType >
Index Eigen::LevenbergMarquardt< _FunctorType >::maxfev ( ) const
inline
Returns
the maximum number of function evaluation

◆ minimize() [1/2]

◆ minimize() [2/2]

template<typename _FunctorType >
LevenbergMarquardtSpace::Status Eigen::LevenbergMarquardt< _FunctorType >::minimize ( FVectorType x)

◆ minimizeInit() [1/2]

◆ minimizeInit() [2/2]

template<typename _FunctorType >
LevenbergMarquardtSpace::Status Eigen::LevenbergMarquardt< _FunctorType >::minimizeInit ( FVectorType x)

◆ minimizeOneStep() [1/2]

template<typename FunctorType , typename Scalar >
LevenbergMarquardtSpace::Status Eigen::LevenbergMarquardt< FunctorType, Scalar >::minimizeOneStep ( FVectorType x)

◆ minimizeOneStep() [2/2]

template<typename _FunctorType >
LevenbergMarquardtSpace::Status Eigen::LevenbergMarquardt< _FunctorType >::minimizeOneStep ( FVectorType x)

◆ minimizeOptimumStorage()

template<typename FunctorType , typename Scalar >
LevenbergMarquardtSpace::Status Eigen::LevenbergMarquardt< FunctorType, Scalar >::minimizeOptimumStorage ( FVectorType x)

◆ minimizeOptimumStorageInit()

template<typename FunctorType , typename Scalar >
LevenbergMarquardtSpace::Status Eigen::LevenbergMarquardt< FunctorType, Scalar >::minimizeOptimumStorageInit ( FVectorType x)

◆ minimizeOptimumStorageOneStep()

template<typename FunctorType , typename Scalar >
LevenbergMarquardtSpace::Status Eigen::LevenbergMarquardt< FunctorType, Scalar >::minimizeOptimumStorageOneStep ( FVectorType x)

◆ nfev()

template<typename _FunctorType >
Index Eigen::LevenbergMarquardt< _FunctorType >::nfev ( )
inline
Returns
the number of functions evaluation

◆ njev()

template<typename _FunctorType >
Index Eigen::LevenbergMarquardt< _FunctorType >::njev ( )
inline
Returns
the number of jacobian evaluation

◆ permutation()

template<typename _FunctorType >
PermutationType Eigen::LevenbergMarquardt< _FunctorType >::permutation ( )
inline

the permutation used in the QR factorization

◆ resetParameters() [1/2]

template<typename _FunctorType >
void Eigen::LevenbergMarquardt< _FunctorType >::resetParameters ( )
inline

Sets the default parameters

◆ resetParameters() [2/2]

template<typename _FunctorType >
void Eigen::LevenbergMarquardt< _FunctorType >::resetParameters ( void  )
inline

◆ setEpsilon()

template<typename _FunctorType >
void Eigen::LevenbergMarquardt< _FunctorType >::setEpsilon ( RealScalar  epsfcn)
inline

Sets the error precision

◆ setExternalScaling()

template<typename _FunctorType >
void Eigen::LevenbergMarquardt< _FunctorType >::setExternalScaling ( bool  value)
inline

Use an external Scaling. If set to true, pass a nonzero diagonal to diag()

◆ setFactor()

template<typename _FunctorType >
void Eigen::LevenbergMarquardt< _FunctorType >::setFactor ( RealScalar  factor)
inline

Sets the step bound for the diagonal shift

◆ setFtol()

template<typename _FunctorType >
void Eigen::LevenbergMarquardt< _FunctorType >::setFtol ( RealScalar  ftol)
inline

Sets the tolerance for the norm of the vector function

◆ setGtol()

template<typename _FunctorType >
void Eigen::LevenbergMarquardt< _FunctorType >::setGtol ( RealScalar  gtol)
inline

Sets the tolerance for the norm of the gradient of the error vector

◆ setMaxfev()

template<typename _FunctorType >
void Eigen::LevenbergMarquardt< _FunctorType >::setMaxfev ( Index  maxfev)
inline

Sets the maximum number of function evaluation

◆ setXtol()

template<typename _FunctorType >
void Eigen::LevenbergMarquardt< _FunctorType >::setXtol ( RealScalar  xtol)
inline

Sets the tolerance for the norm of the solution vector

◆ xtol()

template<typename _FunctorType >
RealScalar Eigen::LevenbergMarquardt< _FunctorType >::xtol ( ) const
inline
Returns
the tolerance for the norm of the solution vector

Member Data Documentation

◆ diag

template<typename _FunctorType >
FVectorType Eigen::LevenbergMarquardt< _FunctorType >::diag

◆ fjac

template<typename _FunctorType >
JacobianType Eigen::LevenbergMarquardt< _FunctorType >::fjac

◆ fnorm

template<typename _FunctorType >
Scalar Eigen::LevenbergMarquardt< _FunctorType >::fnorm

◆ fvec

template<typename _FunctorType >
FVectorType Eigen::LevenbergMarquardt< _FunctorType >::fvec

◆ gnorm

template<typename _FunctorType >
Scalar Eigen::LevenbergMarquardt< _FunctorType >::gnorm

◆ iter

template<typename _FunctorType >
Index Eigen::LevenbergMarquardt< _FunctorType >::iter

◆ nfev

template<typename _FunctorType >
Index Eigen::LevenbergMarquardt< _FunctorType >::nfev

◆ njev

template<typename _FunctorType >
Index Eigen::LevenbergMarquardt< _FunctorType >::njev

◆ parameters

template<typename _FunctorType >
Parameters Eigen::LevenbergMarquardt< _FunctorType >::parameters

◆ permutation

template<typename _FunctorType >
PermutationMatrix<Dynamic,Dynamic> Eigen::LevenbergMarquardt< _FunctorType >::permutation

◆ qtf

template<typename _FunctorType >
FVectorType Eigen::LevenbergMarquardt< _FunctorType >::qtf

◆ useExternalScaling

template<typename _FunctorType >
bool Eigen::LevenbergMarquardt< _FunctorType >::useExternalScaling

The documentation for this class was generated from the following files: