Professional Documents
Culture Documents
Lap Trinh Matlab Co Ban
Lap Trinh Matlab Co Ban
BÀI GIẢNG
1
5/9/2013
Matlab vừa là một ngôn ngữ lập trình vừa là một phần
mềm ứng dụng tính toán rất hiệu quả.
Matlab - Matrix Laboratory
Matlab là một thương hiệu đã được thương mại hóa của
tập đoàn MathWorks
2
5/9/2013
BÀI 2: CƠ SỞ VỀ MATLAB
Vector và ma trận
3
5/9/2013
4
5/9/2013
5
5/9/2013
6
5/9/2013
7
5/9/2013
>> syms x y n
x dn
>> int(x^n)
>> int(x^n,n) %biến lấy tích phân là n: n
x dx
b
Tính t ích phân sau: 2
a
>> syms x a b
xy dy
>> int(x^2,a,b) 2
2
Tính t ích phân sau t heo y:
0
>>int(x*y^2,y,0,2)
8
5/9/2013
9
5/9/2013
Ví dụ:
>>u= [0:1:10]
Hoặc: >>u= linspace(0,10,11)
10
5/9/2013
sum(A) Tính tổng các ptử trong từng cột của ma trận A, kết quả chứa trong 1
vectơ dòng.
sort(A) Sắp xếp mỗi cột cuả ma trận A theo thứ tự giá trị tăng dần từ dòng 1 đến
dòng cuối , kết quả là 1 ma trận cùng kích thước với A
[x,k] =max(A) Tương tự max(A) nhưng giá trị các phần tử lớn nhất được lưu trong vectơ
dòng x và các chỉ số tương ứng được lưu trong vectơ dòng k
[x,k] = min(A) Có ý nghĩa tương tự nhưng trả về các phần tử nhỏ nhất.
[u,v,w]=find(A) Tìm những phần tử khác 0 của ma trận A. Vectơ u chỉ số dòng , v chỉ số
cột của những ptử khác 0, w chỉ chứa các ptử khác 0 của A
11
5/9/2013
12
5/9/2013
13
5/9/2013
14
5/9/2013
for n=array % một mảng bất kỳ, không nhất thiết là số tự nhiên
.....Lệnh hoặc nhóm lệnh
end
15
5/9/2013
Vòng lặp while dùng khi không biết trước số lần lặp.
while <điều kiện>
<lệnh thi hành>
end
Ví dụ : Tính tổng của n số tự nhiên đầu tiên: S = 1+2+3+…+n
n=input('Nhap so so hang can tinh tong n = ');
k=0; S=0; %gia tri ban dau cua tong s
while (k<=n) %kết thúc vòng lặp khi không còn thỏa đkiện
S=S+k;
k=k+1;
end
fprintf('Tong so %d so tu nhien dau tien la %d' ,n,S)
16
5/9/2013
17
5/9/2013
I. Script file
Script file: là M-file đơn giản nhất, không có đối số. Được
dùng khi thi hành một loạt lệnh MATLAB theo một trình tự
nhất định.
Cấu trúc đề nghị của một Script file:
1. Phần chú thích : Viết các dòng chú thích cho chương trình.
2. Phần đầu vào: các giá trị đầu vào.
3. Phần tính toán.
4. Phần trình bày kết quả: Dùng 1 số hàm của Matlab để trình
bày kết quả.
I. Script file
Ví dụ1 : Soạn script file để tính diện tích của tam giác khi
biết tọa độ 3 điểm trong không gian. Diện tích tam giác
được tính bằng công thức tích hữu hướng của 2 vectơ.
18
5/9/2013
I. Script file
I. Script file
19
5/9/2013
20
5/9/2013
21
5/9/2013
22
5/9/2013
23
5/9/2013
24
5/9/2013
S n ( x) 1 ...
x x2 x3 x4 xn
1! 2! 3! 4! n!
25
5/9/2013
BÀI 4: ĐỒ HỌA
• NỘI DUNG:
I. Đồ họa 2-D
I. Đồ họa 2-D
1. Đặc tả kiểu đường vẽ
• t = [0:pi/100:2*pi] ;
• y = sin(t);
• plot(t,y,‘:'); % vẽ đường chấm chấm
• grid on %tạo lưới
26
5/9/2013
27
5/9/2013
Ví dụ :
• x = -pi : pi/10 : pi;
• y = tan(sin(x)) - sin(tan(x));
• plot(x,y,'--rs','LineWidth',2,'MarkerEdgeColor','k',...
'MarkerFaceColor','g','MarkerSize',10)
Đường cong y = f(x) có các đặc tả sau :
- đường vẽ là đường đứt nét(--)
- khối đánh dấu hình vuông (s), đường vẽ màu đỏ(r)
- đường vẽ rộng 2 point
- các cạnh của khối đánh màu đen
- khối đánh dấu màu green
- kích thước khối đánh dấu 10 point
• Ví dụ:
1. x=[0 1 2 3];
2. y=[0 4 1 5];
3. h=plot(x,y)
• Để thấy các thuộc tính đồ họa của hàm plot ta dùng
lệnh
• set(h)
• Bây giờ ta thay đổi thuộc tính của đồ thị:
1. set(h,’Color’, ‘r’) %dat lai mau do
2. set(h,'LineWidth',6) %dat do rong duong
3. set(h,'Marker','v','MarkerSize',6)
28
5/9/2013
Ví dụ
1. x=[-5:0.01:5];
2. y1=x.^2;
3. plot(x,y1,'r--')
4. xlabel('Truc x');
5. ylabel('Truc y');
6. legend('y1=x^2')
7. text(-3,9,' \leftarrow x^2','FontSize',18)
8. gtext('Do thi')
29
5/9/2013
30
5/9/2013
2. subplot(2,2,1); bar(Y,'group') 6 15
4 10
3. title 'Group' 2 5
4. subplot(2,2,2); bar(Y,'stack') 0
1 2 3 4 5
0
1 2 3 4 5
5. title 'Stack' 5
8
6
4
6. subplot(2,2,3); barh(Y,'stack') 3
2
4
7. title 'Stack' 1
0 5 10 15 20
0
1 2 3 4 5
8. subplot(2,2,4) ; bar(Y,1.5)
9. title 'Width = 1.5'
• Lệnh POLAR : vẽ hệ tọa độ cực
1. t = -pi:0.01:pi;
2. polar(t, sin(t))
31
5/9/2013
5. grid on 0.8
0.6
0.4
y = stairs(x,sin(x)
0.2
-0.2
-0.4
-0.6
-0.8
-1
-4 -3 -2 -1 0 1 2 3 4
Truc x
32
5/9/2013
5. grid on
50
40
y = stairs(x,sin(x)
30
20
10
0
0 0.5 1 1.5 2 2.5 3 3.5 4
Truc x
Ví dụ 3:
Soạn thảo script file có tên bai3.m để lập biểu đồ tổng số sinh viên Điện
Tử - Tin học tốt nghiệp tại trường X từ năm 1996 đến 2001 với dữ liệu
như sau:
• % Lap bieu do tong so sinh vien Dien tu – Tin hoc tot nghiep
• %
1. svdt=[38 33 36 31 60 70];
2. svth=[48 54 120 92 110 131];
3. nam=1996:2001;
4. subplot(211), bar(nam,svdt);
5. title('Sinh vien Dien tu tot nghiep tu 1996-2001');
6. subplot(212), bar(nam,svth);
7. title('Sinh vien Tin hoc tot nghiep tu 1996-2001');
8. colormap(cool(5));
Colormap
33
5/9/2013
x=[20 45 15 13 7];
y=[0 0 1 0 0] % 1 để nhấn mạnh phần 15,
%chọn 0 để chúng dính liền nhau.
pie(x,y)
7%
20%
13%
15%
45%
Lệnh ginput
• fplot('sinc(x)',[-2*pi,2*pi]);
• [x,y]=ginput(3) %lấy tọa độ 3 điểm trên đồ thị
34
5/9/2013
II. ĐỒ HỌA 3D
• Ví dụ:
• >> [x,y,z]=peaks; %hàm có phân bố Gauss
• >> plot3(x,y,z)
• >> mesh(x,y,z) %bề mặt dạng lưới
• >> surf(x,y,z) %tô màu bề mặt
• >> waterfall(x,y,z)
• >> pcolor(x,y,z)%giá trị Z được thể hiện với
giá trị màu tương ứng
• >> contour(x,y,z) %lấy đường viền trong 2D
Bài 5: SIMULINK
• Simulink là một phần mềm mở rộng của MATLAB
(Toolbox của Matlab) dùng để mô hình hoá, mô
phỏng và phân tích một hệ thống động, thiết kế hệ
thống điều khiển, thiết kế DSP, hệ thống thông tin
và các ứng dụng mô phỏng khác.
• Simulink được ghép bởi hai từ Simulation và Link.
Simulink cho phép mô tả hệ thống tuyến tính,hệ
phi tuyến, các mô hình trong miền thời gian liên
tục, hay gián đoạn hoặc một hệ gồm cả liên tục và
gián đoạn.
35
5/9/2013
36
5/9/2013
Ví dụ 1
37
5/9/2013
Ví dụ 2
• Mô phỏng một phương trình dùng để biến đổi độ Celcius
thành độ Fahrenheit là : TF = (9/5)TC + 32
• Trước hết ta khảo sát các khối cần để tạo mô hình:
khối Ramp trong thư viện Sources để đưa vào tín hiệu nhiệt độ
khối Constant trong thư viện Sources để tạo hằng số 32
khối Gain trong thư viện Math để tạo ra hệ số 9/5
khối Sum trong thư viện Math để cộng hai đại lượng
khối Scope trong thư viện Sinks để hiển thị kết quả.
Ví dụ 3: Mô phỏng hệ pt
z1 +z2 =1
-z1+z2=1
38
5/9/2013
Ví dụ 4: Mô phỏng pt vi phân
x’(t) = -2x’(t) + u(t)
• Với u(t) là một sóng vuông có biên độ=1
và tần số =1 rad/sec.
39
5/9/2013
Sine Wave
Clock
Product2
-1 eu 3
Product Gain Math
Product1 Scope
80 Function
-1
Constant
Gain1
40
5/9/2013
41