java.lang.Object
imagingbook.common.math.eigen.eispack.QZVAL
-
Method Summary
Modifier and TypeMethodDescriptionstatic void
qzval
(double[][] a, double[][] b, double[] alfr, double[] alfi, double[] beta, boolean matz, double[][] z) This subroutine is the third step of the qz algorithm for solving generalized matrix eigenvalue problems, Siam J.
-
Method Details
-
qzval
public static void qzval(double[][] a, double[][] b, double[] alfr, double[] alfi, double[] beta, boolean matz, double[][] z) This subroutine is the third step of the qz algorithm for solving generalized matrix eigenvalue problems, Siam J. Numer. Anal. 10, 241-256 (1973) by Moler and Stewart. This description has been adapted from the original version (dated August 1983).
This subroutine accepts a pair of real matrices, one of them in quasi-triangular form and the other in upper triangular form. it reduces the quasi-triangular matrix further, so that any remaining 2-by-2 blocks correspond to pairs of complex Eigenvalues, and returns quantities whose ratios give the generalized eigenvalues. It is usually preceded by qzhes and qzit and may be followed by qzvec.
On output:
- a has been reduced further to a quasi-triangular matrix in which all nonzero subdiagonal elements correspond to pairs of complex eigenvalues.
- b is still in upper triangular form, although its elements have been altered. b[n-1][0] is unaltered.
- alfr and alfi contain the real and imaginary parts of the diagonal elements of the triangular matrix that would be obtained if a were reduced completely to triangular form by unitary transformations. Non-zero values of alfi occur in pairs, the first member positive and the second negative.
- beta contains the diagonal elements of the corresponding b, normalized to be real and non-negative. The generalized eigenvalues are then the ratios ((alfr + i * alfi) / beta).
- z contains the product of the right hand transformations (for all three steps) if matz has been set to true.
- Parameters:
a
- contains a real upper quasi-triangular matrix.b
- contains a real upper triangular matrix. In addition, location b[n-1][0] contains the tolerance quantity (epsb) computed and saved in qzit.alfr
- and alfi contain the real and imaginary parts of the diagonal elements of the triangular matrix that would be obtained if a were reduced completely to triangular form by unitary transformations. Non-zero values of alfi occur in pairs, the first member positive and the second negative.alfi
- see description for alfr.beta
- contains the diagonal elements of the corresponding b, normalized to be real and non-negative. The generalized eigenvalues are then the ratios ((alfr + i * alfi) / beta).matz
- should be set to true. if the right hand transformations are to be accumulated for later use in computing eigenvectors, and to false otherwise.z
- contains, if matz has been set to true, the transformation matrix produced in the reductions by qzhes and qzit, if performed, or else the identity matrix. If matz has been set to false, z is not referenced.
-