# JDQZ

From this page you can get a Matlab® implementation of the JDQZ algorithm.

The code has not been fully tested yet and may change. The code is provided on an "as is" basis. The author provides no warranty whatsoever, either expressed or implied, regarding the work, including warranties with respect to its merchantability or fitness for any particular purpose. The code is distributed under the terms of the GNU General Public License (version 2 of the License, or any later version) as published by the Free Software Foundation.

The JDQZ algorithm can be used for computing a few selected eigenvalues with some desirable property together with the associated eigenvectors of a matrix pencil A-lambda*B. The matrices can be real or complex, Hermitian or non-Hermitian, .... The algorithm is effective especially in case A and B are sparse and of large size.

The Jacobi-Davidson method is used to compute a partial generalized Schur decomposition of the pair (A,B). The decomposition leads to the wanted eigenpairs.

The Jacobi-Davidson method has been introduced in

G.L.G. Sleijpen and H.A. van der Vorst,
A Jacobi-Davidson iteration method for linear eigenvalue problems,
SIAM J. Matrix Anal. Appl. (SIMAX), 17 (1996), pp. 401-425 .
For the JDQZ and the related JDQR algorithm, see
D.R. Fokkema G.L.G. Sleijpen , and H.A. van der Vorst,
Jacobi-Davidson style QR and QZ algorithms for the reduction of matrix pencils,
SIAM J. Sc. Comput., 20:1 (1998), pp. 94-125
The Matlab® implementation here is based on the algorithms as discussed in
Zhaojun Bai, James Demmel, Jack Dongarra, Axel Ruhe, and Henk Van der Vorst (eds.),
Templates for the Solution of Algebraic Eigenvalue Problems: a Practical Guide ,
Chapter 5.6 (for generalized Hermitian eigenvalue problems, i.e. A and B are Hermitian and, in addition, B is positive definite) and
Chapter 8.4 (for pairs of general type of matrices).
The Matlab® code here contains a number of function M-files (as a GMRES, Bi-CGSTAB, BiCGstab(ell), ... implementation for solving linear systems) that can be used the improve the performance of the JDQZ algorithm. These functions M-files are bundled in one file jdqz.m (jdqz.m.gz). In this form, jdqz.m requires Matlab version 5.1 or higher.
We also provide a few "test" files that can help to see how the jdqz.m can be used. jdqr.tar.gz contains the M-files jdqz.m plus the test files in tarred and zipped form (apply gunzip jdqz.m.tar.gz and tar xvf jdqz.m.tar to unpack). jdqz.m and the test files can also be obtained separately.

There is a Matlab-type of description of their use.

© Gerard L. G. Sleijpen   <G.L.G.Sleijpen@uu.nl>