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:

    Since:
    2.0
    See Also:
    MathWorld, Wikipedia
    • 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