Package org.ddogleg.optimization
Interface UnconstrainedLeastSquaresSchur<S extends DMatrix>
- All Superinterfaces:
IterativeOptimization
,Serializable
- All Known Implementing Classes:
UnconLeastSqLevenbergMarquardtSchur_F64
,UnconLeastSqTrustRegionSchur_F64
A variant on UnconstrainedLeastSquares
for solving large scale systems which can be simplified using the
Schur Complement. The approximate Hessian matrix (J'*J) is assumed to have the
following block triangle form: [A B;C D]. The system being solved for
is as follows: [A B;C D] [x_1;x_2] = [b_1;b_2]. See HessianSchurComplement_DSCC
for more details.
- See Also:
-
Method Summary
Modifier and TypeMethodDescriptiondouble
Returns the value of the objective function being evaluated at the current parameters value.double[]
After each iteration this function can be called to get the current best set of parameters.void
initialize
(double[] initial, double ftol, double gtol) Specify the initial set of parameters from which to start from.void
setFunction
(FunctionNtoM function, SchurJacobian<S> jacobian) Specifies a set of functions and their Jacobian.Methods inherited from interface org.ddogleg.optimization.IterativeOptimization
isConverged, isUpdated, iterate, setVerbose
-
Method Details
-
setFunction
Specifies a set of functions and their Jacobian. See class description for documentation on output data format.- Parameters:
function
- Computes the output of M functions fi(x) which take in N fit parameters as input.jacobian
- Computes the Jacobian of the M functions and breaks it up into left and right components.
-
initialize
void initialize(double[] initial, double ftol, double gtol) Specify the initial set of parameters from which to start from. Call aftersetFunction(org.ddogleg.optimization.functions.FunctionNtoM, org.ddogleg.optimization.functions.SchurJacobian<S>)
has been called.- Parameters:
initial
- Initial parameters or guess with N elements..ftol
- Relative threshold for change in function value between iterations. 0 ≤ ftol ≤ 1. Try 1e-12gtol
- Absolute threshold for convergence based on the gradient's norm. 0 disables test. 0 ≤ gtol. Try 1e-12
-
getParameters
double[] getParameters()After each iteration this function can be called to get the current best set of parameters.- Returns:
- parameters
-
getFunctionValue
double getFunctionValue()Returns the value of the objective function being evaluated at the current parameters value. If not supported then an exception is thrown.- Returns:
- Objective function's value.
-