|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectorg.apache.commons.math3.optim.BaseOptimizer<PAIR>
org.apache.commons.math3.optim.BaseMultivariateOptimizer<PointVectorValuePair>
org.apache.commons.math3.optim.nonlinear.vector.MultivariateVectorOptimizer
org.apache.commons.math3.optim.nonlinear.vector.JacobianMultivariateVectorOptimizer
org.apache.commons.math3.optim.nonlinear.vector.jacobian.AbstractLeastSquaresOptimizer
public abstract class AbstractLeastSquaresOptimizer
Base class for implementing least-squares optimizers. It provides methods for error estimation.
Field Summary | |
---|---|
private double |
cost
Cost value (square root of the sum of the residuals). |
private RealMatrix |
weightMatrixSqrt
Square-root of the weight matrix. |
Fields inherited from class org.apache.commons.math3.optim.BaseOptimizer |
---|
evaluations, iterations |
Constructor Summary | |
---|---|
protected |
AbstractLeastSquaresOptimizer(ConvergenceChecker<PointVectorValuePair> checker)
|
Method Summary | |
---|---|
protected double |
computeCost(double[] residuals)
Computes the cost. |
double[][] |
computeCovariances(double[] params,
double threshold)
Get the covariance matrix of the optimized parameters. |
protected double[] |
computeResiduals(double[] objectiveValue)
Computes the residuals. |
double[] |
computeSigma(double[] params,
double covarianceSingularityThreshold)
Computes an estimate of the standard deviation of the parameters. |
protected RealMatrix |
computeWeightedJacobian(double[] params)
Computes the weighted Jacobian matrix. |
double |
getChiSquare()
Get a Chi-Square-like value assuming the N residuals follow N distinct normal distributions centered on 0 and whose variances are the reciprocal of the weights. |
double |
getRMS()
Gets the root-mean-square (RMS) value. |
RealMatrix |
getWeightSquareRoot()
Gets the square-root of the weight matrix. |
PointVectorValuePair |
optimize(OptimizationData... optData)
Stores data and performs the optimization. |
protected void |
parseOptimizationData(OptimizationData... optData)
Scans the list of (required and optional) optimization data that characterize the problem. |
protected void |
setCost(double cost)
Sets the cost. |
private RealMatrix |
squareRoot(RealMatrix m)
Computes the square-root of the weight matrix. |
Methods inherited from class org.apache.commons.math3.optim.nonlinear.vector.JacobianMultivariateVectorOptimizer |
---|
computeJacobian |
Methods inherited from class org.apache.commons.math3.optim.nonlinear.vector.MultivariateVectorOptimizer |
---|
computeObjectiveValue, getTarget, getTargetSize, getWeight |
Methods inherited from class org.apache.commons.math3.optim.BaseMultivariateOptimizer |
---|
getLowerBound, getStartPoint, getUpperBound |
Methods inherited from class org.apache.commons.math3.optim.BaseOptimizer |
---|
doOptimize, getConvergenceChecker, getEvaluations, getIterations, getMaxEvaluations, getMaxIterations, incrementEvaluationCount, incrementIterationCount |
Methods inherited from class java.lang.Object |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Field Detail |
---|
private RealMatrix weightMatrixSqrt
private double cost
Constructor Detail |
---|
protected AbstractLeastSquaresOptimizer(ConvergenceChecker<PointVectorValuePair> checker)
checker
- Convergence checker.Method Detail |
---|
protected RealMatrix computeWeightedJacobian(double[] params)
params
- Model parameters at which to compute the Jacobian.
DimensionMismatchException
- if the Jacobian dimension does not
match problem dimension.protected double computeCost(double[] residuals)
residuals
- Residuals.
computeResiduals(double[])
public double getRMS()
public double getChiSquare()
public RealMatrix getWeightSquareRoot()
protected void setCost(double cost)
cost
- Cost value.public double[][] computeCovariances(double[] params, double threshold)
JTJ
matrix, where J
is the
Jacobian matrix.
The threshold
parameter is a way for the caller to specify
that the result of this computation should be considered meaningless,
and thus trigger an exception.
params
- Model parameters.threshold
- Singularity threshold.
SingularMatrixException
- if the covariance matrix cannot be computed (singular problem).public double[] computeSigma(double[] params, double covarianceSingularityThreshold)
sd(a[i]) ~= sqrt(C[i][i])
, where a[i]
is the optimized value of the i
-th parameter, and C
is
the covariance matrix.
params
- Model parameters.covarianceSingularityThreshold
- Singularity threshold (see
computeCovariances
).
SingularMatrixException
- if the covariance matrix cannot be computed.public PointVectorValuePair optimize(OptimizationData... optData) throws TooManyEvaluationsException
BaseOptimizer.parseOptimizationData(OptimizationData[])
if they need to register
their own options; but then, they must also call
super.parseOptimizationData(optData)
within that method.
optimize
in class JacobianMultivariateVectorOptimizer
optData
- Optimization data. In addition to those documented in
JacobianMultivariateVectorOptimizer
, this method will register the following data:
TooManyEvaluationsException
- if the maximal number of
evaluations is exceeded.
DimensionMismatchException
- if the initial guess, target, and weight
arguments have inconsistent dimensions.protected double[] computeResiduals(double[] objectiveValue)
objectiveValue
- Value of the the objective function. This is
the value returned from a call to
computeObjectiveValue
(whose array argument contains the model parameters).
DimensionMismatchException
- if params
has a wrong
length.protected void parseOptimizationData(OptimizationData... optData)
weightMatrixSqrt
field is recomputed.
parseOptimizationData
in class JacobianMultivariateVectorOptimizer
optData
- Optimization data. The following data will be looked for:
private RealMatrix squareRoot(RealMatrix m)
m
- Symmetric, positive-definite (weight) matrix.
|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |