QR decomposition divides a m by n matrix AAA into a product of an orthogonal matrix QQQ and an upper triangular matrix RRR:
A=QR A = Q R A=QR
Thus
Ax=b=>QRx=b=>QTQRx=QTb=>Rx=QTb Ax = b => QRx = b => Q^{T}QRx = Q^{T}b => Rx = Q^{T}bAx=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 AAA into QRQRQR with orthogonal matrices. As orthogonal transformations are stable, using Householder triangularization and back-substitution to slove Ax=bAx = bAx=b is backward stable[9][10].
##Householder transformation
Householder transformation reflects a vector uuu about a hyperplane which orthogonal to a vector vvv which is called Householder vector[8].
uf=u−2vvTu u^{f} = u - 2vv^{T}uuf=u−2vvTu
The basic idea of Householder reflection for QR decomposition is to find a linear transformation that changes vector uuu into a vector which collinear to eie_{i}ei, uf=∣∣u∣∣eiu^{f} = ||u||e_{i}uf=∣∣u</