Why can't Householder reflections diagonalize a matrix?
When computing the QR factorization in practice, one uses Householder reflections to zero out the lower portion of a matrix. I know that for computing eigenvalues of symmetric matrices, the best you can do with Householder reflections is getting it to tridiagonal form. Is there an obvious way to see why it can't be fully diagonalized in this way? I am trying to explain this simply but I can't come up with a clear presentation.
linear-algebra matrix
Victor LiuVictor Liu
When computing the eigenvalues of the symmetric matrix $M\in\mathbb{R}^{n\times n}$ the best you can do with Householder reflector is drive $M$ to a tridiagonal form. As was mentioned in a previous answer because $M$ is symmetric there is an orthogonal similarity transformation which results in a diagonal matrix, i.e., $D=S^TMS$. It would be convenient if we could find the action of the unknown orthogonal matrix $S$ strictly using Householder reflectors by computing a sequence of reflectors and applying $H^T$ from the left to $M$ and $H$ from the right to $M$. However this is not possible because of the way the Householder reflector is designed to zero out columns. If we were to compute the Householder reflector to zero out all the numbers below $M_{11}$ we find $$ M=\left(\!\!{\begin{array}{ccccc} * &* & * & *&* \\ * &* & * & *&* \\ * &* & * & *&* \\ * &* & * & *&* \\ * &* & * & *&* \\ \end{array}}\!\!\right)\rightarrow H^T_1M=\left(\!\!{\begin{array}{ccccc} * &*' & *' & *'&*' \\ 0 &*' & *' & *'&*' \\ 0 &*' & *' & *'&*' \\ 0 &*' & *' & *'&*' \\ 0 &*' & *' & *'&*' \\ \end{array}}\!\!\right). $$ But now the entries $M_{12}-M_{1n}$ have been altered by the reflector $H^T_1$ applied on the left. Thus when we apply $H_1$ on the right it will no longer zero out the first row of $M$ leaving only $M_{11}$. Instead we will obtain $$ H^T_1M=\left(\!\!{\begin{array}{ccccc} * &*' & *' & *'&*' \\ 0 &*' & *' & *'&*' \\ 0 &*' & *' & *'&*' \\ 0 &*' & *' & *'&*' \\ 0 &*' & *' & *'&*' \\ \end{array}}\!\!\right)\rightarrow H^T_1MH_1=\left(\!\!{\begin{array}{ccccc} * &*'' & *'' & *''&*'' \\ *' &*'' & *'' & *''&*'' \\ *' &*'' & *'' & *''&*'' \\ *' &*'' & *'' & *''&*'' \\ *' &*'' & *'' & *''&*'' \\ \end{array}}\!\!\right). $$ Where not only did we not zero out the row but we may destroy the zero structure we just introduced with the reflector $H^T_1$.
However, when you opt to drive $M$ to a tridiagonal structure you will leave the first row untouched by the action of $H^T_1$, so $$ M=\left(\!\!{\begin{array}{ccccc} * &* & * & *&* \\ * &* & * & *&* \\ * &* & * & *&* \\ * &* & * & *&* \\ * &* & * & *&* \\ \end{array}}\!\!\right)\rightarrow H^T_1M=\left(\!\!{\begin{array}{ccccc} * &* & * & *&* \\ *' &*' & *' & *'&*' \\ 0 &*' & *' & *'&*' \\ 0 &*' & *' & *'&*' \\ 0 &*' & *' & *'&*' \\ \end{array}}\!\!\right). $$ Thus when we apply the same reflector from the right we obtain $$ H^T_1M=\left(\!\!{\begin{array}{ccccc} * &* & * & *&* \\ *' &*' & *' & *'&*' \\ 0 &*' & *' & *'&*' \\ 0 &*' & *' & *'&*' \\ 0 &*' & *' & *'&*' \\ \end{array}}\!\!\right)\rightarrow H^T_1MH_1=\left(\!\!{\begin{array}{ccccc} * &*' & 0 & 0&0 \\ *' &*'' & *'' & *''&*'' \\ 0 &*'' & *'' & *''&*'' \\ 0 &*'' & *'' & *''&*'' \\ 0 &*'' & *'' & *''&*'' \\ \end{array}}\!\!\right). $$
Applied recursively this allows us to drive $M$ to a tridiagonal matrix $T$. You can complete the diagonalization of $M$ efficiently, as was mentioned previously, using Jacobi or Givens rotations both of which are found in the Golub and Van Loan book Matrix Computations. The accumulated actions of the sequence of Householder reflectors and Jacobi or Givens rotations allows us to find the action of the orthogonal matrices $S^T$ and $S$ without explicitly forming them.
Andrew WintersAndrew Winters
As the Comments to other Answers clarify, the real issue here is not a shortcoming of Householder matrices but rather a question as to why iterative rather than direct ("closed-form") methods are used to diagonalize (real) symmetric matrices (via orthogonal similarity).
Indeed any orthogonal matrix can be expressed as a product of Householder matrices, so if we knew the diagonal form of a symmetric matrix (its eigenvalues), we could solve for a complete set of orthonormalized eigenvectors and represent the corresponding change of basis matrix as a product of Householder transformations in polynomial time.
So let's turn to Victor's parenthetical comment "other than Abel's theorem" because we are effectively asking why iterative methods should be used find the roots of a polynomial rather than a direct method. Of course the eigenvalues of a real symmetric matrix are the roots of its characteristic polynomial, and it is possible to go in the other direction as well. Given a real polynomial with only real roots, it is possible to construct a tridiagonal symmetric companion matrix from a Sturm sequence for the polynomial. See also that poster Denis Serre's Exercise 92 in this set. This is rather nice for showing the equivalence of those problems since we've seen (@AndrewWinters) the direct application of Householder matrices will tridiagonalize a real symmetric matrix.
Analysis of the arithmetic complexity for an iterative (root isolation) method is given in Reif (1999), An Efficient Algorithm for the Real Root and Symmetric Tridiagonal Eigenvalue Problems. Reif's approach improves on tailored versions of QR for companion matrices, giving $O(n \log^3 n)$ instead of $O(n^2)$ complexity.
The Abel-Galois-Ruffini Theorem says that no general formula for roots of polynomials above degree four can be given in terms of radicals (and usual arithmetic). However there are closed forms for roots in terms of more exotic operations. In principle one might base eigenvalue/diagonalization methods on such approaches, but one encounters some practical difficulties:
The Bring radical (aka ultraradical) is a function of one variable, in that respect like taking a square root. Jerrad (c. 1835) showed that solving the general quintic could be reduced to solving $t^5 + t - a = 0$, so that univariate function $t(a)$ (used in addition to radicals and other usual arithmetic) allows all quintics to be solved.
This breaks down with degree six polynomials and above, although various ways can be found to solve them using functions of just two variables. Hilbert's 13th Problem was the conjecture that general degree seven polynomials could not be solved using only functions of at most two variables, but in 1957 V.I. Arnold showed they could. Among the multivariable function families that can be used to get solutions to arbitrary degree polynomials are Mellin integrals, hypergeometric and Siegel theta functions.
Besides implementing somewhat exotic special functions of more than one argument, we need direct methods for solving polynomials which work for general degree $n$ rather than ad hoc or degree specific methods. Guàrdia (2002) gives "a very simple expression of the roots of a polynomial of arbitrary degree in terms of derivatives of hyperelliptic theta functions." However this approach requires making choices of Weierstrass points on hyperelliptic curve $C_f: Y^2 = f(x)$ where all roots of polynomial $f(x)$ are sought. A good choice leads to expressing less than half of those roots, and it appears this approach requires repeated trials to get all of them. Each trial involves solving a homogeneous linear system at $O(n^3)$ cost.
Therefore the indirect/iterative methods for isolating real roots (equiv. eigenvalues of symmetric matrices), even to high precision, currently have practical advantages over the known direct/exact methods for these problems.
hardmathhardmath
$\begingroup$ Some notes: 1. a practical method for building the tridiagonal companion matrix from Sturm sequences was outlined in papers by Fiedler and Schmeisser; I gave a Mathematica implementation here, and it should not be too hard to implement in a more traditional language. $\endgroup$ – J. M. May 11 '13 at 18:03
$\begingroup$ 2. With respect to the "theta function" approach for polynomial roots (which I agree is a bit too unwieldy for practical use), Umemura outlines an approach using Riemann theta functions. $\endgroup$ – J. M. May 11 '13 at 18:07
For what reason do you assume that this is impossible?
Any symmetric real matrix $S$ can be orthogonally diagonalized, i.e. $S = G D G^t$, where $G$ is orthogonal and $D$ is diagonal.
Any orthogonal matrix of size n×n can be constructed as a product of at most n such reflections.Wikipedia. Therefore you have this decomposition.
I am not sure about the last statement, I just cite it (and I think it is correct). As far as I understand your question, it boils down to whether any orthogonal matrix can be decomposed into a sequence of Householder transforms.
shuhaloshuhalo
$\begingroup$ I should have been more specific. The first step to diagonalizing a symmetric matrix is applying Householder until it is tridiagonal. Next, QR iterations are performed. This process cannot be completed using only closed-form Householder transformations. Why? (other than Abel's theorem) $\endgroup$ – Victor Liu Apr 4 '12 at 23:49
$\begingroup$ You can do it with Jacobi rotations. Golub and Van Loan write that Jacobi is the same as Givens. Householder is just another way of doing Givens. In practice, the "correct" way might be with QR if it is faster. $\endgroup$ – power Apr 5 '12 at 3:07
If the eigenvalues are already known (from a preliminary calculation based on the usual approach), one can use them to triangulize a nonsymmetric matrix (or diagonalize a symmetric matrix) by a product on $n-1$ Householder reflections. In the $k$th step the $k$th column is brought to triangular form. (This also provides a simple inductive proof of the existence of the Schur factorization.)
It is actually useful for methods where one repeatedly needs the orthoginal matrix in a numerically stable factored form.
Arnold NeumaierArnold Neumaier
Not the answer you're looking for? Browse other questions tagged linear-algebra matrix or ask your own question.
How to find more than one root of a polynomial?
What is the most efficient way to diagonalize small matrices?
Is there a backward stable $\tilde{O}(n \log(1/\epsilon))$ algorithm to factor a complex polynomial?
Unimodular Matrix calculation
Determining the algorithmic complexity
Why isn't my Matrix-Vector Multiplication Scaling?
Dealing with the inverse of a positive definite symmetric (covariance) matrix?
Why SVD is talk about less than QR and LU for sparse matrix?
Efficient solver for a symmetric tridiagonal system where the upper/lower diagonals are offset
Diagonalize a circulant-plus-rank-one matrix
Diagonalize a unitary matrix with orthogonal matrices using numpy