Class OrderedComplexEigenDecomposition

java.lang.Object
org.hipparchus.linear.ComplexEigenDecomposition
org.hipparchus.linear.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 Details

    • 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
  • Method Details