Householder transformation

From Infogalactic: the planetary knowledge core
(Redirected from Householder matrix)
Jump to: navigation, search

In linear algebra, a Householder transformation (also known as Householder reflection or elementary reflector) is a linear transformation that describes a reflection about a plane or hyperplane containing the origin. Householder transformations are widely used in numerical linear algebra, to perform QR decompositions and in the first step of the QR algorithm. The Householder transformation was introduced in 1958 by Alston Scott Householder.[1]

Its analogue over general inner product spaces is the Householder operator.

Definition and properties

The reflection hyperplane can be defined by a unit vector v (a vector with length 1) which is orthogonal to the hyperplane. The reflection of a point x about this hyperplane is:

x - 2\langle x,v\rangle v = x - 2 v (v^\text{H} x),

where v is given as a column unit vector with Hermitian transpose vH. This is a linear transformation given by the Householder matrix:

P = I - 2 v v^\text{H}\,, where I is the identity matrix.

The Householder matrix has the following properties:

  • it is Hermitian: P = P^\text{H},
  • it is unitary: P^{-1}=P^\text{H},
  • hence it is involutory: P^2=I .
  • A Householder matrix has eigenvalues \pm 1. To see this, notice that if u is orthogonal to the vector v which was used to create the reflector, then Pu = u, i.e., 1 is an eigenvalue of multiplicity n-1, since there are n-1 independent vectors orthogonal to v. Also, notice Pv = -v, and so -1 is an eigenvalue with multiplicity 1.
  • The determinant of a Householder reflector is -1, since the determinant of a matrix is the product of its eigenvalues.

Applications

In geometric optics, specular reflection can be expressed in terms of the Householder matrix.

Householder reflections can be used to calculate QR decompositions by reflecting first one column of a matrix onto a multiple of a standard basis vector, calculating the transformation matrix, multiplying it with the original matrix and then recursing down the (ii) minors of that product.

They are also widely used for tridiagonalization of symmetric matrices and for transforming non-symmetric matrices to a Hessenberg form.

Tridiagonalization

<templatestyles src="Module:Hatnote/styles.css"></templatestyles>

This procedure is taken from the book: Numerical Analysis, Burden and Faires, 8th Edition. In the first step, to form the Householder matrix in each step we need to determine  \displaystyle \alpha and r, which are:

 \displaystyle \alpha = -\operatorname{sgn}(a_{21})\sqrt{\sum_{j=2}^{n}a_{j1}^2} ;
 r = \sqrt{\frac{1}{2}(\alpha^{2}-a_{21}\alpha)} ;

From  \displaystyle \alpha and r, construct vector v:

 v^{(1)} = \begin{bmatrix} v_1 \\ v_2 \\ \vdots \\ v_n \end{bmatrix},

where v_1=0;,  v_2 = \frac{a_{21}-\alpha}{2r}, and

 v_k = \frac{a_{k1}}{2r} for each k=3,4 ..n

Then compute:

 \displaystyle P^{1} = I - 2v^{(1)}(v^{(1)})^\text{T}
\displaystyle A^{(2)} = P^{1}AP^{1}

Having found  \displaystyle P^{1} and computed \displaystyle A^{(2)} the process is repeated for k =2, 3, ..., n-1 as follows:

 \displaystyle \alpha = -\operatorname{sgn}(a^k_{k+1,k})\sqrt{\sum_{j=k+1}^{n}(a^k_{jk})^2} ;
 r = \sqrt{\frac{1}{2}(\alpha^{2}-a^k_{k+1,k}\alpha)} ;
v^k_1 = v^{k}_2 = \cdots = v^k_k=0;
 v^{k}_{k+1} = \frac{a^{k}_{k+1,k}-\alpha}{2r}
 v^{k}_j = \frac{a^{k}_{jk}}{2r} for j = k + 2; k + 3, ..., n
 \displaystyle P^{k} = I - 2v^{(k)}(v^{(k)})^\text{T}
\displaystyle A^{(k+1)} = P^{k}A^{(k)}P^{k}

Continuing in this manner, the tridiagonal and symmetric matrix is formed.

Examples

This example is taken from the book "Numerical Analysis" by Richard L. Burden (Author), J. Douglas Faires. In this example, the given matrix is transformed to the similar tridiagonal matrix A2 by using the Householder method.

\mathbf{A} = \begin{bmatrix}

4&1&-2&2 \\
1 & 2 &0&1 \\
-2 & 0 &3& -2 \\
2 & 1 & -2&-1 \end{bmatrix},

Following those steps in the Householder method, we have:

The first Householder matrix:

Q1 \mathbf{} = \begin{bmatrix}

1&0&0&0 \\
0 &-1/3&2/3&-2/3 \\
0 & 2/3 &2/3& 1/3 \\
0 & -2/3 &1/3& 2/3 \end{bmatrix},

A1 = Q1AQ1 = \mathbf{}\begin{bmatrix}

4&-3&0&0 \\
-3 & 10/3 &1&4/3 \\
0 & 1 &5/3& -4/3 \\
0 & 4/3 & -4/3&-1 \end{bmatrix},

Used A1 to form Q2 =\mathbf{}\begin{bmatrix}

1&0&0&0 \\
0&1 &0&0 \\
0 & 0 &-3/5&-4/5 \\
0 & 0 & -4/5&3/5 \end{bmatrix},

A2 = Q2A1Q2=\mathbf{}\begin{bmatrix}

4&-3&0&0 \\
-3 &10/3 &-5/3&0 \\
0 & -5/3 &-33/25& -68/75 \\
0 &0 & -68/75&149/75 \end{bmatrix},

As we can see, the final result is a tridiagonal symmetric matrix which is similar to the original one. The process is finished after two steps.

Computational and theoretical relationship to other unitary transformations

<templatestyles src="Module:Hatnote/styles.css"></templatestyles>

The Householder transformation is a reflection about a certain hyperplane, namely, the one with unit normal vector v, as stated earlier. An N by N unitary transformation U satisfies UUH=I. Taking the determinant (N-th power of the geometric mean) and trace (proportional to arithmetic mean) of a unitary matrix reveals that its eigenvalues λi have unit modulus. This can be seen directly and swiftly:

 \frac{\mbox{Trace}(UU^\text{H})}{N}=\frac{\sum_{j=2}^N|\lambda_j|^2}{N}=1, \mbox{det}(UU^\text{H})=\prod_{j=1}^N |\lambda_j|^2=1.

Since arithmetic and geometric means are equal if the variables are constant (see inequality of arithmetic and geometric means), we establish the claim of unit modulus.

For the case of real valued unitary matrixes we obtain orthogonal matrices,  U U^\text{T}=I. It follows rather readily (see orthogonal matrix) that any orthogonal matrix can be decomposed into a product of 2 by 2 rotations, called Givens Rotations, and Householder reflections. This is appealing intuitively since multiplication of a vector by an orthogonal matrix preserves the length of that vector, and rotations and reflections exhaust the set of (real valued) geometric operations that render invariant a vector's length.

The Householder transformation was shown to have a one to one relationship with the canonical coset decomposition of unitary matrices defined in group theory, which can be used to parametrize unitary operators in a very efficient manner.[2]

Finally we note that a single Householder transform, unlike a solitary Givens transform, can act on all columns of a matrix, and as such exhibits the lowest computational cost for QR decomposition and tridiagonalization. The penalty for this "computational optimality" is, of course, that Householder operations cannot be as deeply or efficiently parallelized. As such Householder is preferred for dense matrices on sequential machines, whilst Givens is preferred on sparse matrices, and/or parallel machines.

References

  1. Lua error in package.lua at line 80: module 'strict' not found.
  2. Lua error in package.lua at line 80: module 'strict' not found.
  • Lua error in package.lua at line 80: module 'strict' not found.
  • Lua error in package.lua at line 80: module 'strict' not found.
  • Lua error in package.lua at line 80: module 'strict' not found. (Herein Householder Transformation is cited as a top 10 algorithm of this century)
  • Lua error in package.lua at line 80: module 'strict' not found.

External links