From this page you can get a Matlab® implementation of the JDQR algorithm.
The JDQR algorithm can be used for computing a few selected eigenvalues
with some desirable property together with the associated eigenvectors
of a matrix A. The matrix can be real or complex, Hermitian or non-Hermitian,
.... The algorithm is effective especially in case A is sparse and of large
The Jacobi-Davidson method is used to compute a partial Schur decomposition
of A. The decomposition leads to the wanted eigenpairs.
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 JDQR algorithm. These
functions M-files are bundled in one file jdqr.m. In this form,
jdqr.m requires Matlab version 5.1 or higher.
We also provide a few "test" files that can help to see how the jdqr.m
can be used. jdqr.tar.gz contains the M-files
jdqr.m plus the test files in tarred and zipped form (apply gunzip
jdqr.tar.gz and tar xvf jdqr.tar to unpack). jdqr.m
and the test files can also be obtained separately: see below, where you
can also find a description of their use.
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.
Example of a function file for jdqr of a linear operator.
out is the result of the operator applied to the vector v
when applied with 1 input argument. If flag='dimension' then out
is the dimension N. If flag='preconditioner' then out
is the result of "a preconditioner".