18.06 · 第 16 课

Gram-Schmidt 与 A=QR

Gram-Schmidt 正交化把一组无关向量改造成标准正交基。写成矩阵形式就是 \(A=QR\):\(Q\) 列正交、\(R\) 上三角。代入法方程立刻得到 \(\hat{\mathbf{x}}=R^{-1}Q^T\mathbf{b}\)——最小二乘的计算因此大大简化。

授课:Prof. Gilbert Strang日期:2010-03-12难度:较难

学习目标


Gram-Schmidt 正交化

给定无关向量 \(\mathbf{a}_1,\mathbf{a}_2,\dots,\mathbf{a}_n\),构造标准正交向量 \(\mathbf{q}_1,\mathbf{q}_2,\dots,\mathbf{q}_n\):

第一步。

\[\mathbf{A}_1 = \mathbf{a}_1,\qquad \mathbf{q}_1 = \frac{\mathbf{A}_1}{\|\mathbf{A}_1\|}.\]

第二步。从 \(\mathbf{a}_2\) 中减去它在 \(\mathbf{q}_1\) 方向的分量,得到与 \(\mathbf{q}_1\) 正交的向量,再归一化:

\[\mathbf{A}_2 = \mathbf{a}_2 - (\mathbf{q}_1^T\mathbf{a}_2)\,\mathbf{q}_1,\qquad \mathbf{q}_2 = \frac{\mathbf{A}_2}{\|\mathbf{A}_2\|}.\]

第 \(k\) 步。从 \(\mathbf{a}_k\) 中减去它在所有已有 \(\mathbf{q}_1,\dots,\mathbf{q}_{k-1}\) 方向的分量:

\[\mathbf{A}_k = \mathbf{a}_k - \sum_{j=1}^{k-1} (\mathbf{q}_j^T\mathbf{a}_k)\,\mathbf{q}_j,\qquad \mathbf{q}_k = \frac{\mathbf{A}_k}{\|\mathbf{A}_k\|}.\]

每次减去投影。\((\mathbf{q}_j^T\mathbf{a}_k)\mathbf{q}_j\) 正是 \(\mathbf{a}_k\) 在 \(\mathbf{q}_j\) 方向上的投影。Gram-Schmidt 逐次剔除所有已有方向的分量,留下垂直分量。

数值稳定性。经典 Gram-Schmidt 在浮点运算中正交性会逐渐丧失。实际计算常用修正 Gram-Schmidt(MGS)或 Householder 变换。


A=QR 分解

把 Gram-Schmidt 的公式改写为原向量的表达式:

\[\begin{aligned} \mathbf{a}_1 &= \|\mathbf{A}_1\|\,\mathbf{q}_1,\\ \mathbf{a}_2 &= (\mathbf{q}_1^T\mathbf{a}_2)\,\mathbf{q}_1 + \|\mathbf{A}_2\|\,\mathbf{q}_2,\\ \mathbf{a}_k &= \sum_{j=1}^{k-1}(\mathbf{q}_j^T\mathbf{a}_k)\,\mathbf{q}_j + \|\mathbf{A}_k\|\,\mathbf{q}_k. \end{aligned}\]

写成矩阵形式,这就是 \(A=QR\) 分解:

\[A = \begin{bmatrix}\mathbf{a}_1&\mathbf{a}_2&\cdots&\mathbf{a}_n\end{bmatrix} = \begin{bmatrix}\mathbf{q}_1&\mathbf{q}_2&\cdots&\mathbf{q}_n\end{bmatrix} \begin{bmatrix} \|\mathbf{A}_1\| & \mathbf{q}_1^T\mathbf{a}_2 & \cdots & \mathbf{q}_1^T\mathbf{a}_n \\ 0 & \|\mathbf{A}_2\| & \cdots & \mathbf{q}_2^T\mathbf{a}_n \\ \vdots & & \ddots & \vdots \\ 0 & 0 & \cdots & \|\mathbf{A}_n\| \end{bmatrix}.\]

其中 \(Q=[\mathbf{q}_1\ \cdots\ \mathbf{q}_n]\) 列标准正交(\(Q^TQ=I\)),\(R\) 是上三角矩阵且对角元为正(\(\|\mathbf{A}_k\|>0\),由无关性保证)。

QR 是 Gram-Schmidt 的矩阵语言。Gram-Schmidt 是算法,\(A=QR\) 是代数结果。两者等价,但 \(A=QR\) 把正交化过程凝聚成一个因式分解。


QR 与最小二乘

把 \(A=QR\) 代入法方程 \(A^TA\hat{\mathbf{x}}=A^T\mathbf{b}\):

\[A^TA = R^TQ^TQR = R^T R \quad (\text{因为 } Q^TQ=I).\]

法方程变为

\[R^T R\,\hat{\mathbf{x}} = R^T Q^T \mathbf{b}.\]

\(R^T\) 可逆,两边左乘 \((R^T)^{-1}\) 得到简化法方程:

\[R\,\hat{\mathbf{x}} = Q^T\mathbf{b}.\]

\(R\) 是上三角矩阵,用回代法(back substitution)即可求解,无需矩阵求逆。

QR 让最小二乘更稳。直接解 \(A^TA\hat{\mathbf{x}}=A^T\mathbf{b}\) 的条件数是 \(\kappa(A)^2\),而 \(R\hat{\mathbf{x}}=Q^T\mathbf{b}\) 的条件数是 \(\kappa(R)=\kappa(A)\)。QR 分解是数值最小二乘的标准方法。


算例

设 \(A=\begin{bmatrix}1&0\\1&1\\1&0\end{bmatrix}\),列向量 \(\mathbf{a}_1=\begin{bmatrix}1\\1\\1\end{bmatrix},\mathbf{a}_2=\begin{bmatrix}0\\1\\0\end{bmatrix}\)。

Gram-Schmidt:

\[\mathbf{q}_1 = \frac{1}{\sqrt{3}}\begin{bmatrix}1\\1\\1\end{bmatrix},\qquad \mathbf{A}_2 = \mathbf{a}_2 - (\mathbf{q}_1^T\mathbf{a}_2)\mathbf{q}_1 = \begin{bmatrix}0\\1\\0\end{bmatrix} - \frac{1}{\sqrt{3}}\cdot\frac{1}{\sqrt{3}}\begin{bmatrix}1\\1\\1\end{bmatrix} = \frac{1}{3}\begin{bmatrix}-1\\2\\-1\end{bmatrix}.\] \[\|\mathbf{A}_2\| = \frac{1}{3}\sqrt{6} = \frac{\sqrt{6}}{3},\qquad \mathbf{q}_2 = \frac{1}{\sqrt{6}}\begin{bmatrix}-1\\2\\-1\end{bmatrix}.\]

\(R\) 矩阵:

\[R = \begin{bmatrix} \|\mathbf{A}_1\| & \mathbf{q}_1^T\mathbf{a}_2 \\ 0 & \|\mathbf{A}_2\| \end{bmatrix} = \begin{bmatrix} \sqrt{3} & \dfrac{1}{\sqrt{3}} \\ 0 & \dfrac{\sqrt{6}}{3} \end{bmatrix}.\]

验证 \(Q R = A\):

\[\mathbf{q}_1\cdot\sqrt{3} = \begin{bmatrix}1\\1\\1\end{bmatrix} = \mathbf{a}_1,\qquad \mathbf{q}_1\cdot\frac{1}{\sqrt{3}} + \mathbf{q}_2\cdot\frac{\sqrt{6}}{3} = \frac{1}{3}\begin{bmatrix}1\\1\\1\end{bmatrix} + \frac{1}{3}\begin{bmatrix}-1\\2\\-1\end{bmatrix} = \begin{bmatrix}0\\1\\0\end{bmatrix} = \mathbf{a}_2.\]

知识检查

问题 1:Gram-Schmidt 第 \(k\) 步中,\(\mathbf{A}_k\) 的计算方式是什么?

问题 2:在 \(A=QR\) 分解中,\(Q\) 和 \(R\) 分别具有什么性质?

问题 3:把 \(A=QR\) 代入法方程 \(A^TA\hat{\mathbf{x}}=A^T\mathbf{b}\),化简后得到什么?

问题 4:用 QR 分解解最小二乘的主要数值优势是什么?


本课要点

Gram-Schmidt 正交化

逐次减去在已有方向上的投影,得到标准正交基 \(\mathbf{q}_1,\dots,\mathbf{q}_n\)。

A=QR 分解

\(Q\) 列标准正交,\(R\) 上三角——Gram-Schmidt 的矩阵语言。

简化法方程

\(R\hat{\mathbf{x}}=Q^T\mathbf{b}\),回代即可求解,条件数保持最优。

数值最小二乘的标准工具

QR 分解避免了 \(A^TA\) 的条件数平方,是实际应用的首选方法。


延伸阅读


一手资料