BANDITS: a Matlab Package of Band Krylov Subspace Iterations

One of the most versatile tools for large-scale matrix computations are iterative methods based on Krylov subspaces. Standard Krylov subspaces are induced by a given square matrix \( A \) and a single starting vector \( r \). However, many important applications of Krylov-subspace methods involve a block \( R \) of multiple starting vectors, rather than a single starting vector \( r \). Applications of this type include the iterative solution of systems of linear equations with multiple right-hand sides and model reduction of linear dynamical systems with multiple inputs and outputs. The traditional approach of dealing with multiple starting vectors is to employ block algorithms to generate suitable basis vectors for block Krylov subspaces induced by a given square matrix \( A \) and a block \( R \) of multiple starting vectors. However, there are a number of conceptual issues with such block algorithms. In general, Krylov vectors will become linearly dependent or almost linearly dependent before the block Krylov subspaces are exhausted. Dealing with such Krylov vectors requires deflation procedures and reduction of block sizes to continue the block iteration. For the general Lanczos method, which involves blocks \( R \) and \( L \) of right and left starting vectors, block variants are only feasible if \( R \) and \( L \) have the same number of columns and if deflations are assumed to occur simultaneously for the right and left Krylov vectors.

Band Krylov subspace methods remedy some of the issues of block approaches. Even though band methods generate suitable basis vectors for the same Krylov subspaces as the block methods, they do so by employing a vector-wise construction, instead of the block-wise construction in block methods. This vector-wise construction makes it easy to check for necessary deflations and to perform these deflations. It also allows to deal with starting blocks \( R \) and \( L \) of any size. The band approach was pioneered by Axel Ruhe who was the first to propose a band version of the symmetric Lanczos method in the context of computing eigenvalues of real symmetric matrices. The more recent development of the band Lanczos method for general matrices \( A \), \( R \), and \( L \) was motivated by the need for an efficient Krylov subspace method in the context of model reduction of linear time-invariant dynamical systems with multiple inputs and outputs. In this application, the starting blocks \( R \) and \( L \) do not have the same number of columns in general.

BANDITS is a package of Matlab implementations of band versions of the Arnoldi process, the Lanczos method, and of simplified versions of the Lanczos method for Hermitian, symmetric, \( J \)-Hermitian, and \( J \)-symmetric matrices. The Matlab functions of these methods are designed such that each band algorithm can be started from scratch ("cold start") or can resume a previous run ("hot start"). To facilitate this feature, the output of each algorithm is a structure "result" the fields of which are quantities (such as projections of \( A \) and \( R \) onto the subspaces spanned by the generated basis vectors) needed in applications and internal quantities used inside the algorithm. In the case of a hot start, the output structure "result" produced by a previous run is a required input for the resuming run of the algorithm. All Lanczos algorithms in BANDITS have the option of storing only the Lanczos vectors needed to run the algorithm or of storing all Lanczos vectors generated in the course of the iteration.

Algorithms

Download

Related Publications