org.apache.commons.math3.optimization.general

## Class GaussNewtonOptimizer

- java.lang.Object
- - org.apache.commons.math3.optimization.direct.BaseAbstractMultivariateVectorOptimizer<DifferentiableMultivariateVectorFunction>
  - - org.apache.commons.math3.optimization.general.AbstractLeastSquaresOptimizer
    - - org.apache.commons.math3.optimization.general.GaussNewtonOptimizer

- All Implemented Interfaces:
    BaseMultivariateVectorOptimizer<DifferentiableMultivariateVectorFunction>, BaseOptimizer<PointVectorValuePair>, DifferentiableMultivariateVectorOptimizer

      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 1244107 2012-02-14 16:17:55Z erans $

- - ### Field Summary

    - ### Fields inherited from class org.apache.commons.math3.optimization.general.AbstractLeastSquaresOptimizer

      `cols, cost, objective, point, rows, weightedResidualJacobian, weightedResiduals`

    - ### Fields inherited from class org.apache.commons.math3.optimization.direct.BaseAbstractMultivariateVectorOptimizer

      `evaluations`

  - ### Constructor Summary

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

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `PointVectorValuePair` | `doOptimize()` Perform the bulk of the optimization algorithm.

    - ### Methods inherited from class org.apache.commons.math3.optimization.general.AbstractLeastSquaresOptimizer

      `getChiSquare, getCovariances, getCovariances, getJacobianEvaluations, getRMS, guessParametersErrors, optimize, updateJacobian, updateResidualsAndCost`

    - ### Methods inherited from class org.apache.commons.math3.optimization.direct.BaseAbstractMultivariateVectorOptimizer

      `computeObjectiveValue, getConvergenceChecker, getEvaluations, getMaxEvaluations, getStartPoint, getTargetRef, getWeightRef`

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

    - ### Methods inherited from interface org.apache.commons.math3.optimization.BaseOptimizer

      `getConvergenceChecker, getEvaluations, getMaxEvaluations`

- - ### Constructor Detail

    - #### GaussNewtonOptimizer

          public GaussNewtonOptimizer()

      Simple constructor with default settings. The normal equations will be solved using LU decomposition and the convergence check is set to a `SimpleVectorValueChecker` with default tolerances.

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

      Simple constructor with default settings. The convergence check is set to a `SimpleVectorValueChecker` with default tolerances.
      Parameters:
        `useLU` - If `true`, the normal equations will be solved using LU decomposition, otherwise they will be solved using QR decomposition.

    - #### 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()

      Perform the bulk of the optimization algorithm.
      Specified by:
        `doOptimize` in class `BaseAbstractMultivariateVectorOptimizer<DifferentiableMultivariateVectorFunction>`
      Returns:
        the point/value pair giving the optimal value for the objective function.

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