EigenDecomposition
org.ejml.factory

## Interface EigenDecomposition<MatrixType extends Matrix64F>

• All Superinterfaces:
DecompositionInterface<MatrixType>
All Known Implementing Classes:
SwitchingEigenDecomposition, SymmetricQRAlgorithmDecomposition, WatchedDoubleStepQRDecomposition

```public interface EigenDecomposition<MatrixType extends Matrix64F>
extends DecompositionInterface<MatrixType>```

This is a generic interface for computing the eigenvalues and eigenvectors of a matrix. Eigenvalues and eigenvectors have the following property:

A*v=λ*v

where A is a square matrix and v is an eigenvector associated with the eigenvalue λ.

In general, both eigenvalues and eigenvectors can be complex numbers. For symmetric matrices the eigenvalues and eigenvectors are always real numbers. EJML does not support complex matrices but it does have minimal support for complex numbers. As a result complex eigenvalues are found, but only the real eigenvectors are computed.

To create a new instance of `EigenDecomposition` use `DecompositionFactory`. If the matrix is known to be symmetric be sure to use the symmetric decomposition, which is much faster and more accurate than the general purpose one.

• ### Method Summary

Methods
Modifier and Type Method and Description
`Complex64F` `getEigenvalue(int index)`
Returns an eigenvalue as a complex number.
`MatrixType` `getEigenVector(int index)`
Used to retrieve real valued eigenvectors.
`int` `getNumberOfEigenvalues()`
Returns the number of eigenvalues/eigenvectors.
• ### Methods inherited from interface org.ejml.factory.DecompositionInterface

`decompose, inputModified`
• ### Method Detail

• #### getNumberOfEigenvalues

`int getNumberOfEigenvalues()`
Returns the number of eigenvalues/eigenvectors. This is the matrix's dimension.
Returns:
number of eigenvalues/eigenvectors.
• #### getEigenvalue

`Complex64F getEigenvalue(int index)`

Returns an eigenvalue as a complex number. For symmetric matrices the returned eigenvalue will always be a real number, which means the imaginary component will be equal to zero.

NOTE: The order of the eigenvalues is dependent upon the decomposition algorithm used. This means that they may or may not be ordered by magnitude. For example the QR algorithm will returns results that are partially ordered by magnitude, but this behavior should not be relied upon.

Parameters:
`index` - Index of the eigenvalue eigenvector pair.
Returns:
An eigenvalue.
• #### getEigenVector

`MatrixType getEigenVector(int index)`

Used to retrieve real valued eigenvectors. If an eigenvector is associated with a complex eigenvalue then null is returned instead.

Parameters:
`index` - Index of the eigenvalue eigenvector pair.
Returns:
If the associated eigenvalue is real then an eigenvector is returned, null otherwise.