Skip to content

Householder 反射

Householder reflection · Householder transformation

用一个向量紧凑表示酉反射,把整段向量化到单一坐标方向,并作为稳定 QR 的基本原语。

形式陈述

对非零向量 vFm,定义 Householder 反射

H=I2vvvv.

矩阵 Pv=vv/(vv) 是到 span{v}正交投影,满足 Pv=PvPv2=Pv。因此

H=H,HH=H2=I.

Hv 方向上乘以 1,在 v 上保持不变;实数情形是关于超平面 v 的镜面反射,行列式为 1

给定 x0,令

phase(x1)={x1/|x1|,x10,1,x1=0,α=phase(x1)x2,

并取 v=xαe1,便有

Hx=αe1.

负相位选择使 x1α 同向相加,避免在构造 v 时让两个接近的数相减。输入向量 x 后,算法只需输出 vα 和必要的缩放,而不必形成稠密 H

对任意向量 y,可按

Hy=y2vvyvv

Θ(m) 成本应用反射;对尾部矩阵则是一次秩一更新。完成准则是 vv 有效、结果有限,并核对目标向量除首分量外已降到舍入尺度。显式构造 m×mH 再做矩阵乘法会把线性存储和秩一更新膨胀成不必要的稠密工作。

直觉

Gram–Schmidt 一次去掉一个已有方向的分量,Householder 反射则选择一面镜子,让整根向量在一次变换后与坐标轴重合。镜子保持长度和夹角,所以在连续施加反射时,不会主动放大 2-范数误差;被“清零”的尾部也可以直接成为三角结构。

向量 v 不是额外的大矩阵,而是这面镜子的法向。保存一串反射向量,就等于紧凑保存一个复杂正交变换;只有读者确实需要 Q 的每个元素时,才值得把它们显式展开。

例子与边界

x=(3,4)T,取 α=5v=xαe1=(8,4)T,得到

H=(3/54/54/53/5),Hx=(50).

反射保持 x2=5,却一次消去了第二分量。若后续只需把 H 作用到别的列,使用 v 的秩一公式即可。

x 已非常接近正的 e1 方向,却错误选择 α=+x2,则 v=xαe1 的首分量由两个近数相减得到,可能丢失大部分有效位;相反相位使其相加并保持可表示尺度。复数情形不能只取实数符号,还必须使用 x1 的相位,否则目标首分量与消去公式不一致。

反射不是任意旋转。实 Householder 矩阵的行列式为 1,而纯旋转行列式为 1;两个反射的乘积才可能形成旋转。这个代数边界不妨碍它作为正交变换原语,却不能在几何描述中省略。

推论与应用

QR 分解逐列使用 Householder 反射,把每列对角线下方的整段向量清零。相同原语还用于 Hessenberg 化、双对角化与许多特征值、奇异值算法,因为酉变换既保留范数,又适合用紧凑向量实现。

Gram–Schmidt仍是理解正交化与张成空间保持的直接方法;对于稠密数值 QR,Householder 通常提供更可靠的正交性。两种方法解决同一精确结构目标,却拥有不同计算图和舍入路径。

参考资料
  • Lloyd N. Trefethen and David Bau III, Numerical Linear Algebra, SIAM, 1997, Lecture 10.
  • Gene H. Golub and Charles F. Van Loan, Matrix Computations, 4th ed., Johns Hopkins University Press, 2013, §5.1.
  • LAPACK Users’ Guide, QR Factorization.