|
Algorith sandbox
|
This class solves following equation. $$ | f(x) |^{2} = 0 $$. More...
#include <LevenbergMarquardt.h>
Public Member Functions | |
| LevenbergMarquardt (const typename INewtonMethod::function_type &f, const typename INewtonMethod::derivative_type &derivative, const std::size_t maxIteration, const double tolerance, const std::shared_ptr< IDumpingFactorCalculator > &dumpingFactorCalculator) | |
Private Member Functions | |
| virtual boost::numeric::ublas::vector< double > | doSolve (const boost::numeric::ublas::vector< double > &initialValue) const override |
| boost::numeric::ublas::vector< double > | calculateUpdateVector (const boost::numeric::ublas::vector< double > &x, boost::numeric::ublas::matrix< double > &inverseMatrix) const |
| void | calculateInverseMatrix (const boost::numeric::ublas::vector< double > &residual, const boost::numeric::ublas::matrix< double > &jacobianMatrix, boost::numeric::ublas::matrix< double > &inverseMatrix) const |
Private Attributes | |
| INewtonMethod::function_type | _f |
| INewtonMethod::derivative_type | _derivative |
| const std::size_t | _maxIteration |
| const double | _tolerance |
| std::shared_ptr< IDumpingFactorCalculator > | _dumpingFactorCalculator |
Friends | |
| class | nm_test::LevenbergMarquardtTest |
This class solves following equation. $$ | f(x) |^{2} = 0 $$.
Levenberg Marquardt method updates $x$ by the following equation each iteration. $$ x = x - (J_{f}^{T}(x)J_{f}(x) + {diag}(J_{f}^{T}(x)J_{f}(x)))^{-1}J_{f}^{T}(x) f(x) $$
| algo::nm::LevenbergMarquardt::LevenbergMarquardt | ( | const typename INewtonMethod::function_type & | f, |
| const typename INewtonMethod::derivative_type & | derivative, | ||
| const std::size_t | maxIteration, | ||
| const double | tolerance, | ||
| const std::shared_ptr< IDumpingFactorCalculator > & | dumpingFactorCalculator | ||
| ) |
| f | $f, |
|
private |
| residual | |
| jacobianMatrix | |
| inverseMatrix |
|
private |
| inverseMatrix | cache to save memory allocaiton cost. |
|
overrideprivatevirtual |
| initialValue | initial guess of this algorithm |
1.8.10