In
numerical linear algebra
Numerical linear algebra, sometimes called applied linear algebra, is the study of how matrix operations can be used to create computer algorithms which efficiently and accurately provide approximate answers to questions in continuous mathematics ...
, 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
In the mathematical subfield of numerical analysis, numerical stability is a generally desirable property of numerical algorithms. The precise definition of stability depends on the context. One is numerical linear algebra and the other is algor ...
method that could be systematically applied to solve such equations. The algorithm works by using the
real Schur decompositions of
and
to transform
into a triangular system that can then be solved using forward or backward substitution. 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 a 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 equation
has a unique solution. The Bartels–Stewart algorithm computes
by applying the following steps:
[
1.Compute the real Schur decompositions
:
:
The matrices and are block-upper triangular matrices, with diagonal blocks of size or .
2. Set
3. Solve the simplified system , where . This can be done using forward substitution on the blocks. Specifically, if , then
:
where is the th column of . When , columns ]
Computational cost
Using the QR algorithm
In numerical linear algebra, the QR algorithm or QR iteration is an eigenvalue algorithm: that is, a procedure to calculate the eigenvalues and eigenvectors of a matrix. The QR algorithm was developed in the late 1950s by John G. F. Francis and b ...
, the real Schur decompositions in step 1 require approximately 10(m^3 + n^3) flops, so that the overall computational cost is 10(m^3 + n^3) + 2.5(mn^2 + nm^2).[
]
Simplifications and special cases
In the special case where B=-A^T and C is symmetric, the solution X will also be symmetric. This symmetry can be exploited so that Y is found more efficiently in step 3 of the algorithm.[
]
The Hessenberg–Schur algorithm
The Hessenberg–Schur algorithm[ replaces the decomposition R = U^TAU in step 1 with the decomposition H = Q^TAQ, where H is an upper-Hessenberg matrix. This leads to a system of the form HY - YS^T = F that can be solved using forward substitution. The advantage of this approach is that H = Q^TAQ can be found using Householder reflections at a cost of (5/3)m^3 flops, compared to the 10m^3 flops required to compute the real Schur decomposition of A.
]
Software and implementation
The subroutines required for the Hessenberg-Schur variant of the Bartels–Stewart algorithm are implemented in the SLICOT library. These are used in the MATLAB control system toolbox.
Alternative approaches
For large systems, the \mathcal(m^3 + n^3) cost of the Bartels–Stewart algorithm can be prohibitive. When A and B are sparse or structured, so that linear solves and matrix vector multiplies involving them are efficient, iterative algorithms can potentially perform better. These include projection-based methods, which use Krylov subspace
In linear algebra, the order-''r'' Krylov subspace generated by an ''n''-by-''n'' matrix ''A'' and a vector ''b'' of dimension ''n'' is the linear subspace
In mathematics, and more specifically in linear algebra, a linear subspace, also known ...
iterations, methods based on the alternating direction implicit (ADI) iteration, and hybridizations that involve both projection and ADI. Iterative methods can also be used to directly construct low rank approximations to X when solving AX-XB = C.
References
{{DEFAULTSORT:Bartels-Stewart algorithm
Algorithms
Control theory
Matrices
Numerical linear algebra