对于一个矩阵 A,我们可以将其分解为一个正交矩阵 Q 和一个上三角矩阵 R 的乘积,即 A=QR。这种分解被称为QR分解。
Q : 是一个正交矩阵,满足 QTQ=I,其中 I 是单位矩阵。列向量是 Col(A) 的一组标准正交基 (正交+模长为1)。
R : 是一个上三角矩阵,包含了 A 的列向量在 Q 的列向量上的坐标。对角线元素 Rii 是 A 的第 i 列向量在 Q 的第 i 列向量上的投影(标量投影,可正可负)。Rii=Projqiai=⟨ai,qi⟩=qiTai。
存在性(恒成立):对于任何实矩阵 A,都存在一个正交矩阵 Q 和一个上三角矩阵 R 使得 A=QR。
唯一性条件:如果 A 是一个满秩矩阵,那么 QR分解是唯一的。
QR分解不唯一:若允许R的对角元为负,可通过右乘对角矩阵 ±1 改变符号。
对于满足唯一性的矩阵 A,有如下等价条件:
- A 的列向量线性无关。
- A 的秩等于列数。
- R 的对角线元素全非零且为正。
- R 可逆
QR分解的计算方法#
QR分解的计算方法主要有两种:Gram-Schmidt正交化和Householder变换。
Gram-Schmidt正交化#
Gram-Schmidt正交化是一种逐步构造正交矩阵 Q 的方法。对于矩阵 A 的列向量 a1,a2,…,an,我们可以通过以下步骤构造 Q:
- 初始化 Q 的第一列为 q1=∥a1∥a1。
- 对于 k=2,3,…,n,计算Q的第 k 列 qk:
- 计算 uk=ak−∑j=1k−1⟨ak,qj⟩qj。
- 将 uk 归一化得到 qk=∥uk∥uk。
对于 R 的计算,我们可以通过以下步骤得到:
- 对于 i=1,2,…,n,计算 Rii=⟨ai,qi⟩。
- 对于 i<j,计算 Rij=⟨aj,qi⟩。
- 对于 i>j,设置 Rij=0。
Householder变换#
Householder变换是一种通过反射来构造正交矩阵 Q 的方法。对于矩阵 A 的列向量 a1,a2,…,an,我们可以通过以下步骤构造 Q:
-
对于 k=1,2,…,n,计算 Householder矩阵 Hk:
- 计算 vk=ak−∥ak∥ek,其中 ek 是第 k 个标准基向量。
- 计算 Hk=I−2vkTvkvkvkT。
-
将 A 乘以 Hk 得到新的矩阵 Ak=HkA。
-
重复步骤 1 和 2,直到得到一个上三角矩阵 R。
对于 R 的计算,我们可以通过以下步骤得到:
- 对于 i=1,2,…,n,计算 Rii=⟨ai,qi⟩。
- 对于 i<j,计算 Rij=⟨aj,qi⟩。
- 对于 i>j,设置 Rij=0。