上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是正确的。