A fast method for solving a linear system of the form $(A^{(p)} \otimes \cdots \otimes A^{(1)} - \lambda I) x = b$ is given where each $A^{(i)}$ is an $n_i$-by-$n_i$ matrix. The first step is to convert the problem to triangular form $(T^{(p)} \otimes \cdots \otimes T^{(1)} - \lambda I) y = c$ by computing the (complex) Schur decompositions of the $A^{(i)}$. This is followed by a recursive back-substitution process that fully exploits the Kronecker structure and requires just $O(N(n_1 + \cdots + n_p))$ flops where $N = n_1 \cdots n_p$. A similar method is employed when the real Schur decomposition is used to convert each $A^{(i)}$ to quasi-triangular form. The numerical properties of these new methods are the same as if we explicitly formed $(T^{(p)} \otimes \cdots \otimes T^{(1)}- \lambda I)$ and used conventional back-substitution to solve for $y$.
[1]
Gene H. Golub,et al.
Matrix Computations, Third Edition
,
1996
.
[2]
Carla D. Moravitz Martin,et al.
Solving Real Linear Systems with the Complex Schur Decomposition
,
2006,
SIAM J. Matrix Anal. Appl..
[3]
C. Loan.
Computational Frameworks for the Fast Fourier Transform
,
1992
.
[4]
Isak Jonsson,et al.
Recursive blocked algorithms for solving triangular systems—Part II: two-sided and generalized Sylvester and Lyapunov matrix equations
,
2002,
TOMS.
[5]
Gene H. Golub,et al.
Matrix computations
,
1983
.