lập trình matlap cơ bản - Pdf 12

5/9/2013
1
BÀI GIẢNG
GV:ThS. Võ Thiện Lĩnh
Một số vấn đề cần tìm hiểu
1. Giới thiệu Matlab
2. Cơ sở về Matlab
3. Function files và Script files.
4. Đồ họa
5. Tạo giao diện trong Matlab.
6. Simulink.
5/9/2013
2
BÀI 1.GIỚI THIỆU
 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
BÀI 1.GIỚI THIỆU
Khả năng và những ứng dụng của Matlab
 Thư viện dựng sẵn to lớn rất phong phú nhiều lĩnh vực
 Giải quyết các vấn đề một cách số học
 Matlab ứng dụng những thuật toán đã kiểm chứng nên kết
quả đáng tin cậy.
 Lệnh và hàm sử dụng rất đơn giản.
 Có thể xây dựng những hàm riêng cho những ứng dụng
đặc biệt.
 Cung cấp thư viện hàm đồ họa rất mạnh.
 Cung cấp gói ứng dụng Simulink đầy đủ để mô phỏng.
5/9/2013

ten =
Nguyen Van A
Tránh đặt tên biến trùng với tên các hàm chuẩn, hoặc các từ khóa của
Matlab
I. Các biến và hằng số 2. Các hằng
5/9/2013
5
II. Hàm lập sẵn
• sqrt(x) : hàm rút căn bậc hai
• exp(x) : hàm e ( e = 2,71828…)
• log(x) : hàm lôgarit tự nhiên ( cơ số e )
• log10(x): hàm lôgarit cơ số 10
• sin(x)/ cos(x) : hàm sin/ hàm cos
• tan(x) / cot(x) : hàm tang/ hàm cotang
• >> help LỆNH
Một số hàm liên quan đến số phức như sau:
• abs(z) : lấy mođun (suất) của số phức.
• anglc(z): lấy góc pha của số phức.
• real(x): lấy phần thực.
• imag(x) : lấy phần ảo.
• conj(x) : trả về số phức liên hiệp của số phức z
II. Hàm lập sẵn 1. Một số lệnh
Lệnh Công dụng
clc Xóa (lau) cửa sổ lệnh. Mang tính chất hình thức,giá trị các biến
vẫn tồn tại.
clear all Giải phóng toàn bộ biến ra khỏi bộ nhớ. Xóa Workspace
clear var1 var2 Giải phóng các biến var1 var2 ra khỏi bộ nhớ.
quit Thoát khỏi chương trình Matlab
who Liệt kê các biến hiện hành có trong bộ nhớ.
; Dấu chấm phẩy ; ở cuối dòng lệnh ngăn không cho Matlab hiển

II. Hàm lập sẵn 2.Một số ví dụ(tt)
Thành lập biểu thức:
>>syms x y;
>>S=2*x+3*y;
Tính giá trị biểu thức S với: x=2; y=3
>>u=subs(S,{x,y},{2,3})
>>u= subs(S,x,y^2)
Khai triển và rút gọn:
>>v=x^2+2*x+1
>>a=factor(v),b=expand(a)
>>c=factor(x^4-1), d=simplify(c)
II. Hàm lập sẵn 2.Một số ví dụ (tt)
1.Giải phương trình bậc 2 trong R : 2x
2
+ 5x - 3 = 0
Sử dụng lệnh “solve”
>>solve(‘2*x^2+5*x-3=0');
2.Giải phương trình sau theo ẩn b và c: b
2
+8c+2b=0
>>solve('b^2+8*c+2*b=0','c')
>>solve('b^2+8*c+2*b=0',‘b')
3.Giải hệ phương trình sau:
>> [x y] = solve('3*x+y+1', '4*y+2*x-1')
4.Giải hệ phương trình sau:
5/9/2013
8
II. Hàm lập sẵn 2.Một số ví dụ (tt)
Tính đạo hàm biểu thức sau: x
3

2
2
0
xy dy

5/9/2013
9
II. Hàm lập sẵn 2.Một số ví dụ (tt)
Giải phương trình vi phân sau: y’(t) + 4y(t) = e
-t
>> y=dsolve('Dy+4*y=exp(-t)')
Giải phương trình vi phân sau: y’(t) + 4y(t) = e
-t
, y(0)=1
>> y=dsolve('Dy+4*y=exp(-t)','y(0)=1‘)
Giải phương trình vi phân sau: y’’(t) + 4y(t) = e
-2t
, y(0)=1,
y(pi)=0
>> y=dsolve('D2y+4*y=exp(-2*t)','y(0)=0','y(pi)=0')
II. Hàm lập sẵn 3.Vector & ma trận
Mảng:Mảng: là tập hợp số, ký tự được sắp xếp có thứ tự
• Mảng 1 chiều ( vectơ)
-Vectơ hàng (row array)
>>x=[2,7,0,-3] %cách nhau dấu ‘ , ’ hoặc khoảng trắng.
-Vectơ cột (column array)
>>v=[3;5;6;9] %cách nhau bằng dấu ‘ ; ’
• Mảng 2 chiều( ma trận)
>> A=[2,4,6 ; 3,5,7 ; 4,6,8]
A=

+ 6x
2
-11x +290.
Lưu ý: các hệ số được sắp xếp theo lũy thừa giảm của biến.
5/9/2013
11
II. Hàm lập sẵn 3.Vector & ma trận
Tìm ma trận chuyển vị:
>> A=[2,4,6 ; 3,5,7 ; 4,6,8]
A=
2 4 6
3 5 7
4 6 8
Truy xuất 1 phần tử của ma trận
>> A(2,3) % truy xuat ptu dong 2 cot 3
>> A(:,2) % trich vecto cot thu 2
>> A(3,:) % trich vecto dong thu 3
>> A(:,2:3) % tao ma tran con gom cot 2,3 cua A
>> A(1:2,:) % tao ma tran con gom cac dong 1, 2 cua A
>> A([1 3],[2 3]) % tao 1 ma tran con gom cac ptu dong 1,3 va cot 2,3
>> b=A’
b =
2 3 4
4 5 6
6 7 8
II. Hàm lập sẵn 3.Vector & ma trận
Tên hàm Ý nghĩa
size(A)
Trả về 1 vectơ dòng [m n] chứa kích thước mảng A có m dòng n cột
length(A)

>>max(A)
>>min(A)
>>sum(A)
>>sort(A)
Tương tự thực hiện các hàm với ma trận:
III. Các phép tính về mảng
5/9/2013
13
III. Các phép tính về mảng
Giải hệ phương trình
4x
1
- 2x
2
-10x
3
= -10
2x
1
+10x
2
-12x
3
= 32 
-4x
1
- 6x
2
+16x
3

end


5/9/2013
14
IV.Cấu trúc điều khiển 1. Cấu trúc IF
Ví dụ : Bài toán phân loại học sinh:
– Nhập điểm vào:
o điểm 9-10 xếp loại giỏi;
o điểm 7-8 xếp loại khá;
o điểm 5-6 xếp loại trung bình;
o điểm 0,1,2,3,4 xếp loại yếu;
– nếu điểm vào không phải số nguyên nằm giữa 0
và 10 thì thông báo điểm không hợp lệ.
IV.Cấu trúc điều khiển 1. Cấu trúc IF
1. diem = input('Nhap diem :');
2. if (diem == 9)|(diem == 10)
3. disp('Loai gioi')
4. elseif (diem == 7)|(diem == 8)
5. disp('Loai kha')
6. elseif (diem == 5)|(diem == 6)
7. disp('Loai trung binh')
8. elseif (diem>=0)&(diem<=4)
9. disp('Loai yeu')
10. else
11. disp(‘Diem vao khong hop le')
12. end
5/9/2013
15
IV.Cấu trúc điều khiển 2.Cấu trúc switch

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 = ');
S=0; %gia tri ban dau cua tong s
for k=1:n
S=S+k;
end
fprintf('Tong so %d so tu nhien dau tien la %d' ,n,S)
%d : kết quả xuất là số nguyên.
5/9/2013
16
IV.Cấu trúc điều khiển 4. Vòng lặp while
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)
IV.Cấu trúc điều khiển 4. Vòng lặp while
Ví dụ 2: Nhập vào các số từ bàn phím. Tính tổng các số dương tới khi
tổng này > 50 thì kết thúc .Đếm xem có bao nhiêu số đã nhập .
1. S=0; %tổng
2. k=0; %các số dương
3. m=0; % số lượng các số nhập vào
4. while S <= 50

 Matlab dùng 2 loại M-file là script file (tập tin lệnh)
và function file (tập tin hàm).
Script file: dùng cho chương trình đơn giản
Function file : dùng cho chương trình phức tạp
5/9/2013
18
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ơ.
5/9/2013
19
I. Script file
1. %File dientich.m : Chuong trinh tinh dien tich tam giac
2. %Du lieu dau vao : Toa do 3 diem A B C là [x,y,z]
3. %Du lieu dau ra : Dien tich tam giac ABC
4. %Bien p chi vecto huu huong cua 2 vecto ABxAC
5. disp('CHUONG TRINH TINH DIEN TICH TAM GIAC')
6. disp(' TOA DO 3 DIEM')
7. a=input('Toa do diem A =');

II. Function file
1. Hàm chỉ có đối số vào: function tenham(in1,in2,…)
Ví dụ: Giải pt bậc 4: ax
4
+bx
3
+cx
2
+dx+e=0
Chương trình:
1. function ptbac4(a,b,c,d,e)
2. P=[a,b,c,d,e];
3. X=roots(P);
4. for i=1:length(X)
5. disp(['Nghiem thu',' ',num2str(i),'=',' ',num2str(X(i))])
6. end
Save chương trình với tên là: ptbac4.m
5/9/2013
21
II. Function file
2. Hàm chỉ có đối số ra: function [out1,out2,…]=tenham
Ví dụ: Xắp xếp thứ tự phần tử trong mảng X từ nhỏ lớn
1. function A=sapxep
2. X=input('Nhap mang X[ ]: ');
3. N=length(X);
4. i=1;
5. while(i<=N)
6. [tam(i),j]=min(X);
7. X(j)=[ ];%xoa phan tu thu j cua mang X
8. i=i+1;

disp(['Nghiem thu','
',num2str(i),'=','
',num2str(X(i))])
end
%Save với tên: ptbac4.m
%tim nghiem max cua pt bac 4
function Y=nghiem_max(a,b,c,d,e)
X= ptbac4(a,b,c,d,e);
Y=max(X);
end
%Save với tên: nghiem_max.m
II. Function file 4.Cách gọi tập tin .m
b)Một tập tin có nhiều hàm riêng
%tim nghiem max cua pt bac 4
function Y=nghiem_max(a,b,c,d,e)
X= ptbac4(a,b,c,d,e);
Y=max(X);
end
%giai pt bac 4
function X=ptbac4(a,b,c,d,e)
P=[a,b,c,d,e];
X=roots(P);
for i=1:length(X)
disp(['Nghiem thu',' ',num2str(i),'=',' ',num2str(X(i))])
end
%Save với tên: nghiem_max.m
5/9/2013
23
III. Bài tập đề nghị
Bài 1. Viết chương trình tính chu vi và diện tích một

5. disp ('day vua nhap la : '); disp(a)
6. max=a(1);
7. for i=1:n
8. if max<a(i)
9. max=a(i);
10. End;
11. End;
12. disp (['gia tri lon nhat cua day la’,num2str(max)])
III. Bài tập đề nghị
Bài 4: Kiểm tra xem một số n có phải là số nguyên tố không?
n=input('nhap vao gia tri n : ');
dem=0;
for i=1:n
if rem (n,i)==0
dem=dem+1;
end
end;
if dem==2
disp ('so vua nhap la so nguyen to')
else
disp ('so vua nhap khong phai so nguyen to')
end
5/9/2013
25
III. Bài tập đề nghị
III. Bài tập đề nghị
Bài 6: Tính n! ?
Bài 7: Tính biểu thức sau ứng với giá trị n nhập vào:
function m=giaithua(n)
if (n==1)|(n==0)


Nhờ tải bản gốc

Tài liệu, ebook tham khảo khác

Music ♫

Copyright: Tài liệu đại học © DMCA.com Protection Status