设 A 为 m×n 矩阵(m≥n),若 A 可以分解为:
A=QR
其中 Q 为 m×n 矩阵,其列向量构成标准正交组(QTQ=In),R 为 n×n 上三角矩阵,则称为 A 的 QR 分解(瘦型 QR 分解)。
完全型 QR 分解:A=QRP,其中 Q 为 m×m 正交矩阵,R 为 m×n 上梯形矩阵。
定理:若 A 的列向量线性无关(r(A)=n),则 A 的 QR 分解存在。
当 R 的对角线元素为正时,QR 分解唯一。
对 A 的列向量 a1,a2,…,an 进行施密特正交化:
q1=∥a1∥a1
q~k=ak−∑j=1k−1(ak,qj)qj,qk=∥q~k∥q~k
则 Q=(q1,q2,…,qn),R=QTA。
R 的元素:rij=qiTaj(i≤j),rij=0(i>j)。
对 A=111123 进行 QR 分解。
a1=(1,1,1)T,a2=(1,2,3)T
q1=31(1,1,1)T
q~2=(1,2,3)T−36(1,1,1)T=(−1,0,1)T
q2=21(−1,0,1)T
Q=1/31/31/3−1/201/2
R=QTA=(30232)
经典 Gram-Schmidt 方法在数值计算中可能不稳定(舍入误差累积)。改进的 Gram-Schmidt 方法(MGS)更稳定。
改进的 Gram-Schmidt:在每一步中,立即用已正交化的向量消去后续向量中的分量。
Householder 矩阵(初等反射矩阵)定义为:
H=I−2vTvvvT
其中 v 为非零向量。
- H 是对称矩阵:HT=H
- H 是正交矩阵:HTH=I
- H 是对合的:H2=I
- ∣H∣=−1
- 几何意义:Hx 是 x 关于超平面 vTx=0 的反射
给定向量 x,要使 Hx=αe1:
v=x−αe1
其中 α=−sign(x1)∥x∥(选择符号以避免相消)。
步骤:
- 构造 H1 使 H1A 的第一列除第一个元素外全为零
- 对 H1A 的右下子矩阵重复上述过程
- 最终 Hn−1⋯H2H1A=R(上三角)
- Q=H1H2⋯Hn−1
对 A=111123 用 Householder 方法进行 QR 分解。
第一列 a1=(1,1,1)T,∥a1∥=3
v=(1,1,1)T−(−3,0,0)T=(1+3,1,1)T
H1=I−2vTvvvT
H1A 的第一列变为 (−3,0,0)T,对第二列做相应变换。
Givens 旋转矩阵 G(i,j,θ) 在 i,j 平面上做旋转:
G=1cosθsinθ1−sinθcosθ1
- Givens 旋转只改变两个分量
- 适合稀疏矩阵(只消去特定元素)
- 可以并行化
| 特点 | Householder | Givens |
|---|
| 每步消去 | 一列中多个元素 | 一个元素 |
| 计算量 | 较少 | 较多 |
| 稀疏矩阵 | 不够高效 | 高效 |
| 并行性 | 较差 | 较好 |
min∥Ax−b∥2:A=QR,x=R−1QTb
迭代格式:Ak=QkRk,Ak+1=RkQk
Ak 收敛于上三角矩阵(Schur 形),对角线元素为特征值。
Ax=b:QRx=b,Rx=QTb
Q 的前 r 列构成 A 的列空间的标准正交基。