Giáo trình Cơ sở về MATLAB - Chương 1: Cơ sở về MATLAB
Ðểkhởi động làm việc với MATLAB, ta nhắp đúp vào biểu tượng của
MATLAB. Màn hình nền xuất hiện bao gồm các cửa sổ:
Cửa sổlệnh Command Windows: Ðây là cửa sổchính của MATLAB. Tại đây
ta thực hiện toàn bộviệc nhập dữliệu và xuất kết quảtính toán. Dấu nhắc >> để
gõ các lệnh.
Có một sốlệnh tổng quát liên quan đến cửa sổnày nhưsau:
clc: xóa cửa sổlệnh.
home: di chuyển con chạy lên góc trên trái của cửa sổ(khi chạy chương
trình).
AB tính nghiệm thứ nhất bằng cách gõ tiếp:
x1=(-b+sqrt(b^2-4*a*c))/(2*a)
x1=
0.5000
Tính nghiệm thứ hai bằng cách gọi lại lệnh trước và thay dấu + bằng dấu -
x2=(-b-sqrt(b^2-4*a*c))/(2*a)
Chương 1:Cơ sở về MATLAB Biên soạn: Nguyễn Thị Hồng Thúy
4
x2=
-3
Các phép toán cơ bản để tạo nên biểu thức trong MATLAB:
Phép tính Ký hiệu Ví dụ
Phép cộng a + b + 5 + 3
Phép trừ a – b - 7 - 4
Phép nhân a . b * 18 * 24
Phép chia a ÷ b / hoặc \ 56/8 = 8\56
Phép lũy thừa ab ^ 5 ^ 2
1.3. Sử dụng lệnh từ các file lệnh
Những lệnh của MATLAB có thể được đưa vào một file. Sau đó hướng dẫn
MATLAB làm việc với các lệnh đó. Tên của file phải được bắt đầu bằng một ký
tự và có phần mở rộng là .m.
Dùng lệnh edit hoặc vào menu File - New - M_file môi trường soạn thảo Editor/
Debugger sẽ xuất hiện. Trên màn hình soạn thảo, ta gõ các lệnh MATLAB:
a=2;
b=5;
c=-3;
x1=(-b+sqrt(b^2-4*a*c))/(2*a)
x2=(-b-sqrt(b^2-4*a*c))/(2*a)
sau khi gõ xong lệnh, ta lưu tâp tin với tên vidu.m rồi thoát khỏi môi trường soạn
thảo để trở về Command Window. Ðể chạy các lệnh trong tập tin vidu.m ta chỉ
cần gõ tên tập tin:
>>vidu
x1 =
0.5000
x2 =
-3
1.4. Dòng nhắc gán giá trị các biến
Ðể thay đổi các giá trị a, b, c ta phải soạn thảo lại file vidu.m rồi chạy lại. Ta có
thể sửa lại chương trình để có dòng nhắc nhập a, b, c với các lần lượt chạy
chương trình khác nhau.
a=input ('nhap vao gia tri a = ');
b=inpu t ('nhap vao gia tri b = ');
c=input ('nhap vao gia tri c = ');
x1=(-b+sqrt(b^2-4*a*c))/(2*a)
Chương 1:Cơ sở về MATLAB Biên soạn: Nguyễn Thị Hồng Thúy
5
x2=(-b-sqrt(b^2-4*a*c))/(2*a)
Khi chạy chương trình ta sẽ được kết quả như sau:
>>vidu
nhap vao gia tri a = 1
nhap vao gia tri b = 0
nhap vao gia tri c = -2
x1 =
1.4142
x2 =
-1.4142
1.5. Cách tạo một hàm
Mỗi một file hàm của MATLAB (M_file) đều được bắt đầu với khai báo như
sau:
Function [tên kết quả] = tên hàm (danh sách các biến)
File.m thường lấy tên là tên của hàm.
Phần thân của chương trình trong hàm là các lệnh của MATLAB thực hiện việc
tính toán giá trị của đại lượng được nêu trong phần tên kết quả theo các biến
được nêu trong phần danh sách các biến. Các biến chỉ có tác dụng nội trong hàm
vừa được khai báo. Tên của các biến được ngăn cách nhau bằng dấu phẩy.
Ví dụ: tạo hàm giải phương trình bậc hai, tên tập tin hàm được đặt là bachai.m
function [x1,x2]=bachai(a,b,c)
delta=b^2-4*a*c;
x1=(-b+sqrt(delta))/(2*a);
x2=(-b-sqrt(delta))/(2*a);
Giải phương trình bậc hai với a = 1, b = 0, c = -2, ta gõ:
>> [x1,x2]=bachai(1,0,-2)
x1 =
1.4142
x2 =
-1.4142
1.6. Sử dụng hàm có sẵn
MATLAB có thư viện hàm rất lớn, muốn biết cách sử dụng các hàm như thế nào
trong màn hình Command Window ta gõ lệnh:
Help + tên hàm
1.7. Vẽ các hàm
Khi muốn vẽ một hàm nào đó, phải xác định hàm đó trong một file.m, sau đó sử
dụng lệnh:
fplot(‘tên file’,[khoảng vẽ])
Chương 1:Cơ sở về MATLAB Biên soạn: Nguyễn Thị Hồng Thúy
6
-6 -4 -2 0 2 4 6
-20
0
20
40
60
80
100
120
140
160
180
Ví dụ: Vẽ hàm bậc hai 4x2 + 6x - 7 trong đoạn [-6,6].
+ Tạo file bachai.m:
function y=bachai(x)
a=4;
b=6;
c=-7;
y=a*x^2+b*x+c;
+ Vẽ hàm:
fplot('bachai',[-6,6])
1.8. Lưu và lấy dữ liệu
Ta có thể tạo một file dữ liệu, sau đó khi cần dùng thì lấy ra.
Ví dụ: Tạo một ma trận A, sau đó lưu file này với tên là dulieu
A=[1 2 3;4 5 6;7 8 9];
>>Save dulieu
Khi cần sử dụng dữ liệu này, ta gõ lệnh:
>>load dulieu
>> A
A =
1 2 3
4 5 6
7 8 9
1.9. Các toán tử logic và quan hệ
Ðối với các số thì trong toán tử và quan hệ quy định các số khác không là True
còn số không là False. Kết quả của phép toán logic và quan hệ đưa ra là 1 cho
True, 0 cho False.
1.9.1. Toán tử quan hệ
Toán tử quan hệ MATLAB bao gồm các phép so sánh:
Toán tử quan hệ Ý nghĩa
< nhỏ hơn
<= nhỏ hơn hoặc bằng
> lớn hơn
>= lớn hơn hoặc bằng
= = bằng
~ = gần bằng
Chương 1:Cơ sở về MATLAB Biên soạn: Nguyễn Thị Hồng Thúy
7
Ví dụ:
>>12.2>12
ans =
1
>> 1~=1
ans =
0
1.9.2. Toán tử logic
Toán tử logic cung cấp một cách diễn đạt mối quan hệ phủ định hay tổ hợp:
Toán tử logic Ý nghĩa
& AND
| OR
~ NOT
Biểu thức logic với các toán tử tổ hợp được xác định theo qui luật sau:
A B ~A A|B A&B
False False True False False
Flase True True True False
True False False True False
True True False True True
Ðôi khi gặp những biểu thức phức tạp chứa cả toán tử & lẫn toán tử | , MATLAB
sẽ có qui luật về trình tự xử lý như sau:
Ðầu tiên là xử lý các tính toán số học. Sau đó, các toán tử logic được xem xét từ
trái sang phải. Những biểu thức con có trong biểu thức cần xử lý (có các toán tử
& và | ) cũng được xem xét từ trái sang phải với các toán tử & được xử lý trước
các toán tử |
Ví dụ:
>>A=1:5;
>>B=(A>2)&(A<5)
B =
0 0 1 1 0
1.10. Các câu lệnh điều kiện
Dạng đơn giản nhất của lệnh điều kiện trong MATLAB là:
if biểu thức điều kiện
Khối các lệnh được thực hiện
end
Chương 1:Cơ sở về MATLAB Biên soạn: Nguyễn Thị Hồng Thúy
8
Nếu biểu thức điều kiện là true thì thực hiện các lệnh tiếp theo, nếu không thì
thực hiện các lệnh tiếp sau end.
Trong cấu trúc lệnh điều kiện, ta có thể sử dụng cấu trúc if với nhiều phần thân
cấu trúc như sau:
if biểu thức điều kện 1
Khối các lệnh được thực hiện nếu điều kiện 1 là đúng
elseif biểu thức điều kiện 2
Khối các lệnh được thực hiện nếu điều kiện 2 là đúng
else
Khối các lệnh được thực hiện nếu không có điều kiện nào đúng
end
Ví dụ: Căn cứ vào số điểm để xét kết quả học tập của một học sinh.
diem=input('nhap vao so diem = ');
if (diem>=0)&(diem<=10)
if diem<=4
disp('loai yeu')
elseif (diem>=5)&(diem<=6)
disp('loai trung binh')
elseif (diem>=7)&(diem<=8)
disp('loai gioi')
elseif (diem>=9)&(diem<=10)
disp('loai xuat sac')
end
else ('so lieu khong hop le')
end
1.11. Vòng lặp
1.11.1. Vòng lặp for
Vòng lặp for cho phép một nhóm lệnh thực hiện lặp lại một số lần cố định. Cú
pháp của vòng lặp for như sau:
for i=i1:∆i:i2
Khối các lệnh
end
Trong vòng lặp trên i1 và i2 lần lượt là các giá trị bắt đầu và kết thúc của i, ∆i là
bước nhảy (nếu không đặt bước nhảy thì giá trị mặc định của bước nhảy bằng 1).
Mỗi lần lặp sẽ kết thúc khi gặp từ khóa end. Ðầu tiên MATLAB sẽ xác định có
bao nhiêu lần lặp và sau đó mới tiến hành thực thi các lệnh trong vòng lặp với
các giá trị của i. Vì vậy, nếu như i2 0 thì MATLAB sẽ không thực thi
vòng lặp.
Ví dụ:
Chương 1:Cơ sở về MATLAB Biên soạn: Nguyễn Thị Hồng Thúy
9
for i=1:10
x(i)=sin(i*pi/10);
end
>> x
x =
Columns 1 through 8
0.3090 0.5878 0.8090 0.9511 1.0000 0.9511 0.8090
0.5878
Columns 9 through 10
0.3090 0.0000
1.11.2. Vòng lặp While
Vòng lặp While thực hiện lặp lại một số lần cố định, nhưng không biết trước
được số lần lặp lại. Cú pháp của vòng lặp While như sau:
while biểu thức điều kiện
Khối các lệnh
end
Ví dụ: Tính giá trị đặc biệt của eps trong MATLAB
num=0;
>> EPS=1;
>> while (EPS+1)>1
EPS=EPS/2;
num=num+1;
end
>> num
num =
53
>> EPS=EPS*2
EPS =
2.2204e-016
1.12. Các hàm toán học thông thường
Tương tự như hầu hết các máy tính kỹ thuật, MATLAB có thể đưa ra rất nhiều
các hàm toán học, kỹ thuật thông dụng, ngoài ra MATLAB còn cung cấp hàng
trăm các hàm đặc biệt và thuật toán, nó rất hữu ích để giải quyết các vấn đề khoa
học. Tất cả các hàm được liệt kê trong menu help. Ở đây chỉ đề cập đến các hàm
thông dụng nhất.
1.12.1. Hàm toán học cơ bản
abs(x) Hàm tính giá trị tuyệt đối của x
sqrt(x) Hàm tính căn bậc hai của x
round(x) Làm tròn x về số nguyên gần nhất
Chương 1:Cơ sở về MATLAB Biên soạn: Nguyễn Thị Hồng Thúy
10
fix(x) Làm tròn số x về 0
floor(x) Làm tròn về phía -∞
ceil(x) làm tròn về phía ∞
sign(x) Hàm cho giá trị là -1 nếu x nhỏ hơn 0, giá trị bằng 0 nếu x bằng
0, có giá trị là 1 nếu x lớn hơn 0
rem (x,y) Hàm trả lại số dư của phép chia x cho y
exp(x) Hàm tính giá trị của ex
log(x) Hàm tính giá trị ln(x)
log10(x) Hàm tính giá trị log10(x)
1.12.2. Hàm lượng giác cơ bản
Ðơn vị của các tham số phải là radian
sin(x) Tính sin của góc x
cos(x) Tính cos của góc x
tan(x) Tính tan của góc x
asin(x) Tính arcsin của x, khi x nằm trong khoảng [-1,1], hàm trả lại góc
có giá trị radian trong khoảng -π/2 đến π/2
acos(x) Tính arccos của x, khi x nằm trong khoảng [-1,1], hàm trả lại góc
có giá trị radian trong khoảng 0 đến π
atan(x) Tính arctang của x trong khoảng -π/2 đến π/2
atan2 (x,y) Tính arctang của y/x trong khoảng -π đến π, tùy thuộc vào dấu
của x và y
1.12.3. Các hàm hyperbolic
sinh(x) Hàm tính hyperbolic sin của x
cosh(x) Hàm tính hyperbolic cos của x
asinh(x) Hàm tính nghịch đảo của hyperbolic sin của x
acosh(x) Hàm tính nghịch đảo của hyperbolic cos của x
atanh(x) Hàm tính nghịch đảo của hyperbolic tang của x
1.13. Ðịnh dạng số
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 tùy từng yêu cầu cụ thể.
Ta lấy ví dụ với số a = -2/3
Lệnh của MATLAB a Chú thích
format short -0.6667 5 số
format long -0.66666666666667 15 số
format short e -6.6667e-001 5 số với số mũ
format long e -6.666666666666666e-001 15 số với số mũ
format short g -0.66667 Chính xác hơn format short hoặc
Chương 1:Cơ sở về MATLAB Biên soạn: Nguyễn Thị Hồng Thúy
11
format short e
format long g -0.666666666666667 Chính xác hơn format long hoặc
format long e
format hex bfe5555555555555 Hệ cơ số 16
format bank -0.67 Hai số hệ 10
format + - Dương, âm hoặc bằng không
format rat -2/3 Dạng phân số
Một chú ý quan trọng là MATLAB không thay đổi số khi định lại khuôn dạng
hiển thị được chọn, mà chỉ thay đổi màn hình thay đổi.
File đính kèm:
Giáo trình Cơ sở về MATLAB - Chương 1_Cơ sở về MATLAB.pdf

