Tải bản đầy đủ (.doc) (1 trang)

Bài tập về ma trận nghịch đảo potx

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


4 -3 4
3 -3 4
3
2 1 5
1 -3 -3
-2 6 6
0.00 1.00 -1.00
4.00 -3.00 4.00
3.00 -3.00 4.00
-1

×