Bài giảng Tin Ứng dụng 2 – Matlab 7
ĐẠI HỌC THỦY LỢI
BỘMÔN QUẢN LÝ TỔNG HỢP BIỂN VÀ ĐỚI BỜ
------ ------
MATLAB
TIN HỌC ỨNG DỤNG – HỌC PHẦN II
(Tài liệu tham khảo & Bài tập cho sinh viên Kỹthuật Biển – K45)
Nguyễ
n Bá Tuyên
Nguyễ
n Quang Chiế
n
Hà Nội, tháng 08 năm 2007
-1-
Bài giảng Tin Ứng dụng 2 – Matlab 7
MỤC LỤC
1.
CHƯƠNG I: MATLAB CĂN BẢN ....................................................................... 4
1.1. Matlab – ngôn ngữcủa tính toán kỹthuậ
t.........................................................4
1.2. Khảnăng và những ứng dụng của Matlab ........................................................ 4
1.3. Đặ
c điể
m của Matlab .......................................................................................6
1.4. Cài đặ
t và khởi động Matlab 7.0....................................................................... 7
1.5. Quả
n lý không gian làm việ
c của Matlab..........................................................8
1.6. Ghi & phục hồidữliệu...................................................................................11
1.7. Sửdụng Help.................................................................................................12
1.8. History & Editing...........................................................................................13
2.
CHƯƠNG II: TÍNH TOÁN TRONG MATLAB .................................................. 15
2.1. Matlab - một máy tính cá nhân ....................................................................... 15
2.2. Biế
n trong Matlab..........................................................................................16
2.3. Các kiểu dữliệ
u - Đị
nh dạng kế
t quả
.............................................................. 17
2.4. Các kiểu dữliệ
u số& sốphức........................................................................ 18
2.5. Các ký tự,Chuỗivà Văn bản.......................................................................... 19
2.6. Các hằ
ng sốdựng sẵn.....................................................................................20
2.7. Các hàm dựng sẵ
n..........................................................................................20
2.8. Các phép toán quan hệ...................................................................................23
2.9. Các phép toán logic........................................................................................ 24
2.10.
Kế
t hợp nhiều lệ
nh trên một dòng; Ẩn kế
t quảtính.....................................26
3.
CHƯƠNG III: VECTƠ........................................................................................ 27
3.1. Giới thiệ
u....................................................................................................... 27
3.2. Véctơhàng..................................................................................................... 28
3.3. Vectơcột....................................................................................................... 29
3.4. Toán tửhai chấ
m ( : ).....................................................................................29
3.5. Làm việ
c với vectơ& ma trậ
n (mảng)............................................................30
3.6. Xửlý dữliệ
u với các hàm dựng sẵ
n cho vectơ& ma trậ
n............................... 32
4.
CHƯƠNG IV: MA TRẬN ĐẠI SỐ& TUYẾN TÍNH.......................................... 34
4.1. Đị
nh nghĩ
a và khởi tạ
o ma trậ
n ...................................................................... 34
4.2. Một sốma trận đặ
c biệt.................................................................................. 34
4.3. Các phép toán với từng phần tửtrong ma trận................................................ 35
4.4. Các phép toán với ma trậ
n.............................................................................. 35
4.5. Giảiphương trình đạ
i số................................................................................. 35
4.6. Giảihệphương trình đạ
i sốtuyế
n tính............................................................35
4.7. Tìm nghiệ
m của đa thức................................................................................. 35
4.8. Giảiphương trình phi tuyến ........................................................................... 35
4.9. Giảiphương trình vi phân .............................................................................. 35
4.10.
Các lệnh hữu ích khác ................................................................................ 35
-2-
Bài giảng Tin Ứng dụng 2 – Matlab 7
5.
CHƯƠNG V: SCRIPTS VÀ FUNCTIONS (M-FILES)........................................ 37
5.1. Giới thiệ
u M-file............................................................................................ 37
5.2. Biên soạ
n và thực thi M-file........................................................................... 37
5.3. Chú thích (comments)....................................................................................38
5.4. Các hàm m-file (function m-files) ..................................................................39
5.5. Câu lệ
nh rẽnhánh (if và switch)..................................................................... 41
5.6. Vòng lặp (for và while).................................................................................. 42
5.7. Đọc dữliệu từfile và ghi ra file...................................................................... 43
6.
CHƯƠNG VI: ĐỒTHỊDẠNG ĐƯỜNG .............................................................44
6.1. Biể
u diễn đường quá trình.............................................................................. 44
6.2. Lựa chọn màu vẽ
, nét vẽ................................................................................ 46
6.3. Tạ
o các chú thích, chú giảitrên hình vẽ
..........................................................48
6.4. Xóa đường biể
u đồ,lưu biể
u đồ..................................................................... 50
6.5. ĐồthịLogarit ................................................................................................ 50
6.6. Dãy biể
u đồ....................................................................................................52
7.
CHƯƠNG VII: ĐỒTHỊKHÔNG GIAN .............................................................55
7.1. Các dạ
ng cơbả
n.............................................................................................55
7.2. Chỉđị
nh các vịtrí trong không gian 2 chiề
u ...................................................58
7.3. Mặ
t cắ
t đị
a hình ............................................................................................. 58
7.4. Trường véctơ.................................................................................................59
PHẦN BÀI TẬP ..................................................................................................61
Bài tập số1:.............................................................................................................. 61
Bài tập số2............................................................................................................... 62
Bài tập số3............................................................................................................... 62
Bài tập số4:.............................................................................................................. 63
LỜI GIẢI ...................................................................................................................... 63
Bài tập số1:.............................................................................................................. 63
Bài tập số2:.............................................................................................................. 64
Bài tập số3:.............................................................................................................. 64
Bài tập số4:.............................................................................................................. 64
8.
9.
TÀI LIỆU THAM KHẢO: ...................................................................................66
-3-
Bài giảng Tin Ứng dụng 2 – Matlab 7
1. CHƯƠNG I: MATLAB CĂN BẢN
1.1.
Matlab – ngôn ngữcủa tính toán kỹthuật
- MATLAB là một ngôn ngữbậ
c cao và môi trường tươ
ng tác cho phép bạ
n tiế
n
hành các nhiệ
m vụtính toán có cường độlớn nhanh hơn với các ngôn ngữlậ
p
trình nhưC, C++ và Fortran.
- MATLAB viế
t tắ
t cho "Matrix Laboratory" - Phòng thí nghiệ
m ma trậ
n. Ban đầ
u
Matlab đ
ược thiế
t kếbởi Cleve Moler vào những nă
m 1970 đ
ểsửdụ
ng nhưmột
công cụdạ
y họ
c. Từđó đ
ế
n nay nó đã đ
ược phát triể
n thành một bộphầ
n mề
m
thương mạ
i rấ
t thành công.
- Hiệ
n nay MATLAB R14 là một bộphầ
n mề
m cho công việ
c tính toán trong các
ngành kỹthuậ
t, trong khoa họ
c và trong lĩ
nh vực toán họ
c ứng dụ
ng. Matlab cho
ta mộ
t ngôn ngữlậ
p trình mạ
nh, giao diệ
n đ
ồhọ
a xuấ
t sắ
c, và một phạ
m vi rấ
t
rộ
ng các kiế
n thức chuyên môn. Matlab là mộ
t thương hiệ
u đã đượ
c thương mạ
i
hóa của tậ
p đoàn MathWorks, Massachusetts, USA (hiệ
n là nhà cung cấ
p hàng
đ
ầ
u thếgiới cho các phầ
n mề
m tính toán kỹthuậ
t và thiế
t kếdựa trên mô hình).
1.2.
Khảnăng và những ứng dụng của Matlab
- Một trong nhữ
ng tính nă
ng tuyệ
t vời nhấ
t củ
a Matlab nhìn từgóc đ
ộnhững nhà
khoa họ
c tính toán là thưviệ
n dựng sẵ
n to lớn rấ
t phong phú các chu trình tính
toán và các công cụhiể
n thịđ
ồhọ
a.
- Matlab cho phép người dùng tiế
n hành rấ
t nhiề
u các nhiệ
m vụthông thường liên
quan tới việ
c giả
i quyế
t các vấ
nđ
ềmột cách sốhọ
c. Nó cho phép chúng ta dành
nhiề
u thời gian hơn cho việ
c suy nghĩ
, khuyế
n khích chúng ta thí nghiệ
m.
- Matlab ứng dụng những thuậ
t toán hế
t sức được trân trọng vì vậ
y chúng ta có thể
tin tưởng vào kế
t quảthu được.
- Các tính toán rấ
t mạ
nh có thểđ
ược thực hiệ
n chỉvới mộ
t hoặ
c hai câu lệ
nh.
- Bạ
n có thểxây dựng riêng cho mình những hàm toán học cho những ứng dụ
ng
đ
ặ
c biệ
t.
- Matlab cung cấ
p giao diệ
nđ
ồhọ
a tuyệ
t hả
o, các hình từMatlab có thểđem chèn
vào LATEX và các tài liệ
u Word.
- Tài liệ
u hướng dẫ
n này chỉđem đế
n mộ
t cái nhìn thoáng qua vềsức mạ
nh và sự
linh hoạ
t củ
a hệthống Matlab. Đểcó được những hiể
u biế
t sâu sắ
c và chi tiế
t hơn,
xin tham khả
o các giáo trình Matlab chuyên dụng khác hiệ
n có trên thịtrường.
-4-
Bài giảng Tin Ứng dụng 2 – Matlab 7
VD: Hãy cùng tham khả
o các demo củ
a Matlab đểxem ta có thểlàm được những
gì chỉvới một vài dòng lệ
nh đ
ơn giả
n:
>>
>>
>>
>>
colormap(hsv(64))
z = cplxgrid(30);
cplxmap(z,z^3)
cplxroot(3)
% miền không gian số phức đơn vị z
% vẽ đồ thị hàm x = z^3 – hinh1
% vẽ đồ thị hàm y = z^(1/3) – hinh2
Hình 1: Đồthịhàm x = z3 trong không gian sốphức
Hình 2: Đồthịhàm y 3 z trong không gian sốphức
-5-
Bài giảng Tin Ứng dụng 2 – Matlab 7
1.3.
Đặc điểm của Matlab
Lập trình theo nghĩ
a thông thường, là nhậ
p vào máy những câu lệ
nh rõ ràng, theo
một thứtựnhấ
tđ
ị
nh sao cho khi máy thực hiệ
n theo đ
úng thứtựđó thì sẽcho ta
kế
t quảmong muố
n. Mộ
t khái niệ
m nôm na tương tựnhưvậ
y thường thấ
y trong
các khóa họ
c lậ
p trình các ngôn ngữC, Pascal...
Khi khởi đ
ầ
u với MatLab ta hãy hiể
u theo nghĩ
a rộ
ng hơn: lậ
p trình còn có các
bước biể
u diễ
n bài toán dưới dạ
ng các hàm và máy tính qua việ
c thực hiệ
n các
hàm này cho ta kế
t quả
. Phương pháp này có mức độtrừu tượng cao hơn so với
các câu lệ
nh chỉdẫ
n đơn thuầ
n.
Đểminh họa đ
iề
u này, ta xét mộ
t ví dụrấ
tđ
ơn giả
n: so sánh phép cộng hai véctơ
trong ngôn ngữlậ
p trình Pascal và MatLab.
- Pascal biể
u diễ
n một véctơdưới dạ
ng mả
ng (array), chẳ
ng hạ
n có 3 vec-tơA, B,
C và A + B = C:
var
A: array[1..5] of integer = (3, 7, 4, 2, 0);
B: array[1..5] of integer = (-2, 4, 8, 5, 1);
C: array[1..5] of integer;
i: integer;
begin
for i := 1 to 5 do
begin
C[i] := A[i] + B[i]
end
end.
- Cách làm trong MatLab đ
ơn giả
n hơn nhiề
u:
A = [3 7 4 2 0];
B = [-2 4 8 5 1];
C = A + B;
- Có đ
ược sựđ
ơn giả
n nói trên là nhờMatLab đ
ã xây dựng sẵ
n khái niệ
m ma trận.
Dấ
u cộng trong dòng lệ
nh MatLab biể
u thịphép cộ
ng ma trậ
n. Pascal không được
nhưvậ
y; mả
ng chỉlà sựbiể
u diễ
n có thứtựcủa các biế
n. Không có phép cộ
ng ma
trậ
n, chỉcó phép cộng hai số– vì vậ
y chương trình Pascal dài hơn rấ
t nhiề
u.
- Mộ
t đặ
cđ
iể
m nữa là tấ
t cảcác biế
n trong chương trình Pascal trên đề
u phả
i được
khai báo. Trong MatLab các biế
n sẽtựđ
ộng hình thành trong mỗi câu lệ
nh gán.
Trong nhữ
ng nă
m gầ
nđ
ây, bên cạ
nh các ngôn ngữlậ
p trình truyề
n thố
ng (C / C++
/ Fortran), các ngôn ngữvăn lệ
nh (scripting languages) đ
ược sửdụ
ng phổbiế
n
hơn trong lĩ
nh vực nghiên cứu tính toán. MatLab là một trong các ngôn ngữnhư
vậ
y. Là một ngôn ngữbậ
c cao, mỗ
i dòng lệ
nh MatLab thường có tác dụng tương
đ
ương với khoả
ng 10 dòng lệ
nh của C / C++. Người lậ
p trình sẽtố
n ít thời gian gõ
câu lệ
nh và tậ
p trung hơn vào nội dung chương trình.
-6-
Bài giảng Tin Ứng dụng 2 – Matlab 7
Tuy vậ
y các ngôn ngữlậ
p trình biên dị
ch nhưC / Fortran cho phép chương trình
tính toán rấ
t nhanh và tốc độcũng là một yêu cầ
u rấ
t quan trọng trong các chương
trình tính lớn. Do đ
ó mộ
t cách kế
t hợp thông minh là phầ
n lõi tính toán có thể
đ
ược viế
t bằ
ng ngôn ngữbiên dị
ch, và các thao tác nhậ
p xuấ
t, xửlí, hiể
n thịsố
liệ
u được viế
t bởi ngôn ngữvă
n lệ
nh nhưMatLab.
1.4.
Cài đặt và khởi động Matlab 7.0
1.4.1. Cài đặt Matlab 7.0
- Yêu cầ
u vềcấ
u hình máy tính:
+ Bộvi xửlý Pentium hoặ
c Pentium Pro
+ Windows 95 hoặ
c NT (WinXP home, XPprofessional đề
u được)
+ Bộđ
iề
u phối đ
ồhọa 8 bit và card màn hình tối thiể
u 256 màu
+ Dung lượng ổcứng 25Mb cho tới hơn 1Gb (tùy thuộc vào cách cấ
u hình
đ
ĩ
a cứng, phân vùng đĩ
a, sốhợp phầ
n củ
a Matlab đ
ược cài đ
ặ
t), và tới 2,1Gb nế
u
cài đ
ặ
t Matlab cùng với Simulink.
+ Bộnhớđ
ộng (RAM) tố
i thiể
u 16Mb (nên có bộnhớtố
i thiể
u 128Mb)
+ Các khuyế
n nghịkhác: Bộnhớbổsung, card đồhọa bổsung, card âm
thanh, máy in, MS-Word 7.0 hoặ
c hơn, trình biên dị
ch C, Borlean, Mỉ
cosoft (xây
dựng file MEX), trình duyệ
t internet (đểchạ
y Matlab Helpdesk online).
- Quá trình cài đặ
t Matlab 7.0 cho WindowsXP (bộgồ
m 2 đĩ
a CD):
+ Đưa đ
ĩ
a CD vào ổđọ
c. Nế
u chương trình SETUP không tựđ
ộng chạ
y thì
nhấ
n đúp vào biể
u tượng setup.exe đểbắ
t đầ
u quá trình cài đặ
t.
+ Accept (chấ
p nhậ
n) những thỏa thuậ
n vềbả
n quyề
n. sau đ
ó click Next.
+ Nế
u bạ
n cài theo kiể
u mặ
c đị
nh (hay còn gọ
i là Typical setup - kiể
u phổ
biế
n), Matlab trên máy tính củ
a bạ
n sẽcó các hợp phầ
n cơbả
n nhấ
tđ
ểlàm việ
c
theo các hướ
ng dẫ
n trong tài liệ
u này. Theo các hướng dẫ
n trên màn hình. Cho đĩ
a
CD thứ2 vào khi đ
ược yêu cầ
u.
+ Nế
u bạ
n cài đặ
t theo kiể
u tùy chọ
n cá nhân (Manual setup) thì nhấ
n vào
các hộ
p thành phầ
n dấ
u 'v' nế
u bạ
n muố
n có tùy chọ
n đó. Nhấ
n tiế
p nế
u bạ
n
không có ý đị
nh (có thểthêm vào sau này nế
u muố
n).
+ Trên màn hình hiể
n thị'C:\MATLAB7' là thưmụ
c mặ
cđ
ị
nh của quá trình
cài đặ
t. Nế
u bạ
n muốn cài đ
ặ
t vào đị
a chỉkhác, hoặ
c đổ
i tên thưmục, thì bạ
n lựa
chọ
n 'Browse'.
-7-
Bài giảng Tin Ứng dụng 2 – Matlab 7
+ Chi tiế
t hướng dẫ
n cài đặ
t xin xem file ‘
install_guide.pdf’trong đ
ĩ
a CD1
(bả
n tiế
ng Anh).
1.4.2. Khởi động Matlab (Hệđiều hành Windows)
- TừHĐH Windows, khởi độ
ng Matlab đ
ơn giả
n bằ
ng cách nháy
đ
úp vào biể
u tượng MATLAB trên màn hình, hoặ
c bằ
ng cách
chọ
n MATLAB từMenu Start.
- Quá trình khởi đ
ộ
ng đ
ưa người dùng đế
n Cửa sổlệ
nh, nơi các
dòng lệ
nh được biể
u thị
bằ
ng '>>'.
>>_
Đây là dấ
u hiệ
u cho thấ
y Matlab đ
ang chờbạ
nđ
ánh một (câu) lệ
nh. Khi hoạ
t độ
ng
trong chếđộmáy tính cầ
m tay, tấ
t cảcác lệ
nh củ
a Matlab được nhậ
p vào dòng
lệ
nh từbàn phím.
- Matlab có thểđượ
c sửdụng theo nhiề
u chếđ
ộvà nhiề
u cách khác nhau;
+ Nhưmột máy tính cầ
m tay cao cấ
p trong chếđộmáy tính cầ
m tay
+ Nhưmột ngôn ngữlậ
p trình bậ
c cao
+ Nhưmột chu trình con gọ
i từchương trình C
Trong tài liệ
u này chúng ta sẽđi nghiên cứu chi tiế
t 2 chếđộđầ
u tiên.
1.5.
Quản lý không gian làm việc của Matlab
- Vềcơbả
n, không gian làm việ
c của Matlab gồ
m có các phầ
n sau:
+ Cửa sổtrợgiúp (Help window)
+ Nút Start
+ Cửa sổnhậ
p lệ
nh (Command window)
+ Cửa sổkhông gian làm việ
c (Workspace window)
+ Cửa sổquá trình lệ
nh (Command History window - lị
ch sử)
+ Cửa sổbiên tậ
p mả
ng, vectơ, ma trậ
n (Array editor window)
+ Cửa sổđ
ị
a chỉthưmục hiệ
n thời (Current directory window)
- Nút ‘x’ ởgóc trên bên phả
i mỗ
i cửa sổdùng đ
ểđ
óng chúng. Hiể
n thịlạ
i cửa sổ
bằ
ng cách tích ‘
’vào tên cửa sổtương ứng trong menu Desktop.
- Nút mũi tên cong bên cạ
nh nút ‘
x’dùng đểtách các cửa sổlàm việ
c trong cửa sổ
chính MATLAB thành cửa sổcon đ
ộc lậ
p. Ấn nút này mộ
t lầ
n nữa sẽnhậ
p một
cửa sổđộ
c lậ
p vềcửa sổchính củ
a MATLAB.
- Cửa sổHelp, History sẽđược giới thiệ
u cụthểtrong mụ
c 1.7 và mụ
c 1.8. Sau
đ
ây các cửa sổlàm việ
c còn lạ
i sẽđ
ược giới thiệ
u vắ
n tắ
t.
-8-
Bài giảng Tin Ứng dụng 2 – Matlab 7
Hình 1.1: Giao diệ
n củ
a Matlab 7.0
* Nút Start: ởgóc dưới bên trái củ
a màn hình Matlab, cho phép ta chạ
y các ứng
dụ
ng mẫ
u (demos), các công cụvà cửa sổchưa hiể
n thịkhi khởi độ
ng Matlab.
Bằ
ng cách đánh lệ
nh 'demo' bạ
n có thểtiế
p cậ
n với mộ
t tậ
p hợp sâu rộng những
file trình diễ
n giá trịrấ
t cao, vì đó là biể
u hiệ
n cho những khảnă
ng củ
a Matlab.
Ví dụ
: Thửchạ
y Start -> Matlab -> Demos và chạ
y mộ
t ứng dụ
ng mẫ
u trong cửa
sổDemo(s).
Ghi chú: Lệ
nh này sẽxóa tấ
t cảgiá trịcủ
a các biế
n hiệ
n có.
* Cửa sổlệ
nh: đã đ
ược đềcậ
p ởmụ
c 1.4.2. (Khởi độ
ng Matlab).
- Các diễ
n giả
i và câu (mệ
nh đ
ề
) của Matlab được đ
ánh giá khi bạ
n gõ vào 'Cửa sổ
lệ
nh', và các kế
t quảtính toán cũ
ng được thểhiệ
n tạ
i đ
ây. Không giố
ng như
Fortran và các ngôn ngữtính toán cầ
n biên dị
ch khác, Matlab là mộ
t môi trường
tương tác – bạ
nđ
ưa ra một câu lệ
nh, và Matlab cốgắ
ng thực thi nó ngay lậ
p tức
trước khi đòi hỏ
i 1 lệ
nh tiế
p theo.
- Các diễ
n giả
i và câu cũ
ng đư
ợc sửdụ
ng trong các M-file (sẽđượ
c trình bày chi
tiế
t ởchương V). Chúng thường có cấ
u trúc:
>> biế
n = diễ
n giả
i
hoặ
c đơn giả
n là
>> diễ
n giả
i
- Các diễ
n giả
i thường đượ
c soạ
n bằ
ng các toán tử, các hàm, và tên các biế
n, và
đ
ược hiể
n thịtrên màn hình sau khi ấ
n Enter. Các câu lệ
nh có dạ
ng ‘
tên biế
n=
-9-
Bài giảng Tin Ứng dụng 2 – Matlab 7
diễ
n giả
i’thì diễ
n giải đ
ó sẽđ
ược gán cho biế
nđ
ểsửdụng sau này. Khi ‘tên biế
n’
và dấ
u‘
=’ được bỏđi thì kế
t quảcủa diễ
n giả
i sẽđược tựđ
ộng gán cho biế
n có
tên ‘ans’ (hay answer – câu trảlời) và hiể
n thịtrên màn hình.
- Một câu (lệ
nh) thông thường sẽkế
t thúc ởcuối dòng. Tuy nhiên có thểtiế
p tục
một câu bằ
ng ba dấ
u chấ
m‘
…’ ởcuối dòng.
- Có thểđ
ặ
t mộ
t vài câu lệ
nh trên cùng mộ
t hàng, ngă
n cách bởi dấ
u phẩ
y‘
,’ hoặ
c
chấ
m phẩ
y‘
;’
- Nế
u mộ
t câu lệ
nh kế
t thúc bằ
ng dấ
u chấ
m phẩ
y ởcuố
i câu thì kế
t quảcủa lệ
nh
đ
ó sẽkhông được hiể
n thị
, tuy nhiên yêu cầ
u tính vẫ
n được thực hiệ
n (phép tính
hay phép gán vẫ
n được thực hiệ
n, kế
t quảcó trong workspace). Điề
u này là thiế
t
yế
u trong việ
cẩ
nđ
i các kế
t quảtrung gian không mong muốn (VD nhưkhi thực
hiệ
n mộtloạ
t phép tính, hay tính toán với các ma trậ
n lớn).
- Bạ
n có thểxóa trắ
ng toàn bộcửa sổlệ
nh bằ
ng lệ
nh
>> clc
% (clear command window)
hoặ
c vào menu Edit -> Clear Command Window. Khi thực hiệ
n lệ
nh này, toàn
bộgiá trịcủa các biế
n hiệ
n có không thay đ
ổi hay mấ
t đi.
* Cửa sổ không gian làm việ
c
(workspace):
Các biế
n và dữliệ
u mà bạ
n nhậ
p vào
hoặ
c tính toán ra sẽđ
ược Matlab lưu
trong mộ
t phầ
n gọi là 'không gian làm
việ
c'. Tấ
t cảcác biế
n, ngoạ
i trừnhững
biế
n cục bộthuộ
c vềmộ
t M-file, sẽ
đ
ược thểhiệ
n trong không gian làm
việ
c
- Lệ
nh 'who' hoặ
c 'whos' liệ
t kê các biế
n hiệ
n có trong không gian làm việ
c.
VD: đánh lệ
nh 'whos' vào cửa sổlệ
nh, bạ
n sẽthấ
y mộ
t danh sách các biế
n hiệ
n có
cùng kiể
u loạ
i và kích cỡcủa chúng.
- Đểbiế
t giá trịhiệ
n tạ
i của mộ
t biế
n, bạ
nđ
ánh vào tên biế
n tạ
i dấ
u nhắ
c của cửa
sổlệ
nh và Enter.
- Đểxóa mộ
t hàm hoặ
c biế
n khỏ
i không gian làm việ
c, ta sửdụng lệ
nh 'clear':
>> clear tên_biế
n
Bả
n thân lệ
nh 'clear' sẽxóa tấ
t cảcác biế
n hiệ
n có (tương đương với 'clear all')
- 10 -
Bài giảng Tin Ứng dụng 2 – Matlab 7
* Cửa sổbiên tậ
p mả
ng (ma trậ
n nói chung): Khi ta đã có một mả
ng, ta có thể
chỉ
nh sửa, biên tậ
p lạ
i nó bằ
ng Array Editor. Công cụnày làm việ
c nhưmộ
t bả
ng
tính (spreadsheet) cho ma trậ
n.
Ví dụ: Có ma trậ
n M, hãy thửclick và thay đổ
i nó, thay đổ
i các phầ
n tử, hay kích
thước ma trậ
n. Quay trởlạ
i Cửa sổlệ
nh và gõ 'M' rồi Enter, xem ma trậ
n M của
chúng ta sau khi thay đổ
i.
+ Bạ
n cũng có thểbiên tậ
p lạ
i ma trậ
n M bằ
ng cách đ
ánh lệ
nh
>> openvar ('C')
* Cửa sổđị
a chỉthưmục hiệ
n thời: Thưmục hiệ
n thời là nơi chương trình
Matlab sẽtìm các M-file, và các file không gian làm việ
c (.mat files) mà bạ
n đã
Load và Save.
1.6.
Ghi & phục hồi dữliệu
1.6.1. Lưu và phục hồi dữliệu
- Đểnhớcác biế
n, Matlab có thểghi và gọi lạ
i dữliệ
u từfile trong máy tính của
bạ
n. Mục Save Workplace as... trong bả
ng chọ
n File sẽmởhộ
p hộ
i thoạ
i đểghi
tấ
t cảcác biế
n hiệ
n tạ
i.
- Tương tự, mục Load Workplace trong bả
ng chọ
n File sẽmởhộ
p hội thoạ
i đểgọi
lạ
i tấ
t cảcác biế
n mà ta đ
ã ghi lạ
i từkhông gian làm việ
c trước.
Ghi chú: việ
c Load không làm mấ
t các biế
n hiệ
n có trong không gian lamg việ
c
hiệ
n tạ
i. Khi ta gọ
i lạ
i các biế
n mà chúng trùng tên với các biế
n trong không gian
làm việ
c củ
a Matlab, nó sẽthay đ
ổi giá trịcủa các biế
n theo giá trịcủ
a các biế
n
gọ
i ra từfile.
- Ngoài các bả
ng chọ
n, Matlab còn cung cấ
p hai lệ
nh Save và Load, nó thực hiệ
n
một cách mề
m dẻ
o hơn. Lệ
nh save cho phép bạ
n ghi một hoặ
c nhiề
u hơn mộ
t biế
n
tùy theo sựlựa chọn. Ví dụ
:
>> save
>> save dulieu
- lưu tấ
t cảcác biế
n trong Matlab theo kiể
u
nhịphân trong file matlab.mat
- lưu tấ
t cảcác biế
n trong Matlab theo kiể
u
nhịphân trong file dulieu.mat
>> save dulieu A B C D -ascii
- lưu các biế
n A, B, C, D theo dạ
ng mã ASCII trong file dulieu.mat
1.6.2. Lưu một bộdữliệu (record)
- 11 -
Bài giảng Tin Ứng dụng 2 – Matlab 7
1.6.3. Lưu một phiên (session)
Khi làm bài tậ
p, việ
c lưu tấ
t cảcác thông sốđầ
u vào và đ
ầ
u ra củ
a phiên làm việ
c
với Matlab hiệ
n tạ
i củ
a bạ
n cho việ
c in ấ
n sau này là rấ
t hữu ích. Lệ
nh 'diary' sử
dụ
ng cho mục đích này, sẽlưu tấ
t cảnhững thông sốđầ
u vào và đ
ầ
u ra ởgiữa hai
lệ
nh 'diary' và 'diary off'. Từdấ
u nhắ
c ởdòng lệ
nh, bạ
n đánh:
>> diary('diary_file_name')
>>
........ (các câu lệ
nh củ
a bạ
n ởđây)
>> diary off
1.7.
Sửdụng Help
- Trợgiúp và thông tin vềcác lệ
nh của Matlab có thểđ
ược tìm thấ
y theo nhiề
u
cách:
+ Từdòng lệ
nh bằ
ng cách đ
ánh lệ
nh 'help chủđ
ề
' (xem dưới đ
ây)
+ Từcửa sổHelp riêng biệ
t xuấ
t phát ởMenu Help
+ Từhelpdesk củ
a Matlab lưu trữtrên đ
ĩ
a hoặ
c CD-rom, hoặ
c
+ Từmạ
ng Internet
- Từdòng lệ
nh, đ
ơn giả
n nhấ
t hãy đ
ánh lệ
nh 'help' và Enter!
Kế
t quả
: Matlab cho ta một bả
n tóm tắ
t vềhệthống trợgiúp.Mộ
t vài dòng đ
ầ
u tiên
của kế
t quảsẽnhưsau:
HELP topics: (Các chủđ
ềtrợgiúp)
matlab/general
- Các lệ
nh với mục đ
ích tổng quát.
matlab/ops
- (operators) Các toán tửvà các ký tựđ
ặ
c biệ
t...
matlab/lang
- (language) Ngôn ngữlậ
p trình...
matlab/elmat
- (elementary) Ma trậ
n că
n bả
n...
matlab/elfun
- (elementary functions) Các hàm toán că
n bả
n.
matlab/specfun
- (specialized functions) Các hàm toán đặ
c biệ
t.
- Thông thường bạ
n sẽthấ
y cửa sổtext không đủlớn đ
ểchứa tấ
t cảthông tin từ
một lệ
nh Matlab. Do đ
ó bạ
n có thểsửdụ
ng chức nă
ng 'more on' đểxem thông tin
theo từng trang màn hình, sau đ
ó duyệ
t từng trang mộ
t bằ
ng cách nhấ
n phím bất
kỳ
.
Đánh 'more off' vào cửa sổlệ
nh sẽđưa Matlab trởvềcách cưxửthông thường,
không duyệ
t từng trang.
- Thông thường bạ
n có thểkhông nhớchính xác tên củ
a một lệ
nh Matlab, trong
trường hợp đ
ó bạ
n có thểsửdụ
ng lệ
nh 'lookfor' (tìm kiế
m) nhưmộtsựtrợgiúp.
- 12 -
Bài giảng Tin Ứng dụng 2 – Matlab 7
Ví dụ, nế
u bạ
nđ
ánh vào dòng lệ
nh 'lookfor logarithm', Matlab sẽliệ
t kê tấ
t cảcác
hàm từng biế
t của Matlab có liên quan tới Logarit.
Hình 1. : Giao diệ
n cửa sổHelp củ
a Matlab 7.0
1.8.
History & Editing
- Trong giao diệ
n mặ
c đ
ị
nh củ
a Matlab, cử
a sổ'Command History' (lị
ch sửcác
lệ
nh) nằ
m ởgóc phầ
n tưbên dưới, phía trái. Trong cửa sổnày, các lệ
nh đã sử
dụ
ng trong các lầ
n khởi độ
ng Matlab gầ
n đây đề
uđ
ược lưu lạ
i. Mỗ
i lầ
n khởi đ
ộng
Matlab, toàn bộcác lệ
nh sửdụng trong lầ
nđ
ó sẽđược lưu lạ
i dưới dạ
ng một nhóm
có thểđ
óng mởbằ
ng nút biể
u tượng '+' (expand)hoặ
c '-' (collapse) ởđầ
u dòng
(dòng ghi mố
c thờigian giữa hai dấ
u chú thích '%'):
VD:
(+)
%-- 8/14/07 3:21 PM --%
(-)
%-- 8/14/07 3:21 PM --%
- Đểgọi lạ
i lệ
nh từcử
a sổ'Command History', bạ
n tìm đ
ế
n lệ
nh đ
ó bằ
ng các thanh
cuố
n, rồ
i nháy đ
úp vào tên lệ
nh.
- Đểgọi lạ
i các lệ
nh bạ
nđ
ã sửdụng từdấ
u nhắ
c củ
a cửa sổlệ
nh, Matlab dùng các
phím mũi tên () trên bàn phím.
- Ví dụ
, đểgọ
i lạ
i lệ
nh bạ
n gõ vào lúc gầ
n nhấ
t, bạ
n nhấ
n phím mũ
i tên lên ().
Tiế
p tụ
c nhấ
n phím này, nó sẽgọ
i tiế
p lệ
nh trước đó. Phím mũ
i tên xuống gọi lạ
i
lệ
nh theo thứtựngược lạ
i.
- 13 -
Bài giảng Tin Ứng dụng 2 – Matlab 7
- Các phím mũi tên và có thểdùng đ
ểthay đổ
i vịtrí con trỏtrong dòng lệ
nh
tạ
i dấ
u nhắ
c củ
a Matlab, nhưvậ
y chúng ta có thểsửa dòng lệ
nh. Thêm nữa, có thể
dùng chuột cùng với bộnhớđệ
mđ
ểcắ
t, copy, dán và sửa vă
n bả
n tạ
i dấ
u nhắ
c của
dòng lệ
nh.
- 14 -
Bài giảng Tin Ứng dụng 2 – Matlab 7
2. CHƯƠNG II: TÍNH TOÁN TRONG MATLAB
2.1.
Matlab - một máy tính cá nhân
* Giới thiệ
u các toán tửsốhọc:
- Các toán tửsốhọ
c của Matlab hoạ
t độ
ng theo một cú pháp rấ
t giố
ng với cú pháp
của các ngôn ngữkhác mà bạ
n có thểđã quen thuộc nhưTurbo Pascal, C, C++,
Fortran, Java...
- Các toán tửcơbả
n gồm có + - * / ^ = và chúng được dùng kế
t hợp với
ngoặ
cđ
ơn: ( ). Toán tử'=' là toán tửgán. Toán tử ^ đ
ược dùng đ
ểcho lũ
y thừa:
2^4=16. Với những toán tửnày ta có thểdùng Matlab nhưmộ
t máy tính cá nhân
đ
ơn giả
n.
* Ví dụ: Bạ
n có thểđánh các lệ
nh dưới đây vào sau dấ
u nhắ
c lệ
nh: >>_.
>> A = 2 + 3/4*5
A =
5.7500
>> B = 2^5 - 3*A
B =
14.7500
>> A + B
ans =
20.5000
Khi không có toán tửgán, Matlab trảkế
t quảcủ
a phép tính gầ
n nhấ
t vào biế
n 'ans
= ...' (answer). Xem thêm mục 2.2.
* Thứtựưu tiên tính toán:
Trong ví dụtrên, Matlab đã tính nhưthếnào, 2 + 3/(4*5) hay 2 + (3/4)*5?
Matlab làm việ
c theo thứtựưu tiên sau:
1. các đạ
i lượng trong ngoặ
cđ
ơn,
2 + 3^2
2. lũy thừa
2 + 9 = 11,
3. * /, làm việ
c từtrái qua phả
i (3*4/5 = 12/5),
4. + -, làm việ
c từtrái qua phả
i (3+4-5=7-5),
Vì vậ
y phép tính ởtrên sẽtheo thứtựư
u tiên 3.
* Bộcác toán tửcủa Matlab: (Xem thêm Help/Arithmetic operators)
Toán tử
Mô tả
+
Cộng
-
Trừ
- 15 -
Bài giảng Tin Ứng dụng 2 – Matlab 7
2.2.
.*
Nhân mả
ng cùng kích thước (nhân phầ
n tửvới phầ
n tử)
./
Chia mảng cùng kích thước (chia phần tửvới phầ
n tử)
.\
Chia mảng trái
:
Toán tửHai chấ
m
.^
Lũy thừa mảng, lũy thừa từng phầ
n tửvới phầ
n tử
.'
Chuyển vịmảng
'
Chuyển vịma trận - ma trậ
n liên hợp (MTLH phức)
*
Nhân (ma trậ
n). Đạ
i sốtuyế
n tính.
/
Chia (ma trận), B/A B*inv(A), chính xác hơn B/A=(A'\B')
\
Chia (ma trận) trái. A\B ~ inv(A)*B
^
Lũy thừa ma trận
Biến trong Matlab
* Ví dụ:
>> 2^3-3
ans =
5
>> ans*6
ans =
30
- Kế
t quảcủa phép tính thứnhấ
tđ
ược Matlab gán cho biế
n 'ans', biế
n này đ
ược sử
dụ
ng cho phép tính thứhai, qua đ
ó giá trịcủ
a nó đã đ
ược thay đổ
i (được gán lạ
i).
- Chúng ta có thểsửdụng tên riêng do ta đ
ặ
tđ
ểlưu các giá trị
số
>> x = 2^3-3
x =
5
>> y = x*6
y =
30
từđó 'x' có giá trịbằ
ng 5 và 'y' bằ
ng 30. Chúng có thểđ
ược sửdụng cho những
tính toán tiế
p theo.
- Đây là các ví dụvềvềcâu lệ
nh gán: các giá trịđược gán cho các biế
n. Cầ
n phả
i
gán một giá trịcho mỗ
i biế
n trước khi sửdụng biế
n đó trong câu lệ
nh tiế
p theo.
* Quy tắ
c đặ
t tên biế
n:
- Tên biế
n hợp lệcấ
u tạ
o bởi các chữvà số, bắ
tđ
ầ
u bằ
ng chữ. Nên đặ
t tên biế
n
phả
n ánh giá trịmà nó đạ
i diệ
n cho.
Các tên sau hợp lệ
:
- 16 -
Bài giảng Tin Ứng dụng 2 – Matlab 7
Hsig, Let2try, Dhaluu, T1, V2, z25c5
Các tên sau không hợp lệ
:
chu-ky, 2P, %x, @wru
- Chiề
u dài tên biế
n: Mặ
c dù tên biế
n có thểcó đ
ộdài tùy ý, nhưng Matlab sẽchỉ
sửdụ
ng N ký tựđ
ầ
u tiên củ
a tên, vì vậ
y các biế
n khác nhau không đ
ược có N ký
tựđầ
u tiên đề
u giống nhau.
N = namelengthmax
N =
63
- Bạ
n có thểsựdụng hàm 'isvarname' đểkiể
m tra tính hợp lệcủ
a tên biế
n. Hàm trả
vềgiá trị1 nế
u tên hợp lệvà 0 nế
u tên đó không hợp lệ
.
isvarname 8th_column
ans =
0
% Not valid - begins with a number
- Thông thường, tên biế
n không phụthuộc vào chữhoa - chữthường. Vì thế'xyz'
sẽgiố
ng như'xYz'.
- 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. Vì
nhưvậ
y thông thường bạ
n sẽkhông thểsửdụ
ng các hàm, từkhóa của Matlab nữa.
VD: Nế
u bạ
n gán cho 1 biế
n tên là 'sqrt' một giá trị
, thì bạ
n sẽkhông thểsửdụ
ng
hàm că
n bậ
c hai (sqrt) nữa!
- Matlab đã đ
ă
ng ký trước rấ
t nhiề
u từkhóa (xem bằ
ng lệ
nh 'iskeyword'):
'break' 'case' 'catch' 'continue' 'else' 'elseif' 'end' 'for' 'function'
'global' 'if' 'otherwise' 'persistent' 'return' 'switch' 'try' 'while'
và các hàm, xem danh sách trong Help/Functions/Categorical List); và các hằ
ng
số
. Một sốhằ
ng sốvà hàm thông dụ
ng có thểxem ởmục 2.5 và 2.6.
2.3.
Các kiểu dữliệu - Đị
nh dạng kết quả
* Tổng quát vềcác kiể
u dữliệ
u:
- Matlab sửdụ
ng 15 kiể
u (loạ
i) dữliệ
u chính. Mỗi một kiể
u dữliệ
u này đ
ề
uở
dạ
ng củ
a mộ
t ma trậ
n hoặ
c mả
ng. Các mả
ng hoặ
c ma trậ
n này có kích cỡtố
i thiể
u
là 0-nhân-0 và có thểphát triể
n tới mả
ng n-chiề
u với kích cỡtùy ý.
- Ngoài ra còn có các kiể
u dữliệ
u do người dùng đị
nh nghĩ
a (thiế
t lậ
p), kiể
u
hướng đ
ối tư
ợng, và kiể
u dữliệ
u liên quan tớiJava.
- 17 -
Bài giảng Tin Ứng dụng 2 – Matlab 7
Hình 2.1. Các kiể
u dữliệ
u của Matlab
* Đị
nh dạ
ng kế
t quả
:
- Sửdụ
ng lệ
nh 'format' cùng các đị
nh dạ
ng. Lệ
nh này chỉlàm thay đổ
i cách mà kế
t
quảđư
ợc hiể
n thịtrên màn hình, không làm thay đ
ổi độchính xác của sốhoặ
c
phép tính. Hầ
u hế
t các phép tính sốhọ
c củ
a Matlab đượ
c thực hiệ
n với độchính
xác Double, nghĩ
a là độchính xác 16 chữsốsau dấ
u phẩ
y thậ
p phân.
- Đểthực hiệ
n lênh, từdấ
u nhắ
c củ
a cửa sổlệ
nh đánh mộ
t trong các lệ
nh sau:
format short
: dấ
u phẩ
y thậ
p phân cốđ
ị
nh, 5 chữsố
format long
: dấ
u phẩ
y cốđị
nh, 15 chữsố
format short e
: ký hiệ
u khoa họ
c, 5 chữsố
format long e
: ký hiệ
u khoa họ
c, 15 chữsố
format short g
: dấ
u phẩ
y cốđị
nh hoặ
c di độ
ng, 5 chữsố
format long g
: dấ
u phẩ
y cốđị
nh hoặ
c di độ
ng, 15 chữsố
format hex
: format dạ
ng Hexa (hệ16)
format '+'
: dương (+), âm (-), và ký tựtrắ
ng (blank) ứng với 0
format bank
: Dollars và cents
format rat
: tỷlệxấp xỉinteger
- Thông thường, 'format short' là dạ
ng mặ
c đ
ị
nh. Khi đ
ược gọ
i lên, một dạ
ng
format sẽcó hiệ
u lực tới khi nó đ
ược thay đổ
i.
2.4.
Các kiểu dữliệu số& sốphức
- Integer: ví dụnhư-5 hay 9888.
- 18 -
Bài giảng Tin Ứng dụng 2 – Matlab 7
- Double precision reals: Trong Matlab, tấ
t cảcác sốthực đ
ược lưu với đ
ộchính
xác double, không giố
ng các ngôn ngữlậ
p trình khác nhưC hay Fortran khi chỉcó
một loạ
i riêng biệ
t float hay real*8 cho các sốthực vớiđộchính xác single.
- Một dạ
ng ngắ
n cực kỳhiệ
u quảcho việ
c nhậ
p các sốrấ
t lớn hoặ
c rấ
t bé là dạ
ng
-7
ký hiệ
u 'e'. Chẳ
ng hạ
n -1.23456e-7 là dạ
ng ngắ
n của -1.23456 x 10 ; và 8.76e+12
12
là dạ
ng viế
t ngắ
n của 8.76 x 10 . Ví dụ
:
>> 1.23e-2
ans =
0.0123
>> 5e6
ans =
5000000
- Sốphức: đ
ược nhậ
p vào dưới dạ
ng 3+2*i hoặ
c 3+2*sqrt(-1).
- Chuỗ
i: là mộ
t mả
ng tậ
p hợp củ
a các ký tự, được nhậ
p vào dưới dạ
ng 'abc' hoặ
c
'vi du day la mot chuoi'.
Trên đ
ây là những kiể
u dữliệ
u cơbả
n mà bạ
n sẽrấ
t thường dùng trong khóa học
này. Đểbiế
t danh sách đ
ầ
yđ
ủhơn, bạ
n có thểdùng lệ
nh 'help datatypes' từcửa sổ
nhậ
p lệ
nh.
2.5.
Các ký tự, Chuỗi và Văn bản
- Khảnă
ng xửlý vă
n bả
n trong tính toán rấ
t hữu ích cho việ
c nhậ
p/xuấ
t kế
t quả
từ/tới màn hình và file lưu trên đĩ
a. Đểcó thểquả
n lý vă
n bả
n, một loạ
i dữliệ
u là
'character' được đưa vào Matlab. Mộ
t mả
nh của vă
n bả
nđ
ơn giả
n là mộ
t chuỗi
(vectơ) hay một mảng các ký tự.
VD:
>> t1='A'
sẽgán giá trịA cho mộ
t mả
ng ký tựtên 't1', kích thước 1 x 1.
>> t2='BCDE'
sẽgán giá trịBCDE cho mộ
t mả
ng ký tựtên 't2', kích thước 1 x 4.
- Các chuỗi có thểđ
ược cộ
ng với nhau bằ
ng cách sửdụ
ng các toán tửthao tác
trong mả
ng.
VD:
>> t3=[t1, t2]
sẽgán giá trịABCDE cho mộ
t mả
ng ký tựtên 't3', kích thước 1 x 5.
>> t4=[t3, ' la 5 ky tu dau tien
'trong bang chu cai latinh.']
sẽgán giá trị
'ABCDE la 5 ky tu dau tien '
'trong bang chu cai latinh.'
cho một mả
ng ký tựtên 't4', kích thước 2 x 26.
- 19 -
';...
'
Bài giảng Tin Ứng dụng 2 – Matlab 7
- Cầ
n chú ý rằ
ng sốcác ký tựởhai dòng phả
i bằ
ng nhau, nế
u không việ
c thực thi
câu lệ
nh trên sẽdẫ
n tới một lỗi:
??? Error using ==> vertcat
All rows in the bracketed expression must have the same
number of columns.
- Dấ
u ba chấ
m '...' thểhiệ
n rằ
ng câu lệ
nh còn tiế
p tục ởdòng sau.
* Chuyể
n đổ
i giữa chuỗi và số
- Đôi khi chúng ta cầ
n chuyể
n mộ
t chuỗi thành mộ
t sốtương ứng, hoặ
c ngược lạ
i.
Các công việ
c chuyể
n đổ
i này được thực hiệ
n bởi lệ
nh:
- 'str2num': chuyể
n một chuỗi thành sốtương ứng
và hai lệ
nh:
- 'num2str': chuyể
n một sốthực thành chuỗ
i tươ
ng ứng
- 'int2str':
chuyể
n một chuỗi thành sốtương ứng
- Những lệ
nh này rấ
t hữu ích trong việ
c tạ
o ra các nhãn và tiêu đềmột cách tự
đ
ộ
ng, chẳ
ng hạ
n như
2.6.
Các hằng sốdựng sẵn
Matlab đ
ị
nh nghĩ
a sẵ
n nhiề
u hàm sốrấ
t hữu ích, bao gồm:
pi, = 3.141592654...
i và j, cảhai đ
ề
u bằng phầ
n ảo của sốphức, = sqrt(-1)
inf, 'infinity' hay 'vô cùng'
NaN, 'not-a-number' hay 'không phả
i là mộ
t số
'
ans, luôn được gán cho kế
t quảcủ
a lệ
nh tính trước đ
ó
...
Bạ
n nên tránh gán lạ
i giá trịkhác cho các hằ
ng sốnêu trên nế
u có thể
. Chỉcó một
ngoạ
i lệlà i và j, vì cảhai thường đ
ược sửdụng nhưcác chỉsốcủ
a vòng lặ
p. Việ
c
gán lạ
i giá trịkhác cho các hằ
ng sốnày là chấ
p nhậ
nđ
ược vì sốphức luôn có thể
thu được bằ
ng cách sửdụng sqrt(-1).
2.7.
Các hàm dựng sẵn
- Cũng nhưnhững ngôn ngữbậ
c cao khác, Matlab thực thi các 'function' (hàm)
nhiề
u hơn 'procedure' (chương trình con). Các hàm này bao gồm că
n bậ
c hai
- 20 -
- Xem thêm -