Class SymmetricQrAlgorithm_FDRM
- java.lang.Object
-
- org.ejml.dense.row.decomposition.eig.symm.SymmetricQrAlgorithm_FDRM
-
public class SymmetricQrAlgorithm_FDRM extends java.lang.ObjectComputes the eigenvalues and eigenvectors of a symmetric tridiagonal matrix using the symmetric QR algorithm.
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 SymmetricQrAlgorithm_FDRM()Creates a new SymmetricQREigenvalue class that declares its own SymmetricQREigenHelper.SymmetricQrAlgorithm_FDRM(SymmetricQREigenHelper_FDRM helper)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description floatgetEigenvalue(int index)Returns the eigenvalue at the specified index.intgetNumberOfEigenvalues()Returns the number of eigenvalues available.org.ejml.data.FMatrixRMajgetQ()voidperformStep()First looks for zeros and then performs the implicit single step in the QR Algorithm.booleanprocess(int sideLength, float[] diag, float[] off)booleanprocess(int sideLength, float[] diag, float[] off, float[] eigenvalues)Computes the eigenvalue of the provided tridiagonal matrix.voidsetFastEigenvalues(boolean fastEigenvalues)voidsetMaxIterations(int maxIterations)voidsetQ(org.ejml.data.FMatrixRMaj q)
-
-
-
Constructor Detail
-
SymmetricQrAlgorithm_FDRM
public SymmetricQrAlgorithm_FDRM(SymmetricQREigenHelper_FDRM helper)
-
SymmetricQrAlgorithm_FDRM
public SymmetricQrAlgorithm_FDRM()
Creates a new SymmetricQREigenvalue class that declares its own SymmetricQREigenHelper.
-
-
Method Detail
-
setMaxIterations
public void setMaxIterations(int maxIterations)
-
getQ
public org.ejml.data.FMatrixRMaj getQ()
-
setQ
public void setQ(org.ejml.data.FMatrixRMaj q)
-
setFastEigenvalues
public void setFastEigenvalues(boolean fastEigenvalues)
-
getEigenvalue
public float getEigenvalue(int index)
Returns the eigenvalue at the specified index.- Parameters:
index- Which eigenvalue.- Returns:
- The eigenvalue.
-
getNumberOfEigenvalues
public int getNumberOfEigenvalues()
Returns the number of eigenvalues available.- Returns:
- How many eigenvalues there are.
-
process
public boolean process(int sideLength, float[] diag, float[] off, float[] eigenvalues)Computes the eigenvalue of the provided tridiagonal matrix. Note that only the upper portion needs to be tridiagonal. The bottom diagonal is assumed to be the same as the top.- Parameters:
sideLength- Number of rows and columns in the input matrix.diag- Diagonal elements from tridiagonal matrix. Modified.off- Off diagonal elements from tridiagonal matrix. Modified.- Returns:
- true if it succeeds and false if it fails.
-
process
public boolean process(int sideLength, float[] diag, float[] off)
-
performStep
public void performStep()
First looks for zeros and then performs the implicit single step in the QR Algorithm.
-
-