Cholesky 分解是一种用于对称正定矩阵的分解方法,将矩阵分解为一个下三角矩阵与其转置的乘积。具体来说,若 ( A A A ) 是一个对称正定矩阵,Cholesky 分解可以表示为:
[ A = L L T A = LL^T A=LLT ]
其中,( L L L ) 是一个下三角矩阵,( L T L^T LT ) 是 ( L L L ) 的转置。
1. 条件
Cholesky 分解要求矩阵 ( A A A ) 满足以下条件:
- 对称性:( A = A T A = A^T A=AT )
- 正定性:对于所有非零向量 ( x x x ),( x T A x > 0 x^T A x > 0 xTAx>0 )
2. 算法步骤
Cholesky 分解的算法步骤如下:
-
初始化:给定对称正定矩阵 ( A A A ) 和其维度 ( n n n ),初始化下三角矩阵 ( L L L ) 为全零矩阵。
-
逐列计算:
- 对于每一列 (
j
j
j ) 从
1
1
1 到 (
n
n
n ):
- 计算对角线元素:
L j j = A j j − ∑ k = 1 j − 1 L j k 2 L_{jj} = \sqrt{A_{jj} - \sum_{k=1}^{j-1} L_{jk}^2} Ljj=Ajj−k=1∑j−1Ljk2 - 对于每一行 (
i
i
i ) 从 (
j
+
1
j+1
j+1 ) 到 (
n
n
n ):
L i j = 1 L j j ( A i j − ∑ k = 1 j − 1 L i k L j k ) L_{ij} = \frac{1}{L_{jj}} \left( A_{ij} - \sum_{k=1}^{j-1} L_{ik} L_{jk} \right) Lij=Ljj1(Aij−k=1∑j−1LikLjk)
- 计算对角线元素:
- 对于每一列 (
j
j
j ) 从
1
1
1 到 (
n
n
n ):
-
返回结果:得到下三角矩阵 ( L ),满足 ( A = L L T A = LL^T A=LLT )。
3. 示例
假设有对称正定矩阵:
A = ( 4 12 − 16 12 37 − 43 − 16 − 43 98 ) A = \begin{pmatrix} 4 & 12 & -16 \\ 12 & 37 & -43 \\ -16 & -43 & 98 \end{pmatrix} A= 412−161237−43−16−4398
进行 Cholesky 分解:
-
计算 ( L 11 L_{11} L11 ):
L 11 = 4 = 2 L_{11} = \sqrt{4} = 2 L11=4=2 -
计算 ( L 21 L_{21} L21 ) 和 ( L 31 L_{31} L31 ):
L 21 = 12 2 = 6 , L 31 = − 16 2 = − 8 L_{21} = \frac{12}{2} = 6, \quad L_{31} = \frac{-16}{2} = -8 L21=212=6,L31=2−16=−8 -
计算 ( L 22 L_{22} L22 ):
L 22 = 37 − 6 2 = 1 = 1 L_{22} = \sqrt{37 - 6^2} = \sqrt{1} = 1 L22=37−62=1=1 -
计算 ( L 32 L_{32} L32 ):
L 32 = − 43 − ( 6 × − 8 ) 1 = 5 L_{32} = \frac{-43 - (6 \times -8)}{1} = 5 L32=1−43−(6×−8)=5 -
计算 ( L 33 L_{33} L33 ):
L 33 = 98 − ( ( − 8 ) 2 + 5 2 ) = 25 = 5 L_{33} = \sqrt{98 - ((-8)^2 + 5^2)} = \sqrt{25} = 5 L33=98−((−8)2+52)=25=5
最终得到下三角矩阵 ( L L L ):
L = ( 2 0 0 6 1 0 − 8 5 5 ) L = \begin{pmatrix} 2 & 0 & 0 \\ 6 & 1 & 0 \\ -8 & 5 & 5 \end{pmatrix} L= 26−8015005
验证 ( A = L L T A = LL^T A=LLT ):
L L T = ( 2 0 0 6 1 0 − 8 5 5 ) ( 2 6 − 8 0 1 5 0 0 5 ) = ( 4 12 − 16 12 37 − 43 − 16 − 43 98 ) = A LL^T = \begin{pmatrix} 2 & 0 & 0 \\ 6 & 1 & 0 \\ -8 & 5 & 5 \end{pmatrix} \begin{pmatrix} 2 & 6 & -8 \\ 0 & 1 & 5 \\ 0 & 0 & 5 \end{pmatrix}= \begin{pmatrix} 4 & 12 & -16 \\ 12 & 37 & -43 \\ -16 & -43 & 98 \end{pmatrix} = A LLT= 26−8015005 200610−855 = 412−161237−43−16−4398 =A
4. 应用
Cholesky 分解在以下领域有广泛应用:
- 线性方程组求解:通过分解后,求解 ( A x = b Ax = b Ax=b ) 转化为求解 ( L y = b Ly = b Ly=b ) 和 ( L T x = y L^T x = y LTx=y )。
- 优化问题:在二次规划和最小二乘法中用于简化计算。
- 随机模拟:生成多元正态分布随机变量。
5. 优点
- 高效性:相比 LU 分解,Cholesky 分解的计算量更小。
- 数值稳定性:适用于对称正定矩阵,具有较好的数值稳定性。
6. 注意事项
- 矩阵条件:Cholesky 分解仅适用于对称正定矩阵,否则无法保证分解的唯一性和稳定性。
- 数值误差:在实际计算中,需注意数值误差的积累,尤其是矩阵接近奇异时。
总结来说,Cholesky 分解是一种高效且稳定的矩阵分解方法,广泛应用于科学计算和工程领域。