QR decomposition divides a m by n matrix A A A into a product of an orthogonal matrix Q Q Q and an upper triangular matrix R R R:
A = Q R A = Q R A=QR
Thus
A x = b = > Q R x = b = > Q T Q R x = Q T b = > R x = Q T b Ax = b => QRx = b => Q^{T}QRx = Q^{T}b => Rx = Q^{T}b Ax=b=>QRx=b=>QTQRx=QTb=>Rx=QTb
QR decomposition can be implemented by several algorithms, such as Gram–Schmidt process, Householder transformations, or Givens rotations. Gram-Schmidt procedure is a sequence of multiplications of A from the right by upper triangular matrices. Householde decomposition A A A into Q R QR QR with orthogonal matrices. As orthogonal transformations are stable, using Householder triangularization and back-substitution to slove A x = b Ax = b Ax=b is backward stable[9][10].
##Householder transformation
Householder transformation reflects a vector u u u about a hyperplane which orthogonal to a vector v v v which is called Householder vector[8].
u f = u − 2 v v T u u^{f} = u - 2vv^{T}u uf=u−2vvTu
The basic idea of Householder reflection for QR decomposition is to find a linear transformation that changes vector u u u into a vector which collinear to e