org.jutil.math.matrix
Class SchurEigenvalueDecomposer
java.lang.Object
|
+--org.jutil.math.matrix.SchurEigenvalueDecomposer
- All Implemented Interfaces:
- EigenvalueDecomposer
- public class SchurEigenvalueDecomposer
- extends java.lang.Object
- implements EigenvalueDecomposer
A class of eigenvalue decomposers using an explict shift algorithm.
| Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
CVS_REVISION
public static final java.lang.String CVS_REVISION
SchurEigenvalueDecomposer
public SchurEigenvalueDecomposer(SchurDecomposer decomposer,
LinSolver linSolver)
- Initialize a new SchurEigenvalueDecomposer with the given
HessenbergReducer
- Parameters:
decomposer - The SchurDecomposer to be used by this SchurEigenvalueDecomposer.linSolver - The LinSolver to be used by this SchurEigenvalueDecomposer.
- Specifications:
-
public behavior
requires decomposer != null;
requires linSolver != null;
ensures getSchurDecomposer() == decomposer;
ensures getLinSolver() == linSolver;
getSchurDecomposer
public SchurDecomposer getSchurDecomposer()
- Return the SchurDecomposer used by this SchurEigenvalueDecomposer
to calculate eigenvalue decompositions.
- Specifications:
-
public behavior
ensures \result != null;
getLinSolver
public LinSolver getLinSolver()
- Return the LinSolver used by this SchurEigenvalueDecomposer
to calculate eigenvalue decompositions.
- Specifications:
-
public behavior
ensures \result != null;
decompose
public EigenvalueDecomposition decompose(Matrix matrix)
- See superclass
- Specifications inherited from overridden method in interface EigenvalueDecomposer:
-
public behavior
requires matrix != null;
requires matrix.getNbRows() == matrix.getNbColumns();
requires (* matrix is not singular *);
ensures \result != null;
ensures (* \result.getEigenvectors().times(\result.lambda()).equals(matrix) *);
ensures (* (\forall int i; i>=1 && i<= matrix.getNbRows(); \result.getEigenvectors().times(\result.getEigenvector(i)).equals(\result.getEigenvector(i).times(\result.getEigenvalue(i))) *);
ensures \result .getEigenvectors().getNbRows() == matrix.getNbRows();
ensures \result .getEigenvectors().getNbColumns() == matrix.getNbColumns();