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: 2870 | Lượt tải: 3Freedownload
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
[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:

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