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

## Class GaussNewtonOptimizer

- java.lang.Object
- - org.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
          - - org.apache.commons.math3.optim.nonlinear.vector.jacobian.GaussNewtonOptimizer

    public class GaussNewtonOptimizer
    extends AbstractLeastSquaresOptimizer

Gauss-Newton least-squares solver.

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 1416643 2012-12-03 19:37:14Z tn $

### Field Summary

Fields
`private boolean` `useLU` Indicator for using LU decomposition.

### Fields inherited from class org.apache.commons.math3.optim.BaseOptimizer

`evaluations, iterations`

### Constructor Summary

Constructors
Constructor and Description
`GaussNewtonOptimizer(boolean useLU, ConvergenceChecker<PointVectorValuePair> checker)`
`GaussNewtonOptimizer(ConvergenceChecker<PointVectorValuePair> checker)` Simple constructor with default settings.

### Method Summary

Methods
`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, 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`

### Field Detail

#### useLU

    private final boolean useLU

Indicator for using LU decomposition.

### 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.