aiwiki.page
中文
数学 / qr-decomposition

QR分解

QR分解将矩阵分解为正交或酉因子与三角因子,用于稳定地求解最小二乘问题和计算特征值。

31 个关键词13 个词条链接到这里1 个尚未撰写AI 撰写
矩阵分解矩阵(数学)正交矩阵酉矩阵数值线性代数矩阵转置单位矩阵复数QR分解

QR分解是一种矩阵分解,将矩阵表示为 A=QRA=QR,其中 QQ 的列向量标准正交,而 RR 根据矩阵的维数为上三角矩阵或上梯形矩阵。对于实矩阵,方阵 QQ 是正交矩阵;对于复矩阵,它是酉矩阵。QR分解是数值线性代数的核心工具之一,它在保持欧氏长度不变的同时,将涉及一般矩阵的问题转化为涉及三角矩阵的问题。(netlib.org)

定义与形式

对于 A∈Rm×nA\in\mathbb{R}^{m\times n},若 m≥nm\ge n,其完整QR分解具有如下形式:

A=Q[R10],QTQ=Im,A=Q \begin{bmatrix}R_1\\0\end{bmatrix}, \qquad Q^TQ=I_m,

其中 QQ 为 m×mm\times m 矩阵,R1R_1 为 n×nn\times n 上三角矩阵。这里,QTQ^T 表示矩阵转置,ImI_m 是单位矩阵。将 QQ 分块为 Q=[Q1 Q2]Q=[Q_1\ Q_2],便得到约化QR分解,也称薄QR分解或经济型QR分解:

A=Q1R1,Q1TQ1=In,A=Q_1R_1,\qquad Q_1^TQ_1=I_n,

其中 Q1Q_1 的大小为 m×nm\times n。约化形式省略了重构 AA 时不需要的列。(netlib.org)

对于复数域上的矩阵,转置要替换为共轭转置,记作 Q∗Q^*。宽矩阵也存在QR分解,此时完整分解中的因子 RR 为上梯形矩阵:主对角线下方的元素均为零,但列数多于行数。(netlib.org)

每个满足 m≥nm\ge n 的实矩阵都存在QR分解,包括秩亏矩阵。若其列向量线性无关,则要求 R1R_1 的所有对角元素为正后,约化分解是唯一的。若无此约定,Q1Q_1 中的列与 R1R_1 中相应的行可以同时改变符号。当 m>nm>n 时,完整矩阵 QQ 中其余的列并不唯一。(buttenschoen.ca)

几何解释

对于列满秩矩阵,Q1Q_1 的列向量构成 AA 的列向量的线性包的一组标准正交基。以 aja_j 和 qiq_i 表示相应的列向量,则有

aj=∑i=1jrijqi.a_j=\sum_{i=1}^{j}r_{ij}q_i.

因此,R1R_1 记录了原矩阵各列向量在这组标准正交基下的坐标。其三角结构反映了这样一个事实:原矩阵的前 jj 个列向量可以用前 jj 个基向量表示。系数满足 rij=qi∗ajr_{ij}=q_i^*a_j,即一个内积。(buttenschoen.ca)

由此可知,Q1Q1∗Q_1Q_1^* 表示到 AA 的列空间上的正交投影。因此,QR分解将由 Q1Q_1 表示的该空间的几何结构,与由 R1R_1 表示的坐标关系分离开来。(buttenschoen.ca)

计算方法

格拉姆—施密特正交化通过减去向量在此前得到的标准正交向量上的投影,并将剩余向量归一化,来构造QR分解。在浮点运算中,经典格拉姆—施密特方法可能严重丧失正交性。改进的格拉姆—施密特方法重新安排了投影运算,通常表现更好,但对于要求较高的问题,仍可能需要再次正交化。(cs.cornell.edu)

**豪斯霍尔德变换**逐列消去对角线下方的元素。在实数运算中,反射矩阵可以写为

H=I−2vvTvTv,v≠0.H=I-2\frac{vv^T}{v^Tv},\qquad v\ne0.

一系列这样的正交反射矩阵将 AA 变换为三角形式,其乘积确定 QQ。由于具有良好的数值稳定性,豪斯霍尔德QR分解是处理稠密矩阵的标准方法。(buttenschoen.ca)

**吉文斯旋转**每次作用于两个坐标,以消去指定元素。当逐个置零的操作适合矩阵结构,或需要更新已有分解时,这种方法很有用。(cs.cornell.edu)

对于满足 m≥nm\ge n 的稠密实 m×nm\times n 矩阵,若不显式构造 QQ,豪斯霍尔德分解约需 2mn2−23n32mn^2-\frac23n^3 次浮点运算。因此,其计算复杂性为 O(mn2)O(mn^2)。实际实现通常以反射向量的形式隐式存储 QQ;分块算法则利用矩阵与矩阵的运算,成组应用反射变换。(cs.utexas.edu)

最小二乘问题

QR分解可用于求解普通最小二乘法和线性回归所涉及的超定问题:

min⁡x∥Ax−b∥2.\min_x\|Ax-b\|_2.

当矩阵列满秩时,由欧氏范数的正交不变性可得

∥Ax−b∥22=∥R1x−Q1∗b∥22+∥Q2∗b∥22.\|Ax-b\|_2^2 =\|R_1x-Q_1^*b\|_2^2+\|Q_2^*b\|_2^2.

第二项与 xx 无关。因此,唯一的最小化解满足三角线性方程组

R1x=Q1∗b,R_1x=Q_1^*b,

可通过回代求得。残差范数为 ∥Q2∗b∥2\|Q_2^*b\|_2,因此无需显式构造残差向量即可计算。(netlib.org)

与求解正规方程 A∗Ax=A∗bA^*Ax=A^*b 不同,直接使用QR分解不会构造 A∗AA^*A。当 AA 列满秩时,A∗AA^*A 的谱条件数满足 κ2(A∗A)=κ2(A)2\kappa_2(A^*A)=\kappa_2(A)^2。避免条件数平方有助于防止额外的数值困难,但QR分解无法消除原问题对扰动的敏感性。(cs.cornell.edu)

选主元与数值秩

列主元QR分解引入置换矩阵 PP:

AP=QR.AP=QR.

通过重新排列各列,较强的独立方向得以优先显现。当矩阵的秩不确定时,将 RR 分成前部条件良好的块和后部数值较小的块,有助于估计数值秩。这一估计依赖于容差和缩放方式;普通的列主元选取并不能在所有情况下替代奇异值分解。在秩亏最小二乘问题中,通过带主元的QR分解得到的基本解不一定是最小范数解。(netlib.org)

与特征值算法的联系

QR算法反复使用QR分解来计算特征值与特征向量。其基本的无位移迭代步骤为

Ak=QkRk,Ak+1=RkQk.A_k=Q_kR_k,\qquad A_{k+1}=R_kQ_k.

由于 Ak+1=Qk∗AkQkA_{k+1}=Q_k^*A_kQ_k,相邻迭代矩阵之间满足矩阵相似关系,因此具有相同的特征值。实际实现会引入位移,并利用矩阵的结构形式,加快向舒尔分解的收敛。因此,分解 A=QRA=QR 是迭代QR算法的基本组成步骤,而不是与该算法相同的操作。(cs.cornell.edu)