@Deprecated public class GaussNewtonEstimator extends AbstractEstimator implements java.io.Serializable
This class solves estimation problems using a weighted least squares criterion on the measurement residuals. It uses a Gauss-Newton algorithm.
DEFAULT_MAX_COST_EVALUATIONS
Constructor and Description |
---|
GaussNewtonEstimator()
Deprecated.
Simple constructor with default settings.
|
GaussNewtonEstimator(int maxCostEval,
double convergence,
double steadyStateThreshold)
Deprecated.
Simple constructor.
|
Modifier and Type | Method and Description |
---|---|
void |
estimate(EstimationProblem problem)
Deprecated.
Solve an estimation problem using a least squares criterion.
|
void |
setConvergence(double convergence)
Deprecated.
Set the convergence criterion threshold.
|
void |
setSteadyStateThreshold(double steadyStateThreshold)
Deprecated.
Set the steady state detection threshold.
|
getChiSquare, getCostEvaluations, getCovariances, getJacobianEvaluations, getRMS, guessParametersErrors, setMaxCostEval
public GaussNewtonEstimator()
The estimator is built with default values for all settings.
public GaussNewtonEstimator(int maxCostEval, double convergence, double steadyStateThreshold)
This constructor builds an estimator and stores its convergence characteristics.
An estimator is considered to have converged whenever either the criterion goes below a physical threshold under which improvements are considered useless or when the algorithm is unable to improve it (even if it is still high). The first condition that is met stops the iterations.
The fact an estimator has converged does not mean that the model accurately fits the measurements. It only means no better solution can be found, it does not mean this one is good. Such an analysis is left to the caller.
If neither conditions are fulfilled before a given number of
iterations, the algorithm is considered to have failed and an
EstimationException
is thrown.
maxCostEval
- maximal number of cost evaluations allowedconvergence
- criterion threshold below which we do not need
to improve the criterion anymoresteadyStateThreshold
- steady state detection threshold, the
problem has converged has reached a steady state if
FastMath.abs(Jn - Jn-1) <
Jn × convergence
, where Jn
and Jn-1
are the current and preceding criterion
values (square sum of the weighted residuals of considered measurements).public void setConvergence(double convergence)
convergence
- criterion threshold below which we do not need
to improve the criterion anymorepublic void setSteadyStateThreshold(double steadyStateThreshold)
The problem has converged has reached a steady state if
FastMath.abs(Jn - Jn-1) <
Jn × convergence
, where Jn
and Jn-1
are the current and preceding criterion
values (square sum of the weighted residuals of considered measurements).
steadyStateThreshold
- steady state detection thresholdpublic void estimate(EstimationProblem problem) throws EstimationException
This method set the unbound parameters of the given problem starting from their current values through several iterations. At each step, the unbound parameters are changed in order to minimize a weighted least square criterion based on the measurements of the problem.
The iterations are stopped either when the criterion goes
below a physical threshold under which improvement are considered
useless or when the algorithm is unable to improve it (even if it
is still high). The first condition that is met stops the
iterations. If the convergence it not reached before the maximum
number of iterations, an EstimationException
is
thrown.
estimate
in interface Estimator
estimate
in class AbstractEstimator
problem
- estimation problem to solveEstimationException
- if the problem cannot be solvedEstimationProblem
Copyright © 2010 - 2020 Adobe. All Rights Reserved