Bai5_Buoi4
BÀI 5. CÁC PHÉP TOÁN MA TRẬN
Trong các bài trước chúng ta đã làm quen với một số các phép toán về mảng. Trong các thao tác về mảng, chúng ta biết rằng, các mảng không có cùng kích thước thì ta không tác động phép toán lên chúng được. Trong bài học này chúng ta làm quen với các phép toán ma trận, trong phần này các phép toán không đòi hỏi các ma trận phải có cùng kích cỡ.
5.1. Ví dụ về phép toán ma trận
Cho hệ phương trình
x1 + 2x2 - 3x3 = -4
3x1 + 10x2 + 4x3 = 35 (5.1)
- 4x1 - x2 + 9x3 = 21
Chúng ta biết rằng, trong đại số tuyến tính có thể giải bài toán này bằng cách viết lại hệ phương trình trên dưới dạng phương trình ma trận:
1 2 -3 x1 -4
3 10 4 x x2 = 35 hay Ax = b; Trong đó...
-4 -1 9 x3 21
Nghiệm của hệ phương trình trên là x = A-1.b
Trong Matlab, có thể giải bài toán này bằng một trong hai cách sau:
x = inv(A)*b hoặc x = A\b (chia trái ma trận - chứ không phải b/A).
Kết quả của bài toán trên là x1 = 1; x2 = 2; x3 = 3.
5.2. Một số phép toán về ma trận
5.2.1. Phép nhân hai ma trận
C = A*B
Hai ma trận chỉ có thể nhân được với nhau khi số cột của ma trận thứ nhất bằng số hàng của ma trận thứ hai (như trong đại số tuyến tính)
Ví dụ: A = [1 2 3;4 5 6];
B = [2 1;3 2;6 3];
C = A*B = [26.00 14.00; 59.00 32.00]
5.2.2. Phép chia ma trận
C = B\A
Hai ma trận chỉ chia được cho nhau khi thoả mãn các điều kiện xác định đó là số dòng của ma trận bị chia bằng số dòng của ma trận chia. Phép chia ma trận bao giờ cũng chỉ dùng phép chia trái (không dùng được phép chia phải như đại lượng vô hướng).
Ví dụ: A=[1;2;3];B=[4 5; 56 5; 5445 455];
>> C=B\A
C =
-0.02
0.24
5.2.3. Hạng của ma trận
rank(A)
Ví dụ:
B=[4 5; 56 5; 5445 455];
>> rank(B)
ans =
2.00
5.2.4. Chuyển vị của ma trận
A.' - chuyển vị của ma trận A
Ví dụ:
5.3. Các thao tác đối với ma trận
Chúng ta có rất nhiều cách khác nhau để thao tác ma trận. Có thể thêm vào hoặc lấy ra các phần tử của một ma trận hoặc cũng có thể tổ hợp nhiều ma trận để có một ma trận mới,...Sau đây chúng ta lần lượt nghiên cứu các thao tác này.
5.3.1. Định nghĩa một ma trận
Theo cách thông thường: các phần tử trong cùng một cột được phân cách nhau bởi dấu "phẩy", còn các dòng được phân cách nhau bởi dấu "chấm phẩy".
5.3.2. Định nghĩa lại một phần tử trong ma trận
Để làm điều này, ta chỉ việc gán các giá trị mới vào vị trí cần chèn.
Ví dụ: A = [1 3 5; 2 4 6;10 11 12]
A =
1.00 3.00 5.00
2.00 4.00 6.00
10.00 11.00 12.00
>> A(2,3)=0;
>> A
A =
1.00 3.00 5.00
2.00 4.00 0
10.00 11.00 12.00
Trường hợp nếu vị trí ta khai báo vượt quá kích cỡ của ma trận ban đầu thì Matlab vẫn cập nhật giá trị mới này vào vị trí cần chèn, còn các vị trí mới khác, nó tự bổ sung các giá trị 0.
Ví dụ: A(4,4)=100
A =
1.00 3.00 5.00 0
2.00 4.00 6.00 0
10.00 11.00 12.00 0
0 0 0 100.00
5.3.3. Tạo ma trận mới từ ma trận ban đầu
a) Tạo ma trận mới bằng cách lấy các phần tử nằm ở giao của các dòng 3, 2 và các cột 1, 2, 3 và sắp xếp các phần tử theo thứ tự đó.
Ví dụ:
>> B=A(3:-1:2,1:3)
B =
10.00 11.00 12.00
2.00 4.00 6.00
>> B=A(3:-1:2,1:2:3)
B =
10.00 12.00
2.00 6.00
b) Lấy tất cả các dòng và một số cột của ma trận
A(:,1)
ans =
1.00
2.00
10.00
>> A(:,3)
ans =
5.00
6.00
12.00
>> A(:,1:2)
ans =
1.00 3.00
2.00 4.00
10.00 11.00
>> A(:,1:3)
ans =
1.00 3.00 5.00
2.00 4.00 6.00
10.00 11.00 12.00
c) Lấy tất cả các cột và một số dòng của ma trận
>> A(2,:)
ans =
2.00 4.00 6.00
>> A(3:-1:1,:)
ans =
10.00 11.00 12.00
2.00 4.00 6.00
1.00 3.00 5.00
d) Tổ hợp các ma trận để có ma trận mới
>> [A A(:,1)]
ans =
1.00 3.00 5.00 1.00
2.00 4.00 6.00 2.00
10.00 11.00 12.00 10.00
e) Kéo ma trận thành véc tơ cột
>> A(:)
ans =
1.00
2.00
10.00
3.00
4.00
11.00
5.00
6.00
12.00
f) Lược bỏ một phần của ma trận
>> A(1,:)=[]
A =
2.00 4.00 6.00
10.00 11.00 12.00
>> A(:,3)=[]
A = 1.00 3.00
2.00 4.00
10.00 11.00
Tuy nhiên, chúng ta chỉ có thể khai báo tất cả các dòng hoặc tất cả các cột bằng ma trận rỗng, còn đối với một phần dòng và cột thì không thể khai báo như trên.
5.3.4. Một số ma trận đặc biệt
Để thuận tiện trong các phép toán ma trận. Matlab cung cấp một số ma trận đặc biệt. Sau đây chúng ta lần lượt tìm hiểu các ma trận này.
a) Ma trận Không
zeros(2)
ans =
0 0
0 0
>> zeros(3)
ans =
0 0 0
0 0 0
0 0 0
b) Ma trận Một
A = ones(3)
A =
1.00 1.00 1.00
1.00 1.00 1.00
1.00 1.00 1.00
>> A = ones(2,4)
A =
1.00 1.00 1.00 1.00
1.00 1.00 1.00 1.00
c) Ma trận đơn vị
>> B = eye(3)
B =
1.00 0 0
0 1.00 0
0 0 1.00
>> C = eye(3,4)
C =
1.00 0 0 0
0 1.00 0 0
0 0 1.00 0
Bạn đang đọc truyện trên: Truyen4U.Com