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