
上QQ阅读APP看书,第一时间看更新
2.7 Cholesky分解
Cholesky分解是利用对称矩阵性质求解线性方程组的方法。与LU分解相比,它可以显著提高计算速度并降低对内存的要求。但使用Cholesky分解时需要矩阵为埃尔米特矩阵(实值对称矩阵)且正定,即Cholesky分解将矩阵分解为A = LLT,其中L是对角线为正实数的下三角矩阵,LT为L的共轭转置矩阵。
假设矩阵A为正定埃尔米特矩阵,方程Ax = B中,A和B取值如下:

在NumPy数组中呈现矩阵:

利用numpy.linalg
中cholesky()
函数计算矩阵A的下三角矩阵如下所示:

检验Cholesky分解计算结果,根据Cholesky分解的定义将矩阵L与其共轭转置矩阵相乘进行验证:

解出x前,将LTx设为y,调用numpy.linalg
的solve()
函数:

利用矩阵L的共轭转置矩阵和y求解x:

输出结果:

输出结果显示了x中a、b、c、d的值。
将矩阵A与x的转置相乘进行验证:

结果显示Cholesky分解得到的x是正确的。