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

    • SymmetricQRAlgorithmDecomposition_DDRM

      public SymmetricQRAlgorithmDecomposition_DDRM​(org.ejml.interfaces.decomposition.TridiagonalSimilarDecomposition_F64<org.ejml.data.DMatrixRMaj> decomp, boolean computeVectors)
    • SymmetricQRAlgorithmDecomposition_DDRM

      public SymmetricQRAlgorithmDecomposition_DDRM​(boolean computeVectors)
  • 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>