Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (94.93 KB, 1 trang )
Bài toán: Tìm ma trận nghịch đảo
Nhắc lại một chút kiến thức về ma trận nghịch đảo:
- Cho A là ma tra vuông cấp NxN, nếu có ma trận B sao cho AxB=BxA=I (I là ma trận
đơn vị) thì A gọi là ma trận khả nghịch và B gọi là ma trận nghịch đảo của A (đồng thời
A cũng gọi là ma trận nghịch đảo của B). Lưu ý: Nếu ma trận A có một dòng toàn số 0
hoặc 1 cột toàn số 0 thì có thể khẳng định ma trận A không có ma trận nghịch đảo.
- Thuật toán Gauss-Jordan để tìm ma trận nghịch đảo
Giả sử có ma trận vuông A, người ta viết ma trận đơn vị I “cạnh” ma trận A, ta ký hiệu là
(A|I), và coi là một ma trận kích thước Nx2N;
Bằng các phép biến đổi sơ cấp:
o Nhân các phần tử của 1 dòng với cùng một số khác 0;
o Cộng các phần tử tương ứng của dòng d1 với dòng d2 và thay thế cho dòng d2;
o Đổi chỗi các phần tử tương ứng của 2 dòng d1 và d2 cho nhau.
Nếu đưa được A về thành ma trận đơn vị thì I sẽ trở thành ma trận nghịch đảo của A.
Yêu cầu lập trình: Cho ma trận A, hãy tìm ma trận nghịch đảo của A.
Dữ liệu: Nhập vào từ thiết bị chuẩn //Cho trong file MATRAN.INP
Dòng đầu chứa số nguyên dương K là số test (1≤K≤10)
Với mỗi test gồm:
+ Dòng đầu chứa số nguyên dương N (2≤N≤50)
+ N dòng tiếp theo, mỗi dòng i chứa N số thực, là các phần tử của dòng thứ i trong ma trận.
Kết quả: Ghi ra thiết bị chuẩn //Ghi vào file MATRAN.OUT
Tương ứng với mỗi test: Ghi duy nhất số -1 nếu không có ma trận nghịch đảo, ngược lại thì gồm
N dòng, mỗi dòng gồm N số là các phần tử của ma trận nghịch đảo của ma trận tương ứng trong
test.
Các số trên 1 dòng cách nhau đúng 1 dấu cách. Mỗi số thực biểu diễn dưới dạng số được làm
tròn đến 2 chữ số thập phân
Ví dụ 1:
INPUT//MATRAN.INP OUTPUT//MATRAN.OUT
2
3
0 1 -1