- Householder transformations are great for transforming an entire column to .
- However, it is less efficient to zero out a single entry in a matrix.
- 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.
Summary:
- Householder approach: one large Q
- Givens approach: many small Qs
Letβs explain this on an example.
Take a vector of size 2:
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.
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