前置知识: 线性代数

QR分解

9 minAdvanced2026/6/14

QR分解的定义与存在性,Gram-Schmidt方法,Householder变换方法,Givens旋转方法,QR分解的应用。

1. QR分解的定义

1.1 定义

AAm×nm \times n 矩阵(mnm \geq n),若 AA 可以分解为:

A=QRA = QR

其中 QQm×nm \times n 矩阵,其列向量构成标准正交组(QTQ=InQ^TQ = I_n),RRn×nn \times n 上三角矩阵,则称为 AAQR 分解(瘦型 QR 分解)。

完全型 QR 分解:A=QRPA = QRP,其中 QQm×mm \times m 正交矩阵,RRm×nm \times n 上梯形矩阵。

1.2 存在条件

定理:若 AA 的列向量线性无关(r(A)=nr(A) = n),则 AA 的 QR 分解存在。

1.3 唯一性

RR 的对角线元素为正时,QR 分解唯一。

2. Gram-Schmidt 方法

2.1 方法

AA 的列向量 a1,a2,,an\boldsymbol{a}_1, \boldsymbol{a}_2, \ldots, \boldsymbol{a}_n 进行施密特正交化:

q1=a1a1\boldsymbol{q}_1 = \frac{\boldsymbol{a}_1}{\|\boldsymbol{a}_1\|}

q~k=akj=1k1(ak,qj)qj,qk=q~kq~k\tilde{\boldsymbol{q}}_k = \boldsymbol{a}_k - \sum_{j=1}^{k-1}(\boldsymbol{a}_k, \boldsymbol{q}_j)\boldsymbol{q}_j, \quad \boldsymbol{q}_k = \frac{\tilde{\boldsymbol{q}}_k}{\|\tilde{\boldsymbol{q}}_k\|}

Q=(q1,q2,,qn)Q = (\boldsymbol{q}_1, \boldsymbol{q}_2, \ldots, \boldsymbol{q}_n)R=QTAR = Q^TA

RR 的元素:rij=qiTajr_{ij} = \boldsymbol{q}_i^T\boldsymbol{a}_jiji \leq j),rij=0r_{ij} = 0i>ji > j)。

2.2 示例

A=(111213)A = \begin{pmatrix} 1 & 1 \\ 1 & 2 \\ 1 & 3 \end{pmatrix} 进行 QR 分解。

a1=(1,1,1)T\boldsymbol{a}_1 = (1, 1, 1)^Ta2=(1,2,3)T\boldsymbol{a}_2 = (1, 2, 3)^T

q1=13(1,1,1)T\boldsymbol{q}_1 = \frac{1}{\sqrt{3}}(1, 1, 1)^T

q~2=(1,2,3)T63(1,1,1)T=(1,0,1)T\tilde{\boldsymbol{q}}_2 = (1, 2, 3)^T - \frac{6}{3}(1, 1, 1)^T = (-1, 0, 1)^T

q2=12(1,0,1)T\boldsymbol{q}_2 = \frac{1}{\sqrt{2}}(-1, 0, 1)^T

Q=(1/31/21/301/31/2)Q = \begin{pmatrix} 1/\sqrt{3} & -1/\sqrt{2} \\ 1/\sqrt{3} & 0 \\ 1/\sqrt{3} & 1/\sqrt{2} \end{pmatrix}

R=QTA=(32302)R = Q^TA = \begin{pmatrix} \sqrt{3} & 2\sqrt{3} \\ 0 & \sqrt{2} \end{pmatrix}

2.3 Gram-Schmidt 方法的数值问题

经典 Gram-Schmidt 方法在数值计算中可能不稳定(舍入误差累积)。改进的 Gram-Schmidt 方法(MGS)更稳定。

改进的 Gram-Schmidt:在每一步中,立即用已正交化的向量消去后续向量中的分量。

3. Householder 变换方法

3.1 Householder 变换

Householder 矩阵(初等反射矩阵)定义为:

H=I2vvTvTvH = I - 2\frac{\boldsymbol{v}\boldsymbol{v}^T}{\boldsymbol{v}^T\boldsymbol{v}}

其中 v\boldsymbol{v} 为非零向量。

3.2 性质

  1. HH 是对称矩阵:HT=HH^T = H
  2. HH 是正交矩阵:HTH=IH^TH = I
  3. HH 是对合的:H2=IH^2 = I
  4. H=1|H| = -1
  5. 几何意义:HxH\boldsymbol{x}x\boldsymbol{x} 关于超平面 vTx=0\boldsymbol{v}^T\boldsymbol{x} = 0反射

3.3 构造 Householder 变换

给定向量 x\boldsymbol{x},要使 Hx=αe1H\boldsymbol{x} = \alpha\boldsymbol{e}_1

v=xαe1\boldsymbol{v} = \boldsymbol{x} - \alpha\boldsymbol{e}_1

其中 α=sign(x1)x\alpha = -\text{sign}(x_1)\|\boldsymbol{x}\|(选择符号以避免相消)。

3.4 QR 分解的 Householder 方法

步骤

  1. 构造 H1H_1 使 H1AH_1 A 的第一列除第一个元素外全为零
  2. H1AH_1 A 的右下子矩阵重复上述过程
  3. 最终 Hn1H2H1A=RH_{n-1} \cdots H_2 H_1 A = R(上三角)
  4. Q=H1H2Hn1Q = H_1 H_2 \cdots H_{n-1}

3.5 示例

A=(111213)A = \begin{pmatrix} 1 & 1 \\ 1 & 2 \\ 1 & 3 \end{pmatrix} 用 Householder 方法进行 QR 分解。

第一列 a1=(1,1,1)T\boldsymbol{a}_1 = (1, 1, 1)^Ta1=3\|\boldsymbol{a}_1\| = \sqrt{3}

v=(1,1,1)T(3,0,0)T=(1+3,1,1)T\boldsymbol{v} = (1, 1, 1)^T - (-\sqrt{3}, 0, 0)^T = (1 + \sqrt{3}, 1, 1)^T

H1=I2vvTvTvH_1 = I - 2\frac{\boldsymbol{v}\boldsymbol{v}^T}{\boldsymbol{v}^T\boldsymbol{v}}

H1AH_1 A 的第一列变为 (3,0,0)T(-\sqrt{3}, 0, 0)^T,对第二列做相应变换。

4. Givens 旋转方法

4.1 Givens 旋转

Givens 旋转矩阵 G(i,j,θ)G(i, j, \theta)i,ji, j 平面上做旋转:

G=(1cosθsinθ1sinθcosθ1)G = \begin{pmatrix} 1 & & & & \\ & \cos\theta & & -\sin\theta & \\ & & 1 & & \\ & \sin\theta & & \cos\theta & \\ & & & & 1 \end{pmatrix}

4.2 特点

  • Givens 旋转只改变两个分量
  • 适合稀疏矩阵(只消去特定元素)
  • 可以并行化

4.3 与 Householder 的比较

特点HouseholderGivens
每步消去一列中多个元素一个元素
计算量较少较多
稀疏矩阵不够高效高效
并行性较差较好

5. QR 分解的应用

5.1 解最小二乘问题

minAxb2\min\|Ax - b\|^2A=QRA = QRx=R1QTbx = R^{-1}Q^Tb

5.2 QR 算法求特征值

迭代格式:Ak=QkRkA_k = Q_kR_kAk+1=RkQkA_{k+1} = R_kQ_k

AkA_k 收敛于上三角矩阵(Schur 形),对角线元素为特征值。

5.3 解线性方程组

Ax=bAx = bQRx=bQRx = bRx=QTbRx = Q^Tb

5.4 矩阵的列空间

QQ 的前 rr 列构成 AA 的列空间的标准正交基。