什么是 Cholesky 分解计算器?
这款计算器可将一个对称正定矩阵 A 分解为 \(A = L \cdot L^{\mathsf{T}}\) 的形式,其中 L 是下三角矩阵,\(L^{\mathsf{T}}\) 是它的转置。Cholesky 分解(楚列斯基分解)的计算效率大约是 LU 分解的两倍,在数值线性代数、蒙特卡罗模拟、求解线性方程组以及最小二乘问题中应用广泛。作为附带结果,本工具还会输出矩阵的行列式。
如何使用
页面只有一个输入框:输入矩阵。请在同一行内用逗号分隔数值,用竖线符号 | 来开始新的一行。
- 2×2 示例:
4,12|12,37 - 3×3 示例:
4,12,-16|12,37,-43|-16,-43,98
计算器会先检查矩阵是否对称(每个非对角元素 \(A_{ij}\) 都必须等于 \(A_{ji}\),允许 1e-10 的误差容差)。若矩阵对称且正定,计算器便会计算并显示下三角矩阵 L 及行列式。如果矩阵不对称或非正定,则无法进行 Cholesky 分解。
公式详解
对于 L 的每个元素,算法的计算方式如下:
- 对角元素:\(L_{jj} = \sqrt{A_{jj} - \sum L_{jk}^{2}}\),其中 \(k < j\)
- 对角线以下元素:\(L_{ij} = \dfrac{A_{ij} - \sum L_{ik} L_{jk}}{L_{jj}}\),其中 \(i > j\)
行列式等于 L 各对角元素平方之积。
$$A = L\,L^{\mathsf{T}}, \qquad \det(A) = \prod_{i=1}^{n} L_{ii}^{2}$$
实例演算
以 3×3 矩阵 4,12,-16|12,37,-43|-16,-43,98 为例,按公式逐步计算:
- \(L_{11} = \sqrt{4} = 2\)
- \(L_{21} = 12 / 2 = 6\),\(L_{22} = \sqrt{37 - 36} = 1\)
- \(L_{31} = -16 / 2 = -8\),\(L_{32} = (-43 - (-8)(6)) / 1 = 5\),\(L_{33} = \sqrt{98 - 64 - 25} = 3\)
因此 \(L = [[2,0,0],[6,1,0],[-8,5,3]]\),行列式 \(= (2 \cdot 1 \cdot 3)^{2} = 36\)。
常见问题
为什么我的矩阵没有计算结果?矩阵必须既对称(\(A_{ij} = A_{ji}\))又正定(所有特征值均为正)。只要任一条件不满足,就不存在 Cholesky 分解。
矩阵一定要是方阵吗?是的。每一行的数值个数必须与行数相同,并且矩阵必须对称。
行列式是如何计算的?它等于 L 各对角元素平方之积,也就是原矩阵 A 的行列式。