Python金融数据分析(原书第2版)
上QQ阅读APP看书,第一时间看更新

2.7 Cholesky分解

Cholesky分解是利用对称矩阵性质求解线性方程组的方法。与LU分解相比,它可以显著提高计算速度并降低对内存的要求。但使用Cholesky分解时需要矩阵为埃尔米特矩阵(实值对称矩阵)且正定,即Cholesky分解将矩阵分解为A = LLT,其中L是对角线为正实数的下三角矩阵,LTL的共轭转置矩阵。

假设矩阵A为正定埃尔米特矩阵,方程Ax = B中,AB取值如下:

052-01

在NumPy数组中呈现矩阵:

052-02

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

052-03

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

052-04

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

053-01

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

053-02

输出结果:

053-03

输出结果显示了xabcd的值。

将矩阵Ax的转置相乘进行验证:

053-04

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