Classes | Public Types | Public Member Functions | Static Public Member Functions | Public Attributes | Private Member Functions | Private Attributes
LevenbergMarquardt< FunctorType, Scalar > Class Template Reference

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

#include <LevenbergMarquardt.h>

List of all members.

Classes

struct  Parameters

Public Types

typedef Matrix< Scalar,
Dynamic, 1 > 
FVectorType
typedef DenseIndex Index
typedef Matrix< Scalar,
Dynamic, Dynamic
JacobianType

Public Member Functions

 LevenbergMarquardt (FunctorType &_functor)
Scalar lm_param (void)
LevenbergMarquardtSpace::Status lmder1 (FVectorType &x, const Scalar tol=internal::sqrt(NumTraits< Scalar >::epsilon()))
LevenbergMarquardtSpace::Status lmstr1 (FVectorType &x, const Scalar tol=internal::sqrt(NumTraits< Scalar >::epsilon()))
LevenbergMarquardtSpace::Status minimize (FVectorType &x)
LevenbergMarquardtSpace::Status minimizeInit (FVectorType &x)
LevenbergMarquardtSpace::Status minimizeOneStep (FVectorType &x)
LevenbergMarquardtSpace::Status minimizeOptimumStorage (FVectorType &x)
LevenbergMarquardtSpace::Status minimizeOptimumStorageInit (FVectorType &x)
LevenbergMarquardtSpace::Status minimizeOptimumStorageOneStep (FVectorType &x)
void resetParameters (void)

Static Public Member Functions

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

Public Attributes

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

Private Member Functions

LevenbergMarquardtoperator= (const LevenbergMarquardt &)

Private Attributes

Scalar actred
Scalar delta
Scalar dirder
Scalar fnorm1
FunctorType & functor
Index m
Index n
Scalar par
Scalar pnorm
Scalar prered
Scalar ratio
Scalar sum
Scalar temp
Scalar temp1
Scalar temp2
FVectorType wa1
FVectorType wa2
FVectorType wa3
FVectorType wa4
Scalar xnorm

Detailed Description

template<typename FunctorType, typename Scalar = double>
class LevenbergMarquardt< FunctorType, Scalar >

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

Definition at line 60 of file LevenbergMarquardt.h.


Member Typedef Documentation

template<typename FunctorType, typename Scalar = double>
typedef Matrix< Scalar, Dynamic, 1 > LevenbergMarquardt< FunctorType, Scalar >::FVectorType

Definition at line 84 of file LevenbergMarquardt.h.

template<typename FunctorType, typename Scalar = double>
typedef DenseIndex LevenbergMarquardt< FunctorType, Scalar >::Index

Definition at line 66 of file LevenbergMarquardt.h.

template<typename FunctorType, typename Scalar = double>
typedef Matrix< Scalar, Dynamic, Dynamic > LevenbergMarquardt< FunctorType, Scalar >::JacobianType

Definition at line 85 of file LevenbergMarquardt.h.


Constructor & Destructor Documentation

template<typename FunctorType, typename Scalar = double>
LevenbergMarquardt< FunctorType, Scalar >::LevenbergMarquardt ( FunctorType &  _functor) [inline]

Definition at line 63 of file LevenbergMarquardt.h.


Member Function Documentation

template<typename FunctorType, typename Scalar = double>
Scalar LevenbergMarquardt< FunctorType, Scalar >::lm_param ( void  ) [inline]

Definition at line 124 of file LevenbergMarquardt.h.

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

Definition at line 142 of file LevenbergMarquardt.h.

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

Definition at line 627 of file LevenbergMarquardt.h.

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

Definition at line 367 of file LevenbergMarquardt.h.

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

Definition at line 165 of file LevenbergMarquardt.h.

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

Definition at line 178 of file LevenbergMarquardt.h.

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

Definition at line 221 of file LevenbergMarquardt.h.

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

Definition at line 614 of file LevenbergMarquardt.h.

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

Definition at line 389 of file LevenbergMarquardt.h.

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

Definition at line 438 of file LevenbergMarquardt.h.

template<typename FunctorType, typename Scalar = double>
LevenbergMarquardt& LevenbergMarquardt< FunctorType, Scalar >::operator= ( const LevenbergMarquardt< FunctorType, Scalar > &  ) [private]
template<typename FunctorType, typename Scalar = double>
void LevenbergMarquardt< FunctorType, Scalar >::resetParameters ( void  ) [inline]

Definition at line 112 of file LevenbergMarquardt.h.


Member Data Documentation

template<typename FunctorType, typename Scalar = double>
Scalar LevenbergMarquardt< FunctorType, Scalar >::actred [private]

Definition at line 135 of file LevenbergMarquardt.h.

template<typename FunctorType, typename Scalar = double>
Scalar LevenbergMarquardt< FunctorType, Scalar >::delta [private]

Definition at line 133 of file LevenbergMarquardt.h.

template<typename FunctorType, typename Scalar = double>
FVectorType LevenbergMarquardt< FunctorType, Scalar >::diag

Definition at line 115 of file LevenbergMarquardt.h.

template<typename FunctorType, typename Scalar = double>
Scalar LevenbergMarquardt< FunctorType, Scalar >::dirder [private]

Definition at line 135 of file LevenbergMarquardt.h.

template<typename FunctorType, typename Scalar = double>
JacobianType LevenbergMarquardt< FunctorType, Scalar >::fjac

Definition at line 116 of file LevenbergMarquardt.h.

template<typename FunctorType, typename Scalar = double>
Scalar LevenbergMarquardt< FunctorType, Scalar >::fnorm

Definition at line 121 of file LevenbergMarquardt.h.

template<typename FunctorType, typename Scalar = double>
Scalar LevenbergMarquardt< FunctorType, Scalar >::fnorm1 [private]

Definition at line 135 of file LevenbergMarquardt.h.

template<typename FunctorType, typename Scalar = double>
FunctorType& LevenbergMarquardt< FunctorType, Scalar >::functor [private]

Definition at line 126 of file LevenbergMarquardt.h.

template<typename FunctorType, typename Scalar = double>
FVectorType LevenbergMarquardt< FunctorType, Scalar >::fvec

Definition at line 115 of file LevenbergMarquardt.h.

template<typename FunctorType, typename Scalar = double>
Scalar LevenbergMarquardt< FunctorType, Scalar >::gnorm

Definition at line 121 of file LevenbergMarquardt.h.

template<typename FunctorType, typename Scalar = double>
Index LevenbergMarquardt< FunctorType, Scalar >::iter

Definition at line 120 of file LevenbergMarquardt.h.

template<typename FunctorType, typename Scalar = double>
Index LevenbergMarquardt< FunctorType, Scalar >::m [private]

Definition at line 128 of file LevenbergMarquardt.h.

template<typename FunctorType, typename Scalar = double>
Index LevenbergMarquardt< FunctorType, Scalar >::n [private]

Definition at line 127 of file LevenbergMarquardt.h.

template<typename FunctorType, typename Scalar = double>
Index LevenbergMarquardt< FunctorType, Scalar >::nfev

Definition at line 118 of file LevenbergMarquardt.h.

template<typename FunctorType, typename Scalar = double>
Index LevenbergMarquardt< FunctorType, Scalar >::njev

Definition at line 119 of file LevenbergMarquardt.h.

template<typename FunctorType, typename Scalar = double>
Scalar LevenbergMarquardt< FunctorType, Scalar >::par [private]

Definition at line 131 of file LevenbergMarquardt.h.

template<typename FunctorType, typename Scalar = double>
Parameters LevenbergMarquardt< FunctorType, Scalar >::parameters

Definition at line 114 of file LevenbergMarquardt.h.

template<typename FunctorType, typename Scalar = double>
PermutationMatrix<Dynamic,Dynamic> LevenbergMarquardt< FunctorType, Scalar >::permutation

Definition at line 117 of file LevenbergMarquardt.h.

template<typename FunctorType, typename Scalar = double>
Scalar LevenbergMarquardt< FunctorType, Scalar >::pnorm [private]

Definition at line 135 of file LevenbergMarquardt.h.

template<typename FunctorType, typename Scalar = double>
Scalar LevenbergMarquardt< FunctorType, Scalar >::prered [private]

Definition at line 135 of file LevenbergMarquardt.h.

template<typename FunctorType, typename Scalar = double>
FVectorType LevenbergMarquardt< FunctorType, Scalar >::qtf

Definition at line 115 of file LevenbergMarquardt.h.

template<typename FunctorType, typename Scalar = double>
Scalar LevenbergMarquardt< FunctorType, Scalar >::ratio [private]

Definition at line 134 of file LevenbergMarquardt.h.

template<typename FunctorType, typename Scalar = double>
Scalar LevenbergMarquardt< FunctorType, Scalar >::sum [private]

Definition at line 131 of file LevenbergMarquardt.h.

template<typename FunctorType, typename Scalar = double>
Scalar LevenbergMarquardt< FunctorType, Scalar >::temp [private]

Definition at line 132 of file LevenbergMarquardt.h.

template<typename FunctorType, typename Scalar = double>
Scalar LevenbergMarquardt< FunctorType, Scalar >::temp1 [private]

Definition at line 132 of file LevenbergMarquardt.h.

template<typename FunctorType, typename Scalar = double>
Scalar LevenbergMarquardt< FunctorType, Scalar >::temp2 [private]

Definition at line 132 of file LevenbergMarquardt.h.

template<typename FunctorType, typename Scalar = double>
bool LevenbergMarquardt< FunctorType, Scalar >::useExternalScaling

Definition at line 122 of file LevenbergMarquardt.h.

template<typename FunctorType, typename Scalar = double>
FVectorType LevenbergMarquardt< FunctorType, Scalar >::wa1 [private]

Definition at line 129 of file LevenbergMarquardt.h.

template<typename FunctorType, typename Scalar = double>
FVectorType LevenbergMarquardt< FunctorType, Scalar >::wa2 [private]

Definition at line 129 of file LevenbergMarquardt.h.

template<typename FunctorType, typename Scalar = double>
FVectorType LevenbergMarquardt< FunctorType, Scalar >::wa3 [private]

Definition at line 129 of file LevenbergMarquardt.h.

template<typename FunctorType, typename Scalar = double>
FVectorType LevenbergMarquardt< FunctorType, Scalar >::wa4 [private]

Definition at line 129 of file LevenbergMarquardt.h.

template<typename FunctorType, typename Scalar = double>
Scalar LevenbergMarquardt< FunctorType, Scalar >::xnorm [private]

Definition at line 135 of file LevenbergMarquardt.h.


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


libicr
Author(s): Robert Krug
autogenerated on Mon Jan 6 2014 11:34:21