Professional Documents
Culture Documents
Matlab Lecture Notes
Matlab Lecture Notes
I HC THY LI
BMN QUN L TNG HP BIN V I B
------ ------
MATLAB
TIN HC NG DNG HC PHN II
(Ti liu tham kho & Bi tp cho sinh vin Kthut Bin K45)
Nguy
n B Tuyn
Nguy
n Quang Chi
n
MC LC
1.
2.
3.
4.
-2-
6.
7.
PHN BI TP ..................................................................................................61
Bi tp s1:.............................................................................................................. 61
Bi tp s2............................................................................................................... 62
Bi tp s3............................................................................................................... 62
Bi tp s4:.............................................................................................................. 63
LI GII ...................................................................................................................... 63
Bi tp s1:.............................................................................................................. 63
Bi tp s2:.............................................................................................................. 64
Bi tp s3:.............................................................................................................. 64
Bi tp s4:.............................................................................................................. 64
8.
9.
-3-
1. CHNG I: MATLAB CN BN
1.1.
n nay n
c pht tri
n thnh mt bph
n m
m
thng m
i r
t thnh cng.
- Hi
n nay MATLAB R14 l mt bph
n m
m cho cng vi
c tnh ton trong cc
ngnh kthu
t, trong khoa h
c v trong l
nh vc ton h
c ng d
ng. Matlab cho
ta m
t ngn ngl
p trnh m
nh, giao di
n
h
a xu
t s
c, v mt ph
m vi r
t
r
ng cc ki
n thc chuyn mn. Matlab l m
t thng hi
u
c thng m
i
ha ca t
p on MathWorks, Massachusetts, USA (hi
n l nh cung c
p hng
u thgii cho cc ph
n m
m tnh ton kthu
t v thi
t kda trn m hnh).
1.2.
- Mt trong nh
ng tnh n
ng tuy
t vi nh
t c
a Matlab nhn tgc
nhng nh
khoa h
c tnh ton l thvi
n dng s
n to ln r
t phong ph cc chu trnh tnh
ton v cc cng chi
n th
h
a.
- Matlab cho php ngi dng ti
n hnh r
t nhi
u cc nhi
m vthng thng lin
quan ti vi
c gi
i quy
t cc v
n
mt cch sh
c. N cho php chng ta dnh
nhi
u thi gian hn cho vi
c suy ngh
, khuy
n khch chng ta th nghi
m.
- Matlab ng dng nhng thu
t ton h
t sc c trn trng v v
y chng ta c th
tin tng vo k
t quthu c.
- Cc tnh ton r
t m
nh c th
c thc hi
n chvi m
t ho
c hai cu l
nh.
- B
n c thxy dng ring cho mnh nhng hm ton hc cho nhng ng d
ng
c bi
t.
- Matlab cung c
p giao di
n
h
a tuy
t h
o, cc hnh tMatlab c them chn
vo LATEX v cc ti li
u Word.
- Ti li
u hng d
n ny chem
n m
t ci nhn thong qua vsc m
nh v s
linh ho
t c
a hthng Matlab. c c nhng hi
u bi
t su s
c v chi ti
t hn,
xin tham kh
o cc gio trnh Matlab chuyn dng khc hi
n c trn thtrng.
-4-
colormap(hsv(64))
z = cplxgrid(30);
cplxmap(z,z^3)
cplxroot(3)
-5-
1.3.
c im ca Matlab
u vi MatLab ta hy hi
u theo ngh
a r
ng hn: l
p trnh cn c cc
bc bi
u di
n bi ton di d
ng cc hm v my tnh qua vi
c thc hi
n cc
hm ny cho ta k
t qu
. Phng php ny c mc tru tng cao hn so vi
cc cu l
nh chd
n n thu
n.
minh ha
i
u ny, ta xt m
t v dr
t
n gi
n: so snh php cng hai vct
trong ngn ngl
p trnh Pascal v MatLab.
- Pascal bi
u di
n mt vctdi d
ng m
ng (array), ch
ng h
n c 3 vec-tA, 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
c s
n gi
n ni trn l nhMatLab
xy dng s
n khi ni
m ma trn.
D
u cng trong dng l
nh MatLab bi
u thphp c
ng ma tr
n. Pascal khng c
nhv
y; m
ng chl sbi
u di
n c thtca cc bi
n. Khng c php c
ng ma
tr
n, chc php cng hai s v v
y chng trnh Pascal di hn r
t nhi
u.
- M
t
c
i
m na l t
t ccc bi
n trong chng trnh Pascal trn
u ph
i c
khai bo. Trong MatLab cc bi
n st
ng hnh thnh trong mi cu l
nh gn.
Trong nh
ng n
m g
n
y, bn c
nh cc ngn ngl
p trnh truy
n th
ng (C / C++
/ Fortran), cc ngn ngvn l
nh (scripting languages)
c sd
ng phbi
n
hn trong l
nh vc nghin cu tnh ton. MatLab l mt trong cc ngn ngnh
v
y. L mt ngn ngb
c cao, m
i dng l
nh MatLab thng c tc dng tng
ng vi kho
ng 10 dng l
nh ca C / C++. Ngi l
p trnh st
n t thi gian g
cu l
nh v t
p trung hn vo ni dung chng trnh.
-6-
Tuy v
y cc ngn ngl
p trnh bin d
ch nhC / Fortran cho php chng trnh
tnh ton r
t nhanh v tc cng l mt yu c
u r
t quan trng trong cc chng
trnh tnh ln. Do
m
t cch k
t hp thng minh l ph
n li tnh ton c th
c vi
t b
ng ngn ngbin d
ch, v cc thao tc nh
p xu
t, xl, hi
n ths
li
u c vi
t bi ngn ngv
n l
nh nhMatLab.
1.4.
- Yu c
u vc
u hnh my tnh:
+ Bvi xl Pentium ho
c Pentium Pro
+ Windows 95 ho
c NT (WinXP home, XPprofessional
u c)
+ B
i
u phi
ha 8 bit v card mn hnh ti thi
u 256 mu
+ Dung lng cng 25Mb cho ti hn 1Gb (ty thuc vo cch c
u hnh
t), v ti 2,1Gb n
u
ci
a CD vo
c. N
u chng trnh SETUP khng t
ng ch
y th
nh
n p vo bi
u tng setup.exe b
t
u qu trnh ci
t.
+ Accept (ch
p nh
n) nhng tha thu
n vb
n quy
n. sau
click Next.
+ N
u b
n ci theo ki
u m
c
nh (hay cn g
i l Typical setup - ki
u ph
bi
n), Matlab trn my tnh c
a b
n sc cc hp ph
n cb
n nh
t
lm vi
c
theo cc h
ng d
n trong ti li
u ny. Theo cc hng d
n trn mn hnh. Cho
a
CD th2 vo khi
c yu c
u.
+ N
u b
n ci
t theo ki
u ty ch
n c nhn (Manual setup) th nh
n vo
cc h
p thnh ph
n d
u 'v' n
u b
n mu
n c ty ch
n . Nh
n ti
p n
u b
n
khng c
nh (c ththm vo sau ny n
u mu
n).
+ Trn mn hnh hi
n th'C:\MATLAB7' l thm
c m
c
nh ca qu trnh
ci
t. N
u b
n mun ci
t vo
a chkhc, ho
c
i tn thmc, th b
n la
ch
n 'Browse'.
-7-
+ Chi ti
t hng d
n ci
t xin xem file
install_guide.pdftrong
a CD1
(b
n ti
ng Anh).
1.4.2. Khi ng Matlab (Hiu hnh Windows)
p vo bi
u tng MATLAB trn mn hnh, ho
c b
ng cch
ch
n MATLAB tMenu Start.
- Qu trnh khi
ng
a ngi dng
n Ca sl
nh, ni cc
dng l
nh c bi
u th
b
ng '>>'.
>>_
y l d
u hi
u cho th
y Matlab
ang chb
n
nh mt (cu) l
nh. Khi ho
t
ng
trong chmy tnh c
m tay, t
t ccc l
nh c
a Matlab c nh
p vo dng
l
nh tbn phm.
- Matlab c th
c sdng theo nhi
u ch
v nhi
u cch khc nhau;
+ Nhmt my tnh c
m tay cao c
p trong chmy tnh c
m tay
+ Nhmt ngn ngl
p trnh b
c cao
+ Nhmt chu trnh con g
i tchng trnh C
Trong ti li
u ny chng ta si nghin cu chi ti
t 2 ch
u tin.
1.5.
- Vcb
n, khng gian lm vi
c ca Matlab g
m c cc ph
n sau:
+ Ca strgip (Help window)
+ Nt Start
+ Ca snh
p l
nh (Command window)
+ Ca skhng gian lm vi
c (Workspace window)
+ Ca squ trnh l
nh (Command History window - l
ch s)
+ Ca sbin t
p m
ng, vect, ma tr
n (Array editor window)
+ Ca s
a chthmc hi
n thi (Current directory window)
- Nt x gc trn bn ph
i m
i ca sdng
ng chng. Hi
n thl
i ca s
b
ng cch tch
vo tn ca stng ng trong menu Desktop.
- Nt mi tn cong bn c
nh nt
xdng tch cc ca slm vi
c trong ca s
chnh MATLAB thnh ca scon
c l
p. n nt ny m
t l
n na snh
p mt
ca s
c l
p vca schnh c
a MATLAB.
- Ca sHelp, History sc gii thi
u cthtrong m
c 1.7 v m
c 1.8. Sau
y cc ca slm vi
c cn l
i s
c gii thi
u v
n t
t.
-8-
) ca Matlab c
nh gi khi b
n g vo 'Ca s
l
nh', v cc k
t qutnh ton c
ng c thhi
n t
i
y. Khng gi
ng nh
Fortran v cc ngn ngtnh ton c
n bin d
ch khc, Matlab l m
t mi trng
tng tc b
n
a ra mt cu l
nh, v Matlab cg
ng thc thi n ngay l
p tc
trc khi i h
i 1 l
nh ti
p theo.
- Cc di
n gi
i v cu c
ng
c sd
ng trong cc M-file (s
c trnh by chi
ti
t chng V). Chng thng c c
u trc:
>> bi
n = di
n gi
i
ho
c n gi
n l
>> di
n gi
i
- Cc di
n gi
i thng
c so
n b
ng cc ton t, cc hm, v tn cc bi
n, v
c hi
n thtrn mn hnh sau khi
n Enter. Cc cu l
nh c d
ng
tn bi
n=
-9-
di
n gi
ith di
n gii
s
c gn cho bi
n
sdng sau ny. Khi tn bi
n
v d
u
= c bi th k
t quca di
n gi
i sc t
ng gn cho bi
n c
tn ans (hay answer cu trli) v hi
n thtrn mn hnh.
- Mt cu (l
nh) thng thng sk
t thc cui dng. Tuy nhin c thti
p tc
mt cu b
ng ba d
u ch
m
cui dng.
- C th
t m
t vi cu l
nh trn cng m
t hng, ng
n cch bi d
u ph
y
, ho
c
ch
m ph
y
;
- N
u m
t cu l
nh k
t thc b
ng d
u ch
m ph
y cu
i cu th k
t quca l
nh
skhng c hi
n th
, tuy nhin yu c
u tnh v
n c thc hi
n (php tnh
hay php gn v
n c thc hi
n, k
t quc trong workspace). i
u ny l thi
t
y
u trong vi
c
n
i cc k
t qutrung gian khng mong mun (VD nhkhi thc
hi
n mtlo
t php tnh, hay tnh ton vi cc ma tr
n ln).
- B
n c thxa tr
ng ton bca sl
nh b
ng l
nh
>> clc
ho
c vo menu Edit -> Clear Command Window. Khi thc hi
n l
nh ny, ton
bgi trca cc bi
n hi
n c khng thay
i hay m
t i.
* Ca s khng gian lm vi
c
(workspace):
Cc bi
n v dli
u m b
n nh
p vo
ho
c tnh ton ra s
c Matlab lu
trong m
t ph
n gi l 'khng gian lm
vi
c'. T
t ccc bi
n, ngo
i trnhng
bi
n cc bthu
c vm
t M-file, s
c thhi
n trong khng gian lm
vi
c
- L
nh 'who' ho
c 'whos' li
t k cc bi
n hi
n c trong khng gian lm vi
c.
VD: nh l
nh 'whos' vo ca sl
nh, b
n sth
y m
t danh sch cc bi
n hi
n c
cng ki
u lo
i v kch cca chng.
- bi
t gi trhi
n t
i ca m
t bi
n, b
n
nh vo tn bi
n t
i d
u nh
c ca ca
sl
nh v Enter.
- xa m
t hm ho
c bi
n kh
i khng gian lm vi
c, ta sdng l
nh 'clear':
>> clear tn_bi
n
B
n thn l
nh 'clear' sxa t
t ccc bi
n hi
n c (tng ng vi 'clear all')
- 10 -
* Ca sbin t
p m
ng (ma tr
n ni chung): Khi ta c mt m
ng, ta c th
ch
nh sa, bin t
p l
i n b
ng Array Editor. Cng cny lm vi
c nhm
t b
ng
tnh (spreadsheet) cho ma tr
n.
V d: C ma tr
n M, hy thclick v thay
i n, thay
i cc ph
n t, hay kch
thc ma tr
n. Quay trl
i Ca sl
nh v g 'M' ri Enter, xem ma tr
n M ca
chng ta sau khi thay
i.
+ B
n cng c thbin t
p l
i ma tr
n M b
ng cch
nh l
nh
* Ca s
a chthmc hi
n thi: Thmc hi
n thi l ni chng trnh
Matlab stm cc M-file, v cc file khng gian lm vi
c (.mat files) m b
n
Load v Save.
1.6.
- nhcc bi
n, Matlab c thghi v gi l
i dli
u tfile trong my tnh ca
b
n. Mc Save Workplace as... trong b
ng ch
n File smh
p h
i tho
i ghi
t
t ccc bi
n hi
n t
i.
- Tng t, mc Load Workplace trong b
ng ch
n File smh
p hi tho
i gi
l
i t
t ccc bi
n m ta
ghi l
i tkhng gian lm vi
c trc.
Ghi ch: vi
c Load khng lm m
t cc bi
n hi
n c trong khng gian lamg vi
c
hi
n t
i. Khi ta g
i l
i cc bi
n m chng trng tn vi cc bi
n trong khng gian
lm vi
c c
a Matlab, n sthay
i gi trca cc bi
n theo gi trc
a cc bi
n
g
i ra tfile.
- Ngoi cc b
ng ch
n, Matlab cn cung c
p hai l
nh Save v Load, n thc hi
n
mt cch m
m d
o hn. L
nh save cho php b
n ghi mt ho
c nhi
u hn m
t bi
n
ty theo sla chn. V d
:
>> save
- lu t
t ccc bi
n trong Matlab theo ki
u
nhphn trong file matlab.mat
- lu t
t ccc bi
n trong Matlab theo ki
u
nhphn trong file dulieu.mat
- 11 -
Khi lm bi t
p, vi
c lu t
t ccc thng s
u vo v
u ra c
a phin lm vi
c
vi Matlab hi
n t
i c
a b
n cho vi
c in
n sau ny l r
t hu ch. L
nh 'diary' s
d
ng cho mc ch ny, slu t
t cnhng thng s
u vo v
u ra gia hai
l
nh 'diary' v 'diary off'. Td
u nh
c dng l
nh, b
n nh:
>> diary('diary_file_name')
>>
........ (cc cu l
nh c
a b
n y)
Sdng Help
' (xem di
y)
+ Tca sHelp ring bi
t xu
t pht Menu Help
+ Thelpdesk c
a Matlab lu trtrn
a ho
c CD-rom, ho
c
+ Tm
ng Internet
- Tdng l
nh,
n gi
n nh
t hy
nh l
nh 'help' v Enter!
K
t qu
: Matlab cho ta mt b
n tm t
t vhthng trgip.M
t vi dng
u tin
ca k
t qusnhsau:
HELP topics: (Cc ch
trgip)
matlab/general
- Cc l
nh vi mc
ch tng qut.
matlab/ops
- (operators) Cc ton tv cc k t
c bi
t...
matlab/lang
matlab/elmat
- (elementary) Ma tr
n c
n b
n...
matlab/elfun
matlab/specfun
- Thng thng b
n sth
y ca stext khng ln
cha t
t cthng tin t
mt l
nh Matlab. Do
b
n c thsd
ng chc n
ng 'more on' xem thng tin
theo tng trang mn hnh, sau
duy
t tng trang m
t b
ng cch nh
n phm bt
k
.
nh 'more off' vo ca sl
nh sa Matlab trvcch cxthng thng,
khng duy
t tng trang.
- Thng thng b
n c thkhng nhchnh xc tn c
a mt l
nh Matlab, trong
trng hp
b
n c thsd
ng l
nh 'lookfor' (tm ki
m) nhmtstrgip.
- 12 -
V d, n
u b
n
nh vo dng l
nh 'lookfor logarithm', Matlab sli
t k t
t ccc
hm tng bi
t ca Matlab c lin quan ti Logarit.
Hnh 1. : Giao di
n ca sHelp c
a Matlab 7.0
1.8.
- Trong giao di
n m
c
nh c
a Matlab, c
a s'Command History' (l
ch scc
l
nh) n
m gc ph
n tbn di, pha tri. Trong ca sny, cc l
nh s
d
ng trong cc l
n khi
ng Matlab g
n y
u
c lu l
i. M
i l
n khi
ng
Matlab, ton bcc l
nh sdng trong l
n
sc lu l
i di d
ng mt nhm
c th
ng mb
ng nt bi
u tng '+' (expand)ho
c '-' (collapse)
u dng
(dng ghi m
c thigian gia hai d
u ch thch '%'):
VD:
(+)
(-)
- gi l
i l
nh tc
a s'Command History', b
n tm
n l
nh
b
ng cc thanh
cu
n, r
i nhy
p vo tn l
nh.
- gi l
i cc l
nh b
n
sdng td
u nh
c c
a ca sl
nh, Matlab dng cc
phm mi tn () trn bn phm.
- V d
, g
i l
i l
nh b
n g vo lc g
n nh
t, b
n nh
n phm m
i tn ln ().
Ti
p t
c nh
n phm ny, n sg
i ti
p l
nh trc . Phm m
i tn xung gi l
i
l
nh theo thtngc l
i.
- 13 -
- Cc phm mi tn v c thdng
thay
i vtr con trtrong dng l
nh
t
i d
u nh
c c
a Matlab, nhv
y chng ta c thsa dng l
nh. Thm na, c th
dng chut cng vi bnh
m
c
t, copy, dn v sa v
n b
n t
i d
u nh
c ca
dng l
nh.
- 14 -
2.1.
* Gii thi
u cc ton tshc:
- Cc ton tsh
c ca Matlab ho
t
ng theo mt c php r
t gi
ng vi c php
ca cc ngn ngkhc m b
n c th quen thuc nhTurbo Pascal, C, C++,
Fortran, Java...
- Cc ton tcb
n gm c + - * / ^ = v chng c dng k
t hp vi
ngo
c
n: ( ). Ton t'=' l ton tgn. Ton t ^
c dng
cho l
y tha:
2^4=16. Vi nhng ton tny ta c thdng Matlab nhm
t my tnh c nhn
n gi
n.
* V d: B
n c thnh cc l
nh di y vo 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
2. ly tha
2 + 9 = 11,
3. * /, lm vi
c ttri qua ph
i (3*4/5 = 12/5),
4. + -, lm vi
c ttri qua ph
i (3+4-5=7-5),
V v
y php tnh trn stheo tht
u tin 3.
* Bcc ton tca Matlab: (Xem thm Help/Arithmetic operators)
Ton t
M t
Cng
Tr
- 15 -
2.2.
.*
Nhn m
ng cng kch thc (nhn ph
n tvi ph
n t)
./
.\
Ton tHai ch
m
.^
.'
Chuyn vmng
'
Nhn (ma tr
n).
i stuy
n tnh.
Ly tha ma trn
* V d:
>> 2^3-3
ans =
5
>> ans*6
ans =
30
- K
t quca php tnh thnh
t
c Matlab gn cho bi
n 'ans', bi
n ny
c s
d
ng cho php tnh thhai, qua
gi trc
a n
c thay
i (c gn l
i).
- Chng ta c thsdng tn ring do ta
t
lu cc gi tr
s
>> x = 2^3-3
x =
5
>> y = x*6
y =
30
t 'x' c gi trb
ng 5 v 'y' b
ng 30. Chng c th
c sdng cho nhng
tnh ton ti
p theo.
- y l cc v dvvcu l
nh gn: cc gi trc gn cho cc bi
n. C
n ph
i
gn mt gi trcho m
i bi
n trc khi sdng bi
n trong cu l
nh ti
p theo.
* Quy t
c
t tn bi
n:
- Tn bi
n hp lc
u t
o bi cc chv s, b
t
u b
ng ch. Nn
t tn bi
n
ph
n nh gi trm n
i di
n cho.
Cc tn sau hp l
:
- 16 -
u tin c
a tn, v v
y cc bi
n khc nhau khng
c c N k
t
u tin
u ging nhau.
N = namelengthmax
N =
63
- B
n c thsdng hm 'isvarname' ki
m tra tnh hp lc
a tn bi
n. Hm tr
vgi tr1 n
u tn hp lv 0 n
u tn khng hp l
.
isvarname 8th_column
ans =
0
- Thng thng, tn bi
n khng phthuc vo chhoa - chthng. V th'xyz'
sgi
ng nh'xYz'.
- Trnh
t tn bi
n trng vi tn cc hm chu
n, ho
c cc tkha ca Matlab. V
nhv
y thng thng b
n skhng thsd
ng cc hm, tkha ca Matlab na.
VD: N
u b
n gn cho 1 bi
n tn l 'sqrt' mt gi tr
, th b
n skhng thsd
ng
hm c
n b
c hai (sqrt) na!
- Matlab
ng k trc r
t nhi
u tkha (xem b
ng l
nh 'iskeyword'):
'break' 'case' 'catch' 'continue' 'else' 'elseif' 'end' 'for' 'function'
'global' 'if' 'otherwise' 'persistent' 'return' 'switch' 'try' 'while'
v cc hm, xem danh sch trong Help/Functions/Categorical List); v cc h
ng
s
. Mt sh
ng sv hm thng d
ng c thxem mc 2.5 v 2.6.
2.3.
Cc kiu dliu -
nh dng kt qu
u
d
ng c
a m
t ma tr
n ho
c m
ng. Cc m
ng ho
c ma tr
n ny c kch ct
i thi
u
l 0-nhn-0 v c thpht tri
n ti m
ng n-chi
u vi kch cty .
- Ngoi ra cn c cc ki
u dli
u do ngi dng
nh ngh
a (thi
t l
p), ki
u
hng
i t
ng, v ki
u dli
u lin quan tiJava.
- 17 -
Hnh 2.1. Cc ki
u dli
u ca Matlab
*
nh d
ng k
t qu
:
- Sd
ng l
nh 'format' cng cc
nh d
ng. L
nh ny chlm thay
i cch m k
t
qu
c hi
n thtrn mn hnh, khng lm thay
i chnh xc ca sho
c
php tnh. H
u h
t cc php tnh sh
c c
a Matlab
c thc hi
n vi chnh
xc Double, ngh
a l chnh xc 16 chssau d
u ph
y th
p phn.
- thc hi
n lnh, td
u nh
c c
a ca sl
nh nh m
t trong cc l
nh sau:
format short
: d
u ph
y th
p phn c
nh, 5 chs
format long
: d
u ph
y c
nh, 15 chs
format short e
: k hi
u khoa h
c, 5 chs
format long e
: k hi
u khoa h
c, 15 chs
format short g
: d
u ph
y c
nh ho
c di
ng, 5 chs
format long g
: d
u ph
y c
nh ho
c di
ng, 15 chs
format hex
: format d
ng Hexa (h16)
format '+'
format bank
: Dollars v cents
format rat
: tlxp xinteger
nh. Khi
c g
i ln, mt d
ng
format sc hi
u lc ti khi n
c thay
i.
2.4.
- 18 -
- Sphc:
c nh
p vo di d
ng 3+2*i ho
c 3+2*sqrt(-1).
- Chu
i: l m
t m
ng t
p hp c
a cc k t, c nh
p vo di d
ng 'abc' ho
c
'vi du day la mot chuoi'.
Trn
y l nhng ki
u dli
u cb
n m b
n sr
t thng dng trong kha hc
ny. bi
t danh sch
y
hn, b
n c thdng l
nh 'help datatypes' tca s
nh
p l
nh.
2.5.
Cc k t, Chui v Vn bn
- Khn
ng xl v
n b
n trong tnh ton r
t hu ch cho vi
c nh
p/xu
t k
t qu
t/ti mn hnh v file lu trn
a. c thqu
n l v
n b
n, mt lo
i dli
u l
'character' c a vo Matlab. M
t m
nh ca v
n b
n
n gi
n l m
t chui
(vect) hay mt mng cc k t.
VD:
>> t1='A'
sgn gi tr
cho mt m
ng k ttn 't4', kch thc 2 x 26.
- 19 -
';...
'
- C
n ch r
ng scc k thai dng ph
i b
ng nhau, n
u khng vi
c thc thi
cu l
nh trn sd
n ti mt li:
??? Error using ==> vertcat
All rows in the bracketed expression must have the same
number of columns.
- D
u ba ch
m '...' thhi
n r
ng cu l
nh cn ti
p tc dng sau.
* Chuy
n
i gia chui v s
- i khi chng ta c
n chuy
n m
t chui thnh m
t stng ng, ho
c ngc l
i.
Cc cng vi
c chuy
n
i ny c thc hi
n bi l
nh:
- 'str2num': chuy
n mt chui thnh stng ng
v hai l
nh:
- 'num2str': chuy
n mt sthc thnh chu
i t
ng ng
- 'int2str':
chuy
n mt chui thnh stng ng
- Nhng l
nh ny r
t hu ch trong vi
c t
o ra cc nhn v tiu mt cch t
ng, ch
ng h
n nh
2.6.
Cc hng sdng sn
Matlab
nh ngh
a s
n nhi
u hm sr
t hu ch, bao gm:
pi, = 3.141592654...
i v j, chai
u bng ph
n o ca sphc, = sqrt(-1)
inf, 'infinity' hay 'v cng'
NaN, 'not-a-number' hay 'khng ph
i l m
t s
'
ans, lun c gn cho k
t quc
a l
nh tnh trc
...
B
n nn trnh gn l
i gi trkhc cho cc h
ng snu trn n
u c th
. Chc mt
ngo
i ll i v j, v chai thng
c sdng nhcc chsc
a vng l
p. Vi
c
gn l
i gi trkhc cho cc h
ng sny l ch
p nh
n
c v sphc lun c th
thu c b
ng cch sdng sqrt(-1).
2.7.
Cc hm dng sn
- 20 -
trk
t qub
ng sin c
a 45 radians... m thc ra
nh ca b
n l tnh sin c
a 450,
45
sb
ng 180 radians:
>> sin(45/180*pi)
ans =
0.7071
v ki
m tra l
i xem b
n c thu
c
2
nh
nh khng
2
>> sqrt(2)/2
ans =
0.7071
- Ch r
ng t
t ccc tnh ton c
a Matlab
u c l
i lm trn, m
i khi b
n l
i
th
y mtcch khng mong i. V d
, b
n khng nn ng
c nhin khi th
y
>> tan(pi)
ans =
-1.2246e-016
Nn nhr
ng li lm trn c m
t kh
p ni, v chng ta nn n gi
n ti
p nh
n
k
t quny nhtan()=0.
* Danh mc cc hm dng sn phbi
n:
Cc hm lng gic:
sin
- hm sin.
sind
sinh
- sin hypecbolic.
asin
o c
a hm sin.
asind
- hm ngh
ch
o ca hm sin, k
t qutheo
.
asinh
- hm ngh
ch
o ca hm sin hyperbolic.
cos
- hm cos.
cosd
- cos c
a argument tnh theo
.
cosh
- cos hyperbolic.
acos
- hm ngh
ch
o ca hm cos.
acosd
- hm ngh
ch
o ca hm cos, k
t qutheo
.
acosh
- hm ngh
ch
o ca hm cos hyperbolic.
- 21 -
tan
- hm tang.
tand
tanh
- tang hyperbolic.
atan
- hm ngh
ch
o ca hm tang.
atand
- hm ngh
ch
o ca hm tang, k
t qutheo
.
atan2
- hm ngh
ch
o ca hm tang 4 gc ph
n t.
atanh
- hm ngh
ch
o ca hm tang hyperbolic.
cot
- hm ctang.
cotd
- ctang c
a argument tnh theo
..
coth
- ctang hyperbolic.
acot
- hm ngh
ch
o ca hm ctang.
acotd
- hm ngh
ch
o ca hm ctang, k
t qutheo
.
acoth
- hm ngh
ch
o ca hm ctang hyperbolic.
Cc hm ly tha:
exp
- hm m
.
expm1
log
- logarit cstnhin.
log1p
log10
- logarit cs10.
reallog
realsqrt
- c
n b
c hai c
a mt s>= 0.
sqrt
- c
n b
c hai.
nthroot
- nghi
m thc b
c n ca cc sth
c.
Cc hm lin quan
n sphc:
abs
- gi trtuy
t
i.
angle
- gc pha.
complex
- xy dng dli
u vsphc tcc ph
n thc v
o.
conj
- lin hp ca phc.
imag
- ph
n
o ca phc.
real
- ph
n thc c
a phc.
isreal
- 22 -
cplxpair
- s
p x
p cc svcc c
p lin hp phc.
Cc hm lm trn v ph
n d:
fix
- lm trn vpha 0.
floor
ceil
- lm trn vpha d
ng v cng.
round
mod
- m
un (l
y ph
n dca php chia).
rem
- l
y ph
n dc
a php chia (tng tmod)
sign
- hm l
y d
u c
a mt bi
n, trv+1, 0, -1 (+, 0, -).
V d:
mod([1
7],3)
ans =
1
2.8.
C php
M t
<
A<B
Nhhn
<=
A <= B
Nhhn ho
c bng
>
A>B
Ln hn
>=
A >= B
Ln hn hoc b
ng
==
A == B
Bng
~=
A ~=B
Khng bng
* M t:
- Cc ton tquan hthc hi
n sso snh tng ph
n tvi ph
n tgia hai
m
ng. N cho k
t qul mt m
ng logic c cng kch c, vi cc ph
n tca
m
ng l
ng (1) n
u quan h
l ng, v ph
n tc
a m
ng l sai (0) n
u
khng ng.
- Cc ton t<, >, <=, and >= chsd
ng ph
n thc c
a cc ton h
ng cho php
so snh. Cc ton t== v ~= ki
m tra cph
n thc v ph
n
o. V d:
>> X = 5*ones(3,3)
X =
5
- 23 -
>> Y= [1 2 3; 4 5 6; 7 8 9]
Y =
1
>> X >= Y
ans =
1
K
t quc trvdi d
ng mt ma tr
n c cng kch thc vi ma tr
n X v
Y. Trong m
i ph
n tc gi tr1 (ng - true) ho
c 0 (sai - false) ty thuc vo
slogic c
a php so snh X>=Y.
2.9.
- Matlab bi
u di
n
ng v sai bi cc snguyn t1 v 0:
ng = 1, sai = 0
(true = 1, false = 0)
xem x c b
ng 2 khng?
x ~= 2
x>2
xem x c ln hn 2 khng?
x<2
x >= 2
xem x c ln hn ho
c b
ng 2 khng?
x <= 2
xem x c nhhn ho
c b
ng 2 khng?
-
c bi
t ch ti cch vi
t trong Matlab l php ki
m tra b
ng nhau sd
ng
hai d
u b
ng vi
t li
n nhau = =.
V dchng ta c:
>> x = pi
x =
3.1416
>> x ~= 3
ans =
1
>> x ~= pi
- 24 -
- Khi X l mt vc thay ma tr
n, cc php ki
m tra ny s
c ti
n hnh cho
tng ph
n tc
a X.
V dmc trc (2.8), php ki
m tra xem X c ln hn ho
c b
ng Y hay khng
cho ta k
t qu
:
>> X >= Y
ans =
1
0
1
0
Ch
ng h
n nh
&
v (and)
hoc (or)
khng (not)
~=
ngh
a l khng b
ng
~(x>5)
ngh
a l x khng ln hn 5, n
u x=4 th php
ki
m tra ny scho k
t qu
ng (true), hay = 1
- M
t ng dng khc na ca cc php ki
m tra logic l ta c th
xa(hay b
qua) cc ph
n tnh
t
nh c
a mt ma tr
n:
khi tnh t
n su
t vt qu mt ngng N no c
a chi
u cao sng
trong bsli
u o
c vsng vctH, ta c thki
m tra i
u ki
n
H(i) > N.
VD:
>> H = [4.7506
1.1557
3.0342
3.8105
2.2823
0.0925
>> N = 3;
kiemtra =
- 25 -
2.4299
4.1070
4.4565... (shift + )
2.2235];
1
0
1
0
>> H = H.* kiemtra
H =
4.7506 0 3.0342 0
4.4565
3.8105
4.1070
Nh
vctH by gichcn cha cc sli
u sng c chi
u cao ln hn
ngng 3m.
2.10. Kt hp nhiu lnh trn mt dng; n kt qutnh.
D
u ph
y (,) v d
u ch
m ph
y (;) l nhng k tc ngh
a
c bi
t trong
Matlab, v schng tl r
t hu ch.
* K
t hp nhi
u l
nh trn mt dng:
Ton tph
y (,) c dng
nhm nhi
u l
nh trn mt dng, v d:
>> x=3.5, y=-5.0, x3 y
x =
3.5000
y =
-5
ans =
47.8750
* n k
t qutnh (Surpessing output)
- Thng thng, chng ta khng mu
n theo di t
t ccc tnh ton trung gian, hay
ta mun
n
i m
t cu l
nh, m
t di
n gi
i. Khi
ta dng d
u ch
m ph
y (;). V
d
:
>> x=3.5; y=-5.0; x3 y
ans =
47.8750
Trong v dtrn, k
t quc
a hai l
nh gn
u tin
c
n
i.
- 26 -
3.1.
Gii thiu
-
i stuy
n tnh l tri tim v l ph
n h
n c
a Matlab. Trong thc tth ban
u
Matlab l tvi
t t
t c
a
matrix laboratory. V v
y hn b
t kngn ngno
khc, Matlab khuy
n khch v trng
i b
n t
n d
ng m
i khn
ng ca cc m
ng,
vctv ma tr
n.
* M
t vi thut ngtrong chng III (Vct) v IV (Ma trn):
- Mng l mt t
p hp cc s, c gi l cc ph
n t hay cc
u s
, c
bi
t
n vi m
t ho
c nhi
u chsch
y su
t cc t
p h
p chs
. Trong Matlab, cc
t
p hp chslun l chu
i snguyn tb
t
u b
ng 1.
- Schi
u c
a mt m
ng l scc chsc
n thi
t
nh ngh
a m
t ph
n ttrong
m
ng. Ch
ng h
n m
ng 2 chi
u sc
n 2 chsi v j
c trng cho mt ph
n t
ca m
ng.
- Kch thc c
a m
ng l mt danh sch cc kch th
c c
a cc t
p hp chs
, v
d
:
>> r = [1 2 3; -1 -2 -7]
r =
1
2
3
-1
-2
-7
>> size(r)
ans =
2
3
Ngh
a l kch thc c
a m
ng
sl 2x3 (2 hng, 3 c
t).
- Ma tr
n l mt m
ng hai chi
u (kch thc m x n vi cc quy lu
t
t bi
t cho
php cng, nhn v cc tnh ton khc. N
i khi khng c m
t sphn bi
t chnh thc no, thm ch l gia mt
i lng
v hng v m
t ma trn kch thc 1x1.
- Cc l
nh c thc s
p x
p theo sphn bi
t gia m
ng/ma tr
n, nhng
Matlab thng cho php b
n sdng chng l
n l
n m
t cch tho
i mi. tng
- 27 -
y (v b
t cchno khc) l Matlab mun gicho ngn ngc
a mnh n gi
n
v tnhin, b
n c thtmnh trnh khi cc r
c r
i.
- Cc ph
n tn ltrong ma tr
n c thc ti
p c
n v sa
i b
ng cch s
d
ng chsph
n t(subscripting). Trong Matlab, ph
n tthi ca vctV c
bi
u di
n b
ng k hi
u V(i), chs
c vi
t trong ngo
c
n. V d
:
>> V = [10 20 30]
V =
10
20
30
>> V(2)
ans =
20
>> V(2)=50
V =
10
50
30
Vcthng
Vcthng l chu
i cc s
c phn cch bi d
u ph
y ho
c kho
ng trng. S
lng cc
u s
c g
i l chi
u di ca vct, v mi
u sthng c
nh
c
n nhph
n t
, ho
c
hp ph
nca vct. C php cb
n
nh
p1
vctl m
t chu
i cc gi tr
c bao trong c
p ngo
c vung [ ]. V d
:
>> v = [ 1 3 sqrt(5)]
v =
1.0000
3.0000
>> length(v)
ans =
3
2.2361
ho
c cch khai bo khc cho k
t qut
ng t, sd
ng cc d
u ph
y (, )
>> v = [1, 3, sqrt(5)]
v =
1.0000
3.0000
2.2361
- Trong v d
u tin, cc kho
ng trng
c dng phn cch cc ph
n tc
a
vct. Kho
ng trng (space) r
t quan tr
ng trong khi khai bo vct,
i
u ny c
thminh h
a b
ng skhc bi
t nhgia hai dng l
nh di y:
>> v2 = [3+ 4 5]
v2 =
7
5
>> v3 = [3 +4 5]
v3 =
3
4
5
- Nh c
p trn, chng ta c thxem ho
c thay
i gi trca nhng ph
n
tring bi
t c
a vct:
- 28 -
3.3.
Vectct
Vctct c c
u t
o tng tnhvcthng. Khi
nh ngh
a vctc
t, cc ph
n
tc phn cch nhau bik t
; ho
c bi
newlines. V d
:
>> c = [ 1; 3; sqrt(5)]
c =
1.0000
3.0000
2.2361
>> c2 = [3
4
5]
c2 =
3
4
5
>> c3 = 2*c - 3*c2
c3 =
-7.0000
-6.0000
-10.5279
(shift + )
(shift + )
V dtrn cho th
y cc vctc
t c th
c c
ng ho
c trvi nhau n
u chng c
cng chi
u di.
3.4.
x =
1 2 3 4
>> y = 3:7
y =
3 4 5 6 7
>> z = 1:-1
z =
Empty matrix: 1-by-0
- M
t cch t
ng qut th a : b : c st
o ra m
t vc tvi cc ph
n tb
t
u
tgi trc
a a, t
ng d
n vi bc t
ng b
ng gi trca b, cho t
i khi
t ti gi tr
ca c (skhng t
o ra m
t gi tr
vt qu c). i
u ny gi
i thch v sao 1:-1 t
o ra
mt vctrng [ ].
>> 0.32:0.1:0.6
ans =
0.3200 0.4200 0.5200
>> -1.4:-0.3:-2
ans =
- 29 -
- Ton t
: cn c dng
trch xu
t mt ph
n c
a vct. Githi
t chng ta
c vc t
>> r = [1:2:6, -1:-2:-7]
r =
1 3 5 -1 -3 -5 -7
th
trch ra cc ph
n ttth3
n th6 ta c thdng l
nh:
>> r(3:6)
ans =
5 -1 -3 -5
ho
c trch cc ph
n ttheo mt quy lu
t, ch
ng h
n:
>> r(1:2:7)
ans =
1 5 -3 -7
Hy xem r(1:2:7)
3.5.
cho
ta k
t qunhthno?
nh (c
ng, tr) vi cc
vctc cng chi
u di. Matlab sbo l
i khi ta thc hi
n cc php ton ny vi
cc vctc kch thc (chi
u di) khc nhau. V d
:
v1 =
[1
2
3]
v2 =
[4
5
6]
>> v1+v2
ans =
5 7 9
>> v3=3*v1
v3 =
3 6 9
>> v4=2*v1-3*v2
v4 =
-10 -11 -12
>> v5=[10 11 12 13];
>> v4+v5
??? Error using ==> plus
Matrix dimensions must agree.
- M
t vc tcng c thnhn dc vi m
t
i lng v hng (mt s
), thao tc
c Matlab ti
n hnh vi tng phn t.
- ti
n hnh cc tnh ton cng lo
i (tnh ton v
i t
ng ph
n t): nhn, chia v
ly tha, Matlab a ra cc ton t .*, ./ v .^. V d
:
>> v1.*v2
ans =
4 10
18
- 30 -
2.5000
2.0000
Ton tl
y tha c th
c sdng theo hai cch, vi l
y tha sv hng
ho
c l
y tha vct:
>> v2.^2
ans =
16 25 36
>> v2.^v1
ans =
4 25 216
L do Matlab c
n cc ton t
. ny sc lm r hn trong chng 5.
- .* thc ra c ngh
a c
a mt php nhn ma tr
n, tng ng vi .* cho cc vct.
T
t ccc hm sh
c dng s
n c
a Matlab
c thi
t k
ho
t
ng vi cc
vct(v ma tr
n), v v
y chng ta c thxy dng cc di
n gi
i
i sho
t
ng
vi tng ph
n tc
a vct.
x
y
VD: o
n m l
nh di y tnh ton gi trbi
u thc 2 x x 3 cos(. y )
theo-tng-ph
n-t. Tnh vi m
i mt ph
n ttrong vctx v y:
>> x = [1 2 3]; y = [4 5 6];
Lu cc php tnh ca cc
= [8 9]
sort(cd)
-3
18
- 31 -
Lu r
ng cu l
nh cu
i cng (sort) s
p x
p cc ph
n tc
a vcttheo chi
u t
ng
d
n. Ta cng c thsdng cc l
nh cat, vertcat, horzcat ghp n
i cc vct
(xem thm help).
* Cc l
nh cho thng tin vma tr
n (vc t):
size
length -
kch thc c
a chi
u di nh
t (
c bi
t l cho vct)
ndims -
schi
u
find
cc chsc
a cc ph
n tkhc 0
* Chuy
n vma tr
n:
Ta c thchuy
n
i mt vcthng thnh mt vctc
t (v ngc l
i) b
ng mt
qu trnh g
i l chuy
n v
k hi
u b
ng k t . Hy xem cc v dsau:
>> w, w', c, c'
w =
1 -2 3
ans =
1
-2
3
c =
1.0000
3.0000
2.2361
ans =
1.0000 3.0000 2.2361
>> t = w + 2*c'
t =
3.0000 4.0000 7.4721
>> T = 5*w'-2*c
T =
3.0000
-16.0000
10.5279
3.6.
- 32 -
- 33 -
4.1.
nh ngh
a v khi to ma trn
- Ma tr
n l d
ng c
u trc dli
u cb
n c
a Matlab. V nh c
p chng
trc, cc vctch
ng qua l nhng d
ng
c bi
t c
a ma tr
n c kch thc (1 x
n) ho
c (m x 1).
- Td
u nh
c ca ca snh
p l
nh,
nh l
nh help elmat v help
mt danh sch cc l
nh v hm lm vi
c vi ma tr
n trong Matlab.
matfun
- C php c
a vi
c
nh ngh
a v khi t
o ma tr
n r
t gi
ng vi nhng g b
n
th
y vi vct: cc kho
ng tr
ng (ho
c d
u ph
y) phn cch cc ph
n ttrong mt
hng, v cc d
u ch
m ph
y l k hi
u cho bi
t b
t
u m
t hng mi sau .
V dkhi b
n
nh:
>> A = [2 -1 0 0; 1 1 2 3; -1 4 0 5 ]
Matlab s
a ra k
t qu
A =
2
-1
-1
V bi
n A by gicha m
t ma tr
n 3x 4.
- Cc ph
n tn lc
a m
t ma tr
n c thc ti
p c
n v ch
nh sa theo cng
mt cch nhvi cc vct, l cung c
p cc chshng v c
t. V dl
nh
A(3,2) = 0 sthay
thgi trph
n tc
t 2 hng cui cng ca ma tr
n A thnh 0.
- C nhi
u l
nh
khi t
o m
t sd
ng ma tr
n
c bi
t, v d
zeros(n,m)
t
o ma tr
n vi t
t ccc ph
n t= 0
ones(n,m)
t
o ma tr
n vi t
t ccc ph
n t= 1
eye(n)
t
o ma tr
n n vkch thc n x n.
- khi t
o mt ma tr
n vung
c bi
t, b
n c thsdng d
ng ng
n zeros(n),
l
nh ny ng
m
nh r
ng shng v sc
t c
a ma tr
n l b
ng nhau.
4.2.
* Cc l
nh dng
xy dng ma tr
n v m
ng:
eye
ma tr
n
n v
- 34 -
zeros -
ma tr
n vi t
t ccc ph
n t= 0
ones -
ma tr
n vi t
t ccc ph
n t= 1
diag
ma tr
n
ng cho (ho
c chch xu
t m
t ng cho)
toeplitz -
ma tr
n vi mi
ng cho b
ng 1 h
ng s
triu
ma tr
n tam gic trn
tril
ma tr
n tam gic di
rand
ma tr
n vi cc ph
n tng
u nhin (t-1
n 1)
linspace -
ma tr
n vi cc ph
n tcch
u nhau
cat
mc ni cc ma tr
n vi nhau theo mt chi
u
nh
repmat -
xy dng ma tr
n mi b
ng cch l
p m
t vc ttheo 1 chi
u
(ho
c nhi
u chi
u)
nh
Xem help
c hng d
n chi ti
t hn vcch sd
ng cc hm ny.
4.3.
4.4.
4.5.
4.6.
4.7.
Tm nghim ca a thc
4.8.
4.9.
- 35 -
- 36 -
5.1.
ng g
n nhcc Procedures v Functions trong cc ngn ngl
p trnh thng
d
ng khc.
- Vcb
n ni dung ca mt script file
c hi
u ging h
t nhkhi n
i dung
c g vo t
i d
u nh
c ca snh
p l
nh. Hi
u n gi
n th n chthc hi
n mt
chui cc cu l
nh ca Matlab. Tuy nhin trong th
c tnhi
u ngi dng a thch
sdng Matlab b
ng cch nh t
t ccc l
nh vo script file v ch
y (cc) file .
u i
m ca phng php sdng script l:
T
o ra v xem xt, ch
nh sa m
t chu
i nhi
u dng l
nh (th
ng l 4, 5
dng trln).
C thddng xem l
i ho
c thc hi
n l
i cng vi
c c
a b
n sau ny.
Ch
y cc tnh ton (cng vi
c)
i h
i cng cao c
a CPU trn n
n, x
l k
t quv lu l
i t
ng, cho php b
n log-off (lin quan ti UNIX).
5.2.
- Bin so
n: Matlab cung c
p cho ta mt cng cbin so
n cc m-file kh tt,
l Matlab editor. Tuy nhin b
n c thtdo sd
ng cc ng d
ng so
n th
o khc
cho file text c
a Windows nhNotepad, Textpad...
- B
n c thkhi
ng Matlab Editor b
ng nhi
u cch: Tmenu File/New/M-file,
ho
c nh
n thp phm t
t
Ctrl N, hay cch nh
n vo nt New Doccument
trn thanh cng c
, cch
nh vo ca snh
p l
nh
edit v tn file (n
u file cha
tn t
i trong thm
c hi
n thi, Matlab sh
i b
n
kh
ng
nh r
ng b
n mun
t
o ra m
t file mi vi tn nhv
y)
- So
n th
o cc cu l
nh ca b
n v Save.
- bi
t trong thm
c hi
n t
i (current directory) c nhng m-file no, b
n c
thsd
ng l
nh
>> what
- 37 -
- xem n
i dung ca mt m-file, b
n nhy p vo file
mn ra ho
c
nh l
nh
>> type
tn_file
Chc cc thng s
u ra s
c thhi
n trn mn hnh, chkhng ph
i b
n
thn cc cu l
nh.
- c thxem cc cu l
nh c trong file cng lc vi cc thng s
u ra, b
n
nh l
nh
>> echo on
v l
nh 'echo off' st
t chc n
ng ny.
5.3.
Ch thch (comments)
- Mt d
ng cu quan tr
ng trong M-file l cu ch thch, c b
t
u b
ng k t
ph
n tr
m (%). B
t cph
n text no sau k t'%' trn mt dng l
nh sc
Matlab bqua khng thc hi
n (trtrng hp k t% l mt ph
n c
a chui k
tgia hai d
u nhy
).
- M
c ch chnh ca tnh n
ng ny l cho php bsung cc cu ch thch
(comments) vo script file, m tr rng hn m
c
ch, tnh n
ng cc l
nh,
o
n,
vng l
p, bi
n...
- Hn na, kh
i cc cu ch thch
- 38 -
% bien do song...
v k
t qunh
n
c sl
script nay giai quyet cac bai tap ve nha
lien quan toi kien thuc chuyen nganh ky thuat bien
5.4.
Hm dng s
n, VD nhsqrt( ), log( ), exp( ), sin( )...
nh ngh
a mt hm, VD: Dng l
nh di y skhai bo
hm f ( x ) x.sin( x ) 2 v tnh gi trhm t
i x=5 b
ng cch chuy
n
hm ny cho l
nh inline c
a Matlab trong mt c
p d
u nhy :
>> f = inline('x*sin(x)+2'), f(5)
f =
Inline function:
f(x) = x*sin(x)+2
ans =
-2.7946
- Sau na chng ta c
n phn bi
t cc hm m-file v cc script-file:
Script m-file, nh
c
p ph
n tr
c, khng ph
i l mt hm. N
khng c cc tham s
u vo cng nh
u ra, v
n gi
n n chthc
hi
n m
t chui cc cu l
nh ca Matlab, v
i cc bi
n
c
nh ngh
a
trong khong gian lm vi
c.
nh ngh
a
hm, qua lin hgia cc tham s
u vo v
u ra.
Hm l cch chy
u pht huy khn
ng ca Matlab. So v
i cc script, cc hm
c khn
ng phn chia nhi
m vtt hn nhi
u.
Mt v dvhm trong Matlab c ththam kh
o bi t
p 4 (tnh di
n tch tam
gic), chng 8 trong gio trnh ny.
- 39 -
* Cc bc chnh c
n tun theo khi khai bo m
t hm trong Matlab l:
-
t tm cho hm, lu r
ng tn
khng c xung
t vi cc tn
nh ngh
a c
a n s
c lu trong mt file tn l dientich.m
-
Dng
u tin ca file ny c
n c d
ng thc nhsau:
function[cc outputs] = tn_hm(cc inputs)
L
y v dtrong bi ton c
a chng ta, bi
n
u ra S (di
n tch) l mt hm
sc
a cc bi
n
u vo a, b, c (l chi
u di c
a ba c
nh). Do
dng
u
tin ca m-file hm dientich sl:
function [S] = area(a,b,c)
- So
n th
o hng d
n sdng cho hm (khng b
t buc, xem thm ph
n
ch thch - Comments). M tng
n gn mc
ich c
a hm v lm thno
sd
ng n. Cc dng ny c
n b
t
u b
ng k t%, hay chnh l cc
dng ch thch m ta
c
p, v Matlab sbqua n khi thc thi hm.
- Cu
i cng v c
ng l quan trng nh
t: so
n th
o m l
nh thc thi ni
dung ca hm. i cng vi n
i dung ta c
ng c
n
y
cc cu ch thch
Ta th
y r
ng ch thch
y kh
c ni dung c
ng nhcch sdng hm dientich b
ng cch
nh l
nh help
dientich tca snh
p l
nh, hng d
n thu c snhsau:
>> help dientich
Thsdng hm va l
p tnh di
n tch m
t tam gic khc:
- 40 -
Nhv
y chng ta
i qua cc bc cb
n tkhai bo m
t hm b
ng m-file,
so
n th
o n
i dung, m l
nh, v sdng hm. Hy sdng help
c hi
u bi
t
su hn vhm trong Matlab.
* Mt kha c
nh quan trng khc c
a hm M-file l h
u h
t cc hm xy dng
trong Matlab (trnhng hm li ton h
c)
u l cc M-file m b
n c th
c v
copy. y l mt cch r
t t
t h
c h
i, luy
n t
p lp trnh v cng l m
t m
o.
5.5.
- Thng thng mt hm c
n rnhnh ty theo cc i
u ki
n thc thi. Matlab
cung c
p cho ta cc cng c
lm vi
c ny cng nhh
u h
t cc ngn ngl
p
trnh khc.
* Cu l
nh if...elseif...else...end
- V dsau minh h
a h
u h
t cc tnh n
ng c
a if
if isinf(x) | isreal(x)
disp(So lieu dau vao xau!)
y = NaN;
elseif (x == round(x)) && (x > 0)
y = prod(1:x-1);
else
y = gamma(x);
end
- Ta th
y cc i
u ki
n cho cu l
nh if c thlin quan ti cc ton tquan h
c
p chng 2, c
ng c thlin quan ti cc hm cho ta gi trlogc (isinf,
~isreal...
ki
m tra xem x c ph
i l sv cng, hay x khng ph
i l sthc... ).
* Cu l
nh switch...case...case... case...otherwe...end
- Bcu l
nh if/elseif chhu ch trong trng hp chc m
t vi la chn. Cn
khi c m
t slng ln cc la ch
n khd
, thng thng ta dng switch thay
th
. V d
:
switch donvi
case Chieudai
disp(met)
case The tich
disp(lit)
case Thoi gian
disp(giay)
otherwise
disp(Toi chiu thua)
end
- 41 -
- Di
n gi
i c
a l
nh switch c thl m
t chu
i ho
c m
t s
. Trng hp
u tin
ph hp vi case th cc l
nh ca n s
c thc thi.
- C thsd
ng otherwise ho
c khng. Trong trng hp c sd
ng, th Matlab
thc thi cc l
nh sau otherwise n
u khng c trng hp no ph hp vi cc
case.
5.6.
* Vng l
p for...end
-
c sd
ng khi ta mun l
p m
t o
n m l
nh cho m
t sl
n ty (thc ra ta
st dng
(shift + )
T
t ccc l
nh gia hai dng b
t
u b
ng
for v k
t thc b
ng
end
u c
l
p
i l
p l
i vi n=1 l
n thnh
t, n=2 l
n th2... cho ti khi n=8.
L
nh subplot t
o ra m
t m
ng 4x2 ca s
thcon trong m
t
thchnh. l
n
l
p thn, mt hnh sc vln ca s
thcon thn.
Hnh v
: Minh ha cho vng lp for...end
* Vng l
p while...end
- 42 -
- c sd
ng khi b
n mu
n thc hi
n l
p i l
p l
i m
t o
n m l
nh ca
Matlab cho ti khi mt i
u ki
n (logic) no
c tha mn, nhng ta khng
thni trc n sc
n l
p bao nhiu l
n. Khi
chng ta c thsdng vng l
p
ny.
- V d
, tm gi trln nh
t ca n sao cho t
ng diy v
n nhhn 100?
12 2 2 3 2 ... n 2
- M l
nh cho Matlab thc thi nhi
m vtrn:
>> S = 1; n = 1;
>> while S+ (n+1)^2 < 100
n = n+1; S = S + n^2;
end
>> [n, S]
ans =
6
91
(shift + )
(shift + )
- V dkhc: Tm gi trg
n
ng c
a nghi
m ph
ng trnh x=cos(x) ?
5.7.
- Nh
p dli
u trc ti
p tbn phm strnn khng th(khng thc t
) khi
Lng dli
u qu ln
Dli
u
c dng cho phn tch nhi
u l
n
File dli
u c
nh d
ng sd
ng cch
nh d
ng chui khai bo
chnh xc xem dli
u
c lu vtr no v nhthno.
File dli
u khng
nh d
ng th khc, n ch
nh r
nh d
ng c
a s.
Cch
n gi
n nh
t
h
c cch lm vi
c vi file dli
u l thng qua v dsau:
Gisdli
u d
ng sc lu trong file c tn table.dat trong thmc hi
n
hnh, dli
u nhsau
100
2256
- 43 -
4564
3653
6798
6432
3 l
nh sau
>> fid = fopen('table.dat','r');
>> a = fscanf(fid,'%3d%4d');
>> fclose(fid);
sl
n lt lm cc nhi
m v:
Mm
t file
c, vi
c ny c ch
nh b
ng chui
r, (r l vi
t t
t
ca read). Bi
n fid
c gn cho m
t gi trb
ng 1 snguyn tduy
nh
t,
c vo bnhtng c
p stfile (file c schthl fid), mt sc 3
chsv mt sc 4 chs
.
A = reshape(2,2,5)';
6.1.
Trng hp
n gi
n nh
t l bi
u di
n sbi
n thin t
ng gi
m sli
u trong mt
dy. Ch
ng h
n vi dy sli
u mc nc z
o c ta c thbi
u di
n di d
ng
ng qu trnh nhsau:
z = [-0.05 0.18 0.28 0.33 0.19 0 -0.26 -0.35 -0.31 -0.22 0.05 0.14 0.31
0.38 0.18 0.09 -0.11 -0.20 -0.36 -0.11 0.08];1
plot(z)
L
nh plot(z) svbi
u
d
ng ng vi sli
u cho bi vec-tz. Trng hp
ny tr
c honh s
nh sthtl
n lt 1, 2,... i
u ny khng gip ch g trong
trng hp thng thng khi tr
c honh c
n bi
u thkho
ng cch khng gian ho
c
1 Ch r
ng
y xu
ng dng do h
n chbngang c
a ti li
u. Khi l
p trnh khng
n Enter v my s
hi
u nh
m z thnh m
t ma tr
n.
- 44 -
thi gian. Ch
ng h
n, n
u sli
u z v dtrn l mc nc o c t
i cc thi
i
m 0 s, 10 s, 20 s... (cch nhau 10 giy) th ta c thbsung m l
nh nhsau:
figure;
t = 0:10:200;
plot(t, z);
y l
nh figure c tc d
ng t
o ra m
t hnh mi.
Ch : Cc vec-tc
n vthng c r
t nhi
u ph
n t, v do
ta c
n dng d
u;
cui cu l
nh ng
n khng cho my hi
n l
i n
i dung ca ton bvec-t
.
Tm l
i vbi
u d
ng
ng ni chung ta theo 3 bc sau:
1) Pht sinh m
t vec-tcha cc t
a x ca cc i
m
2) Pht sinh mt vec-tcha cc t
a
y, c thl tsli
u s
n c, ho
c l mt
hm tnh tcc gi trtng ng ca x. Trong trng hp sau c
n lu php tnh
c
n
c p dng cho tng ph
n tmt.
3) Thc hi
n l
nh vplot(x, y)
Trong cc bi
u ta ph
i ghi tiu ca bi
u
v
i
n cc
i lng v n v
ln cc trc (x, y). C ththc hi
n vi
c ny b
ng cch:
title('Tiu
bi
u
')
xlabel('Tiu
trc x')
ylabel('Tiu
trc y')
Ch
ng h
n vi v dvm
u quan tr
c m
c n
c theo thi gian nhtrn ta c th
vi
t:
title('Qua trinh muc nuoc thuc do')
xlabel('t (s)')
ylabel('z (m)')2
K
t qubi
u
thu
c nhtrn Hnh 1. MatLab t
ng c
n ch
nh ph
m vi ca
trc tung v trc honh sao cho c thhi
n thton bsli
u c
n v
. Tuy v
y
trong m
t strng hp ta c
n thhi
n tng ph
n ca bi
u
, ho
c v tnh th
m
mm c thch
nh sa ph
m vi c
a cc tr
c. Cu l
nh nhsau:
2 V
y n
u mu
n c V(m3 ) th sao? Hy thV(m^3) xem!
- 45 -
n t = 150 s, v h
n ch
cao
m
t nc t0
n 0.4 m, ta g l
nh:
axis([100 150 0 0.4])
Qua trinh muc nuoc thuc do
0.4
0.2
0.3
z (m)
z (m)
-0.2
-0.4
0.2
0.1
50
100
t (s)
150
200
0
100
110
120
130
140
150
t (s)
xa ton bthhi
n thi, ta g l
nh:
clf
6.2. La chn mu v, nt v
Trng hp c nhi
u
ng nt vkhc nhau, ta nn phn bi
t b
ng nhng ki
u
v mu nt vkhc nhau. Nhng la ch
n ny c ngay trong cu l
nh plot.
plot(x, y, 'la ch
n')
Trong , la chn l m
t chu
i k tc 3 ph
n qui
nh nhsau:
md-vi m l m
t k tchmu v
, thng l ch
u ca tti
ng Anh tng ng
d l k hi
u
nh d
u cc i
m nt
-- l mt hay hai k tthhi
n ki
u nt v
V d:
- 46 -
plot(x, y, 'r') v
thnt vmu
(red). Khng c la ch
n ki
u nt vcth
,
do
my svki
u nt li
n (m
c
nh).
plot(x, y, 'g--') v
thnt vxanh lc (green). Nt v
c ch
n l ki
u nt t
(--).
plot(x, y, 'b*-') vthnt vxanh lam (blue). Nt vc ch
n l ki
u nt li
n
vi cc i
m d
u sao (*-).
Hnh 3: Ki
u nt vcng cc thuc tnh khc c thla chn
trc ti
p sau khi chn chEdit Plot v nhy phi chut
vo ng biu
Nhv
y c ththp cc ki
u mu v nt vkhc nhau, theo b
ng sau
y 3:
Mu v
i
m nt
Nt v
red,
nt li
n
d
u sao
green, xanh lc
--
nt t
d
u c
ng
nt ch
m
hnh vung
black,
en
.-
nt ch
m g
ch ^
tam gic
3 Th
c ra ta c thl
a ch
n ki
u v nt vtrc ti
p trn bi
u
c
a MatLab b
ng cch ch
n Edit Plot
(ho
c nt
trn thanh cng c
) r
i nhy ph
i chu
t vo
ng c
n ch
nh v l
a ch
n Line Style (ki
u
ng), Line
Width (br
ng) ho
c Marker (ki
u
i
m nt) (xem Hnh 3).
- 47 -
Theo m
c
nh, khi c m
t ng mi c vra th
ng csbi
n m
t. v
nhi
u
ng trn cng mt bi
u ta c
n g l
nh:
hold on
trc khi vcc ng ti
p theo.
Ch
ng h
n ta c ththm mt
ng nt
t n
m ngang bi
u thmc nc b
ng 0
theo cch sau:
hold on; plot([0 200],[0 0],':');
B
n thn trn
ng m
c nc c ththm cc
i
m d
u *:
plot(t,z,'*-');
Qua trinh muc nuoc thuc do
0.4
0.2
0.2
z (m)
z (m)
-0.2
-0.4
0
-0.2
50
100
t (s)
150
200
Hnh 4: Bi
u dng ng vi hai nt vc
ki
u khc nhau
-0.4
0
50
100
t (s)
150
Hnh 5: Bi
u c khung v ng dng
N
u mu
n ng khung thv t
o cc
ng dng ta l
n lt g vo cc l
nh:
box on
grid on
Ngc l
i, xa cc ng
ng khung v
ng dng, chc
n g:
box off
grid off
6.3. To cc ch thch, ch gii trn hnh v
Mt bi
u m
c d mang nhi
u thng tin nhng
i khi ta v
n mu
n lm r thm
b
ng nhng ch thch (thng l nhng nt vn gi
n b
ng tay v ch thch
b
ng ch). Ch
ng h
n, vi v dtrn ta mu
n chra trn bi
u
vtr mc nc
t cc
nh c
a ng qu
trnh
- 48 -
200
z (m)
0.2
-0.2
-0.4
50
100
t (s)
150
200
* Ch gi
i (legend):
Khi c nhi
u
ng bi
u trn m
t th
, c
n c ch gi
i (legend)
phn bi
t
chng. Gisc
ng trn
thqu trnh mc nc trn, ta bsung thm mt
ng mc nc tnh ton
c tm hnh:
z2 =[0.05 0.2 0.34 0.38 0.28 0.08 -0.21 -0.35 -0.23 -0.18 0.11 0.22 0.4
0.45 0.2 0.13 -0.02 -0.11 -0.32 -0.02 0.09];
hold on; plot(t,z2,'-o');
title('Qua trinh muc nuoc tai N23');
Trn thanh cng c
,
n nt
(ho
c menu Insert Legend). Sau
hy nhy
p
ph
n ch gi
i mi xu
t hi
n, g vo tn ch gi
i c
n
t (Hnh 7).
4 Mu
n c z max, hy thg z_{max}. G z_max c
c khng, t
i sao?
- 49 -
Hnh 7: Ch
nh sa tn ch gii tng ng vi cc
ng qu trnh
,
n Delete ho
c ch
n Delete trong danh mc khi
nhy ph
i chut trn Hnh 3.
- MatLab c thlu l
i bi
u
chng ta t
o ra, di d
ng nhi
u d
ng file
nh
chu
n hi
n nay: *.gif, *.png, *.jpeg, *.emf, *.eps v.v... Bn c
nh , MatLab cn
c m
t d
ng file ring g
i l *.fig, trong lu ton bthng tin ca cc
ng,
nt,
i
m... trn bi
u
. Do v
y m file fig chi ti
t hn
ng thi thng c kch
thc file ln.
- lu bi
u trong MatLab ta chn Menu File Save, sau nh
p tn cho file
hnh m ta mu
n lu. C
ng c thnh
n vo bi
u tng Save ( ) trn thanh cng
c. Ch ch
n ki
u file hnh (Save as type) thch h
p.
6.5. thLogarit
Trong mt strng h
p, cc thlogarit c
n
c sd
ng, ch
ng h
n bi
u
ng c
p ph
i h
t. Mun
t thang logarit vi tr
c honh ta chc
n thay tn l
nh
plot b
ng semilogx.
Ch
ng h
n ta c
n v
ng c
p phi h
t vi m
u bn ct sau:
ng knh
(mm)
Kh
i lng
(mg)
- 50 -
d < 0.15
0.15 < d < 0.21
0.21 < d < 0.30
0.30 < d < 0.42
0.42 < d < 0.60
0.60 < d
(Ton b
)
900
2900
16000
20100
8900
1200
50000
Kh
i
lng
(mg)
900
2900
16000
20100
8900
1200
50000
Tl
(%)
1.8
4.8
32.0
40.2
17.8
2.4
100
T
lc
ng
d
n
P (%)
1.8
7.6
39.6
79.8
97.6
100
ng knh
d (mm)
0.15
0.21
0.30
0.42
0.60
1
Sli
u dng v
thl hai c
t sau cng: tlc
ng d
n (P) v ng knh (d).
C P (%) kh
i lng bn ct m
n hn d (mm).
y
githi
t r
ng ng knh
ln nh
t b
ng 1 mm nhl gii h
n trn ca bi
u
.
d = [0.15 0.21 0.30 0.42 0.60 1];
title('Bieu do duong cap phoi hat');
xlabel('d (mm)');
ylabel('P (%)');
semilogx(d,P,'*-');
grid on; box on;
- 51 -
P (%)
80
60
40
20
0
10
d (mm)
nh) vi cu l
nh c d
ng chung nhsau:
subplot(m,n,k);
Hnh 9: Vtr cc bi
u trong dy to bng l
nh subplot
- 52 -
St
o ra mt b
ng gm (m n) bi
u
nh(m hng v n ct). Ti
p hnh thk
(tnh ttrn xu
ng di, tri qua ph
i) s
c kch ho
t v chu
n bc v
.
Ch
ng h
n, sau khi thc hi
n l
nh
subplot(2,3,4);
ta c k
t qunhHnh 8.
G
n hn na ta c thvi
t (trong trng hp m, n, k < 10):
subplot 234
Xt mt v dn gi
n: ta c
n vng qu trnh mc n
c (z) v v
n tc dng
ch
y (v) theo thi gian (t), nhng trn hai bi
u khc nhau. c s
i chi
u
vthi gian gia hai bi
u
ta nn x
p chng theo mt ct dc. Nhv
y m = 2 v
n = 1.
t = 0:5:100;
z = [-0.14 -0.08 -0.05 -0.04 0.01 0.07 0.15 0.23 0.25 0.37 0.4 0.45
0.55
0.6 0.66 0.76 0.82 0.91 1 1.03 1.14];
v = [0.84
0.89 0.91 0.89 0.91 0.88 0.92 0.97 0.97 0.97 0.99
1.02 0.96 1.03 0.98 1.04 1.04 1.11 1.04 1.12 1.16];
subplot 211
plot(t, z); xlabel('t (phut)'); ylabel('z (m)');
title('Duong qua trinh muc nuoc tai diem A1');
subplot 212
plot(t, v, 'g'); xlabel('t (phut)'); ylabel('v (m/s)');
title('Duong qua trinh luu toc tai diem A1');
K
t qunhtrn Hnh 7.5
5 MatLab cn c l
nh plotyy cho php hai tr
c tung v
i hai
i l
- 53 -
z (m)
1
0.5
0
-0.5
20
40
60
80
t (s)
Duong qua trinh luu toc tai diem A1
100
v (m/s)
1.4
1.2
1
0.8
20
40
60
80
t (s)
- 54 -
100
a hnh ca mt khu v
c nh). Bn c
nh , bi
u khng gian cn c
thc dng
bi
u di
n su
a hnh hay mt trng khng gian ni chung
(nhi
t
, kh p ...). Trong t
t ccc tr
ng hp ni trn, lun c m
t bi
n (z)
c bi
u di
n theo hai bi
n khng gian trn m
t
t (x, y).
7.1.
Cc dng cbn
Cc dng cbn
MatLab htrnhi
u phng php bi
u di
n sli
u; trong ti li
u ny ta lm quen
vi m
t slo
i cb
n, l:
M
ng mu (color patch)
ng
ng mc (contour)
Bm
t 3 chi
u (surface)
Hy b
t
u vi m
t v d
n gi
n l m phng
a hnh y bi
n c
a mt khu
vc gitng
c cho trong ma tr
n z. y bi
n ny c d
ng tng tnhm
t
c
t ngang cn b
ng (Dean) theo phng trnh:
z = - 0.1 y2/3
Vi trc x dc theo bi bi
n v trc y hng ra khi. Ta xt l
i t
a trn m
t
b
ng, cc
i
m nt li c ph
m vi 0 < x < 200, 0 < y < 200. Kho
ng cch gia
cc i
m nt li theo phng x l x = 10, theo phng y l y = 4. Ngh
a l ta
c
a t
t ccc
i
m nt li c d
ng:
0,0
10,0
200,0
0,4
10,4
200,4
x i , y i
=
0,200
10,200
200,200
L
nh meshgrid sgip ta lm
i
u :
[x, y] = meshgrid(0:10:200, 0:4:200);
(Mt l
n na c
n ch d
u ; cui cu l
nh, n
u khng r
t nhi
u con ssc
in ra mn hnh!)
L
nh meshgrid l
y hai thng s
: thng svec-tthnh
t l cc t
a trn trc x,
thng svec-tthhai l cc t
a
trn trc y. K
t quta
c mt ma tr
n cc
- 55 -
i
m trn mt vng hnh chnh
t (51 21) c cc t
a
tng ng dng tcc
vec-ttrn6. Sau
m
ng z s
c tnh tm
ng y theo cng thc Dean:
z = -0.1 * y .^ (2/3);
Trong c
n ch php tnh l
y tha cho tng ph
n t.
Cu l
nh n gi
n nh
t hi
n thm
ng
mu bi
u thz l:
pcolor(x, y, z)
B
ng mu m
c
nh c dng c tn l
7
jet. Ta c ththay b
ng mu ny b
ng
mt sb
ng mu khc, ch
ng h
n:
colormap(gray); pcolor(x, y, z);
C
n hi
n tn cc tr
c x v y theo cch
tng tnhta
lm vi bi
u
d
ng
ng:
xlabel('x(m)'); ylabel('y(m)');
C thhi
n ththanh ch thch bn c
nh
b
ng mu b
ng l
nh:
colorbar
Vi
t thm dng chz(m) bn c
nh thanh chd
n mu ny b
ng cch Insert
Text Box. Xa b
ng bao c
a hnh chnh
t b
ng cch nhy ph
i chu
t Line
Style None.
Ch r
ng khi hi
n cc b
n
a hnh / b
n vm
t b
ng, trong h
u h
t cc
trng hp ta mu
n
t nhng tlb
ng nhau trn hai trc x v y. Khi
ta dng
l
nh:
axis equal;
6 x v y
u l ma tr
n 2 chi
u. Do cc
i
m trn l
i x
p theo hng nn ta nh
n th
y cc ph
n tgi
ng
nhau trn m
i c
t c
a x (cc
i
m c cng t
a
x); v t
ng t
i vi y.
0
0
x=
10 200
10 200
10 200
0
0 0
4
4 4
v y=
] [
7 B
ng mu jet m
c d r
c rnhng khng hi
u qukhi in tr
ng
en, thay vo
nn dng b
ng mu
gray.
- 56 -
Ti
p theo ta c khung c
a thl
i cho va vi b
ng mu 8:
axis tight;
V c
ng nh
i vi m
ng mu, ta c thc
n
ch
nh cc tr
c mt cch hp l:
axis equal tight;
xlabel('x(m)'); ylabel('y(m)');
-3
-3
140
-2.5
120
-2.5
-2.5
100
-2
-2
-2
-1.5
-1.5
-1.5
80
60
Cc
ng
ng mc c
a
y bi
n
xu
t
hi
n song song vi tr
c x, nhng c
n ph
i c
gi trstrn ng
ng mc:
clabel(C,h);
-3
160
y (m)
Bn c
nh cch dng bi
u
m
ng mu, cn
c thbi
u thdi d
ng
ng
ng mc.
Cch ny thng c dng vi cc b
n in
ln gi
y:
[C,h] = contour(x,y,z);9
40
-1
-1
-1
20
-0.5
00
0
50
-0.5
0
100
x (m)
-0.5
0
150
0
200
Hnh 12: ng ng mc bi
u din
a
hnh y bi
n vi mt ct theo Dean
Ta c
ng c thbi
u di
n
a hnh di d
ng khng gian (3 chi
u) sd
ng l
nh
surf ho
c mesh:
figure; surf(x, y, z);
figure; mesh(x, y, z);
Sau
hy sdng cng cxoay hnh b
ng cch
n nt Rotate 3D trn thanh
cng c(
).
8 Hai l
nh trn c th
c g
p l
i thnh m
t l
nh axis equal tight
9 Cch vi
t ny c vkhc vi cu l
nh thng th
ng, tuy nhin theo MatLab, cc l
nh v
u c thvi
t
d
i d
ng hm. Ch
ng h
n, hy g thl
nh zzz = plot(t, z). M
t khc, c g khc n
u ta g l
nh
clabel(contour(x,y,z)); ?
- 57 -
Hnh 13: Bi
u din mt ct Dean di dng
mt 3 chiu
7.2. Ch
nh cc vtr trong khng gian 2 chiu
Khi thhi
n dli
u khng gian b
ng m
ng mu, trong mt strng hp ta ph
i
chra nhng vtr tha mn m
t i
u ki
n no . Cch n gi
n nh
t l
nh d
u
chng b
ng nhng i
m ring.
Ch
ng h
n, hy chra cc vtr c z < -3
trong v dtrn. C hai bc nhsau:
Tm cc ch
s(i,j) trong ma tr
n c gi
trtha mn z(i,j) < -3
Ch
m cc i
m xc
nh bi x(i,j), y(i,j)
ln m
ng mu
ind = find(z < -3);
hold on;
plot(x(ind), y(ind), ... 'k.');
Hnh 15: nh du trn mng mu 2 chiu
7.3. Mt ct
a hnh
Trong nhi
u trng hp c
n bi
u di
n m
t m
t c
t
a hnh tbi
u
hai chi
u.
V tng qut hn, c thl phn bsu nc, p su
t, m
n, hay b
t k mt
bi
n
c trng no dc theo mt tuy
n xc
nh trn m
t b
ng.
Sli
u ca m
t c
t c l
y t1 ct (ho
c hng) tm
ng 2 chi
u tng ng.
Ch
ng h
n, m
t c
t c x = 100 m (tng ng vi c
t th11 (trong s21 c
t) trong
ma tr
n z):
- 58 -
ymc1 = y(11,:);
zmc1 = z(11,:);
plot(ymc1, zmc1, '*-');
xlabel('y (m)'); ylabel('z (m)');
7.4. Trng vct
Trong cc bi ton kthu
t thy
ng lc thng yu cu m phng trng dng
ch
y. Bi
u di
n dng ch
y trong khng gian 2 chi
u c htrr
t tt trong
MatLab b
ng cu l
nh:
quiver(x, y, u, v)
trong x, y l hai ma tr
n cha t
a
c
a t
t ccc i
m theo phng ngang
(thng
c pht sinh b
ng l
nh meshgrid); u v v l hai ma tr
n cha thnh
ph
n lu t
c c
a t
t ccc i
m (u l lu tc theo phng x, v l lu t
c theo
phng y).
Gistrong thm
c hi
n thi
c file data_u.txt v data_v.txt, m
i file cha
mt ma tr
n gi tru v v. Khi
, hai ma tr
n ny
c
c nhsau:
u = dlmread('data_u.txt');
v = dlmread('data_v.txt');
Gisu v v
c c kch th
c gi
ng nhau = s
i
m trn trc x si
m trn
trc y:
[sizex, sizey] = size(u);
Ta mu
n bi
u di
n ln hnh vi, ch
ng h
n, x = 10 m v y = 5 m:
dx = 10; dy = 5;
[x, y] = meshgrid(0:dx:(sizex 1)*dx, 0:dy:(sizey -1) * dy);
figure;
quiver(x, y, u, v);
xlabel('X(m)'); ylabel('Y(m)');
axis equal tight;
- 59 -
50
Y (m)
40
30
20
10
0
0
20
40
60
80
X(m)
- 60 -
8. PHN BI TP
Bi t
p s1:
Tnh ton sng theo sli
u sau:
o
T = 8 s, H = 2 m, = 30 .
o
Ggi trcho 3 bi
n T, Ho, alpha0.
Th Co.
Th L
o
M1 file disperse.m b
ng cch g>> edit disperse
Vi file mi mhy g vo ni dung sau:function [L] = disperse(h, Lo)
L = Lo;
err = Inf;
while err > 0.1;
Ltry = Lo * tanh(2*pi*h / L);
err = abs(Ltry - L);
L = Ltry;
end;
Ta
thi
t l
p
c hm tnh L tcc gi trh v Lo cho trc
Hy thi
t l
p mt vec-th cha su khc nhau: 3 m, 3.2 m, ..., 4 m. Tnh L t
i
cc su cho bih.
Th C tng
ng vi L
Tnh sin_alpha theo cng thc
sin= sin* C / Co(ch
n v
!)
o
Th alpha (dg l
nh asin)
Th Kr = sqrt(cos/ cos
)
o
trca H
- 61 -
Vi
t k
t qura file ketqua.txt
Bi t
p s2
Quan hgia v
n chuy
n bn ct S v lu tc u c quan hd
ng: S = aub . xc
nh cc hsa v b ng
i ta ti
n hnh th nghi
m v thu
c k
t qusau:
u (m/s)
0.2
0.35
0.57
0.68
0.81
0.96
1.12
S
(m3 /s.m)
0.0002
0.0018
0.0159
0.0282
0.0609
0.1258
0.2858
1) Hy nh
p cc gi tru v S vo hai vec-t, sau
tnh X v Y l logarit tng
ng c
a u v S.
2) Vth
i
m ca X v Y.
3) Hai h s a v b
c xc
nh b
ng cch da vo quan h
:
log S = log a + b log u, hay Y = b X + log a.
Sdng hm polyval
tnh b v log a trong phng trnh trn nhsau:
p = polyval(X, Y, 1)
Ph
n t
u c
a vec-tp chnh l b; ph
n tth2 ca p b
ng log a.
Hy tnh a.
4) V
th
ng th
ng: Y = b X + log a ln cng htrc vi cc
i
m ch
m
cu
2).
Bi t
p s3
1) Mt chui sli
u o
c v
n tc dng ch
y
c pht sinh bi:
t = 0:0.5:48;
N l dy sng
u nhin c chi
u di b
ng length(t)
u = 0.4 + 0.12 sin(2t / 24) + 0.05 N
2) Tnh
ng su
t ti
p t
i ven b, bi
t
0.5
C = 60 m /s
= g u 2 / C 2
Thi
t l
p subplot 3 hng 1 ct. Hai vng trn vhai thu ~ t, ~ t.
2
3) N
u bc thnh ph
n
t st vi ng su
t ti
p ti h
n
c = 0.65 N/m , hy ch
ra xem c bao nhiu thi i
m xu
t hi
n >
c.
- 62 -
4) Cng thc xi l
ng bc xc
nh bi:
Hy tnh kho
ng cch xi lE.
E = 10 (
u >
c) n
c
= 0
trng hp cn l
i
VE ~ t ln vng
thdi cng t
o bi subplot.
Bi t
p s4:
Cho vctX = [10 20 30]
v Y = [10 40 30].
1. Tnh di
n tch tam gic t
o bi 3
nh c ta
X(1)Y(1), X(2)Y(2),
X(3)Y(3).
2. T
ng qut hn, tnh di
n tch
a gic n c
nh (trn m
t ph
ng 2 chi
u) vi ta
xi v yi ca
nh thi cho bi ph
n tthi c
a vctX v Y tng ng (do
X
v Y l 2 vctc cng chi
u di = n).
LI GII
Bi t
p s1:
Hng d
n: t
o m
t script file c tn baitap1.m, so
n th
o ni dung d
i y, v
ghi l
i. Sau ch
y file ny, ta sthu c k
t qu
.
% baitap1
% Inputs:
T, H0, alpha0
% Outputs: C0, L0, L
%------------------------------------------------------------clear all;
g=9.81;
T=8;
H0=2;
alpha0=30;
%------------------------------------------------------------L0=g*T^2/(2*pi)
C0 = L0/T;
h=[3:0.2:4]
% n=length(h);
% for i = 1:n
- 63 -
% Wave length
C=L/T
% Wave celerity
sin_alpha=sin(alpha0)/C0*C
alpha = asin(sin_alpha)
% arcsin
Kr=sqrt(cos(alpha0)./cos(alpha))
% Refraction coefficient
k=2*pi./L
% Wave number
Ksh=sqrt(1./tanh(k.*h)/(1+2*k.*h/sinh(2*k.*h))) % Shoaling coefficient
H=H0*Ksh.*Kr
% Wave height
Bi t
p s2:
Hng d
n: t
o m
t script file c tn baitap2.m, so
n th
o ni dung d
i y, v
ghi l
i. Sau ch
y file ny, ta sthu c k
t qu
.
(Bi ny lm theo cc bc nhtrn lp: tnh log(u), log(S), vln trc t
a
thng (khng vln tr
c loga v
y ta tnh gi trca loga r
i), v xc
nh
cc hsa, b c
a ng thng mtcch g
n
ng trn th
).
Bi t
p s3:
Hng d
n: t
o m
t script file c tn baitap3.m, so
n th
o ni dung d
i y, v
ghi l
i. Sau ch
y file ny, ta sthu c k
t qu
.
clear all;
t=0:0.5:48
N=rand(1,length(t));
u=0.4+0.12*sin(2*pi*t/24)+0.05*N
plot(N);
hold on;
plot(u,'+');
C=60;
Rho = 1000;
g=9.81;
To = Rho*g/C^2*u.^2
plot(t,To)
hold on
grid on
Toc = 0.65
10 * (To - Toc) .* (To > Toc) + 0 .* (To <= Toc)
Bi t
p s4:
Hng d
n: L
n lt thc hi
n cc b
c sau:
1. T
o mt script file c tn baitap4.m, so
n th
o n
i dung di
y, v ghi l
i.
- 64 -
2. V
a ri ta
t
o ra m
t hm mi trong Matlab, vi tn l hm dientich. S
d
ng hm ny ta c thddng tnh
c di
n tch
a gic ni chung v tam gic
ni ring b
ng cch gi hm tca snh
p l
nh
>> dientich(X,Y)
Lu r
ng hm tnh di
n tch ng
m
nh r
ng 2 vc tX, Y y
cha sli
u
cho trc vta cc
nh c
a
a gic theo nhquy
c. H
n na, khi nh
p ta
ta
nh scc
nh t1
n n theo chi
u kim
ng h.
* tnh di
n tch tam gic S vi chi
u di 3 c
nh cho trc l a, b, c, b
n c th
ththu
t ton khc nhsau:
S p ( p a)( p b)( p c )
- 65 -
- 66 -