Class SymmetricQRAlgorithmDecomposition_FDRM
- java.lang.Object
-
- org.ejml.dense.row.decomposition.eig.SymmetricQRAlgorithmDecomposition_FDRM
-
- All Implemented Interfaces:
org.ejml.interfaces.decomposition.DecompositionInterface<org.ejml.data.FMatrixRMaj>,org.ejml.interfaces.decomposition.EigenDecomposition<org.ejml.data.FMatrixRMaj>,org.ejml.interfaces.decomposition.EigenDecomposition_F32<org.ejml.data.FMatrixRMaj>
public class SymmetricQRAlgorithmDecomposition_FDRM extends java.lang.Object implements org.ejml.interfaces.decomposition.EigenDecomposition_F32<org.ejml.data.FMatrixRMaj>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_FDRM(boolean computeVectors)SymmetricQRAlgorithmDecomposition_FDRM(org.ejml.interfaces.decomposition.TridiagonalSimilarDecomposition_F32<org.ejml.data.FMatrixRMaj> decomp, boolean computeVectors)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description booleandecompose(org.ejml.data.FMatrixRMaj orig)Decomposes the matrix using the QR algorithm.org.ejml.data.Complex_F32getEigenvalue(int index)org.ejml.data.FMatrixRMajgetEigenVector(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 Detail
-
SymmetricQRAlgorithmDecomposition_FDRM
public SymmetricQRAlgorithmDecomposition_FDRM(org.ejml.interfaces.decomposition.TridiagonalSimilarDecomposition_F32<org.ejml.data.FMatrixRMaj> decomp, boolean computeVectors)
-
SymmetricQRAlgorithmDecomposition_FDRM
public SymmetricQRAlgorithmDecomposition_FDRM(boolean computeVectors)
-
-
Method Detail
-
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.FMatrixRMaj>
-
getEigenvalue
public org.ejml.data.Complex_F32 getEigenvalue(int index)
- Specified by:
getEigenvaluein interfaceorg.ejml.interfaces.decomposition.EigenDecomposition_F32<org.ejml.data.FMatrixRMaj>
-
getEigenVector
public org.ejml.data.FMatrixRMaj getEigenVector(int index)
- Specified by:
getEigenVectorin interfaceorg.ejml.interfaces.decomposition.EigenDecomposition<org.ejml.data.FMatrixRMaj>
-
decompose
public boolean decompose(org.ejml.data.FMatrixRMaj 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.FMatrixRMaj>- 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.FMatrixRMaj>
-
-