Cholesky

コレスキー分解を計算します。

bool matrix::Cholesky(
matrix&  L      // matrix
  );

パラメータ

L key

[out] 下三角行列

戻り値

成功の場合はtrue、それ以外の場合はfalse

注意事項

正方行列aのコレスキー分解L*L.Hを返します。ここで、Lは下三角、.Hは共役転置演算子(aが実数値の場合は通常の転置)です。aはエルミート(実数値の場合は対称)かつ正定値でなければなりません。aがエルミートであるかどうかを検証するためのチェックは実行されません。さらに、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]]
 */