Class EigenDecompositionImpl

  • All Implemented Interfaces:
    EigenDecomposition

    public class EigenDecompositionImpl
    extends java.lang.Object
    implements EigenDecomposition
    Calculates the eigen decomposition of a real symmetric 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.

    As of 2.0, this class supports only symmetric matrices, and hence computes only real realEigenvalues. This implies the D matrix returned by getD() is always diagonal and the imaginary values returned getImagEigenvalue(int) and getImagEigenvalues() are always null.

    When called with a RealMatrix argument, this implementation only uses the upper part of the matrix, the part below the diagonal is not accessed at all.

    This implementation is based on the paper by A. Drubrulle, R.S. Martin and J.H. Wilkinson 'The Implicit QL Algorithm' in Wilksinson and Reinsch (1971) Handbook for automatic computation, vol. 2, Linear algebra, Springer-Verlag, New-York

    Since:
    2.0
    • Constructor Summary

      Constructors 
      Constructor Description
      EigenDecompositionImpl​(double[] main, double[] secondary, double splitTolerance)
      Calculates the eigen decomposition of the symmetric tridiagonal matrix.
      EigenDecompositionImpl​(RealMatrix matrix, double splitTolerance)
      Calculates the eigen decomposition of the given symmetric matrix.
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method 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.
      • Methods inherited from class java.lang.Object

        equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait