Class OrderedComplexEigenDecomposition


  • public class OrderedComplexEigenDecomposition
    extends ComplexEigenDecomposition
    Given a matrix A, it computes a complex eigen decomposition A = VDV^{T}. It ensures that eigen values in the diagonal of D are in ascending order.
    • Constructor Detail

      • OrderedComplexEigenDecomposition

        public OrderedComplexEigenDecomposition​(RealMatrix matrix)
        Constructor for the decomposition.
        Parameters:
        matrix - real matrix.
      • OrderedComplexEigenDecomposition

        public OrderedComplexEigenDecomposition​(RealMatrix matrix,
                                                double eigenVectorsEquality,
                                                double epsilon,
                                                double epsilonAVVDCheck)
        Constructor for decomposition.

        The eigenVectorsEquality threshold is used to ensure the L∞-normalized eigenvectors found using inverse iteration are different from each other. if \(min(|e_i-e_j|,|e_i+e_j|)\) is smaller than this threshold, the algorithm considers it has found again an already known vector, so it drops it and attempts a new inverse iteration with a different start vector. This value should be much larger than epsilon which is used for convergence

        This constructor calls OrderedComplexEigenDecomposition(RealMatrix, double, double, double, Comparator) with a comparator using real ordering as the primary sort order and imaginary ordering as the secondary sort order..

        Parameters:
        matrix - real matrix.
        eigenVectorsEquality - threshold below which eigenvectors are considered equal
        epsilon - Epsilon used for internal tests (e.g. is singular, eigenvalue ratio, etc.)
        epsilonAVVDCheck - Epsilon criteria for final AV=VD check
        Since:
        1.9
      • OrderedComplexEigenDecomposition

        public OrderedComplexEigenDecomposition​(RealMatrix matrix,
                                                double eigenVectorsEquality,
                                                double epsilon,
                                                double epsilonAVVDCheck,
                                                Comparator<Complex> eigenValuesComparator)
        Constructor for decomposition.

        The eigenVectorsEquality threshold is used to ensure the L∞-normalized eigenvectors found using inverse iteration are different from each other. if \(min(|e_i-e_j|,|e_i+e_j|)\) is smaller than this threshold, the algorithm considers it has found again an already known vector, so it drops it and attempts a new inverse iteration with a different start vector. This value should be much larger than epsilon which is used for convergence

        Parameters:
        matrix - real matrix.
        eigenVectorsEquality - threshold below which eigenvectors are considered equal
        epsilon - Epsilon used for internal tests (e.g. is singular, eigenvalue ratio, etc.)
        epsilonAVVDCheck - Epsilon criteria for final AV=VD check
        eigenValuesComparator - comparator for sorting eigen values
        Since:
        3.0