Giáo trình Matlab v5.3 - Chương 1: Cơ sở Matlab

Matlablàmột ngôn ngữ lập trình thực hành bậc cao đ-ợc sử dụng để giải các bài

toán về kỹ thuật.Matlab tích hợp đ-ợc việc tính toán, thể hiện kết quả, cho phép lập trình,

giao diện làm việc rất dễ dàng cho ng-ời sử dụng. Dữ liệu cùng với th-viện đ-ợc lập

trình sẵn cho phép ng-ời sử dụng có thể có đ-ợc những ứng dụng sau đây.

• Sử dụng các hàm có sẵn trong th-viện, các phép tính toán học thông th-ờng

• Cho phép lập trình tạo ra những ứng dụng mới.

• Cho phép mô phỏng các mô hình thực tế.

• Phân tích, khảo sát vàhiển thị dữ liệu.

• Với phần mềm đồ hoạ cực mạnh

• Cho phép phát triển,giao tiếp với một số phần mềm khác nh-C++, Fortran.

pdf24 trang | Chuyên mục: MATLAB | Chia sẻ: dkS00TYs | Lượt xem: 2020 | Lượt tải: 1download
Tóm tắt nội dung Giáo trình Matlab v5.3 - Chương 1: Cơ sở Matlab, để xem tài liệu hoàn chỉnh bạn click vào nút "TẢI VỀ" ở trên
c nhân với một m 
trạn ones(size(ma trận so sánh)) sao cho nó có kích th−ớc giống với ma trận cần so sánh 
rồi mới so sánh . 
Ví dụ: 
X=5; X>=[1 2 3 ; 4 5 6; 7 8 9] Ù X=5*ones(3,3); X>[1 2 3 ; 4 5 6; 7 8 9] 
Kết quả trả về : 
ans= 
 1 1 1 
 1 1 0 
 0 0 0 
1.9.2 Các toán tử logic 
(Logical Operator & | ~) 
Cấu trúc: 
Toán tử logic ý nghĩa 
 & Vμ vd A&B 
 | Hoặc vd A|B 
 ~ Đảo vd ~A 
Các ký hiệu & , | ,~ lμ các toán tử logic vμ hoặc đảo. Chúng thực hiện trên từng phần tử 
của của các mảng so sánh( toán tử logic cho phép thực hiện trên nhiều mảng với yêu cầu 
lμ các mảng phải có cùng kích th−ớc), kết quả trả về lμ một ma trận có cùng kích th−ớc 
>>X=5; 
>>X >=[1 2 3 ; 4 5 6; 7 8 
9] 
ans 
1 1 1 
1 1 0 
>>Chuoi1= ‘Pham Duc Dai’; 
>>Chuoi2=’Vu van van’; 
>>ss=strcmp(Chuoi1, 
Chuoi2); 
ss=0 
Tungvn40@yahoo.com CM Soft 70 NCT F2 Q10 
Trang 17 
với các ma trạn so sánh trên. Các toán tử logic th−ờng dùng để liên kết các biểu thức quan 
hệ. 
Bảng chân lý: 
 Đầu vμo And Or Xor Not 
A B A&B A|B xor(A,B) ~A 
0 0 0 0 0 1 
0 1 0 1 1 1 
1 0 0 1 1 0 
1 1 1 1 0 0 
Mức −u tiên cao nhất đối với toán tử logic đảo( not ,~) , hai toán tử and vμ | có cùng mức 
−u tiên , trong một biểu thức toán học thì chúng đ−ợc thực hiện theo thứ tự từ trái sang 
phải. 
Ta có thể sử dụng các toán tử ‘and’ , ‘or’ ,’not’ ⇔ & , | , ~ nh− bảng sau: 
 A&B and(A,B) 
 A|B or(A,B) 
 ~A not(A) 
Chú ý trong các biểu thức sử dụng các toán tử locgic thì ta nên dùng dấu ngoặc để xác 
định rõ rμng ,vμ đảm bảo tính t−ơng thích trong các phiên bản mới của Matlab 
Tổng kết: 
• Các phép tính số học sẽ đ−ợc thực hiện tr−ớc khi thực hiện các biểu thức logic. 
• Khi tính toán ta nên thêm dấu ngoặc đơn để lμm biểu thức trở nên sáng sủa hơn. 
• Gặp những biểu thức phức tạp sẽ sử lý các tính toán số học tr−ớc, sau đó các toán 
tử logic đ−ợc xem xét từ trái qua phải . 
1.10 Các câu lệnh điều kiện, rẽ nhánh 
1.10.1 Câu lệnh điều kiện if. 
Cấu trúc 
% Đây lμ cấu trúc đơn giản nhất. 
 if expression 
 Statements; 
 end; 
% Cấu trúc sử dụng lệnh elseif ,else vμ if đ−ợc viết liền 
 if expression1 
 Statements; 
 elseif expression2 
 Statement; 
 else 
Tungvn40@yahoo.com CM Soft 70 NCT F2 Q10 
Trang 18 
 Statements; 
 end 
Biểu thức expression bao gồm các toán tử quan hệ ví dụ nh− (count<limit) hoặc (height-
offset)>0 ), Ngoμi ra nó còn kết hợp với các toán tử logic để liên kết các biểu thức quan 
hệ. 
Ví dụ 1: if (count0) 
Ví dụ 2: Cho khoảng [a b], viết ch−ơng trình chia khoảng nμy thμnh n khoảng bằng nhau 
với n cho tr−ớc. 
Ví dụ 3: Ch−ơng trình xác định dấu của số nhập vμo : 
Nguyên tắc lμm việc của lệnh if nh− sau :Khi biểu thức expression đúng thì câu lệnh ngay 
sau lệnh if đ−ợc thực hiện nếu sai câu lệnh đó sẽ đ−ợc bỏ qua đến lệnh elseif 
Một biểu thức só sánh lμ đúng nếu tất cả các phần tử so sánh của hai mảng (hoặc hai 
ma trận) trả về gía trị 1 
Ví dụ: 
A=[ 1 0; 2 3]; B=[1 1; 3 4]; 
Thì : + A<B lμ sai vì A(1,1) không nhỏ hơn B(1,1); 
 + A<(B+1) lμ đúng bởi vì không phần tử nμo trong A lớn hơn phần tử trong B t−ơng 
ứng 
function v= lnearspace(a,b,n) 
if n<2 
error(‘Ban nhap sai, it nhat n phai lon 
hon 1’); 
end; 
h=(b-a)/(n-1); 
v=a:h:b; 
-------------------------------------------------------------------------- 
Thực thi ch−ơng trình trên trong Command window nh− 
sau: 
>> v=Soan1(5 1 5)
function s= sign(x) 
if x>0 
s=1; % so duong 
elseif x<0 
s=-1; % so am 
else 
s=0; % so =0
Tungvn40@yahoo.com CM Soft 70 NCT F2 Q10 
Trang 19 
% Cấu trúc khi sử dụng lệnh else if 
 if expression1 
 statements1; 
 else 
 if expression2 
 statements2; 
 end 
 end 
Ta thấy trong cấu trúc trên thì có hai lệnh if riêng biệt cho nên phải có hai từ kết thúc 
lμ end. 
Bμi tập ví dụ: Nhập vμo bμn phím điểm của một học sinh rồi in ra đánh giá : 
1.10.2 Vòng lặp for 
Cấu trúc: 
 for i= imin :Δi: imax 
 statements; 
 end 
Δi : Lμ b−ớc nhảy của vòng lặp for, giá trị mặc định lμ =1; 
Ví dụ: Tính tổng s= 1+2^p +3^p+ ... n^p ; ( p lμ số mũ ) 
Diem= input(‘nhap diem vao=’); 
 if ( Diem< 5) 
 fprintf(‘Hoc luc yeu’); 
 elseif( Diem>=5)&(Diem<7) 
 fprintf(‘Hoc luc trung binh’); 
 elseif(Diem>=7)&(Diem<8) 
 fprintf(‘Hoc luc khá’); 
 else fprintf(‘Hoc luc gioi’); 
 end; 
function s= Sump(n , p) 
s=0; 
for i=1:n ; s=s+i^p ;end; 
Tungvn40@yahoo.com CM Soft 70 NCT F2 Q10 
Trang 20 
Hai ch−ơng trình sau đây lμ giống nhau 
1.10.3 Vòng lặp while 
Cấu trúc: 
 while( bieu_thuc_logic) 
 statements; 
 end; 
Tr−ớc hết vòng lặp kiểm tra xem nếu biểu thức logic đúng thì thực hiện các câu lệnh 
statements. 
Ví dụ: 
1.10.4 Lệnh ngắt break , error, return 
• Lệnh break :Tác dụng điều khiển ch−ơng trình nhảy ra khỏi vòng lặp for hay while 
gần nó nhất. 
Ví dụ:Nhập một số d−ơng nếu âm thì nhập lại 
1.10.5 Lệnh error vμ lệnh return 
 - Lệnh error: Dùng để thông báo lỗi , hiển thị cho ng−ời lập trình biết đó lμ lỗi gì ? 
Ví dụ: error(‘error message’); hiển thị thông điệp lỗi khi thực hiện câu lệnh nμy. 
for i=1:100; 
y(i)=sin(i); 
end; 
x=1:100;
y=sin(x); ⇔ 
 n=input(‘Nhap n=’); 
 s=0; i=0; 
 while( i<n) 
 s=s+i; 
 end;
while 1 
n= input(‘nhap n=’); 
while(n<0) %Vong lap while2 
break; %Thoat khoi vong lap while2 
end 
if n>0 
break; %Thoat khoi vongwhile chinh 
end 
end 
a=input(‘Nhap a=’);
b=input(‘Nhap b=’); 
% Thuc hien a: b 
if b==0 
error(‘divide by zeros’);
Tungvn40@yahoo.com CM Soft 70 NCT F2 Q10 
Trang 21 
Khi thực thi ch−ơng trình trên ( nhập b=0) thì xuất hiện dòng chữ đỏ 
Nh− sau: 
??? Error using ==> soan1 
divide by zeros 
Chú ý rằng soan1 lμ tên file l−u ch−ơng trình trên 
- Lệnh return: Th−ờng đ−ợc sử dụng trong các hμm của MATLAB. Lệnh return sẽ cho 
phép quay trở về thực thi những lệnh nằm trong tác dụng của lệnh return. 
1.10.6 Biến toμn cục 
Biến toμn cục đ−ợc dùng trong phạm vi toμn bộ các ch−ơng trình, nếu các ch−ơng trình đó 
khai báo biến toμn cục đó. 
Cấu trúc: 
 global x y z % khai báo ba biến toμn cục x y z 
Ví dụ đơn giản sau: 
 %Ch−ơng trình con tính hμm 
Thực thi ch−ơng trình: 
 >> x=2,y=3,z=4; 
 >> [u,v]=Main(x,y,z); 
1.10.6 Định dạng dữ liệu ra 
Các phép tính trong MATLAB đ−ợc thực hiện với độ chính xác cao, ta có thể định dạng 
cho các số xuất ra mμn hình tuỳ từng yêu cầu cụ thể: 
Ví dụ số a= 4/3 với 
• format short (đây lμ chế độ mặc định gồm 4 số sau dấu phẩy) 
 a=1.3333 
• format short e 
 a= 1.3333e+00 
function[ u,v]=Main(x,y) 
 global a b; 
 Tinhham(x,y,z); 
 u=a;v=b; 
function Tinhham(x,y,z) 
 global a b; 
 a=x^2 +y^2+ z^2; 
 b=x^3 +y^3+ 
^
Tungvn40@yahoo.com CM Soft 70 NCT F2 Q10 
Trang 22 
• format long 
 a=1.3333333333333 
• format lang e 
 a=1.3333333333333e+000 
Ngoμi cách nμy ra ta định dạng dữ liệu bằng thanh tool công cụ trên mμn hình 
Ví dụ: Gõ các lệnh sau trong cửa sổ CommandWindow 
>>format long 
>>a=4/3 
 a= 
 1.3333333333333 
1.10.7 Một số hμm toán học thông th−ờng hay sử dụng 
Tên hμm ý nghĩa 
Sin Hμm sin 
Cos Hμm cos 
Tan Hμm tan 
Asin Hμm acsin 
Acos Hμm accos 
Atan Hμm tính arctg 
Angle Lấy góc pha 
Fix Lμm tròn h−ớng 0 
Floor Lμm tròn h−ờng -∞ 
Exp Hμm e mũ 
Ceil Lμm tròn h−ớng -∞ 
Log Logarit cơ số e 
log10 Logarit cơ số 10 
sqrt(x) Căn bậc hai 
1.11 Các hằng số đ−ợc sử dụng trong Matlab 
• Ký tự inf thay thế cho ∞ trong toán học 
 Inf : lμ số vô cùng lớn mμ Matlab không thể hiện đ−ợc 
ví dụ: 
 >> 5/0 
ans = 
 inf 
• Ký tự NaN thay thế cho một số không xác định 
Tungvn40@yahoo.com CM Soft 70 NCT F2 Q10 
Trang 23 
ví dụ: 
>> 0/0 
ans= 
 NaN 
• Ký tự pi thể hiện lμ số π =3.14159.. 
• Ký tự eps 
1.12 Số phức trong Matlab 
 Sử dụng i vμ j để thể hiện phần ảo với i= j= sqrt(-1) 
Ví dụ: 
>> 5+6i 
ans = 
 5.0000 + 6.0000i 
>> 5+6j 
ans = 
 5.0000 + 6.0000i 
Chú ý khi lμm với số phức cần phân biệt : y= 7/2*i vμ x= 7/2i cho hai kết quả khác nhau 
>> y= 7/2*i 
 y = 
 3.5*i 
>> x=7/2i 
 x= 
 -3.5i 
Ví dụ các phép tính về số phức: 
>> s=3+7i 
>>w=5-9i 
>>w+s 
>>w-s 
>>w*s 
>>w/s 
1.13 Các lệnh thoát khỏi ch−ơng trình,liệt kê các biến, xoá biến . 
• Lệnh exit : Tác dụng thoát khỏi ch−ơng trình . 
• Lệnh clc (clear command) xoá tất cả các lệnh trong cửa sổ CommandWindow 
• Lệnh clear xoá toμn bộ các biến trong bộ nhớ hiện thời . 
• Lệnh clear Xoá danh sách biến đ−ợc liệt kê ra. 
• Lệnh whos cho biết tất cả các biến hiện thời, kích th−ớc ô nhớ biến đó. 
Tungvn40@yahoo.com CM Soft 70 NCT F2 Q10 
Trang 24 
• Lệnh quit cũng giống nh− lệnh exit 
• Các phím mũi tên lên xuống (trên bμn phím) đ−ợc dùng để gọi lại các lệnh đã thực 
hiện tr−ớc đó. 
Câu hỏi& Bμi tập cuối ch−ơng 
Nêu đặc điểm của các cửa sổ ( CommandWindow, history .) 
1. Sử dụng Lệnh trực tiếp từ cửa sổ command window vμ gián tiếp từ các file 
2. Các câu lệnh điều kiện , vòng lặp 
3. L−u vμ lấy dữ liệu cho một hoặc nhiều biến. 
Bμi tập1 : Giải hệ ph−ơng trình bậc nhất dùng dòng nhắc gán giá trị biên nhập các hệ số 
a,b,c,d,m,n 
 hệ cho nh− sau: ax +by=m 
 cx+dy=n 
Bμi tập 2: Sinh viên vẽ các hμm sau 
a. Vẽ đặc tính điode với quan hệ dòng điện vμ điện áp trên điode nh− sau 
i=I0*(exp(40*v)-1)(A); I0=1.E-6; vector v=[-10:0.005:0.8] . 
Sinh viên thực hiện theo hai cách viết trực tiếp trong CommadWindow vμ viết hμm trong 
M-file. 
b. Vẽ các hμm cơ bản sin(x) ,cos(x) ,tan(x)... dùng lệnh fplot . 
c. Vẽ hμm y= sin(x)/x , y=x, y=sin(x) trên cùng một đồ thị . 
Bμi tập3 : L−u tất cả các biến bạn đã dùng trong quá trình thực hμnh vμo file riêng của 
mình, để lần sau lấy ra dùng lại. 
Bμi 4:Lập ch−ơng trình dạng hμm function để giải ph−ơng trình bậc hai 
Bμi 5:Lập hμm tính hμm truyền kín các sơ đồ hệ thống điều khiển trong sách lý thuyết 
điều khiển tự động 
Bμi 5:Lập hμm function [Q, R]=divide (a,b) tìm th−ơng vμ số chia hai số a vμ b 

File đính kèm:

  • pdfGiáo trình Matlab v5.3 - Chương 1_Cơ sở Matlab.pdf