Bài giảng tóm tắt Matlab căn bản

MỤC LỤC

CHƯƠNG I. GIỚI THIỆU MATLAB . 4

1. Giới thiệu. 4

2. Khởi động và chuẩn bị thư m ục làm việc trong Matlab . 4

3. Quản lý không gian làm việc của Matlab . 5

4. Các thành phần của Mathlab . 6

5. Các phím tắt cơ bản trong Matlab. . 7

6. Các toán tử cơ bản của Matlab: . 8

CHƯƠNG 2. MATLAB CƠ BẢN . 11

1. Nhập xuất dữ liệu từ dòng lệnh . 11

2. Nhập xuất dữ liệu từ bàn phím: . 11

3. Nhập xuất dữ liệu từ file: . 12

4. Các hàm toán học: . 13

5. Các phép toán trên ma trận và vector: . 16

6. Tạo số ngẫu nhiên: . 18

7. Các lệnh dùng lập trình: . 19

CHƯƠNG 3. XỬ LÝ ĐỒ THỊ TRONG MATLAB . 22

1. Khái niệm chung . 22

2. Các lệnh vẽ . 22

3. Tạo hình vẽ . 22

4. Đặc tả kiểu đường vẽ . 23

5. Đặc tả màu và kích thước đường vẽ . 23

6. Thêm đường vẽ vào đồ thị đã có . 25

7. Chỉ vẽ các điểm số liệu . 25

8. Vẽ các điểm và đường . 26

9. Vẽ với hai trục y . 26

10. Vẽ đường cong với số liệu 3D . 27

11. Đặt các thông số cho trục . 27

12. Ghi nhãn lên các trục toạ độ . 28

13. Định vị văn bản trên hình vẽ. 29

14. Đồ hoạ đặc biệt . 30

15. Đồ hoạ 3D . 37

16. Vẽ các vectơ . 40

CHƯƠNG 4. LẬP TRÌNH GIAO DIỆN NGƯỜI DÙNG (GUI) . 44

1. Cách thực hiện . 44

2. Lập trình giao diện với Blank GUI . 45

3. Kéo thả và thiết lập thuộc tính cho các điều khiển . 46

4. Viết lệnh cho chương trình . 47

5. Các tính chất của các điều khiển trong GUIDE Matlab . 49

6. Tổng quan về hàm Callback trong lập trình GUI . 50

7. Chương trình Calculator . 52

CHƯƠNG 5. MỘT SỐ PHƯƠNG PHÁP XỬ LÝ TÍNH TOÁN TRÊN MATLAB . 55

1. Tính định thức của ma trận . 55

2. Nghịch đảo ma trận bằng cách dùng Minor. 59

3. Nghịch đảo ma trận bằng thuật toán gauss-Jordan. . 60

4. Lập trình giao diện: Giải phương trình bậc 2 . 61

PHỤ LỤC . 66

pdf71 trang | Chuyên mục: MATLAB | Chia sẻ: dkS00TYs | Lượt xem: 2579 | Lượt tải: 1download
Tóm tắt nội dung Bài giảng tóm tắt Matlab căn bản, để xem tài liệu hoàn chỉnh bạn click vào nút "TẢI VỀ" ở trên
n ta nói αi làm một nghịch thế với αj nếu i αj. Ví dụ trong hoán 
vị 1432 số 4 làm với số 3 một nghịch thế, số 4 làm với số 2 một nghịch thế, số 3 làm 
với số 2 một nghịch thế. Một hoán vị gọi là chẵn nếu tổng số nghịch thế trong hoán vị 
đó là một số chẵn; một hoán vị gọi là lẻ trong trường hợp ngược lại. Như vậy 1432 là một 
hoán vị lẻ. 
Cho một dãy số, nếu ta tạo ra một dãy số mới bằng cách đổi chỗ các phần tử cho nhau 
thì ta đã thực hiện một phép thế. 
Ví dụ 






3241
3412
p là phép thế biến 2 thành 1, 1 thành 4, 4 thành 2 và 3 thành 3. 
Một phép thế gọi là chẵn nếu tính chẵn lẻ của dòng trên và dòng dưới như nhau và lẻ 
trong trường hợp ngược lại. Phép thế trên là phép thể lẻ. 
Cho ma trận vuông [A] cấp n. Các phần tử của hàng thứ i là ai,1, ai,2,…,ai,n. Các 
phần tử của cột thứ j là a1,j, a2,j ,…, an,j. Ta xem hàng thứ i là một vector, kí hiệu là Ai* và cột 
thứ j cũng là một vec tơ, kí hiệu là A*j. Với mỗi phép thế: 
Giáo trình Matlab căn bản Thái Duy Quý 
Trang 56 







n
n
jjj
iii
p
...
...
21
21 (1) 
ta lập tích: 
nn jijiji
aaa ...
2211
 (2) 
Trước mỗi tích (2) ta đặt dấu + nếu và dấu ‐ nếu phép thế (1) lẻ. Sau đó ta lập tổng của n! 
tích có dấu như vậy, nghĩa là tổng: 
 
p
jijiji
pt
nn
aaa ...)1(
2211
)( (3) 
trong đó: 
 t(p) = 1 nếu phép thế p lẻ 
 t(p) = 0 nếu phép thế p chẵn 
Tổng (4) được gọi là định thức của ma trận vuông [A], cấp n. 
Ta xây dựng hàm determinant() để tính định thức của ma trận theo định nghĩa: 
 function d = determinant(A) 
% DETERMINANT tinh dinh thuc theo dinh nghia. 
[m, n] = size(A); 
if ( m ~= n ) 
 fprintf ( ʹ\nʹ ); 
 fprintf ( ʹ Chi ma tran vuong moi co dinh thuc!\nʹ ); 
 return 
end 
p = zeros(1, n); 
nf = prod([1:n]); 
d = 0.0; 
for i = 1:nf 
 p = nextperm(p); 
 s = permsign(p); 
 x = diag(A([1:n],p)); 91 
 d = d + s*prod(x); 
Giáo trình Matlab căn bản Thái Duy Quý 
Trang 57 
end 
function psign = permsign(p) 
% PERMSIGN tra ve dau phep the . 
% +1, neu phep the chan, 
% ‐1, neu phep the le. 
n = length ( p ); 
psign = 1; 
for i = 1:n‐1 
 j = i; 
 while (p(j) ~= i) 
 j = j + 1; 
 end 
 if ( j ~= i ) 
 temp = p(i); 
 p(i) = p(j); 
 p(j) = temp; 
 psign = ‐ psign; 
 end 
end 
function q = nextperm(p) 
n = length(p); 
q = p; 
if(n == 1) 
 q = 1; 
elseif (q == 0) 
 q = [1:n]; 
else 
 i = n ‐ 1; 
Giáo trình Matlab căn bản Thái Duy Quý 
Trang 58 
 while (q(i) > q(i+1)) 
 i = i ‐ 1; 
 if (i == 0) 
 break; 92 
 end 
 end 
 if (i == 0) 
 q = [1:n]; 
 else 
 j = n; 
 while (q(j) < q(i)) 
 j = j ‐ 1; 
 end 
 t = q(j); 
 q(j) = q(i); 
 q(i) = t; 
 q(i+1:n) = q(n:‐1:i+1); 
 end 
end 
 Để tính định thức ta dùng chương trình ctdeterminant.m: 
clear all, clc 
%a = [1 2; 3 5]; 
a = [1 3 5; 3 4 6; 4 6 3]; 
d = determinant(a) 
Giáo trình Matlab căn bản Thái Duy Quý 
Trang 59 
2. Nghịch đảo ma trận bằng cách dùng Minor 
 Cho ma trận [A], ta có: 
]det[
)( ,,
1
A
A
a ijji 

Trong đó: (a-1)i,j là phần tử ở hàng i, cột j của ma trận [A]‐1 , Ai,j là phần bù đại số của 
phần tử ai,j của ma trận [A]. 
Ta xây dựng hàm minorinv() để thực hiện thuật toán trên: 
 function c = minorinv(a) 
% Tim ma tran nghich dao bang thuat toan minor 
n = size(a, 1); 
ms = det(a); 
for i = 1:n 
 for k = 1:n 
 b = cofactor(a, i, k); 
 c(i, k) = b/ms; 
 end 
end 
c = transpose(c); 
Để tìm ma trận nghịch đảo ta dùng chương trình ctminorinv.m: 
clear all, clc; 
a = [1 3 5; 3 4 9; 5 9 6]; 
b = minorinv(a) 
Giáo trình Matlab căn bản Thái Duy Quý 
Trang 60 
3. Nghịch đảo ma trận bằng thuật toán gauss-Jordan. 
Cho ma trận [A] và ma trận đơn vị [E] tương ứng. Dạng của ma trận [E] cấp 4, là: 













1000
0100
0010
0001
E 
 Như vậy, vấn đề là ta cần tìm ma trận [A]‐1. Phương pháp loại trừ để nhận được ma 
trận nghịch đảo [A]‐1 được thực hiện qua n giai đoạn, mỗi một giai đoạn gồm hai bước. 
Đối với giai đoạn thứ k: 
- Chuẩn hoá phần tử akk bằng cách nhân hàng với nghịch đảo của nó. 
- Làm cho bằng không các phần tử phía trên và phía dưới đường chéo cho đến cột thứ k. 
Khi k = n thì [A](k) sẽ trở thành ma trận đơn vị và [E] trở thành [A]‐1 
Ta xây dựng một hàm nghịch đảo invmat(): 
function x = invmat(a) 
% Nghich dao ma tran a 102 
%Cu phap: x = invmat(a) 
k = size(a, 1); 
n = k; 
b = eye(n); 
a = [a, b]; 
i = 1; 
while i<=n 
 if a(i, i) ~= 0 
 c = a(i, i); 
 a(i, i:2*n) = a(i, i:2*n)/c; 
 end 
 for k = 1:n 
 if k~=i 
Giáo trình Matlab căn bản Thái Duy Quý 
Trang 61 
 c = a(k, i); 
 a(k, i:2*n) = a(k, i:2*n)‐ a(i, i:2*n)*c; 
 end 
 end 
 i = i+1; 
end 
x(:, 1:k) = a(:, (1+k):(2*k)); 
Để nghịch đảo ma trận: 











211
121
112
][A 
ta dùng chương trình ctinvmat.m: 
 clear all, clc 
a = [ 2 1 1; 1 2 1; 1 1 2]; 
b = invmat(a) 
4. Lập trình giao diện: Giải phương trình bậc 2 
Chạy Matlab, vào Menu File\New\GUI sẽ thấy hiện ra hộp thoại sau: 
Chọn Blank GUI, nhấn OK. 
Giáo trình Matlab căn bản Thái Duy Quý 
Trang 62 
Trong hộp thoại hiện ra, kéo thả các điều khiển Push button, Edit Text và Static 
Text vào figure như giao diện sau: 
Mỗi điều khiển đều có nhiều thuộc tính, có 2 thuộc tính quan trọng nhất là: Tag, 
String. Tag là thuộc tính chỉ địa chỉ của điều khiển (dùng để gọi khi cần). String là thuộc 
tính chứa nội dung (sẽ được hiển thị ra ngoài) của điều khiển. Sau đây ta đặt các thuộc tính 
này: 
- Push button 1: 
+ Tag : start 
+ String : Bat dau 
- Push button 2: 
+ Tag : close 
+ String : Close 
- Edit Text 1: 
+ Tag : heso_a 
+ String : (xóa trắng) 
- Edit Text 2: 
+ Tag : heso_b 
Giáo trình Matlab căn bản Thái Duy Quý 
Trang 63 
+ String : (xóa trắng) 
- Edit Text 3: 
+ Tag : heso_c 
+ String : (xóa trắng) 
- Edit Text 4: 
+ Tag : nghiem_x1 
+ String : (xóa trắng) 
- Edit Text 5: 
+ Tag : nghiem_x2 
+ String : (xóa trắng) 
- Static Text 1: (Đối với các Static Text thuộc tính Tag không quan trọng, trừ các trường 
hợp đặc biệt) 
+ String : Giai phương trinh bac 2: ax2 + bx + c = 0 
- Static Text 2: 
+ String : a = 
- Static Text 3: 
+ String : b = 
- Static Text 4: 
+ String : c = 
- Static Text 5: 
+ String : Ket luan 
- Static Text 6: 
+ Tag : kl 
+ String : (xóa trắng) 
- Static Text 7: 
+ String : x1 = 
- Static Text 8: 
Giáo trình Matlab căn bản Thái Duy Quý 
Trang 64 
+ String : x2 = 
- figure: (click đúp vào nền của figure): 
+ Tag : fig1 
+ Name : Giai phương trinh bac 2 
Sau khi đặt các thuộc tính, căn chỉnh (sử dụng chuột hoặc công cụ Align Objecs) 
được figure có dạng như sau: 
Lưu lại figure (Menu File\Save) dưới tên GPTB2.fig. Sau đó Matlab tự sinh file 
GPTB2.m; trong file này tìm hàm start_callback và đánh vào các dòng lệnh sau: 
Giáo trình Matlab căn bản Thái Duy Quý 
Trang 65 
Hàm set là hàm đặt thuộc tính cho điều khiển. 
Hàm get là hàm lấy giá trị thuộc tính của điều khiển 
Hàm str2double là hàm biến chuỗi thành số 
Cuối cùng ghi lại file m (GPTB2.m) và chạy chương trình (nhấn F5 hoặc nút run hình 
tam giác màu xanh). Nhập vào các hệ số a, b, c và click nút Bat dau để xem kết quả. 
5. Kết chương 
Trong chương này, sinh viên đã làm quen với một số phương pháp lập trình phức tạp trên 
Matlab. Thông qua các ví dụ, sinh viên sẽ có điều kiển hiểu rõ hơn các phương pháp xử lý 
lập trình trên Matlab hiện nay. 
Giáo trình Matlab căn bản Thái Duy Quý 
Trang 66 
PHỤ LỤC 
Hướng dẫn sử dụng công cụ Simulink 
Simulink là một công cụ trong Matlab dùng để mô hình, mô phỏng và phân tích các 
hệ thống động với môi trường giao diện sử dụng bằng đồ họa. Việc xây dựng mô hình được 
đơn giản hóa bằng các hoạt động nhấp chuột và kéo thả. Simulink bao gồm một bộ thư viện 
khối với các hộp công cụ toàn diện cho cả việc phân tích tuyến tính và phi tuyến. 
Simulink là một phần quan trọng của Matlab và có thể dễ dàng chuyển đổi qua lại trong 
quá trình phân tích, và vì vậy người dùng có thể tận dụng được ưu thế của cả hai môi 
trường. 
Có thể mở Simulink bằng 2 cách: 
- Click vào biểu tượng như hình dưới (Simulink icon) 
- Từ cửa sổ lệnh, đánh lệnh simulink và enter 
Cửa sổ thư viện Simulink sẽ hiển thị: 
Giáo trình Matlab căn bản Thái Duy Quý 
Trang 67 
Tạo một mô hình mới bằng cách: 
- Click vào icon New model hoặc gõ Ctrl-N 
- Menu File\New\Model 
Cửa sổ xây dựng mô hình xuất hiện: 
Giáo trình Matlab căn bản Thái Duy Quý 
Trang 68 
Tạo các khối: từ thư viện Simulink chọn khối cần dùng, nhấp chuột vào và kéo ra ra cửa 
sổ mô hình: 
Lưu trữ mô hình bằng lệnh Save (File\Save) hoặc nhấp vào icon Save. Dịch chuyển các 
khối đơn giản bằng cách nhấp vào khối đó và kéo thả: 
Giáo trình Matlab căn bản Thái Duy Quý 
Trang 69 
Nối tín hiệu: Đưa con chuột tới ngõ ra của khối (dấu “>”), khi đó con chuột sẽ có dạng 
“+”. Kéo rê chuột tới ngõ vào của một khối khác và thả ra để kết nối tín hiệu. 
Mô phỏng mô hình: Dùng lệnh Start (Menu Simulation\Start) hoặc nhấp chuột vào 
icon Start 
Xem tín hiệu từ Scope: nhấp đôi vào khối Scope: 
Giáo trình Matlab căn bản Thái Duy Quý 
Trang 70 
Chỉnh thông số của một khối bằng cách nhấp đôi vào khối cần chỉnh 
Trước khi mô phỏng mô hình Simulink, chúng ta cần đặt các thông số mô phỏng bằng 
cách chọn menu Simulation  Configuration Parameters 
Ở cửa sổ Configuration Parameters, chúng ta có thể đặt một số thông số như Start time, 
Stop time (second – giây), và phương pháp giải Solver, Solver options,.. sau đó nhấn nút OK 
Giáo trình Matlab căn bản Thái Duy Quý 
Trang 71 
TÀI LIỆU THAM KHẢO 
[1].Phan Thanh Tao, Giáo trình Matlab, Đại học Đà Nẵng, 2004 
[2].Trần Văn Chính, Matlab toàn tập, Đại học Bách Khoa hà Nội, 2005. 
[3].Ebook, The Student Edition of Matlab, Mathworks, Inc; 
[4].Brian R. Hunt Ronald L. Lipsman JonathanM. Rosenberg, A Guide to MATLAB 
for Beginners and Experienced Users, Cambridge University Press, 2001. 
[5].  
Và một số tài liệu tham khảo khác trên Internet. 

File đính kèm:

  • pdfBài giảng tóm tắt Matlab căn bản.pdf