The QR algorithm computes eigenvalues through repeated QR decompositions and similarity updates. Shifted and unshifted forms have different convergence rates; the unshifted QR algorithm uses a zero shift at every step.
The real Schur form of a real square matrix is , where is orthogonal and is upper quasi-triangular. Its diagonal consists of one-by-one blocks for real eigenvalues and two-by-two blocks for complex-conjugate pairs.
The rotation generator already forms one two-by-two block with eigenvalues . No real upper-triangular matrix can have those eigenvalues, because its diagonal entries would all be real. Real Schur form therefore permits real arithmetic without pretending every eigenvalue is real. Its orthogonal transformations are also preferable numerically to using a potentially ill-conditioned eigenvector matrix.[ref]
Eigenvalues and Schur Forms in the LAPACK Users' Guide. Ordinary Schur factorization and real diagonal blocks
For , one shifted QR algorithm step with real QR shift gives, with a consistent choice of factor signs,To verify this, factor with . Its columns are orthonormal, and is upper triangular. Then . Thus is diagonal exactly when , the two eigenvalues. The bottom-right-entry shift is zero and leaves the matrix unchanged under the positive-diagonal factor convention. This illustrates why a poorly chosen QR shift can stall even a two-by-two symmetric eigenvalue computation.
A QR shift is a scalar subtracted before the QR factorization in a QR algorithm step and restored after reversing the factors:The final identity uses the orthogonality of , proving that the eigenvalues are preserved. Choosing a shift near an eigenvalue can accelerate block deflation in the QR algorithm. A common choice is the current bottom-right entry, but it can stall, as in Exact-shift diagonalization of a two-state swap matrix.
Articles by others on the same topic
The QR algorithm is a numerical procedure used to find the eigenvalues and eigenvectors of a matrix. It is based on the QR decomposition of a matrix, which factors a matrix \( A \) into a product of an orthogonal matrix \( Q \) and an upper triangular matrix \( R \). The algorithm is particularly effective for real and complex matrices and is widely used in computational linear algebra.