cern.colt.matrix.linalg

## Class EigenvalueDecomposition

- java.lang.Object
- - cern.colt.matrix.linalg.EigenvalueDecomposition

- All Implemented Interfaces:
    java.io.Serializable

      public class EigenvalueDecomposition
      extends java.lang.Object
      implements java.io.Serializable

  Eigenvalues and eigenvectors of a real matrix `A`.

  If `A` is symmetric, then `A = V*D*V'` where the eigenvalue matrix `D` is diagonal and the eigenvector matrix `V` is orthogonal. I.e. `A = V.mult(D.mult(transpose(V)))` and `V.mult(transpose(V))` equals the identity matrix.

  If `A` is not symmetric, then the eigenvalue matrix `D` is block diagonal with the real eigenvalues in 1-by-1 blocks and any complex eigenvalues, `lambda + i*mu`, in 2-by-2 blocks, `[lambda, mu; -mu, lambda]`. The columns of `V` represent the eigenvectors in the sense that `A*V = V*D`, i.e. `A.mult(V) equals V.mult(D)`. The matrix `V` may be badly conditioned, or even singular, so the validity of the equation `A = V*D*inverse(V)` depends upon `Algebra.cond(V)`.

  See Also:
    Serialized Form

- - ### Constructor Summary

    Constructors
    Constructor and Description
    `EigenvalueDecomposition(DoubleMatrix2D A)` Constructs and returns a new eigenvalue decomposition object; The decomposed matrices can be retrieved via instance methods of the returned decomposition object.

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `DoubleMatrix2D` | `getD()` Returns the block diagonal eigenvalue matrix, `D`.
    `DoubleMatrix1D` | `getImagEigenvalues()` Returns the imaginary parts of the eigenvalues.
    `DoubleMatrix1D` | `getRealEigenvalues()` Returns the real parts of the eigenvalues.
    `DoubleMatrix2D` | `getV()` Returns the eigenvector matrix, `V`
    `java.lang.String` | `toString()` Returns a String with (propertyName, propertyValue) pairs.

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

      `equals, getClass, hashCode, notify, notifyAll, wait, wait, wait`

- - ### Constructor Detail

    - #### EigenvalueDecomposition

          public EigenvalueDecomposition(DoubleMatrix2D A)

      Constructs and returns a new eigenvalue decomposition object; The decomposed matrices can be retrieved via instance methods of the returned decomposition object. Checks for symmetry, then constructs the eigenvalue decomposition.
      Parameters:
        `A` - A square matrix.
      Throws:
        `java.lang.IllegalArgumentException` - if `A` is not square.

  - ### Method Detail

    - #### getD

          public DoubleMatrix2D getD()

      Returns the block diagonal eigenvalue matrix, `D`.
      Returns:
        `D`

    - #### getImagEigenvalues

          public DoubleMatrix1D getImagEigenvalues()

      Returns the imaginary parts of the eigenvalues.
      Returns:
        imag(diag(D))

    - #### getRealEigenvalues

          public DoubleMatrix1D getRealEigenvalues()

      Returns the real parts of the eigenvalues.
      Returns:
        real(diag(D))

    - #### getV

          public DoubleMatrix2D getV()

      Returns the eigenvector matrix, `V`
      Returns:
        `V`

    - #### toString

          public java.lang.String toString()

      Returns a String with (propertyName, propertyValue) pairs. Useful for debugging or to quickly get the rough picture. For example,

          rank          : 3
          trace         : 0

      Overrides:
        `toString` in class `java.lang.Object`

Jump to the Colt Homepage