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

Cách tính ma trận nghịch đảo (inverse matrix) bằng SciPy trong Python

Ma trận nghịch đảo A⁻¹ thỏa mãn A @ A⁻¹ = I. Tính thủ công phức tạp (minors, cofactors, adjoint, determinant). SciPy cung cấp scipy.linalg.inv.

Cú pháp


from scipy import linalg
import numpy as np

A = np.array([[7, 9], [33, 8]])
A_inv = linalg.inv(A)
print("Ma trận nghịch đảo:\n", A_inv)

Kết quả

[[-0.03319502  0.0373444 ]
 [ 0.13692946 -0.02904564]]

Giải thích

  • linalg.inv dùng phân rã LU (hoặc SVD) ổn định số.
  • Chỉ hoạt động với ma trận vuông non-singular (det ≠ 0).
  • Nếu ma trận suy biến → LinAlgError.

Ứng dụng

  • Giải hệ phương trình tuyến tính Ax = b → x = A⁻¹b (thực tế dùng linalg.solve nhanh và ổn định hơn).
  • Tính ma trận hiệp phương sai, least squares,...

Lưu ý

Không bao giờ dùng inv để giải hệ phương trình trong production. Dùng scipy.linalg.solve(A, b) hoặc np.linalg.solve.