|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object org.apache.commons.math3.optimization.direct.BaseAbstractMultivariateVectorOptimizer<DifferentiableMultivariateVectorFunction> org.apache.commons.math3.optimization.general.AbstractLeastSquaresOptimizer org.apache.commons.math3.optimization.general.LevenbergMarquardtOptimizer
@Deprecated public class LevenbergMarquardtOptimizer
This class solves a least squares problem using the Levenberg-Marquardt algorithm.
This implementation should work even for over-determined systems (i.e. systems having more point than equations). Over-determined systems are solved by ignoring the point which have the smallest impact according to their jacobian column norm. Only the rank of the matrix and some loop bounds are changed to implement this.
The resolution engine is a simple translation of the MINPACK lmder routine with minor changes. The changes include the over-determined resolution, the use of inherited convergence checker and the Q.R. decomposition which has been rewritten following the algorithm described in the P. Lascaux and R. Theodor book Analyse numérique matricielle appliquée à l'art de l'ingénieur, Masson 1986.
The authors of the original fortran version are:
Minpack Copyright Notice (1999) University of Chicago. All rights reserved |
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions
are met:
|
Field Summary |
---|
Fields inherited from class org.apache.commons.math3.optimization.general.AbstractLeastSquaresOptimizer |
---|
cols, cost, objective, point, rows, weightedResidualJacobian, weightedResiduals |
Fields inherited from class org.apache.commons.math3.optimization.direct.BaseAbstractMultivariateVectorOptimizer |
---|
evaluations |
Constructor Summary | |
---|---|
LevenbergMarquardtOptimizer()
Deprecated. Build an optimizer for least squares problems with default values for all the tuning parameters (see the other contructor . |
|
LevenbergMarquardtOptimizer(ConvergenceChecker<PointVectorValuePair> checker)
Deprecated. Constructor that allows the specification of a custom convergence checker. |
|
LevenbergMarquardtOptimizer(double initialStepBoundFactor,
ConvergenceChecker<PointVectorValuePair> checker,
double costRelativeTolerance,
double parRelativeTolerance,
double orthoTolerance,
double threshold)
Deprecated. Constructor that allows the specification of a custom convergence checker, in addition to the standard ones. |
|
LevenbergMarquardtOptimizer(double costRelativeTolerance,
double parRelativeTolerance,
double orthoTolerance)
Deprecated. Build an optimizer for least squares problems with default values for some of the tuning parameters (see the other contructor . |
|
LevenbergMarquardtOptimizer(double initialStepBoundFactor,
double costRelativeTolerance,
double parRelativeTolerance,
double orthoTolerance,
double threshold)
Deprecated. The arguments control the behaviour of the default convergence checking procedure. |
Method Summary | |
---|---|
protected PointVectorValuePair |
doOptimize()
Deprecated. Perform the bulk of the optimization algorithm. |
Methods inherited from class org.apache.commons.math3.optimization.general.AbstractLeastSquaresOptimizer |
---|
computeCost, computeCovariances, computeResiduals, computeSigma, computeWeightedJacobian, getChiSquare, getCovariances, getCovariances, getJacobianEvaluations, getRMS, getWeightSquareRoot, guessParametersErrors, optimize, optimize, optimizeInternal, setCost, setUp, updateJacobian, updateResidualsAndCost |
Methods inherited from class org.apache.commons.math3.optimization.direct.BaseAbstractMultivariateVectorOptimizer |
---|
computeObjectiveValue, getConvergenceChecker, getEvaluations, getMaxEvaluations, getObjectiveFunction, getStartPoint, getTarget, getTargetRef, getWeight, getWeightRef, optimize, optimizeInternal, optimizeInternal |
Methods inherited from class java.lang.Object |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Methods inherited from interface org.apache.commons.math3.optimization.BaseOptimizer |
---|
getConvergenceChecker, getEvaluations, getMaxEvaluations |
Constructor Detail |
---|
public LevenbergMarquardtOptimizer()
other contructor
.
The default values for the algorithm settings are:
Precision.SAFE_MIN
public LevenbergMarquardtOptimizer(ConvergenceChecker<PointVectorValuePair> checker)
Precision.SAFE_MIN
checker
- Convergence checker.public LevenbergMarquardtOptimizer(double initialStepBoundFactor, ConvergenceChecker<PointVectorValuePair> checker, double costRelativeTolerance, double parRelativeTolerance, double orthoTolerance, double threshold)
initialStepBoundFactor
- Positive input variable used in
determining the initial step bound. This bound is set to the
product of initialStepBoundFactor and the euclidean norm of
diag * x
if non-zero, or else to initialStepBoundFactor
itself. In most cases factor should lie in the interval
(0.1, 100.0)
. 100
is a generally recommended value.checker
- Convergence checker.costRelativeTolerance
- Desired relative error in the sum of
squares.parRelativeTolerance
- Desired relative error in the approximate
solution parameters.orthoTolerance
- Desired max cosine on the orthogonality between
the function vector and the columns of the Jacobian.threshold
- Desired threshold for QR ranking. If the squared norm
of a column vector is smaller or equal to this threshold during QR
decomposition, it is considered to be a zero vector and hence the rank
of the matrix is reduced.public LevenbergMarquardtOptimizer(double costRelativeTolerance, double parRelativeTolerance, double orthoTolerance)
other contructor
.
The default values for the algorithm settings are:
Precision.SAFE_MIN
costRelativeTolerance
- Desired relative error in the sum of
squares.parRelativeTolerance
- Desired relative error in the approximate
solution parameters.orthoTolerance
- Desired max cosine on the orthogonality between
the function vector and the columns of the Jacobian.public LevenbergMarquardtOptimizer(double initialStepBoundFactor, double costRelativeTolerance, double parRelativeTolerance, double orthoTolerance, double threshold)
ConvergenceChecker
.
initialStepBoundFactor
- Positive input variable used in
determining the initial step bound. This bound is set to the
product of initialStepBoundFactor and the euclidean norm of
diag * x
if non-zero, or else to initialStepBoundFactor
itself. In most cases factor should lie in the interval
(0.1, 100.0)
. 100
is a generally recommended value.costRelativeTolerance
- Desired relative error in the sum of
squares.parRelativeTolerance
- Desired relative error in the approximate
solution parameters.orthoTolerance
- Desired max cosine on the orthogonality between
the function vector and the columns of the Jacobian.threshold
- Desired threshold for QR ranking. If the squared norm
of a column vector is smaller or equal to this threshold during QR
decomposition, it is considered to be a zero vector and hence the rank
of the matrix is reduced.Method Detail |
---|
protected PointVectorValuePair doOptimize()
doOptimize
in class BaseAbstractMultivariateVectorOptimizer<DifferentiableMultivariateVectorFunction>
|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |