Cholesky
Cholesky
计算乔列斯基(Cholesky)分解。
bool matrix::Cholesky(
matrix& L // 矩阵
);参数
- L 键
[输出] 下三角矩阵。
返回值
成功时返回 true,否则返回 false。
注意
返回方阵 a 的乔列斯基分解,L * L.H,其中 L 是下三角形和,且 H 是共轭转置运算符(如果 a 是实值,则为普通转置)。 a 必须是埃尔米特(Hermitian,如果实值是对称的),且正定。 不执行任何检查来验证 a 是否是埃尔米特(Hermitian)。 此外,仅用到 a 的下三角形和对角线元素。 仅有 L 实际返回。
举例
matrix matrix_a= {{5.7998084, -2.1825367}, {-2.1825367, 9.85910595}};
matrix matrix_l;
Print("matrix_a\n", matrix_a);
matrix_a.Cholesky(matrix_l);
Print("matrix_l\n", matrix_l);
Print("check\n", matrix_l.MatMul(matrix_l.Transpose()));
/*
matrix_a
[[5.7998084,-2.1825367]
[-2.1825367,9.85910595]]
matrix_l
[[2.408279136645086,0]
[-0.9062640068544704,3.006291985133859]]
check
[[5.7998084,-2.1825367]
[-2.1825367,9.85910595]]
*/