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
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:
- Chương 2.pdf