Để giải hệ phương trình tuyến tính ax = b (ma trận vuông full rank), dùng numpy.linalg.solve(). Trả về nghiệm "chính xác" x với shape giống b. Yêu cầu a vuông và khả nghịch.
Tham số
- a (array_like): Ma trận hệ số (vuông).
- b (array_like): Vectơ vế phải (ordinates).
Các bước thực hiện
Nhập NumPy, thiết lập hệ: x₀ + 2x₁ = 1, 3x₀ + 5x₁ = 2:
import numpy as np
arr1 = np.array([[1, 2], [3, 5]]) # Ma trận hệ số
arr2 = np.array([1, 2]) # Vế phải
print("Ma trận hệ số...\n", arr1)
print("\nVế phải...\n", arr2)
print("\nSố chiều ma trận hệ số...\n", arr1.ndim)
print("\nSố chiều vế phải...\n", arr2.ndim)
print("\nHình dạng ma trận hệ số...\n", arr1.shape)
print("\nHình dạng vế phải...\n", arr2.shape)
# Giải hệ
print("\nKết quả...\n", np.linalg.solve(arr1, arr2))
Ví dụ hoàn chỉnh
import numpy as np
arr1 = np.array([[1, 2], [3, 5]])
arr2 = np.array([1, 2])
print("Ma trận hệ số...\n", arr1)
print("\nVế phải...\n", arr2)
print("\nSố chiều ma trận hệ số...\n", arr1.ndim)
print("\nSố chiều vế phải...\n", arr2.ndim)
print("\nHình dạng ma trận hệ số...\n", arr1.shape)
print("\nHình dạng vế phải...\n", arr2.shape)
print("\nKết quả...\n", np.linalg.solve(arr1, arr2))
Kết quả đầu ra
Ma trận hệ số...
[[1 2]
[3 5]]
Vế phải...
[1 2]
Số chiều ma trận hệ số...
2
Số chiều vế phải...
1
Hình dạng ma trận hệ số...
(2, 2)
Hình dạng vế phải...
(2,)
Kết quả...
[-1. 1.]
Kiểm tra: 1*(-1) + 2*1 = 1 ✓; 3*(-1) + 5*1 = 2 ✓.