Bartels–Stewart algorithm

This is an old revision of this page, as edited by Hdw12 (talk | contribs) at 20:48, 20 September 2018 (Alternative approaches and related problems). The present address (URL) is a permanent link to this revision, which may differ significantly from the current revision.


Bartels-Stewart Algorithm

In numerical linear algebra, the Bartels-Stewart algorithm is used to numerically solve the Sylvester matrix equation . Developed by R.H. Bartels and G.W. Stewart in 1971, it was the first numerically stable method that could by systematically applied to solve such equations. The algorithm works by using the Schur decompositions of and to transform into a triangular system that can then be solved using forward and back-substitutions. In 1979, G. Golub, C. Van Loan and S.Nash introduced an improved version of the algorithm, known as the Hessenberg-Schur algorithm. It remains the standard approach for solving Sylvester equations when is of small to moderate size.

The algorithm

Let  , and assume that the eigenvalues of   are distinct from the eigenvalues of  . Then, the matrix   has a unique solution. The Bartels-Stewart algorithm computes   by applying the following steps:

1.Compute the Schur decompositions

 ,

 .

The matrices   and   are block-upper triangular matrices, with square blocks of size no greater than  .

2. Set  .

3. Solve the simplified system  , where  . This can be done using forward substitution on the blocks. Specifically, one has that if  , then

 ,

where  is the  th column of  .

4. Set  .

Computational cost

Using the QR algorithm, the Schur decompositions in step 1 requires approximately   flops, so that the overall computational cost is  .

The Hessenberg-Schur algorithm

The Hessenberg-Schur algorithm replaces the decomposition   in step 1 with the decomposition  , where   is an upper-Hessenberg matrix and   is block-upper triangular. This leads to a system of the form   that can be solved using forward substitution. The advantage of this approach is that   can be found using Householder reflections at a cost of   flops, compared to the   flops required to compute the Schur decomposition of  .

Implementations and availability

Alternative approaches

For large systems, the  cost of the Bartels-Stewart algorithm can be prohibitive. When  and   are sparse or structured, so that linear solves and matrix vector multiplies involving them are cheap, iterative algorithms can potentially perform better. These include projection-based methods, which use Krylov subspace iterations, methods based on the alternating-implicit direction (ADI) iteration, and hybridizations that involve both projection and ADI. Iterative methods can also be used to directly construct low rank approximations to   when solving  . This is important when, for instance,   is too large to be stored in memory explicitly.

References