Class SymmetricQRAlgorithmDecomposition_DDRM

java.lang.Object
org.ejml.dense.row.decomposition.eig.SymmetricQRAlgorithmDecomposition_DDRM
All Implemented Interfaces:
org.ejml.interfaces.decomposition.DecompositionInterface<org.ejml.data.DMatrixRMaj>, org.ejml.interfaces.decomposition.EigenDecomposition<org.ejml.data.DMatrixRMaj>, org.ejml.interfaces.decomposition.EigenDecomposition_F64<org.ejml.data.DMatrixRMaj>

public class SymmetricQRAlgorithmDecomposition_DDRM
extends java.lang.Object
implements org.ejml.interfaces.decomposition.EigenDecomposition_F64<org.ejml.data.DMatrixRMaj>

Computes the eigenvalues and eigenvectors of a real symmetric matrix using the symmetric implicit QR algorithm. Inside each iteration a QR decomposition of Ai-piI is implicitly computed.

This implementation is based on the algorithm is sketched out in:
David S. Watkins, "Fundamentals of Matrix Computations," Second Edition. page 377-385

See Also:
SymmetricQrAlgorithm_DDRM, TridiagonalDecompositionHouseholder_DDRM
  • Constructor Summary

    Constructors 
    Constructor Description
    SymmetricQRAlgorithmDecomposition_DDRM​(boolean computeVectors)  
    SymmetricQRAlgorithmDecomposition_DDRM​(org.ejml.interfaces.decomposition.TridiagonalSimilarDecomposition_F64<org.ejml.data.DMatrixRMaj> decomp, boolean computeVectors)  
  • Method Summary

    Modifier and Type Method Description
    boolean decompose​(org.ejml.data.DMatrixRMaj orig)
    Decomposes the matrix using the QR algorithm.
    org.ejml.data.Complex_F64 getEigenvalue​(int index)  
    org.ejml.data.DMatrixRMaj getEigenVector​(int index)  
    int getNumberOfEigenvalues()  
    boolean inputModified()  
    void setComputeVectorsWithValues​(boolean computeVectorsWithValues)  
    void setMaxIterations​(int max)
    Used to limit the number of internal QR iterations that the QR algorithm performs.

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • Constructor Details

  • Method Details

    • setComputeVectorsWithValues

      public void setComputeVectorsWithValues​(boolean computeVectorsWithValues)
    • setMaxIterations

      public void setMaxIterations​(int max)
      Used to limit the number of internal QR iterations that the QR algorithm performs. 20 should be enough for most applications.
      Parameters:
      max - The maximum number of QR iterations it will perform.
    • getNumberOfEigenvalues

      public int getNumberOfEigenvalues()
      Specified by:
      getNumberOfEigenvalues in interface org.ejml.interfaces.decomposition.EigenDecomposition<org.ejml.data.DMatrixRMaj>
    • getEigenvalue

      public org.ejml.data.Complex_F64 getEigenvalue​(int index)
      Specified by:
      getEigenvalue in interface org.ejml.interfaces.decomposition.EigenDecomposition_F64<org.ejml.data.DMatrixRMaj>
    • getEigenVector

      public org.ejml.data.DMatrixRMaj getEigenVector​(int index)
      Specified by:
      getEigenVector in interface org.ejml.interfaces.decomposition.EigenDecomposition<org.ejml.data.DMatrixRMaj>
    • decompose

      public boolean decompose​(org.ejml.data.DMatrixRMaj orig)
      Decomposes the matrix using the QR algorithm. Care was taken to minimize unnecessary memory copying and cache skipping.
      Specified by:
      decompose in interface org.ejml.interfaces.decomposition.DecompositionInterface<org.ejml.data.DMatrixRMaj>
      Parameters:
      orig - The matrix which is being decomposed. Not modified.
      Returns:
      true if it decomposed the matrix or false if an error was detected. This will not catch all errors.
    • inputModified

      public boolean inputModified()
      Specified by:
      inputModified in interface org.ejml.interfaces.decomposition.DecompositionInterface<org.ejml.data.DMatrixRMaj>