numpy.linalg.slogdet() trả về (sign, logdet): dấu của định thức và log tự nhiên của giá trị tuyệt đối định thức. Ổn định số học hơn det() cho ma trận lớn.
Ví dụ
import numpy as np
arr = np.array([[1, 2],
[3, 4]])
print("Ma trận:", arr)
print("Số chiều:", arr.ndim)
print("Kiểu dữ liệu:", arr.dtype)
print("Kích thước:", arr.shape)
# Định thức thường
det = np.linalg.det(arr)
print("Định thức:", det)
# Sign và logdet
sign, logdet = np.linalg.slogdet(arr)
print("Sign:", sign)
print("Logdet:", logdet)
print("Kiểm tra: sign * exp(logdet) =", sign * np.exp(logdet))
Kết quả
Ma trận: [[1 2]
[3 4]]
Số chiều: 2
Kiểu dữ liệu: int64
Kích thước: (2, 2)
Định thức: -2.0000000000000004
Sign: -1.0
Logdet: 0.6931471805599455
Kiểm tra: sign * exp(logdet) = -2.0
Định thức = -2, sign = -1, logdet = ln(2) ≈ 0.693. Công thức: det = sign × exp(logdet).