EIGIFP.m:   -  A matlab program that computes a few (algebraically) smallest or largest eigenvalues of a large symmetric matrix A or the generalized eigenvalue problem for a pencil (A, B):


A x = lambda x    or      A x = lambda B x


where A and B are symmetric and B is positive definite.


  • It is a black-box implementation of the inverse free preconditioned Krylov subspace method of

G. Golub  and  Q.  Ye An Inverse Free Preconditioned Krylov Subspace Method for
Symmetric Generalized Eigenvalue ProblemsSIAM Journal on Scientific Computing, 24:312-334.



1.      A two level iteration with a projection on Krylov subspaces generated by a shifted matrix A-lambda_k B in the inner iteration;  Either the Lanczos algorithm or the Arnoldi algorithm is employed for the projection; Adaptive choice of inner iterations;


2.      A preconditioning technique based on a congruence transformation to accelerate convergence;


3.      A built-in preconditioner using threshold ILU factorization;  Particularly suitable for problems where any of the following applies:


a)      factorization of B (i.e. inverting B) is difficult;

b)      factorization of a shifted matrix A-lambda_k B (i.e. inverting it) is difficult;

c)      no a priori information is available on the location of the spectrum sought.


[lambda, x] = eigifp(A):           computes the (algebraically)  smallest eigenvalue/eigenvector of A;
[Lambda, X] = eigifp(A, k):     computes the k (algebraicaly)  smallest eigenvalue/eigenvector of A;

[lambda, x] = eigifp(A, B):       computes the (algebraically) smallest eigenvalue/eigenvector of (A, B);
[Lambda, X] = eigifp(A, B, k): computes the (algebraically)  smallest eigenvalue/eigenvector of (A, B);


To compute the largest eigenvalues, set opt.maxeig =1. One may also simply compute the smallest eigenvalue of –A (or (-A, B)) and then negate the eigenvalue. Example: 

[Lambda, X] = eigifp(-A,B,k); Lambda=-Lambda;  =>  k largest eigenvalues/eigenvectors of (A,B);


To use any a priori information or to control computational cost and optimize performance,
eigifp(A, opt), eigifp(A, k, opt),  eigifp(A, B, opt) and  eigifp(A, B, k, opt) take optional inputs
defined by opt.  Use

help  eigifp

to find out the details.  The following is a documentation of the program. 





Please click HERE to download EIGIFP 2.2.

This work is supported in part by NSF grants CCR - 0098133 and DMS-0411502. Please note that this program is provided for research and educational use.  Neither redistribution nor commercial use is permitted without consent of the author.



BLEIGIFP: - is based on a block generalization of the inverse free preconditioned Krylov subspace method that can compute multiple or severely clustered eigenvalues. The present version implements either a preconditioned algorithm or non-preconditioned algorithm, but it has a scheme to choose block size adaptively. See the BLEIGIFP page for details and download information.



Other programs for preconditioned eigenvalue iterations can be found in Andrew Knyazev's eigensolvers page .



Return to Ye's Homepage.