Máy tính định thức ma trận n×n là gì?
Công cụ này tính định thức det(A) của một ma trận vuông n×n bất kỳ với các phần tử là số thực, đồng thời cho ra nghịch đảo 1/det(A). Định thức là một con số duy nhất cho biết ma trận có khả nghịch hay không: nếu det ≠ 0 thì ma trận khả nghịch, còn det = 0 nghĩa là ma trận suy biến. Đại lượng này xuất hiện ở khắp nơi trong đại số tuyến tính, hình học (hệ số co giãn thể tích có dấu) và việc giải hệ phương trình. Phép toán này mang tính phổ quát — ở đâu cũng cho kết quả như nhau.
Cách sử dụng
Trước tiên hãy chọn kích thước ma trận \(n\) (từ 1 đến 10), sau đó điền từng phần tử \(a_{ij}\) vào lưới. Các phần tử có thể là số âm, số thập phân hoặc số 0. Bạn có thể chọn số chữ số hiển thị nếu cần độ chính xác cao hơn. Máy tính sẽ trả về định thức và, khi ma trận khả nghịch, cả nghịch đảo 1/det(A). Nếu định thức bằng 0, công cụ sẽ đánh dấu ma trận là suy biến và báo nghịch đảo là không xác định.
Công thức
Định thức có thể được định nghĩa bằng khai triển Laplace (khai triển theo phần bù đại số) dọc theo một hàng: $$\det(A) = \sum_{j} a_{ij}\cdot(-1)^{i+j}\cdot M_{ij}$$ trong đó \(M_{ij}\) là định thức con thu được bằng cách bỏ đi hàng \(i\) và cột \(j\). Với \(n = 2\), ta có \(\det = a_{11}a_{22} - a_{21}a_{12}\). Để đảm bảo ổn định số học và tốc độ tính toán, máy tính này sử dụng phương pháp khử Gauss có chọn trụ riêng phần: đưa \(A\) về dạng tam giác trên, theo dõi việc đổi dấu khi hoán đổi hàng, rồi nhân các phần tử trụ trên đường chéo — $$\det(A) = \operatorname{sign} \cdot \prod_{k=1}^{n} U_{kk}$$
Ví dụ minh họa
Với A = [[1,2,3],[4,5,6],[7,8,10]]: $$\det = 1(5\cdot10 - 6\cdot8) - 2(4\cdot10 - 6\cdot7) + 3(4\cdot8 - 5\cdot7) = 1(2) - 2(-2) + 3(-3) = 2 + 4 - 9 = -3$$ Vậy \(\det(A) = -3\) và \(\frac{1}{\det(A)} \approx -0{,}3333\).
Câu hỏi thường gặp
Định thức bằng 0 nghĩa là gì? Ma trận đó suy biến: các hàng hoặc các cột của nó phụ thuộc tuyến tính, nó không có ma trận nghịch đảo, và 1/det(A) không xác định.
Các phần tử có thể là số thập phân hay số âm không? Có — mọi số thực đều được chấp nhận.
Vì sao dùng phép khử thay vì khai triển theo phần bù? Khai triển theo phần bù đại số tốn \(O(n!)\) phép tính; trong khi khử Gauss chỉ tốn \(O(n^3)\) và ổn định về mặt số học đối với các ma trận lớn hơn.