JDQR

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 size.
The Jacobi-Davidson method is used to compute a partial Schur decomposition of A. 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 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 4.7 (for symmetric matrices A) and
Chapter 7.12 (for general type of matrices A).
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.



File: jdqr.m
Requires: Matlab Version 5.1.
Function: [X,Lambda,Q,S,HISTORY] = JDQR(matrix/filename,K,SIGMA,OPTIONS);
Description


File: testB.m
Requires: jdqr.m and Matlab Version 5.1.
Function: testB
Description: Contains some examples for using jdqr.m


File: testA.m
Requires: jdqr.m, ILU.m, Example1.m, Example2.m and Matlab Version 5.1.
Function: testA
Description: Contains some examples for using preconditioning in jdqr.m


File: Example1.m
Requires: Matlab Version 5.1.
Function: out=Example1(v)
Description: Example of a function file for jdqr of a linear operator. out is the result of the operator applied to the vector v.


File: Example2.m
Requires: Matlab Version 5.1.
Function: out=Example2(v,flag)
Description: 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". 


File: ILU.m
Requires: Matlab Version 5.1.
Function: out=ILU(v)
Description: Example of a function file for jdqr of a preconditioner. out is the result of the preconditioner applied to the vector v.




  © Gerard L. G. Sleijpen   <G.L.G.Sleijpen@uu.nl>
  Last modified: Tuesday, 22-Jun-2010 13:19:50 CEST