MRPT logo

mrpt::math::CLevenbergMarquardtTempl< NUMTYPE > Class Template Reference

An implementation of the Levenberg-Marquardt algorithm for least-square minimization. More...

#include <mrpt/math/CLevenbergMarquardt.h>

Inheritance diagram for mrpt::math::CLevenbergMarquardtTempl< NUMTYPE >:

mrpt::utils::CDebugOutputCapable

List of all members.

Classes

struct  TResultInfo

Public Types

typedef void(* TFunctor )(const std::vector< NUMTYPE > &x, const std::vector< NUMTYPE > &y, std::vector< NUMTYPE > &out)
 The type of the function passed to execute.

Static Public Member Functions

static void execute (std::vector< NUMTYPE > &out_optimal_x, const std::vector< NUMTYPE > &x0, TFunctor functor, const std::vector< NUMTYPE > &increments, const std::vector< NUMTYPE > &userParam, TResultInfo &out_info, bool verbose=false, const size_t &maxIter=200, const NUMTYPE tau=1e-3, const NUMTYPE e1=1e-8, const NUMTYPE e2=1e-8)
 Executes the LM-method, with derivatives estimated from "functor" Is a user-provided function which takes as input two vectors, in this order:
  • x: The parameters to be optimized.


Detailed Description

template<typename NUMTYPE = double>
class mrpt::math::CLevenbergMarquardtTempl< NUMTYPE >

An implementation of the Levenberg-Marquardt algorithm for least-square minimization.

Refer to the wiki page for more details on the algorithm and usage.

Definition at line 47 of file CLevenbergMarquardt.h.


Member Typedef Documentation

template<typename NUMTYPE = double>
typedef void(* mrpt::math::CLevenbergMarquardtTempl< NUMTYPE >::TFunctor)(const std::vector< NUMTYPE > &x, const std::vector< NUMTYPE > &y, std::vector< NUMTYPE > &out)

The type of the function passed to execute.


Member Function Documentation

template<typename NUMTYPE = double>
static void mrpt::math::CLevenbergMarquardtTempl< NUMTYPE >::execute ( std::vector< NUMTYPE > &  out_optimal_x,
const std::vector< NUMTYPE > &  x0,
TFunctor  functor,
const std::vector< NUMTYPE > &  increments,
const std::vector< NUMTYPE > &  userParam,
TResultInfo out_info,
bool  verbose = false,
const size_t &  maxIter = 200,
const NUMTYPE  tau = 1e-3,
const NUMTYPE  e1 = 1e-8,
const NUMTYPE  e2 = 1e-8 
) [static]

Executes the LM-method, with derivatives estimated from "functor" Is a user-provided function which takes as input two vectors, in this order:

  • x: The parameters to be optimized.

  • userParam: The vector passed to the LM algorithm, unmodified. and must return the "error vector", or the error (not squared) in each measured dimension, so the sum of the square of that output is the overall square error.




Page generated by Doxygen 1.5.8 for MRPT 0.6.5 SVN: at Thu Feb 26 02:18:33 EST 2009