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.

pdf7 trang | Chuyên mục: MATLAB | Chia sẻ: dkS00TYs | Lượt xem: 2444 | Lượt tải: 3download
Tóm tắt nội dung Matlab và ứng dụng - Ma trận và mảng, để xem tài liệu hoàn chỉnh bạn click vào nút "TẢI VỀ" ở trên
2/9/2010
1
Tiếp theo
1ntnhut@hcmus.edu.vn
Copyright © 2006 ntnhut@mathdep.hcmuns.edu.vn
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
2ntnhut@hcmus.edu.vn
2/9/2010
2
Copyright © 2006 ntnhut@mathdep.hcmuns.edu.vn
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
3ntnhut@hcmus.edu.vn
Copyright © 2006 ntnhut@mathdep.hcmuns.edu.vn
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
4ntnhut@hcmus.edu.vn
2/9/2010
3
Copyright © 2006 ntnhut@mathdep.hcmuns.edu.vn
 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)
5ntnhut@hcmus.edu.vn
Copyright © 2006 ntnhut@mathdep.hcmuns.edu.vn
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 ntnhut@mathdep.hcmuns.edu.vn
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 ntnhut@mathdep.hcmuns.edu.vn
 >> 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
8ntnhut@hcmus.edu.vn
2/9/2010
5
Copyright © 2006 ntnhut@mathdep.hcmuns.edu.vn
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
9ntnhut@hcmus.edu.vn
Copyright © 2006 ntnhut@mathdep.hcmuns.edu.vn
 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]
10ntnhut@hcmus.edu.vn
2/9/2010
6
Copyright © 2006 ntnhut@mathdep.hcmuns.edu.vn
 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
11ntnhut@hcmus.edu.vn
Copyright © 2006 ntnhut@mathdep.hcmuns.edu.vn
 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 
12ntnhut@hcmus.edu.vn
2/9/2010
7
Copyright © 2006 ntnhut@mathdep.hcmuns.edu.vn
 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
13ntnhut@hcmus.edu.vn
Copyright © 2006 ntnhut@mathdep.hcmuns.edu.vn
 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
14ntnhut@hcmus.edu.vn

File đính kèm:

  • pdfMatlab và ứng dụng - Ma trận và mảng.pdf