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.18253679.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]]
  */