【转载】Cholesky分解及一个例子
原网址:https://blog.csdn.net/qq_41564404/article/details/88085073
文字来源:
- C.E. Rasmussen & K.I. Williams, Gaissian Processes for Machine Learning,MIT
- 计算机科学计算,高等教育出版社,张宏伟 等
定义: cholesky分解是一种将任意n阶对称正定矩阵A分解成下三角矩阵L的一种方法:
LLT=A
其中,L称为Cholesky因子。如果L的对角元均为正数,则L是唯一确定的。
Cholesky分解对于解决带有对称正定系数矩阵A的线性问题非常有效。在计算机中,直接求解Ax=b=b时间复杂度是很高的(Gauss消元法求解是O(n3) ),用cholesky法对A提前变换之后再计算会有效降低复杂度。计算方法如下:
Ax=b→LLTx=b
等价于:
{Ly=bLTx=y
令
⎝⎜⎜⎜⎛a11a21⋮an1a12a22⋮an2⋯⋯⋱⋯a1na2n⋮ann⎠⎟⎟⎟⎞=⎝⎜⎜⎜⎛l11l21⋮ln1l22⋮ln2⋱…lnn⎠⎟⎟⎟⎞⎝⎜⎜⎜⎛l11l12l22⋯⋯⋱l1nl2n⋮lnn⎠⎟⎟⎟⎞
则
aij=k=1∑j−1likljk+lijljj,i=j,j+1,⋯,n
则有
ljj=(ajj−k=1∑j−1ljk2)21
lij=(aij−k=1∑j−1likljk)/ljj,i=j+1,j+2,⋯,n
计算次序为l11,l21,…,ln1,l22,l32,…,ln2,…,lnn
注意,正定对称矩阵的行列式可以由下式得出:
∣A∣=i=1∏nLii2
或者
log∣A∣=2i=1∑nlogLii
其中,L是由A得出的Cholesky因子。