Summary
Householder Transformations
- Purpose: Transform an entire column of a matrix to align with a standard basis vector (usually ) in a single step.
- Approach: Use one large orthogonal matrix (Householder reflector) that operates on the whole column.
- Efficiency: Highly efficient for dense matrices because it reduces multiple elements to zero simultaneously.
- Computational cost: For an dense matrix, the cost is .
Givens Transformations
- Purpose: Zero out individual elements in a matrix while preserving orthogonality.
- Approach: Apply a sequence of small orthogonal matrices (Givens rotations or reflections) targeting specific entries.
- Efficiency:
- Sparse matrices: More efficient than Householder transformations when dealing with sparse matrices like tridiagonal or upper Hessenberg matrices.
- Single entry modification: Ideal for zeroing out individual elements without affecting the entire column.
- Computational cost: (slightly higher constant factor than Householder due to processing elements individually).
Example
Givens transformations will be very useful when dealing with Upper Hessenberg matrices (matrices that are zero below the sub-diagonal, i.e., implies that ) and tri-diagonal matrices.
- Left figure: upper Hessenberg
- Right figure: tri-diagonal matrix.
2 approaches:
- Householder: one big Q transform. Fastest for dense matrices.
- Givens: many small Q transforms. Slower for dense matrices but faster for sparse matrices and for processing a single entry at a time.
Letβs go through some specific steps in this method.
Take a vector of size 2:
Assume that these are the entries we want to modify. We want to zero out the 2nd entry using an orthogonal transformation.
Denote by:
- We have two options for the orthogonal transformation.
- It can be a rotation or a reflection.
- There is no significant difference between these 2 options.
Rotation: det
Reflection: det
You can check that this works:
Letβs apply this method to our example:
We get the matrix in the desired upper triangular form.
Computational cost
The computational cost of zeroing out a single entry is . So the cost for a single column is . The total computational cost for the entire matrix is .
- If matrix is a general matrix, the cost is .
- If is tri-diagonal, the cost is .
- If is upper-Hessenberg, the cost is .
QR factorization, Householder transformation, QR using Householder transformations