在线性代数中,QR分解(QR decomposition)是一种将矩阵分解成两个矩阵乘积的形式: A = Q R (1) A=QR\tag{1} A=QR(1) 其中 Q Q Q是一个正交矩阵(orthogonal matrix), R R R是一个上三角矩阵( Upper triangular matrix),个人感觉称为 Q U QU QU分解(QU decomposition)更加能够揭示这种分解的结果。
Q R QR QR分解后求解方程组相较于直接进行求解,优点在于:
- 具有数值稳定性
- 计算量降低
如何将一个矩阵进行 Q R QR QR分解?施密特正交化是一种有效的方法:
定理1(格拉姆-施密特QR分解) 令 A A A为一秩为 n n n的 m × n m\times n m×n矩阵,则存在一各列向量规范正交的 m × n m\times n m×n矩阵 Q Q Q以及一对角元素均为正的 n × n n\times n n×n上三角矩阵 R R R ,使得 A = Q R A=QR A=QR。
定理1告诉我们:
- 任意矩阵都可以进行 Q R QR QR分解
- 分解后 Q Q Q和 A A A形状相同
- 分解后 R R R是一个上三角矩阵等于高度大小的方阵且对角线元素都为正
定理2 令 A A A为一秩为 n n n的 m × n m\times n m×n矩阵,且 A A A的 Q R QR QR分解为 A = Q R A=QR A=QR则最小二乘问题 A x = b Ax=b Ax=b的解为 x ^ = R − 1 Q T b \hat x=R^{-1}Q^Tb x^=R−1QTb。在实际计算时,可使用回代法求解 R x ^ = Q T b R\hat x=Q^Tb Rx^=QTb。
将求解 A x = b Ax=b Ax=b问题转换成 R x ^ = Q T b R\hat x=Q^Tb Rx^=QTb,其中 R R R就是已经进行高斯消元的矩阵,可以直接使用回代法求解。回代法相较于直接求逆,不仅速度更加快,而且具有数值稳定性。