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
-
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 booleandecompose(org.ejml.data.DMatrixRMaj orig)Decomposes the matrix using the QR algorithm.org.ejml.data.Complex_F64getEigenvalue(int index)org.ejml.data.DMatrixRMajgetEigenVector(int index)intgetNumberOfEigenvalues()booleaninputModified()voidsetComputeVectorsWithValues(boolean computeVectorsWithValues)voidsetMaxIterations(int max)Used to limit the number of internal QR iterations that the QR algorithm performs.
-
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:
getNumberOfEigenvaluesin interfaceorg.ejml.interfaces.decomposition.EigenDecomposition<org.ejml.data.DMatrixRMaj>
-
getEigenvalue
public org.ejml.data.Complex_F64 getEigenvalue(int index)- Specified by:
getEigenvaluein interfaceorg.ejml.interfaces.decomposition.EigenDecomposition_F64<org.ejml.data.DMatrixRMaj>
-
getEigenVector
public org.ejml.data.DMatrixRMaj getEigenVector(int index)- Specified by:
getEigenVectorin interfaceorg.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:
decomposein interfaceorg.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:
inputModifiedin interfaceorg.ejml.interfaces.decomposition.DecompositionInterface<org.ejml.data.DMatrixRMaj>
-