In the QR iteration, we focus on computing:

where is the sequence produced by the method of orthogonal iteration.

Let’s consider at the next iteration:

Can we calculate from without computing ?

Step 1:

from orthogonal iteration.

where we define .

We can interpret as being a small rotation. It corresponds to an increment in as increases and converges to the Schur orthogonal transformation.

and can be computed using a QR decomposition without the help of the orthogonal iteration. or are not needed.

Step 2:

This is the definition for step :

and recall that . This leads to:

Note must be square for this to be true. Recall the definition from the previous step:

We find that is unitarily similar to :

But recall from the step above that

So and

This is the basis for the method of QR iteration.

Summary of the key steps

  • Step 1: : QR decomposition.
  • Step 2: : apply the orthogonal transformation to the right of .

We just switch the order of the terms!

We can compute from without computing any of the .

Although these steps are different from orthogonal iteration, this is still the same iteration. For example, the sequence of matrices and the convergence is the same for both methods.

We can also connect the sequence of matrices to the orthogonal iteration. Since

we can prove by induction that

if we start from . The product of the in the QR iteration is equal to in the orthogonal iteration, and again converges to the orthogonal matrix from the Schur decomposition.

QR iteration algorithm

Tk = A
while not_converged:
    Uk, Rk = qr(Tk)
    Tk = Rk * Uk

Here are the first few iterations: