Cholesky
Tính phân rã Cholesky.
cpp
bool matrix::Cholesky(
matrix& L // ma trận
);
1
2
3
2
3
Tham số
L key
[out] Ma trận tam giác dưới.
Giá trị trả về
Trả về true nếu thành công, false nếu không.
Ghi chú
Trả về phân rã Cholesky, L * L.H, của ma trận vuông a, trong đó L là ma trận tam giác dưới và .H là toán tử chuyển vị liên hợp (là chuyển vị thông thường nếu a là giá trị thực). a phải là Hermitian (đối xứng nếu là giá trị thực) và xác định dương. Không có kiểm tra nào được thực hiện để xác minh liệu a có phải là Hermitian hay không. Ngoài ra, chỉ các phần tử tam giác dưới và đường chéo của a được sử dụng. Chỉ L thực sự được trả về.
Ví dụ
cpp
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]]
*/
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19