矩阵分解——Cholesky分解,LU分解,LDLT分解
分解的简明解释
1. 基本定义
Cholesky分解(Cholesky Factorization)是一种针对对称正定矩阵(Symmetric Positive Definite Matrix)的分解方法。它将一个对称正定矩阵 A 分解为一个下三角矩阵 L 和其转置矩阵 LT 的乘积:
其中,L 是下三角矩阵,对角线元素均为正数。
2. 适用条件
-
矩阵必须对称:
。
-
矩阵必须正定:所有特征值为正,或对任意非零向量 x,满
。
若矩阵不满足条件:
-
非对称矩阵 → 无法使用Cholesky分解。
-
对称但非正定 → 分解过程中会出现负数平方根,导致失败。此时可改用
分解(允许对角元为负)。
3. 分解步骤(手动推导示例)
假设对称正定矩阵 A 为:
4. 与其他分解方法的对比
分解方法 | 适用矩阵类型 | 特点 |
---|---|---|
Cholesky | 对称正定矩阵 | 高效、唯一性保证、仅需一半存储空间 |
LU分解 | 任意方阵 | 通用但计算复杂度更高 |
LDLT分解 | 对称不定矩阵 | 允许对角元为负,避免平方根运算 |
5. 核心优势
-
计算高效:复杂度为 O(n3/3),比LU分解快约2倍。
-
存储节省:仅需存储下三角部分(对称性)。
-
数值稳定:正定性天然避免除零或数值溢出问题
6. 实际应用场景
-
线性方程组求解:
-
若 Ax=b,分解后解
,分两步回代:
-
先解 Ly=b(前向替换),
-
再解
(后向替换)。
-
-
-
优化问题:
-
在牛顿法、高斯-牛顿法中用于求解Hessian矩阵的逆。
-
-
金融工程:
-
生成相关随机变量(如蒙特卡洛模拟)。
-
-
机器学习:
-
高斯过程回归(协方差矩阵分解)。
-
PYTHON代码
import numpy as np# 定义对称正定矩阵
A = np.array([[4, 12, -16],[12, 37, -43],[-16, -43, 98]])# Cholesky分解
L = np.linalg.cholesky(A)
print("下三角矩阵 L:\n", L)# 验证分解正确性
print("L * L^T 是否等于 A?\n", np.allclose(L @ L.T, A)) # 输出 True