org.apache.commons.math3.optim.nonlinear.vector.jacobian
Class GaussNewtonOptimizer

java.lang.Object
  extended by org.apache.commons.math3.optim.BaseOptimizer<PAIR>
      extended by org.apache.commons.math3.optim.BaseMultivariateOptimizer<PointVectorValuePair>
          extended by org.apache.commons.math3.optim.nonlinear.vector.MultivariateVectorOptimizer
              extended by org.apache.commons.math3.optim.nonlinear.vector.JacobianMultivariateVectorOptimizer
                  extended by org.apache.commons.math3.optim.nonlinear.vector.jacobian.AbstractLeastSquaresOptimizer
                      extended by org.apache.commons.math3.optim.nonlinear.vector.jacobian.GaussNewtonOptimizer

public class GaussNewtonOptimizer
extends AbstractLeastSquaresOptimizer

Gauss-Newton least-squares solver.
Constraints are not supported: the call to optimize will throw MathUnsupportedOperationException if bounds are passed to it.

This class solve a least-square problem by solving the normal equations of the linearized problem at each iteration. Either LU decomposition or QR decomposition can be used to solve the normal equations. LU decomposition is faster but QR decomposition is more robust for difficult problems.

Since:
2.0
Version:
$Id: GaussNewtonOptimizer.java 1458323 2013-03-19 14:51:30Z erans $

Field Summary
 
Fields inherited from class org.apache.commons.math3.optim.BaseOptimizer
evaluations, iterations
 
Constructor Summary
GaussNewtonOptimizer(boolean useLU, ConvergenceChecker<PointVectorValuePair> checker)
           
GaussNewtonOptimizer(ConvergenceChecker<PointVectorValuePair> checker)
          Simple constructor with default settings.
 
Method Summary
 PointVectorValuePair doOptimize()
          Performs the bulk of the optimization algorithm.
 
Methods inherited from class org.apache.commons.math3.optim.nonlinear.vector.jacobian.AbstractLeastSquaresOptimizer
computeCost, computeCovariances, computeResiduals, computeSigma, computeWeightedJacobian, getChiSquare, getRMS, getWeightSquareRoot, optimize, parseOptimizationData, setCost
 
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
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
 

Constructor Detail

GaussNewtonOptimizer

public GaussNewtonOptimizer(ConvergenceChecker<PointVectorValuePair> checker)
Simple constructor with default settings. The normal equations will be solved using LU decomposition.

Parameters:
checker - Convergence checker.

GaussNewtonOptimizer

public GaussNewtonOptimizer(boolean useLU,
                            ConvergenceChecker<PointVectorValuePair> checker)
Parameters:
useLU - If true, the normal equations will be solved using LU decomposition, otherwise they will be solved using QR decomposition.
checker - Convergence checker.
Method Detail

doOptimize

public PointVectorValuePair doOptimize()
Performs the bulk of the optimization algorithm.

Specified by:
doOptimize in class BaseOptimizer<PointVectorValuePair>
Returns:
the point/value pair giving the optimal value of the objective function.


Copyright © 2003-2013 The Apache Software Foundation. All Rights Reserved.