Performs non linear optimization over a non-linear function, using a variant of the Levenberg Marquardt algorithm. More...
#include <LevenbergMarquardt.h>
Classes | |
struct | Parameters |
Public Types | |
typedef _FunctorType | FunctorType |
typedef Matrix< Scalar, Dynamic, 1 > | FVectorType |
typedef Matrix< Scalar, Dynamic, 1 > | FVectorType |
typedef DenseIndex | Index |
typedef Matrix< Scalar, Dynamic, Dynamic > | JacobianType |
typedef FunctorType::JacobianType | JacobianType |
typedef QRSolver::StorageIndex | PermIndex |
typedef PermutationMatrix< Dynamic, Dynamic > | PermutationType |
typedef FunctorType::QRSolver | QRSolver |
typedef JacobianType::RealScalar | RealScalar |
typedef JacobianType::Scalar | Scalar |
Static Public Member Functions | |
static LevenbergMarquardtSpace::Status | lmdif1 (FunctorType &functor, FVectorType &x, Index *nfev, const Scalar tol=sqrt_epsilon()) |
static LevenbergMarquardtSpace::Status | lmdif1 (FunctorType &functor, FVectorType &x, Index *nfev, const Scalar tol=std::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 | |
LevenbergMarquardt & | operator= (const LevenbergMarquardt &) |
Static Private Member Functions | |
static Scalar | sqrt_epsilon () |
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 110 of file LevenbergMarquardt/LevenbergMarquardt.h.
typedef _FunctorType Eigen::LevenbergMarquardt< _FunctorType >::FunctorType |
Definition at line 113 of file LevenbergMarquardt/LevenbergMarquardt.h.
typedef Matrix< Scalar, Dynamic, 1 > Eigen::LevenbergMarquardt< _FunctorType >::FVectorType |
Definition at line 76 of file NonLinearOptimization/LevenbergMarquardt.h.
typedef Matrix<Scalar,Dynamic,1> Eigen::LevenbergMarquardt< _FunctorType >::FVectorType |
Definition at line 119 of file LevenbergMarquardt/LevenbergMarquardt.h.
typedef DenseIndex Eigen::LevenbergMarquardt< _FunctorType >::Index |
Definition at line 58 of file NonLinearOptimization/LevenbergMarquardt.h.
typedef Matrix< Scalar, Dynamic, Dynamic > Eigen::LevenbergMarquardt< _FunctorType >::JacobianType |
Definition at line 77 of file NonLinearOptimization/LevenbergMarquardt.h.
typedef FunctorType::JacobianType Eigen::LevenbergMarquardt< _FunctorType >::JacobianType |
Definition at line 115 of file LevenbergMarquardt/LevenbergMarquardt.h.
typedef QRSolver::StorageIndex Eigen::LevenbergMarquardt< _FunctorType >::PermIndex |
Definition at line 118 of file LevenbergMarquardt/LevenbergMarquardt.h.
typedef PermutationMatrix<Dynamic,Dynamic> Eigen::LevenbergMarquardt< _FunctorType >::PermutationType |
Definition at line 120 of file LevenbergMarquardt/LevenbergMarquardt.h.
typedef FunctorType::QRSolver Eigen::LevenbergMarquardt< _FunctorType >::QRSolver |
Definition at line 114 of file LevenbergMarquardt/LevenbergMarquardt.h.
typedef JacobianType::RealScalar Eigen::LevenbergMarquardt< _FunctorType >::RealScalar |
Definition at line 117 of file LevenbergMarquardt/LevenbergMarquardt.h.
typedef JacobianType::Scalar Eigen::LevenbergMarquardt< _FunctorType >::Scalar |
Definition at line 116 of file LevenbergMarquardt/LevenbergMarquardt.h.
|
inline |
Definition at line 122 of file LevenbergMarquardt/LevenbergMarquardt.h.
|
inline |
Definition at line 55 of file NonLinearOptimization/LevenbergMarquardt.h.
|
inline |
Definition at line 197 of file LevenbergMarquardt/LevenbergMarquardt.h.
|
inline |
Definition at line 191 of file LevenbergMarquardt/LevenbergMarquardt.h.
|
inline |
Definition at line 188 of file LevenbergMarquardt/LevenbergMarquardt.h.
|
inline |
Definition at line 209 of file LevenbergMarquardt/LevenbergMarquardt.h.
|
inline |
Definition at line 182 of file LevenbergMarquardt/LevenbergMarquardt.h.
|
inline |
Definition at line 219 of file LevenbergMarquardt/LevenbergMarquardt.h.
|
inline |
Definition at line 212 of file LevenbergMarquardt/LevenbergMarquardt.h.
|
inline |
Definition at line 185 of file LevenbergMarquardt/LevenbergMarquardt.h.
|
inline |
Reports whether the minimization was successful.
Success
if the minimization was succesful, NumericalIssue
if a numerical problem arises during the minimization process, for exemple 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 Definition at line 243 of file LevenbergMarquardt/LevenbergMarquardt.h.
|
inline |
Definition at line 200 of file LevenbergMarquardt/LevenbergMarquardt.h.
|
inline |
Definition at line 223 of file LevenbergMarquardt/LevenbergMarquardt.h.
|
inline |
Definition at line 116 of file NonLinearOptimization/LevenbergMarquardt.h.
|
inline |
Definition at line 215 of file LevenbergMarquardt/LevenbergMarquardt.h.
LevenbergMarquardtSpace::Status Eigen::LevenbergMarquardt< _FunctorType >::lmder1 | ( | FVectorType & | x, |
const Scalar | tol = sqrt_epsilon() |
||
) |
LevenbergMarquardtSpace::Status Eigen::LevenbergMarquardt< FunctorType, Scalar >::lmder1 | ( | FVectorType & | x, |
const Scalar | tol = std::sqrt(NumTraits<Scalar>::epsilon()) |
||
) |
Definition at line 344 of file LevenbergMarquardt/LevenbergMarquardt.h.
|
static |
|
static |
Definition at line 367 of file LevenbergMarquardt/LevenbergMarquardt.h.
LevenbergMarquardtSpace::Status Eigen::LevenbergMarquardt< FunctorType, Scalar >::lmstr1 | ( | FVectorType & | x, |
const Scalar | tol = sqrt_epsilon() |
||
) |
Definition at line 363 of file NonLinearOptimization/LevenbergMarquardt.h.
|
inline |
Definition at line 228 of file LevenbergMarquardt/LevenbergMarquardt.h.
|
inline |
Definition at line 194 of file LevenbergMarquardt/LevenbergMarquardt.h.
LevenbergMarquardtSpace::Status Eigen::LevenbergMarquardt< _FunctorType >::minimize | ( | FVectorType & | x | ) |
LevenbergMarquardtSpace::Status Eigen::LevenbergMarquardt< FunctorType, Scalar >::minimize | ( | FVectorType & | x | ) |
Definition at line 277 of file LevenbergMarquardt/LevenbergMarquardt.h.
LevenbergMarquardtSpace::Status Eigen::LevenbergMarquardt< _FunctorType >::minimizeInit | ( | FVectorType & | x | ) |
LevenbergMarquardtSpace::Status Eigen::LevenbergMarquardt< FunctorType, Scalar >::minimizeInit | ( | FVectorType & | x | ) |
Definition at line 294 of file LevenbergMarquardt/LevenbergMarquardt.h.
LevenbergMarquardtSpace::Status Eigen::LevenbergMarquardt< _FunctorType >::minimizeOneStep | ( | FVectorType & | x | ) |
LevenbergMarquardtSpace::Status Eigen::LevenbergMarquardt< FunctorType, Scalar >::minimizeOneStep | ( | FVectorType & | x | ) |
Definition at line 21 of file LMonestep.h.
LevenbergMarquardtSpace::Status Eigen::LevenbergMarquardt< FunctorType, Scalar >::minimizeOptimumStorage | ( | FVectorType & | x | ) |
Definition at line 613 of file NonLinearOptimization/LevenbergMarquardt.h.
LevenbergMarquardtSpace::Status Eigen::LevenbergMarquardt< FunctorType, Scalar >::minimizeOptimumStorageInit | ( | FVectorType & | x | ) |
Definition at line 385 of file NonLinearOptimization/LevenbergMarquardt.h.
LevenbergMarquardtSpace::Status Eigen::LevenbergMarquardt< FunctorType, Scalar >::minimizeOptimumStorageOneStep | ( | FVectorType & | x | ) |
Definition at line 434 of file NonLinearOptimization/LevenbergMarquardt.h.
|
inline |
Definition at line 203 of file LevenbergMarquardt/LevenbergMarquardt.h.
|
inline |
Definition at line 206 of file LevenbergMarquardt/LevenbergMarquardt.h.
|
private |
|
inline |
the permutation used in the QR factorization
Definition at line 232 of file LevenbergMarquardt/LevenbergMarquardt.h.
|
inline |
Definition at line 104 of file NonLinearOptimization/LevenbergMarquardt.h.
|
inline |
Sets the default parameters
Definition at line 145 of file LevenbergMarquardt/LevenbergMarquardt.h.
|
inline |
Sets the error precision
Definition at line 170 of file LevenbergMarquardt/LevenbergMarquardt.h.
|
inline |
Use an external Scaling. If set to true, pass a nonzero diagonal to diag()
Definition at line 176 of file LevenbergMarquardt/LevenbergMarquardt.h.
|
inline |
Sets the step bound for the diagonal shift
Definition at line 167 of file LevenbergMarquardt/LevenbergMarquardt.h.
|
inline |
Sets the tolerance for the norm of the vector function
Definition at line 161 of file LevenbergMarquardt/LevenbergMarquardt.h.
|
inline |
Sets the tolerance for the norm of the gradient of the error vector
Definition at line 164 of file LevenbergMarquardt/LevenbergMarquardt.h.
|
inline |
Sets the maximum number of function evaluation
Definition at line 173 of file LevenbergMarquardt/LevenbergMarquardt.h.
|
inline |
Sets the tolerance for the norm of the solution vector
Definition at line 158 of file LevenbergMarquardt/LevenbergMarquardt.h.
|
inlinestaticprivate |
Definition at line 48 of file NonLinearOptimization/LevenbergMarquardt.h.
|
inline |
Definition at line 179 of file LevenbergMarquardt/LevenbergMarquardt.h.
|
private |
Definition at line 128 of file NonLinearOptimization/LevenbergMarquardt.h.
|
private |
Definition at line 126 of file NonLinearOptimization/LevenbergMarquardt.h.
FVectorType Eigen::LevenbergMarquardt< _FunctorType >::diag |
Definition at line 107 of file NonLinearOptimization/LevenbergMarquardt.h.
|
private |
Definition at line 128 of file NonLinearOptimization/LevenbergMarquardt.h.
JacobianType Eigen::LevenbergMarquardt< _FunctorType >::fjac |
Definition at line 108 of file NonLinearOptimization/LevenbergMarquardt.h.
Scalar Eigen::LevenbergMarquardt< _FunctorType >::fnorm |
Definition at line 113 of file NonLinearOptimization/LevenbergMarquardt.h.
|
private |
Definition at line 128 of file NonLinearOptimization/LevenbergMarquardt.h.
|
private |
Definition at line 119 of file NonLinearOptimization/LevenbergMarquardt.h.
FVectorType Eigen::LevenbergMarquardt< _FunctorType >::fvec |
Definition at line 107 of file NonLinearOptimization/LevenbergMarquardt.h.
Scalar Eigen::LevenbergMarquardt< _FunctorType >::gnorm |
Definition at line 113 of file NonLinearOptimization/LevenbergMarquardt.h.
Index Eigen::LevenbergMarquardt< _FunctorType >::iter |
Definition at line 112 of file NonLinearOptimization/LevenbergMarquardt.h.
|
private |
Definition at line 254 of file LevenbergMarquardt/LevenbergMarquardt.h.
|
private |
Definition at line 266 of file LevenbergMarquardt/LevenbergMarquardt.h.
|
private |
Definition at line 252 of file LevenbergMarquardt/LevenbergMarquardt.h.
|
private |
Definition at line 264 of file LevenbergMarquardt/LevenbergMarquardt.h.
|
private |
Definition at line 259 of file LevenbergMarquardt/LevenbergMarquardt.h.
|
private |
Definition at line 249 of file LevenbergMarquardt/LevenbergMarquardt.h.
|
private |
Definition at line 257 of file LevenbergMarquardt/LevenbergMarquardt.h.
|
private |
Definition at line 261 of file LevenbergMarquardt/LevenbergMarquardt.h.
|
private |
Definition at line 251 of file LevenbergMarquardt/LevenbergMarquardt.h.
|
private |
Definition at line 252 of file LevenbergMarquardt/LevenbergMarquardt.h.
|
private |
Definition at line 258 of file LevenbergMarquardt/LevenbergMarquardt.h.
|
private |
Definition at line 263 of file LevenbergMarquardt/LevenbergMarquardt.h.
|
private |
Definition at line 272 of file LevenbergMarquardt/LevenbergMarquardt.h.
|
private |
Definition at line 271 of file LevenbergMarquardt/LevenbergMarquardt.h.
|
private |
Definition at line 265 of file LevenbergMarquardt/LevenbergMarquardt.h.
|
private |
Definition at line 260 of file LevenbergMarquardt/LevenbergMarquardt.h.
|
private |
Definition at line 255 of file LevenbergMarquardt/LevenbergMarquardt.h.
|
private |
Definition at line 256 of file LevenbergMarquardt/LevenbergMarquardt.h.
|
private |
Definition at line 270 of file LevenbergMarquardt/LevenbergMarquardt.h.
|
private |
Definition at line 268 of file LevenbergMarquardt/LevenbergMarquardt.h.
|
private |
Definition at line 252 of file LevenbergMarquardt/LevenbergMarquardt.h.
|
private |
Definition at line 250 of file LevenbergMarquardt/LevenbergMarquardt.h.
|
private |
Definition at line 267 of file LevenbergMarquardt/LevenbergMarquardt.h.
|
private |
Definition at line 269 of file LevenbergMarquardt/LevenbergMarquardt.h.
|
private |
Definition at line 269 of file LevenbergMarquardt/LevenbergMarquardt.h.
|
private |
Definition at line 269 of file LevenbergMarquardt/LevenbergMarquardt.h.
|
private |
Definition at line 269 of file LevenbergMarquardt/LevenbergMarquardt.h.
|
private |
Definition at line 262 of file LevenbergMarquardt/LevenbergMarquardt.h.
|
private |
Definition at line 253 of file LevenbergMarquardt/LevenbergMarquardt.h.
Index Eigen::LevenbergMarquardt< _FunctorType >::nfev |
Definition at line 110 of file NonLinearOptimization/LevenbergMarquardt.h.
Index Eigen::LevenbergMarquardt< _FunctorType >::njev |
Definition at line 111 of file NonLinearOptimization/LevenbergMarquardt.h.
|
private |
Definition at line 124 of file NonLinearOptimization/LevenbergMarquardt.h.
Parameters Eigen::LevenbergMarquardt< _FunctorType >::parameters |
Definition at line 106 of file NonLinearOptimization/LevenbergMarquardt.h.
PermutationMatrix<Dynamic,Dynamic> Eigen::LevenbergMarquardt< _FunctorType >::permutation |
Definition at line 109 of file NonLinearOptimization/LevenbergMarquardt.h.
|
private |
Definition at line 128 of file NonLinearOptimization/LevenbergMarquardt.h.
|
private |
Definition at line 128 of file NonLinearOptimization/LevenbergMarquardt.h.
FVectorType Eigen::LevenbergMarquardt< _FunctorType >::qtf |
Definition at line 107 of file NonLinearOptimization/LevenbergMarquardt.h.
|
private |
Definition at line 127 of file NonLinearOptimization/LevenbergMarquardt.h.
|
private |
Definition at line 124 of file NonLinearOptimization/LevenbergMarquardt.h.
|
private |
Definition at line 125 of file NonLinearOptimization/LevenbergMarquardt.h.
|
private |
Definition at line 125 of file NonLinearOptimization/LevenbergMarquardt.h.
|
private |
Definition at line 125 of file NonLinearOptimization/LevenbergMarquardt.h.
bool Eigen::LevenbergMarquardt< _FunctorType >::useExternalScaling |
Definition at line 114 of file NonLinearOptimization/LevenbergMarquardt.h.
|
private |
Definition at line 122 of file NonLinearOptimization/LevenbergMarquardt.h.
|
private |
Definition at line 122 of file NonLinearOptimization/LevenbergMarquardt.h.
|
private |
Definition at line 122 of file NonLinearOptimization/LevenbergMarquardt.h.
|
private |
Definition at line 122 of file NonLinearOptimization/LevenbergMarquardt.h.
|
private |
Definition at line 128 of file NonLinearOptimization/LevenbergMarquardt.h.