Giáo trình Matlab căn bản cung cấp cho bạn những kiến thức căn bản để từ đó có thể tìm hiểu sâu và rộng hơn. Là một lựa chọn tốt cho những bạn mới học, nghiên cứu về Matlab.
Trang 11 Cài đặt chương trình Matlab
Bộ Matlab 7.3 gồm 3 đĩa chương trình, các bước tiến hành cài đặt như sau :
Bước 1 :
Bỏ đĩa 1 vào máy tính, double click chuột vào file install ( hoặc chương trình sẽ tự động chạy chương trình cài đặt)
Giao diện cài đặt xuất hiện như sau :
ζ1 GIỚI THIỆU VỀ MATLAB
Trang 2Chọn vào install, chọn next
Trang 3Bước 2 : Sau bước 1 , chúng ta có giao diện
Nhập vào tên người sử dụng, tên công ty và mã số chương trình Lưu ý, mã số chương trình được cung cấp bởi nhà sản xuất chương trình và được bảo vệ theo luật bản quyền
Trang 4Bước 3 : Matlab sẽ yêu cầu người sử dụng xác nhận ,
chúng ta sẽ chọn Yes, sau đó click vào Next
Trang 5Bước 4 : Lựa chọn cách cài đặt :
Matlab cho phép lựa chọn một trong 2 phương cách cài đặt như sau
Trang 6Typical : chương trình tự động cài đặt theo các định dạng có sẵn của Matlab
Custom : cho phép người sử dụng lựa chọn các nội dung cài đặt
Ta sẽ chọn custom để thiết lập các lựa chọn trong quá trình cài đặt
Bước 5 : Chọn thư mục cài đặt Thông thường, chúng ta chấp nhận đường dẫn mặc định của Matlab, nên chỉ việc
nhấn Next
Trang 7Bước 6 : Chọn các thành phần cài đặt
Matlab là một chương trình với nhiều chức năng và mục đích sử dụng khác nhau, tuỳ theo mục đích sử dụng mà chúng
ta chọn lựa các thành phần cài đặt phù hợp
Trang 8Đối với giáo trình tin học ứng dụng, cần thiết phải có các
thành phần sau:
Bước 7 : Hoàn tất việc cài đặt
Ở bước 7, người sử dụng chỉ cần xác nhận theo các yêu cầu của Matlab ( Nhấn Next , nhấn Install, nhấn Next, nhấn Finish
Sau đó, Matlab sẽ yêu cầu bỏ các đĩa 2 và 3 vào trước khi hoàn tất quá trình cài đặt
Trang 92 Khởi động chương trình Matlab
Để vào chương trình Matlab, chúng ta chọn 1 trong 2 cách sau :
Cách 1 : Double click vào biểu tượng của Matlab trên màn hình
Cách 2 : Click chuột vào Start / Programs, và di chuyển con trỏ đến đường dẫn chương trình Matlab
Trang 103 Giao diện của Matlab
Khi chạy chương trình Matlab, giao diện đầu tiên xuất hiện với các thành phần cơ bản :
Trang 11a Cửa sổ lệnh – command windows
Cửa sổ lệnh của Matlab cho phép người sử dụng thực hiện các phép tính toán, gọi các lệnh, hàm hoặc gọi các chương trình
Trong quá trình sử dụng Matlab, ta có thể sử dụng một
edit: Mở chương trình soạn thảo hàm, chương trình
ver: Xem thông tin về phiên bản của Matlab và các thành phần của nó
exit: Thoát ra khỏi chương trình
Trang 13b Cửa sổ không gian làm việc – work space
Cửa sổ không gian làm việc liệt kê tất cả các biến hiện đang sử dụng trong trương trình
Muốn xoá tất cả các biến, chúng ta dùng lệnh >> clear all
c Cửa sổ thư mục hiện tại – current directory:
Hiển thị thư mục hiện tại mà chương trình Matlab đang
C:\Programs\MATLAB\R2006\work
Chương trình cho phép thiết lập đường dẫn đến thư mục bất kỳ trên máy tính
d Cửa sổ lịch sử lệnh – command history:
Ghi nhớ các lệnh đã thực hiện trên cửa sổ lệnh, có thể copy và dán lại các mệnh lệnh đã thực thi được lưu lại vào ngược lại cửa sổ lệnh
Trang 158 log(x) Logarit tự nhiên (ln (x) ) log(exp(1)) 1
9 log10(x) Logarit thập phân (lg10(x) log10(100) 2
Chú ý : Các hàm của Matlab sử dụng ký tự thường, không sử dụng ký tự hoa
Trang 162.2 Các phép toán lượng giác :
Khi sử dụng các phép toán lượng giác, chúng ta chú ý là matlab hiểu các đối số của các hàm lượng giác là radian.Cũng như kết qủa trả về của các hàm lượng giác ngược cũng là radian
Trang 17Ngoài ra, Matlab còn cho phép tính toán một cách khá trọn
vẹn các hàm hyperbolic, có thể tham khảo các hàm này bằng cách dùng help của matlab ( Sinh viên sẽ gặp các hàm này khi học về mạng 2 cửa
2.3 Các phép toán làm tròn và lấy phần dư :
quả
1 fix làm tròn các thành phần thập phân về 0 fix(1.5680) 1
2 floor làm tròn về số nguyên gần nhất nhỏ hơn floor(1.5680) 1
3 ceil làm tròn về số nguyên gần nhất lớn hơn ceil(1.5680) 2
4 round Làm tròn về số nguyên gần nhất round(1.5680) 2
5 Mod(x,y) Tính phần dư phép chia, lấy theo y mod(13,5) 3
6 Rem(x,y) Tính phần dư phép chia, lấy theo x rem(13,2) 1
Trang 182.4 Các phép toán so sánh :
Các phép toán so sánh sẽ so sánh giá trị của giá trị bên phải
và bên trái của hàm so sánh, tuỳ theo từng trường hợp cụ thể mà giá trị trả về có thể là 1 hay 0
Stt
Tên hàm
Trang 192.5 Các phép toán logic
Các phép toán so sánh sẽ so sánh giá trị của giá trị bên phải
và bên trái của hàm so sánh, tuỳ theo từng trường hợp cụ thể
mà giá trị trả về có thể là 1 hay 0
hàm
Trang 202.6 Các hằng số trong Matlab
Có một số giá trị thông dụng đã được được định nghĩa sẵn trong Matlab, khi sử dụng, ta có thể gọi tên các hằng số thay cho các giá trị của chúng
Trang 21e ) 1076 ln(
Tên biến = giá trị hay biểu thức tính toán
Tên biến : Tối đa 31 ký tự, có phân biệt chữ hoa và chữ thường, có thể sử dụng các chữ số trong tên biến nhưng kí tự đầu tiên của tên biến phải là chữ
Thực hiện phép gán giải quyết ví dụ trên như sau
Trang 22A=B/C
Trang 23a Khái niệm về số phức
Đơn vị ảo j là một số mà j2 = - 1
Số ảo là một số thực b nhân với đơn vị ảo j , viết là j.b
Số phức z là tổng của 2 số: số thực a và số ảo jb: z = a + jb
a được gọi là phần thực của số phức z, ký hiệu Rez: a = Rez
b được gọi là phần ảo của số phức z , ký hiệu Imz: b = Imz
Đây là dạng đại số của số phức
2 số phức z1 = a1 + jb1 và z2 = a2 + jb2 chỉ bằng nhau khi
và chỉ khi a1 = a2 và b1 = b2
Trang 24Một phức z = a + jb được biểu diễn hình học bằng vectơ OM
Chiều dài OM =Z gọi là môđun của z
Góc gọi là Argumen của z
a
b arctg
Trang 2631
12 1
R R
R
R
R R
31 23
12
12
23 2
.
R R
R
R
R R
31 23
12
23
31 3
.
R R
R
R
R R
1 12
R
R
R R
R
1
3 2 3
2 23
R
R
RR
3 31
R
R
R R
Trang 28BT 2.2 Dòng điện dung trong cáp ngầm
Đặc trưng của cáp ngầm là điện dung của cáp tương đối lớn Đối với 1 sợi cáp có đường kính lõi đồng là r và đường kính tổng sợi cáp là R thì các giá trị có thể được xác định theo công thức sau :
log
0242
0
10
km F
r
R
) (
cos
U
Trang 29Yêu cầu :
Tính các giá trị điện dung C, dòng điện dung chạy chạy trong sợi cáp ngầm, công suất tổn hao do điện môi theo các giá trị cho trước Các giá trị cho trước là :
Trang 30BT 2.4 Giải mạch điện bằng phương pháp dùng số
phức
Dùng số phức sẽ giúp việc giải mạch điện được dễ dàng
Ví dụ xác định biểu thức dòng điện i 3 trong hình :
i 3
i 2
i 1
)30sin(
210
)40sin(
2
5
0 2
0 1
.340
sin.540
cos.55
e
566
.8)
30sin(
.10)
30cos(
.1010
e
0
15 8
2 61
.
i
Trang 31Yêu cầu :
Chuyển dòng điện i1, i2 về dạng phức Tính tóan dòng điện i3
Chuyển dòng i3 về dạng đại số
% Nhap gia tri
I1=5;alpha1=40 %Tri hieu dung va goc pha dong dien 1
I2=10,alpha2=-30 %Tri hieu dung va goc pha dong dien 2
i1=I1*exp(i*alpha1_rad) % chuyen i1 qua so phuc
i2=I2*exp(i*alpha2_rad) % chuyen i1 qua so phuc
i3=i1+i2
I3=abs(i3) % Tri hieu dung cua i3
alpha3_rad=angle(i3); % goc pha cua i3, rad
alpha3=alpha3_rad*180/pi % Goc pha cua i3, do
Trang 32Ví dụ:
Có một bể chứa hình trụ tròn có chiều cao 12m, bán kính 5m Người ta muốn xây dựng một bể chứa thứ hai có cùng chiều cao, nhưng thể tích lớn hơn cái thứ nhất là 25% Hỏi bán kính tương ứng là bao nhiêu mét ?
Thực hiện trên cửa sổ lệnh các dòng lệnh như sau:
5.5902
Trang 332 Giải phương trình bậc 2 trong R: 2x2+ 5x – 3 = 0
Trang 34ζ3 SỬ DỤNG FILE M
Ở chương 1, chúng ta đã sử dụng cửa sổ lệnh để thực hiện các phép tính toán bằng cách tính toán trực tiếp trên cửa sổ lệnh, nhưng để giải quyết các vấn đề phức tạp thì ta phải sử dụng các file được lập trình
Các file được lập trình của Matlab được gọi là các M - file ( các file này có đuôi
là : m), do đó trong toàn bộ giáo trình các file được lập trình sẽ gọi là M-file
3.1 Cách tạo M-file
Có 2 cách để khởi động một chương trình biên soạn M-file:
Cách 1 : từ cửa sổ lệnh (command windows), gõ edit
Cách 2 : Vào menu file, chọn New
Khi đó, chương trình sẽ hiển thị một cửa sổ trắng để chúng ta soạn thảo
Trang 35Sau khi soạn thảo xong M-file, chúng ta nhấn : Ctrl + S hoặc File/Save để lưu file chương trình Khi đặt tên file chương trình phải đúng theo quy định của Matlab Cụ thể, tên file phải được bắt đầu bằng chữ, sau đó có thể sử dụng số,
và được dùng dấu gạnh ngang dưới để phân biệt, ví dụ tên file : baitap_21.m
Trang 36Để chay chương trình, có thể sử dụng một trong 2 cách sau :
Cách 1 : Trong môi trường soạn thảo M-file, chúng ta vào menu debug/ Run hoặc nhấn phím tắt F5
Cách 2 : Trong cửa sổ lệnh command window, chúng ta nhập vào đúng tên M-file đã được lưu, sau đó nhấn Enter
Nếu chương trình được lập trình đúng, sau khi chạy chương trình, người sử dụng chuyển ra cửa sổ lệnh để xem kết quả
Còn ngược lại, chương trình sẽ báo lỗi ,Matlab phát ra 1 tiếng bip báo hiệu, đồng thời chương trình sẽ tự chuyển sang cửa sổ lệnh, thông báo cho người lập trình vị trí bị lỗi
Trang 37input : Từ khoá của hàm nhập dữ liệu
x : tên biến được gán giá trị nhập vào
promp : dòng text mà người sử dụng đánh vào
Diễn đạt : biến x sẽ có giá trị bằng giá trị mà người sử dụng nhập vào
Trang 38b hàm xuất dữ liệu ra màn hình
Cú pháp :
disp ( x ) disp( ‘text’ )
Trong đó :
disp : Từ khoá của hàm xuất dữ liệu
x : tên biến hoặc các giá trị số cần xuất ra màn hình
text : dòng text mà người sử dụng cần xuất ra màn hình
Ví dụ 3.1: Thành lập hàm M-file , nhập vào giá trị tiết diện dây dẫn, nhập vào chiều dài và xuất ra giá trị điện trở của đoạn dây Cho dây dẫn bằng đồng (ρ=18.84 Ω mm2/km)
Thành lập hàm M-file
Trang 39% Nhap tiet dien day dan - mm
% Nhap chieu dai day dan - km
% Tinh toan gia tri dien tro
R=18.84*l/F
% Xuat gia tri dien tro ra man hinh
Trang 40%chuong trinh tinh dthcn
disp('tinh dien tich hinh chu nhat');
%chuong trinh giai phuong trinh bac hai
disp('CHUONG TRINH GIAI PHUONG TRINH BAC HAI') disp('nhap vao cac he so:')
Trang 41if, end : Từ khoá của hàm
expression : Điều kiện – biểu thức logic
statements : Lệnh hoặc nhóm lệnh cần thực thi
Diễn đạt :
Nếu thỏa điều kiện - biểu thức logic thì sẽ thực hiện lệnh
Trang 42Ví dụ1: Nếu x>=0 thì y=√x sẽ được viết trong chương trình Matlab như sau:
x=input('nhap gia tri x = : ')
if x>= 0 y=sqrt(x) end
Trang 43Viết chương trình giải phương trình bậc nhất ax + b = 0
Trang 44%chuong trinh giai phuong trinh bac hai disp('giai phuong trinh bac hai')
end
Trang 45if, elseif, else, end : Từ khoá của hàm
expression1, 2, 3 : Điều kiện – biểu thức logic 1, 2, 3
statements 1, 2, 3 : Lệnh hoặc nhóm lệnh thực thi 1, 2, 3
Diễn đạt :
Nếu thỏa điều kiện hoặc biểu thức logic 1 thì sẽ thực hiện lệnh 1
Nếu không thỏa điều kiện 1, và thỏa điều kiện 2 thì sẽ thực hiện lệnh 2 Nếu không thỏa điều kiện 1 và điều kiện 2 thì sẽ thực hiện lệnh 3
Chú ý : các điều kiện 1, 2 không được trùng lắp nhau
Trang 46Ví dụ 3.3 : Phân biệt các loại điện áp : hạ áp (<1000V), trung áp (<110kV) và cao
áp (>=110kV) theo giá trị điện áp nhập vào
Lập hàm m file
% Nhap gia tri dien ap - kV
u=input( 'Nhap gia tri dien ap - kV : ' );
% Tinh toan va xuat du lieu
Trang 47Ví dụ: Bài toán phân loại học sinh:
điểm 9-10 xếp loại giỏi, điểm 7-8
xếp loại khá, điểm 5-6 xếp loại trung
bình; điểm 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 1 và 10 thì thông báo
điểm không hợp lệ
diem = input('nhap diem = :')
if (diem == 9)|(diem == 10) disp ('loai gioi ')
elseif (diem == 7)|(diem == 8) disp ('loai kha ')
elseif (diem == 5)|(diem == 6) disp ('loai trung binh ')
elseif (diem>=1)&(diem<=4) disp ('loai yêu ')
else disp ('diem vao khong hop le ') end
Trang 48Qui tắc xử lý ưu tiên:
Trong một biểu thức Matlab vừa có toán tử số học, vừa có toán tử quan hệ và toán tử logic, thì thứ tự xử lý trong Matlab như sau:
1 Các cặp dấu ngoặc, được tính từ cặp trong cùng nhất
2 Các toán tử số học và toán tử NOT (~) được tính từ trái qua phả1
3 Các toán tử quan hệ được tính từ trái qua phả1
4 Toán tử AND
5 Toán tử OR
Trang 49variable = expression : Điều kiện của vòng lặp
statements : Lệnh hoặc nhóm lệnh thực thi của vòng lặp
Diễn đạt :
Nếu thỏa điều kiện thì sẽ thực hiện lệnh của vòng lặp Đến khi không thỏa điều kiện thì sẽ thoát ra khỏi vòng lặp
Trang 50S = 1 + 2 + 3 + …+ n
S = 0 + 1 + 2 + 3 + …+ n
Ví dụ 3.4 :Thực hiện hàm m file tính tổng
I ≤ n Đ
n=input('nhap so hang can tinh tong n=');
s=0; % gia tri ban dau cua tong s
for i=1:n
s=s+i;
end
fprintf('tong so s=%2.5g\n',s);
Trang 52Cấu trúc vòng lặp for lồng vào nhau Vd: tính tổng
j i
s
.
Trang 53j ≤ n Đ
START Nhập a, b
S
s = 0
In s
i = 1 J=1 s=s+i.j
n=input('nhap so hang n='); m=input('nhap so hang m='); s=0;% gia tri ban dau cua s for i=1:m
for j=1:n s=s+i*j;
end end fprintf('tong so: s=%2.5g\n,',s);
Trang 54Vd: tính n!
n! = 1.2.3.4.5…….n
GT = 1.1.2.3.4.5……n
I ≤ n Đ
Trang 55expression : Điều kiện của vòng lặp
statements : Lệnh hoặc nhóm lệnh thực thi của vòng lặp
Diễn đạt :
Nếu thỏa điều kiện thì sẽ thực hiện lệnh của vòng lặp
Hàm while được sử dụng khi chưa biết số lần lặp, trong khi hàm for được
sử dụng khi đã biết rõ số lần lặp
Trang 56Vd: tính n!
n! = 1.2.3.4.5…….n
GT = 1.1.2.3.4.5……n
clc clear disp('tinh giai thua');
n=input('nhap so hang can tinh giai thua n='); GT=1;
i=1;
while i<=n GT=GT*i;
i=i+1;
end fprintf('tong so s=%2.5g\n',GT);
Trang 57Ví dụ 3.4 :Thực hiện hàm m file tính tổng
S = 1 + 2 + 3 + …+ n
S = 0 + 1 + 2 + 3 + …+ n
clc clear disp('tinh tong');
n=input('nhap so hang can tinh tong n='); s=0;% gia tri ban dau cua tong s
i=1;
while i<=n s=s+i;
i=i+1;
end fprintf('tong so s=%2.5g\n',s);
Trang 58Ví dụ 3.4 :Thực hiện hàm m file tính tổng
S = 2 + 4 + …+ (2n)
S = 0 + 2 + 4 + 6 + …+ 2n
clc clear disp('tinh tong');
n=input('nhap so hang can tinh tong n='); s=0;
i=1;
while i<=n s=s+2*i;
i=i+1;
end fprintf('tong so: s=%2.5g\n',s);
Trang 59e Hàm vòng lặp switch-case
Cấu trúc switch-case cho phép chương trình có nhiều lựa chọn và thực hiện chỉ một trong những nhánh này, tùy thuộc vào giá trị cuả biểu thức đầu vào Cấu trúc switch-case có dạng như sau:
Cú pháp :
switch biểu thức đầu vào (vô hướng hoặc chuỗi kí tự)
case giá trị 1
nhóm lệnh 1 case giá trị 2
nhóm lệnh 2
…
case giá trị n
nhóm lệnh n otherwise
nhóm lệnh n+1 end
Trang 60Ví dụ 3.6: Tính toán giá trị dòng định mức của động cơ theo loại động cơ ( 1
pha, 2 pha, 3 pha) theo các thông số công suất, điện thế và hiệu suất
Trang 61n=input( 'Nhap so pha cua dong co n:' ); U=0.4;
Trang 62Ví dụ: trở lại bài toán phân loại học sinh, chương trình được viết với cấu trúc switch-case như sau:
n=input ('cho biet diem : ');
disp('phan loai:');
switch n case {0,1,2,3,4}
end
Trang 6314 6
6 2
2
8
2 20
2
4 )
t t
t t
i
14
14 6
6 2
2
4 67
31
10 2
4 4
5 2
t
t t
t
t v
BT3.1 Xác định điện áp, dòng điện của tụ điện trong mạch DC
Cho tụ điện C =2F có điện áp và dòng điện được mô tả bởi phương trình
Yêu cầu : Thành lập hàm m file
Nhập vào giá trị thời gian t
Xác định các giá trị dòng điện, điện áp công suất ứng với giá trị nhập vào của t Xuất kết quả ra cửa sổ lệnh
Trang 64t=input( 'Nhap thoi gian t :' );
Trang 66n n
Z Z
Z
Z Z
Z
Z Z
Z Z
2 22
21
1 12
Z
Trang 674.2 Các phép toán về ma trận
Các phép toán về ma trận có thể thực hiện ngay dòng lệnh hay thực hiện trong M-file
a Tạo một ma trận trong matlab
Để tạo một ma trận trong Matlab, ta có thể sử dụng một trong các cách sau