Skip to content

QR 分解

QR factorization · QR decomposition · Economy-size QR

把长方矩阵分解为正交列与上三角因子,并区分经济型表示、数值算法和秩亏边界。

形式陈述

AFm×nmn。经济型 QR 分解写作

A=QR,QFm×n,QQ=In,RFn×n 上三角.

完整 QR 则把 Q 补成 m×m 酉矩阵,并把 R 扩为 m×n,其底部 mn 行为零。两种形式表达同一列空间,但维度不同;公式出现 QbQQ 时必须先说明采用哪一种。

每个 mn 的矩阵都有 QR 分解。若 A 满列秩,则 R 对角元均非零;再约定实情形 rii>0,或复情形将对角相位固定为正实数,可得到经济型分解的唯一性。秩亏时仍能分解,但 R 会奇异,唯一性消失。

稠密数值计算通常用Householder 反射。第 k 步对 Ak:m,k 构造反射,左乘后把对角线下方元素清零;一串反射向量隐式表示 Q,尾部更新最终产生 R。实 m×n 矩阵的分解主成本约为

2mn223n3

次浮点运算,存储可覆盖原矩阵的下三角区域。若第 k 步生成反射 Hk,则 Q=HrH1;计算 Qb 时按生成顺序把 H1,H2,,Hr 依次作用到 b,无须显式形成 Q

输入是矩阵和可选的列置换策略,输出是反射向量、R 与置换信息。完成时应核对

AQRA,QQI,

并结合 R 对角或秩揭示信息判断数值秩。Householder QR 是后向稳定的标准稠密路线;classical Gram–Schmidt 在近相关列上可能严重丢失正交性,modified Gram–Schmidt 通常更好,但不能无条件替代 Householder 的稳定性保证。

直觉

Q 只负责重新选择一组不会放大 2-范数的正交坐标,R 则记录原列怎样在这些坐标中逐层展开。于是矩阵列之间难以直接观察的几何关系,被组织成“正交方向加三角依赖”;求解和投影随后都能沿三角结构完成。

经济型 Q 只保存列空间需要的 n 个方向,完整 Q 还包含列空间正交补的 mn 个方向。默认保存后者往往只是浪费;但若问题确实需要完整正交基,补全才有意义。

例子与边界

A=(101112).

一个经济型分解为

Q=(1/31/21/301/31/2),R=(3302).

Q3×2 而非方阵,却仍满足 QQ=I2QQ 则是到 A 列空间的投影,不等于 I3

若两列相同,第二个新方向为零,R 的第二个对角元也为零。浮点中“恰好为零”会变成“相对矩阵尺度很小”,数值秩因此需要容差与噪声模型,不能把一个固定阈值写成数学唯一常数。

列主元 QR 写成 AP=QR,通过优先处理较显著、较独立的列改善秩判断;求得参数后必须撤销 P。平面旋转更适合只消去少数元素、维护稀疏结构或更新已有分解,但对一般稠密整列消去,Householder 是默认原语。

推论与应用

Gram–Schmidt给出 QR 的构造性几何证明,本页集中 full/economy 维度、Householder 实现、成本和有限精度差异。把 classical Gram–Schmidt 当作默认数值 QR,会把精确算术等价误写成稳定性等价。

满列秩最小二乘可在 QR 坐标中化为上三角系统;特征值 QR 算法和 Hessenberg 化也复用正交变换。使用成熟 LAPACK 接口时,分解、显式生成 Q、应用 Q 是不同操作,应只调用实际需要的部分。

参考资料
  • Lloyd N. Trefethen and David Bau III, Numerical Linear Algebra, SIAM, 1997, Lectures 7–10.
  • Nicholas J. Higham, Accuracy and Stability of Numerical Algorithms, 2nd ed., SIAM, 2002, Ch. 19.
  • LAPACK Users’ Guide, QR Factorization.