Skip to content

Cholesky 分解

Cholesky factorization · Cholesky decomposition

把 Hermitian 正定矩阵唯一分解为正对角下三角因子与其共轭转置的乘积。

形式陈述

AFn×nHermitian 正定矩阵,则存在唯一的下三角矩阵 L,其对角元均为正实数,并满足

A=LL.

实数情形即 A=LLT。逐列比较矩阵元素得到递推

ljj=ajjk=1j1|ljk|2,

以及对 i>j

lij=aijk=1j1likljkljj.

正定性保证精确算术中每个平方根的被开方数严格为正,因此算法无需通用 LU 的行主元。反过来,递推若在精确算术中得到非正主元,就证明输入不是正定矩阵。

稠密 Cholesky 分解约需 n3/3 次浮点运算,只存一个三角因子;相比通用 LU 的约 2n3/3,它利用 Hermitian 结构节省近一半工作和存储。求解 Ax=b 时执行

Ly=b,Lx=y,

即两次三角求解。输入是声明为 Hermitian 的矩阵,输出是 L 或明确的非正定失败;完成时应确认所有对角元有限且为正,并用因子重构误差或求解残差核对结果。

标准实现对正定输入后向稳定:计算因子可解释为

A+ΔA=L^L^,ΔAnuL^2,

具体常数依实现与范数而定。若矩阵非常接近半正定边界,舍入可能让理论上很小的正主元变成非正;这既是数值诊断,也提示条件性差,不能通过随意取绝对值把失败藏起来。

直觉

正定矩阵给每个非零方向分配正能量。Cholesky 因子把这份耦合能量改写成普通 Euclidean 长度:

xAx=xLLx=Lx22.

递推每一步从当前对角能量中扣除已经由前面列解释的部分,剩余严格为正,才产生新的独立方向。零剩余表示新方向没有能量,不再正定;负剩余则暴露不定性。

例子与边界

矩阵

A=(4223)

的顺序主子式为 48,所以正定。递推给出

L=(2012),LLT=A.

这份因子既是正定性的证书,也能直接用于两次三角求解。

半正定矩阵

(1111)

在第二步产生零主元,标准正定 Cholesky 无法继续;对称不定矩阵 (1221) 则产生负的第二被开方数。仅仅“矩阵对称”绝不足以调用本算法,半正定、近半正定和对称不定必须分别处理。

Gram 矩阵 BB 总是半正定,只有 B 满列秩时才正定。虽然这使正规方程能够形式上使用 Cholesky,但显式形成 BB 会把 2-范数条件数平方;因此最小二乘的默认计算路线仍是 QR 或 SVD,而不是“正规方程加 Cholesky”。

推论与应用

Cholesky 是正定线性系统、Gaussian 过程协方差、二次优化和能量离散中的标准直接分解。它还为共轭梯度法提供正定几何,并可作为检查输入是否数值上远离半正定边界的实用信号。

不完全 Cholesky 只保留部分填充,用作稀疏迭代法的预条件器;它是近似因子,不等于本页的精确分解定理。半正定秩亏问题可采用带主元或秩揭示变体,但不能把标准正定算法的唯一性和稳定结论原样搬过去。

参考资料
  • Gene H. Golub and Charles F. Van Loan, Matrix Computations, 4th ed., Johns Hopkins University Press, 2013, §4.2.
  • Nicholas J. Higham, Accuracy and Stability of Numerical Algorithms, 2nd ed., SIAM, 2002, Ch. 10.
  • LAPACK Users’ Guide, Cholesky Factorization.