SLogDet
Tính dấu và logarit của định thức ma trận.
cpp
double matrix::SLogDet(
int& sign // dấu
);
1
2
3
2
3
Tham số
sign
[out] Dấu của định thức. Nếu dấu là số chẵn, định thức là số dương.
Giá trị trả về
Một số biểu thị dấu của định thức.
Ghi chú
- Định thức được tính bằng phương pháp Gaussian bằng cách đưa ma trận về dạng tam giác trên. Định thức của ma trận tam giác trên bằng tích các phần tử trên đường chéo chính. Logarit của một tích bằng tổng các logarit. Do đó, trong trường hợp tràn số khi tính định thức, bạn có thể sử dụng phương thức
SLogDet
. - Nếu dấu là số chẵn, định thức là số dương.
Ví dụ
cpp
a = np.array([[1, 2], [3, 4]])
(sign, logdet) = np.linalg.slogdet(a)
(sign, logdet) (-1, 0.69314718055994529) # có thể thay đổi
sign * np.exp(logdet) -2.0
1
2
3
4
2
3
4