Proofs: Hessenberg reduction
These are the human proofs of Hessenberg reduction, at full length.
Householder reduction gives a unitary similarity to Hessenberg form full
This proof shows: correctness, termination, flops.worst.
Notation of the page: , the reflector of step , where is padded with leading zeros (indices to of the 0-based code), and the matrix after step , with . Exact arithmetic unless stated.
Lemma 1 (the reflector). For with , let (or if ), , and . Then is unitary and Hermitian, and .
Proof. since is real. because . So is unitary. Next, , which is real, and . So and .
The choice of the sign makes , a sum of two nonnegative numbers, so is computed without cancellation. If , the code takes , , and the column already has zeros below position 1.
Theorem 1 (invariant). After step of the loop of line L1 ( in the 1-based count):
(H) with unitary, and for all and .
Proof. By induction on ; and the statement on zeros is empty for . Step applies on the left (line L3) and on the right (line L4), so since . The reflector acts on rows and columns to only.
Left product. leaves rows 1 to unchanged, and maps column below row , the vector , to by Lemma 1. For a column , rows to hold zeros by (H) for (since ), and a linear map sends zero to zero.
Right product. on the right combines only columns to . Columns 1 to , which hold all the zeros we need, are unchanged.
So after both products, column has zeros in rows to , and the earlier columns keep theirs. Line L5 stores exact zeros where the exact result is zero.
Corollary (correctness). After the last step, , the matrix has for and every ; for the condition is empty. So is upper Hessenberg and with , which line L6 accumulates. As a similarity, has the same eigenvalues as . The first column of is , because each fixes . If is Hermitian, then is Hermitian and Hessenberg, hence tridiagonal.
Termination. The loop of line L1 has iterations (none if ), each of finite length.
Theorem 2 (flop count). For real , computing costs flops, and accumulating costs more.
Proof. At step the reflector has length . Line L3 updates the block of rows to and columns to : for each column, one inner product and one update, flops, so flops. Line L4 updates the block of all rows and columns to : flops. Summing over (the vector has length at ): and , which add to . For , a backward accumulation that works on the trailing block costs ; the forward product of line L6 updates all rows and costs , which is the simple form the code uses.
Theorem 3 (backward stability). In floating point with unit roundoff , the computed satisfies for an exactly unitary and for a modest constant , and the computed is within of in the Frobenius norm.
Sketch with source. Each computed reflector is close to an exact unitary reflector, and applying a nearly exact reflector to a matrix gives the exact product with a nearby matrix, with a relative backward error of order for a vector of length (Higham, Accuracy and Stability of Numerical Algorithms, second edition, Chapter 19). Sequences of such products accumulate the errors additively, because unitary matrices do not change the Frobenius norm of the errors. Golub and Van Loan state the result in Section 7.4.3, and Trefethen and Bau prove the normwise form in Lecture 26.