org.apache.commons.math3.fitting.leastsquares

## Enum GaussNewtonOptimizer.Decomposition

- java.lang.Object
- - java.lang.Enum<GaussNewtonOptimizer.Decomposition>
  - - org.apache.commons.math3.fitting.leastsquares.GaussNewtonOptimizer.Decomposition

- All Implemented Interfaces:
    Serializable, Comparable<GaussNewtonOptimizer.Decomposition>
  Enclosing class:
    GaussNewtonOptimizer

      public static enum GaussNewtonOptimizer.Decomposition
      extends Enum<GaussNewtonOptimizer.Decomposition>

  The decomposition algorithm to use to solve the normal equations.

- - ### Enum Constant Summary

    Enum Constants
    Enum Constant and Description
    `CHOLESKY` Solve by forming the normal equations (JTJx=JTr) and using the `CholeskyDecomposition`.
    `LU` Solve by forming the normal equations (JTJx=JTr) and using the `LUDecomposition`.
    `QR` Solve the linear least squares problem (Jx=r) using the `QRDecomposition`.
    `SVD` Solve the linear least squares problem using the `SingularValueDecomposition`.

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `protected abstract RealVector` | `solve(RealMatrix jacobian, RealVector residuals)` Solve the linear least squares problem Jx=r.
    `static GaussNewtonOptimizer.Decomposition` | `valueOf(String name)` Returns the enum constant of this type with the specified name.
    `static GaussNewtonOptimizer.Decomposition[]` | `values()` Returns an array containing the constants of this enum type, in the order they are declared.

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

      `clone, compareTo, equals, finalize, getDeclaringClass, hashCode, name, ordinal, toString, valueOf`

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

      `getClass, notify, notifyAll, wait, wait, wait`

- - ### Enum Constant Detail

    - #### LU

          public static final GaussNewtonOptimizer.Decomposition LU

      Solve by forming the normal equations (JTJx=JTr) and using the `LUDecomposition`.

      Theoretically this method takes mn2/2 operations to compute the normal matrix and n3/3 operations (m > n) to solve the system using the LU decomposition.

    - #### QR

          public static final GaussNewtonOptimizer.Decomposition QR

      Solve the linear least squares problem (Jx=r) using the `QRDecomposition`.

      Theoretically this method takes mn2 - n3/3 operations (m > n) and has better numerical accuracy than any method that forms the normal equations.

    - #### CHOLESKY

          public static final GaussNewtonOptimizer.Decomposition CHOLESKY

      Solve by forming the normal equations (JTJx=JTr) and using the `CholeskyDecomposition`.

      Theoretically this method takes mn2/2 operations to compute the normal matrix and n3/6 operations (m > n) to solve the system using the Cholesky decomposition.

    - #### SVD

          public static final GaussNewtonOptimizer.Decomposition SVD

      Solve the linear least squares problem using the `SingularValueDecomposition`.

      This method is slower, but can provide a solution for rank deficient and nearly singular systems.

  - ### Method Detail

    - #### values

          public static GaussNewtonOptimizer.Decomposition[] values()

      Returns an array containing the constants of this enum type, in the order they are declared. This method may be used to iterate over the constants as follows:

          for (GaussNewtonOptimizer.Decomposition c : GaussNewtonOptimizer.Decomposition.values())
              System.out.println(c);

      Returns:
        an array containing the constants of this enum type, in the order they are declared

    - #### valueOf

          public static GaussNewtonOptimizer.Decomposition valueOf(String name)

      Returns the enum constant of this type with the specified name. The string must match exactly an identifier used to declare an enum constant in this type. (Extraneous whitespace characters are not permitted.)
      Parameters:
        `name` - the name of the enum constant to be returned.
      Returns:
        the enum constant with the specified name
      Throws:
        `IllegalArgumentException` - if this enum type has no constant with the specified name
        `NullPointerException` - if the argument is null

    - #### solve

          protected abstract RealVector solve(RealMatrix jacobian,
                         RealVector residuals)

      Solve the linear least squares problem Jx=r.
      Parameters:
        `jacobian` - the Jacobian matrix, J. the number of rows >= the number or columns.
        `residuals` - the computed residuals, r.
      Returns:
        the solution x, to the linear least squares problem Jx=r.
      Throws:
        `ConvergenceException` - if the matrix properties (e.g. singular) do not permit a solution.

Copyright © 2003–2016 The Apache Software Foundation. All rights reserved.