Chương 2: Ma trận

• Ma trận

• Các phép toán trên ma trận

• Các hàm đối với ma trận

pdf48 trang | Chia sẻ: hainam | Lượt xem: 1347 | Lượt tải: 0download
Bạn đang xem trước 20 trang tài liệu Chương 2: Ma trận, để xem tài liệu hoàn chỉnh bạn click vào nút TẢI VỀ ở trên
uất các phần tử của ma trận 
a) Cú pháp truy xuất 1 phần tử như sau: 
Tên ma trận (chỉ số dòng, chỉ số cột) 
Ví dụ: ta có ma trận a như sau 
 1 5 6 
 7 10 4 
Thì a(1,3) cho kết quả là 6. 
Lưu ý: từ khóa “end” cho biết chỉ số cuối của 
dòng hoặc cột (thí dụ: a(1,end) tương 
đương a(1,3) là 6, a(end,end) là 4) 
Các phép toán trên ma trận 
Tuy nhiên ta có cú pháp khác như sau: 
Tên ma trận (chỉ số) 
 Trong trường hợp này ma trận a sẽ 
tự tạo thành một ma trận cột lớn 
bằng cách nối các phần tử lại với 
nhau theo thứ tự hết cột 1 rồi đến 
cột kế tiếp để truy xuất rồi trở lại 
như cũ, chỉ số sẽ là chỉ số cột. 
Ví dụ: Theo ma trận a trên thì a(5) cho 
kết quả là 6. 
khi thực 
hiện a 
có 
dạng: 
1 
7 
5 
10 
6 
4 
Các phép toán trên ma trận 
b) Cú pháp truy xuất nhiều phần tử như 
sau: 
Tên ma trận (các chỉ số dòng, các chỉ số cột) 
LƯU Ý: Các chỉ số dòng, cột được nhập như 
sau: 
  Đặt trong cặp ngoặc vuông, phân 
cách nhau bởi dấu “,” hoặc khoảng cách. 
  Có các thứ tự tùy ý. 
  Có thể sử dụng toán tử “:”. 
Các phép toán trên ma trận 
Ví dụ: ta có ma trận a như sau 
 1 5 6 7 
 7 10 4 2 
 3 6 5 1 
Thì a([3 2 1], [3 1]) hoặc a([3:-1:1], [3 1]) cho 
kết quả là: 
 5 3 
 4 7 
 6 1 
Các phép toán trên ma trận 
c) Sử dụng phép gán khi truy xuất các giá 
trị của ma trận: 
 Trong trường hợp nằm bên phải phép gán 
thì lấy giá trị của nó (1 hoặc nhiều phần tử) gán 
cho biến nằm bên trái phép gán. (lưu ý nếu 
các chỉ số dòng, cột lớn hơn số lượng dòng 
cột thì sẽ báo lỗi.) 
 Trong trường hợp nằm bên trái phép gán 
thì lấy giá trị phần bên phải gán cho nó. (lưu ý 
nếu các chỉ số dòng, cột lớn hơn số lượng 
dòng cột thì sẽ mở rộng thêm cho đủ.) 
Các phép toán trên ma trận 
• Thí dụ: 
 >> b = [1 2; 3 4]; 
 >> x = b(3,1) báo lỗi. 
 >> x = b(1,3) báo lỗi. 
 >> b(3,4)=5 
 b = 1 2 0 0 
 3 4 0 0 
 0 0 0 5 
(Lưu ý: chỉ số 
dòng, cột lớn hơn 
số lượng dòng 
cột thì mở rộng 
thêm cho đủ.) 
(Lưu ý: chỉ số 
dòng cột > số 
lượng dòng cột 
thì báo lỗi.) 
Các phép toán trên ma trận 
2. Các toán tử giữa ma trận và 1 con số: 
a) Cộng ma trận với 1 số x: 
Mỗi phần tử của ma trận sẽ cộng với x 
Ví dụ: ta có ma trận a như sau 
 1 5 6 
 7 10 4 
Thì a+2 hoặc 2+a cho kết quả là: 
 3 7 8 
 9 12 6 
Các phép toán trên ma trận 
b) Trừ ma trận với 1 số x: 
Mỗi phần tử của ma trận sẽ trừ với x 
Ví dụ: với ma trận a như trên thì a-2 cho kết 
quả là: 
 3 7 8 
 9 12 6 
2. Các toán tử giữa ma trận và 1 con số: 
Các phép toán trên ma trận 
c) 1 số x trừ cho ma trận: 
Mỗi phần tử của ma trận sẽ có giá trị là x trừ 
đi giá trị cũ 
Ví dụ: với ma trận a như trên thì 2-a cho kết 
quả là: 
 1 -3 -4 
 -5 -8 -2 
2. Các toán tử giữa ma trận và 1 con số: 
Các phép toán trên ma trận 
d) Nhân ma trận với 1 số x: 
Mỗi phần tử của ma trận sẽ nhân với x 
Ví dụ: với ma trận a như trên thì a*2 hoặc 
2*a cho kết quả là: 
 2 10 12 
 14 20 8 
2. Các toán tử giữa ma trận và 1 con số: 
Các phép toán trên ma trận 
e) Chia ma trận với 1 số x: 
Mỗi phần tử của ma trận sẽ chia cho x 
Ví dụ: với ma trận a như trên thì a/2 cho kết 
quả là: 
 0.5000 2.5000 3.0000 
 3.5000 5.0000 2.0000 
(không có phép toán số x chia cho ma trận) 
2. Các toán tử giữa ma trận và 1 con số: 
Các phép toán trên ma trận 
và 
(lưu ý số 
hàng và số 
cột của cả 
2 ma trận 
phải bằng 
nhau 
3. Các toán tử giữa ma trận và ma trận: 
a) Cộng ma trận X với ma trận Y: 
Mỗi phần tử của ma trận X sẽ cộng với mỗi 
phần tử tương ứng trong ma trận Y 
Ví dụ: ta có ma trận X và Y như sau 
 1 5 6 5 2 6 
 7 10 4 3 7 1 
Thì X+Y hoặc Y+X cho kết quả là: 
 6 7 12 
 10 17 5 
Các phép toán trên ma trận 
b) Trừ ma trận X với ma trận Y: 
Mỗi phần tử của ma trận X sẽ trừ đi mỗi 
phần tử tương ứng trong ma trận Y 
Ví dụ: ta có ma trận X và Y như sau 
 1 5 6 5 2 6 
 7 10 4 3 7 1 
Thì X-Y cho kết quả là: 
 -4 3 0 
 4 3 3 
và 
(lưu ý số 
hàng và số 
cột của cả 
2 ma trận 
phải bằng 
nhau 
3. Các toán tử giữa ma trận và ma trận: 
Các phép toán trên ma trận 
c) Nhân ma trận X với ma trận Y: 
X(m,n) * Y(n,k) => C(m,k) 
>> a=[1 2 3] 
a = 
 1 2 3 
>> b=[1;2;3] 
b = 
 1 
 2 
 3 
>> c=a*b 
c = 
 14 
>> a=[1;2;3] 
a = 
 1 
 2 
 3 
>> b=[1 2 3] 
b = 
 1 2 3 
>> c=a*b 
c = 
 1 2 3 
 2 4 6 
 3 6 9 
Lưu ý: số cột của 
X bằng với số 
hàng của Y là n , 
cho ra C có số 
hàng bằng với 
của X là m và số 
cột bằng với của 
Y là k. 
Các phép toán trên ma trận 
d) Chia ma trận X với ma trận Y: 
X(m,n) / Y(k,n) = C(m,k) 
Lưu ý: số cột của 
X bằng với số cột 
của Y là n , cho ra 
C có số hàng 
bằng với số hàng 
của X là m và số 
cột bằng với số 
hàng của Y là k. 
>> a=[1 2 3] 
a = 
 1 2 3 
>> b=[1 5 6;2 8 4;3 7 6] 
b = 
 1 5 6 
 2 8 4 
 3 7 6 
>> c=a/b 
c = 
 0.2500 -0.3000 0.4500 
Các phép toán trên ma trận 
4. Các toán tử đối với ma trận vuông: 
a) Một số ma trận vuông đặc biệt: 
- Ma trận đơn vị: 
 1 0 0 
 0 1 0 
 0 0 1 
- Ma phương: 
 8 1 6 
 3 5 7 
 4 9 2 
 1 0 0 0 
 0 1 0 0 
 0 0 1 0 
 0 0 0 1 
Các phép toán trên ma trận 
4. Các toán tử đối với ma trận vuông: 
b) Nghịch đảo của 1 ma trận A là A-1: 
Sao cho A*A-1 = ma trận đơn vị 
 Ví dụ: ta có ma trận A như sau: 
1 2 3 
7 4 9 
5 8 3 
 Và A*A-1 = 
-0.6250 0.1875 0.0625 
 0.2500 -0.1250 0.1250 
 0.3750 0.0208 -0.1042 
Thì A-1= 
1 0 0 
0 1 0 
0 0 1 
Các phép toán trên ma trận 
4. Các toán tử đối với ma trận vuông: 
c) Các toán tử: 
(Lưu ý: 2 ma trận cùng số hàng và cột) 
 Giả sử: 
A = 1 2 3 
 4 9 7 
 3 7 1 
B = 3 2 8 
 5 9 6 
 3 9 2 
Các phép toán trên ma trận 
4. Các toán tử đối với ma trận vuông: 
c) Các toán tử: 
(Lưu ý: 2 ma trận cùng số hàng và cột) 
>> A*B 
ans = 
 22 47 26 
 78 152 100 
 47 78 68 
>> A.*B 
ans = 
 3 4 24 
 20 81 42 
 9 63 2 
Các phép toán trên ma trận 
4. Các toán tử đối với ma trận vuông: 
c) Các toán tử: 
(Lưu ý: 2 ma trận cùng số hàng và cột) 
>> A/B 
ans = 
 0.6538 -0.5962 0.6731 
 1.0385 -0.7115 1.4808 
 -0.6538 1.0962 -0.1731 
>> A*B^-1 
ans = 
 0.6538 -0.5962 0.6731 
 1.0385 -0.7115 1.4808 
 -0.6538 1.0962 -0.1731 
Các phép toán trên ma trận 
4. Các toán tử đối với ma trận vuông: 
c) Các toán tử: 
(Lưu ý: 2 ma trận cùng số hàng và cột) 
>> A ./ B 
ans = 
 0.3333 1.0000 0.3750 
 0.8000 1.0000 1.1667 
 1.0000 0.7778 0.5000 
Các phép toán trên ma trận 
4. Các toán tử đối với ma trận vuông: 
c) Các toán tử: 
(Lưu ý: 2 ma trận cùng số hàng và cột) 
>> A\B 
ans = 
 21.3333 8.6667 77.3333 
 -8.6667 -2.3333 -32.6667 
 -0.3333 -0.6667 -1.3333 
>> (A^-1)*B 
ans = 
 21.3333 8.6667 77.3333 
 -8.6667 -2.3333 -32.6667 
 -0.3333 -0.6667 -1.3333 
Các phép toán trên ma trận 
4. Các toán tử đối với ma trận vuông: 
c) Các toán tử: 
(Lưu ý: 2 ma trận cùng số hàng và cột) 
>> A .\ B 
ans = 
 3.0000 1.0000 2.6667 
 1.2500 1.0000 0.8571 
 1.0000 1.2857 2.0000 
Các phép toán trên ma trận 
4. Các toán tử đối với ma trận vuông: 
c) Các toán tử: 
(Lưu ý: 2 ma trận cùng số hàng và cột) 
>> A^2 
ans = 
 18 41 20 
 61 138 82 
 34 76 59 
>> A.^2 
ans = 
 1 4 9 
 16 81 49 
 9 49 1 
Các phép toán trên ma trận 
4. Các toán tử đối với ma trận vuông: 
c) Các toán tử: 
(Lưu ý: 2 ma trận cùng số hàng và cột) 
>> A' 
ans = 
 1 4 3 
 2 9 7 
 3 7 1 
>> A.' 
ans = 
 1 4 3 
 2 9 7 
 3 7 1 
Các hàm đối với ma trận 
4. Các toán tử đối với ma trận vuông: 
c) Các toán tử: 
(Lưu ý: 2 ma trận cùng số hàng và cột) 
>> A' 
ans = 
 1 4 3 
 2 9 7 
 3 7 1 
>> A.' 
ans = 
 1 4 3 
 2 9 7 
 3 7 1 
Các hàm đối với ma trận 
1. Các hàm tạo ma trận mới: 
 zeros(m,n): tạo ma trận m hàng n 
cột mà các phần tử là số 0. 
 Thí dụ: 
>> zeros(2,3) 
ans = 
 0 0 0 
 0 0 0 
Các hàm đối với ma trận 
1. Các hàm tạo ma trận mới: 
 ones(m,n): tạo ma trận m hàng n 
cột mà các phần tử là số 1. 
 Thí dụ: 
>> ones(2,3) 
ans = 
 1 1 1 
 1 1 1 
Các hàm đối với ma trận 
1. Các hàm tạo ma trận mới: 
 eye(n): tạo ma trận đơn vị n hàng n 
cột. 
 Thí dụ: 
>> eye(3) 
ans = 
 1 0 0 
 0 1 0 
 0 0 1 
Các hàm đối với ma trận 
1. Các hàm tạo ma trận mới: 
  diag([a1,a2,,an]): tạo ma trận đường 
chéo n hàng n cột. 
 Thí dụ: 
>> diag([3,5,2]) 
ans = 
 3 0 0 
 0 5 0 
 0 0 2 
Các hàm đối với ma trận 
1. Các hàm tạo ma trận mới: 
 magic(n): tạo ma phương n hàng n cột. 
 Thí dụ: 
>> magic(3) 
ans = 
 8 1 6 
 3 5 7 
 4 9 2 
Các hàm đối với ma trận 
2. Các hàm tác động lên ma trận: 
 sum(a): tác động lên ma trận a tạo ra ma 
trận mới 1 hàng n cột (n là số cột của a), có 
giá trị là tổng của mỗi cột trong a. 
 Thí dụ: 
a = 
 6 8 4 
 9 1 3 
 7 3 0 
>> sum(a) 
ans = 
 22 12 7 
>> sum(a‟) 
ans = 
 18 13 10 
Các hàm đối với ma trận 
 max(a): tác động lên ma trận a tạo ra ma 
trận mới 1 hàng n cột (n là số cột của a), có 
giá trị là số lớn nhất của mỗi cột trong a. 
 Thí dụ: 
a = 
 6 8 4 
 9 1 3 
 7 3 0 
>> max(a) 
ans = 
 9 8 4 
>> max(a‟) 
ans = 
 8 9 7 
2. Các hàm tác động lên ma trận: 
Các hàm đối với ma trận 
 min(a): tác động lên ma trận a tạo ra ma 
trận mới 1 hàng n cột (n là số cột của a), có 
giá trị là số nhỏ nhất của mỗi cột trong a. 
 Thí dụ: 
a = 
 6 8 4 
 9 1 3 
 7 3 0 
>> min(a) 
ans = 
 6 1 0 
>> min(a‟) 
ans = 
 4 1 0 
2. Các hàm tác động lên ma trận: 
Các hàm đối với ma trận 
 inv(a) tương đương a^(-1). 
 load(„têntậptin‟): dùng để đọc 1 tập tin dữ 
liệu. Ta có thể tạo các giá trị của 1 ma trận 
trong 1 tập tin .txt rồi dùng hàm load để nạp 
vào chương trình cho 1 biến nào đó. 
Thí dụ: tạo tập tin a.txt có nội dung sau 
 2 3 5 
 8 2 9 
Sau đó sử dụng lệnh: >> a=load(„a.txt‟) 
Ta sẽ gán các giá trị trong a.txt cho biến a. 
2. Các hàm tác động lên ma trận: 

File đính kèm:

  • pdfChương 2.pdf
Bài giảng liên quan