org.apache.commons.math.linear

## Interface EigenDecomposition

- All Known Implementing Classes:
    EigenDecompositionImpl

      public interface EigenDecomposition

  An interface to classes that implement an algorithm to calculate the eigen decomposition of a real matrix.

  The eigen decomposition of matrix A is a set of two matrices: V and D such that A = V × D × VT. A, V and D are all m × m matrices.

  This interface is similar in spirit to the `EigenvalueDecomposition` class from the JAMA library, with the following changes:

  - a `getVt` method has been added,
  - two `getRealEigenvalue` and `getImagEigenvalue` methods to pick up a single eigenvalue have been added,
  - a `getEigenvector` method to pick up a single eigenvector has been added,
  - a `getDeterminant` method has been added.
  - a `getSolver` method has been added.
  Since:
    2.0
  Version:
    $Revision: 997726 $ $Date: 2010-09-16 14:39:51 +0200 (jeu. 16 sept. 2010) $
  See Also:
    MathWorld, Wikipedia

- - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `RealMatrix` | `getD()` Returns the block diagonal matrix D of the decomposition.
    `double` | `getDeterminant()` Return the determinant of the matrix
    `RealVector` | `getEigenvector(int i)` Returns a copy of the ith eigenvector of the original matrix.
    `double` | `getImagEigenvalue(int i)` Returns the imaginary part of the ith eigenvalue of the original matrix.
    `double[]` | `getImagEigenvalues()` Returns a copy of the imaginary parts of the eigenvalues of the original matrix.
    `double` | `getRealEigenvalue(int i)` Returns the real part of the ith eigenvalue of the original matrix.
    `double[]` | `getRealEigenvalues()` Returns a copy of the real parts of the eigenvalues of the original matrix.
    `DecompositionSolver` | `getSolver()` Get a solver for finding the A × X = B solution in exact linear sense.
    `RealMatrix` | `getV()` Returns the matrix V of the decomposition.
    `RealMatrix` | `getVT()` Returns the transpose of the matrix V of the decomposition.

- - ### Method Detail

    - #### getV

          RealMatrix getV()

      Returns the matrix V of the decomposition.

      V is an orthogonal matrix, i.e. its transpose is also its inverse.

      The columns of V are the eigenvectors of the original matrix.

      No assumption is made about the orientation of the system axes formed by the columns of V (e.g. in a 3-dimension space, V can form a left- or right-handed system).

      Returns:
        the V matrix

    - #### getD

          RealMatrix getD()

      Returns the block diagonal matrix D of the decomposition.

      D is a block diagonal matrix.

      Real eigenvalues are on the diagonal while complex values are on 2x2 blocks { {real +imaginary}, {-imaginary, real} }.

      Returns:
        the D matrix
      See Also:
        `getRealEigenvalues()`, `getImagEigenvalues()`

    - #### getVT

          RealMatrix getVT()

      Returns the transpose of the matrix V of the decomposition.

      V is an orthogonal matrix, i.e. its transpose is also its inverse.

      The columns of V are the eigenvectors of the original matrix.

      No assumption is made about the orientation of the system axes formed by the columns of V (e.g. in a 3-dimension space, V can form a left- or right-handed system).

      Returns:
        the transpose of the V matrix

    - #### getRealEigenvalues

          double[] getRealEigenvalues()

      Returns a copy of the real parts of the eigenvalues of the original matrix.
      Returns:
        a copy of the real parts of the eigenvalues of the original matrix
      See Also:
        `getD()`, `getRealEigenvalue(int)`, `getImagEigenvalues()`

    - #### getRealEigenvalue

          double getRealEigenvalue(int i)

      Returns the real part of the ith eigenvalue of the original matrix.
      Parameters:
        `i` - index of the eigenvalue (counting from 0)
      Returns:
        real part of the ith eigenvalue of the original matrix
      See Also:
        `getD()`, `getRealEigenvalues()`, `getImagEigenvalue(int)`

    - #### getImagEigenvalues

          double[] getImagEigenvalues()

      Returns a copy of the imaginary parts of the eigenvalues of the original matrix.
      Returns:
        a copy of the imaginary parts of the eigenvalues of the original matrix
      See Also:
        `getD()`, `getImagEigenvalue(int)`, `getRealEigenvalues()`

    - #### getImagEigenvalue

          double getImagEigenvalue(int i)

      Returns the imaginary part of the ith eigenvalue of the original matrix.
      Parameters:
        `i` - index of the eigenvalue (counting from 0)
      Returns:
        imaginary part of the ith eigenvalue of the original matrix
      See Also:
        `getD()`, `getImagEigenvalues()`, `getRealEigenvalue(int)`

    - #### getEigenvector

          RealVector getEigenvector(int i)

      Returns a copy of the ith eigenvector of the original matrix.
      Parameters:
        `i` - index of the eigenvector (counting from 0)
      Returns:
        copy of the ith eigenvector of the original matrix
      See Also:
        `getD()`

    - #### getDeterminant

          double getDeterminant()

      Return the determinant of the matrix
      Returns:
        determinant of the matrix

    - #### getSolver

          DecompositionSolver getSolver()

      Get a solver for finding the A × X = B solution in exact linear sense.
      Returns:
        a solver

Copyright (c) 2003-2013 Apache Software Foundation