Matlab và ứng dụng - Ma trận và mảng
Khi không làm việc trên đại số tuyến tính,
ma trận đơn giản chỉ là một mảng 2 chiều.
Các phép toán cộng, trừ vẫn không đổi giữa
ma trận và mảng. Nhưng các phép toán
mang tính nhân sẽ khác.
MATLAB dùng dấu chấm trước các phép
toán (mang tính nhân) trên mảng.
2/9/2010 1 Tiếp theo [email protected] Copyright © 2006 [email protected] 0 1 2 A = 7 2 3 5 4 1 3 5 2 B = 4 2 7 1 4 6 A’ Chuyển vị ma trận 0 7 5 1 2 4 2 3 1 A + B A – B Cộng, Trừ 2 ma trận 3 6 4 11 4 10 6 8 7 -3 -4 0 3 0 -4 4 0 -5 A * B Phép nhân 2 ma trận 6 10 19 32 51 46 32 37 44 A^m Luỹ thừa ma trận A^2 17 10 5 29 23 23 33 17 23 Các phép toán ma trận [email protected] 2/9/2010 2 Copyright © 2006 [email protected] 0 1 2 A = 7 2 3 5 4 1 A^(-1) inv(A) Ma trận nghịch đảo -0.2273 0.1591 -0.0227 0.1818 -0.2273 0.3182 0.4091 0.1136 -0.1591 det(A) Định thức ma trận 44 rref(A) Rút gọn dòng dạng bậc thang rút gọn 1 0 0 0 1 0 0 0 1 rank(A) Hạng của ma trận 3 Các phép toán ma trận [email protected] Copyright © 2006 [email protected] Phép chia ma trận Phép toán A \ B được ứng dụng trong việc giải hệ pttt: A*X = B x + 4y + 2z = 15 Giải hệ -2x + z = 1 3x + 2y + z = 10 1 4 2 15 A = -2 0 1 B = 1 3 2 1 10 >>X = A-1B = A\B 1 X = 2 3 [email protected] 2/9/2010 3 Copyright © 2006 [email protected] Khi không làm việc trên đại số tuyến tính, ma trận đơn giản chỉ là một mảng 2 chiều. Các phép toán cộng, trừ vẫn không đổi giữa ma trận và mảng. Nhưng các phép toán mang tính nhân sẽ khác. MATLAB dùng dấu chấm trước các phép toán (mang tính nhân) trên mảng. Mảng (Array or Vector) [email protected] Copyright © 2006 [email protected] Phép toán trên vector (mảng 1 chiều) U = [1 2 3 4] V = [0 1 -1 2] U .* V nhân từng pt 0 2 -3 8 U ./ V chia xuôi từng pt Inf 2 -3 2 U .\ V chia ngược từng pt 0 0.5 -0.330.5 U .^ 2 luỹ thừa từng pt 1 4 9 16 U .’ (giống U’) chuyển đổi dòng-cột vector cột [1 2 3 4] 6 2/9/2010 4 Copyright © 2006 [email protected] Phép toán trên ma trận (mảng 2 chiều) A = [1 2; 3 4] B = [0 1; -1 2] A .* B nhân từng pt [0 2 ; -3 8] A ./ B chia xuôi từng pt [Inf 2; -3 2] A .\ B chia ngược từng pt [0 0.5; -0.333 0.5] A .^ 2 luỹ thừa từng pt [1 4; 9 16] A .’ ma trận chuyển vị (giống A’ ) [1 3; 2 4] 7 Copyright © 2006 [email protected] >> n = (0:9)'; >> pows = [n n.^2 2.^n] Ứng dụng phép toán mảng để tạo bảng số liệu [email protected] 2/9/2010 5 Copyright © 2006 [email protected] Tên Tuổi Chiều cao Trọng lượng Tâm 18 170 59.5 Đức 21 168 64 Dũng 19 175 61.5 Thống kê số liệu D = [ 18 170 59.5 21 168 64 19 175 61.5 ] Tuổi Chiều cao Trọng lượng Trung bình mean(D) 19.3333 171 61.6667 Phương sai std(D) 1.5275 3.6056 2.2546 Cao nhất max(D) 21 175 64 >>help datafun [email protected] Copyright © 2006 [email protected] Khi thực hiện một phép toán giữa ma trận và một con số (vô hướng), nó thực hiện phép toán trên từng phần tử. Ma trận và vô hướng (scalar) VD: A = [1 2 3; 4 5 6] A + 3 [4 5 6; 7 8 9] A(1:2, 2:3) = 0 A = [1 0 0; 4 0 0] [email protected] 2/9/2010 6 Copyright © 2006 [email protected] Các phép toán logic >, <, ==, phép phủ định ‘~’ trả về giá trị logic: 0 (sai) hoặc khác 0 (đúng), (thường là 1). VD: 1>2 0 ~(3==4) 1 Chỉ số logic Logical Subscripting Mảng các giá trị logic có thể dùng trong việc trích phần tử mảng. VD: A = [1 2 3; 4 5 6] A(A>2) 4 5 3 6 [email protected] Copyright © 2006 [email protected] Hàm find tìm các chỉ số của một mảng thoả một điều kiện logic nào đó. Hàm find VD: A = [1 2 3; 4 5 6] S = find(isprime(A)) 3 4 5 1 4 2 5 3 6 Mẹo: không có dấu phNy khi trích phần tử ma trận thì trả về cột [email protected] 2/9/2010 7 Copyright © 2006 [email protected] Hàm find tìm các chỉ số của một mảng thoả một điều kiện logic nào đó. Hàm find VD: A = [1 2 3; 4 5 6] S = find(A>2) 2 4 5 6 1 4 2 5 3 6 [email protected] Copyright © 2006 [email protected] Dùng dấu … để nhập dòng lệnh dài phải xuống dòng Khoảng trắng giữa các từ, ký tự có thể nhiều tuỳ ý VD: s = 1 -1/2 + 1/3 -1/4 + 1/5 - 1/6 + 1/7 ... - 1/8 + 1/9 - 1/10 + 1/11 - 1/12; Dòng lệnh nhập và kết quả xuất [email protected]
File đính kèm:
Matlab và ứng dụng - Ma trận và mảng.pdf

