Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> Python

Tính dấu và log tự nhiên của định thức mảng trong Python

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).