Professional Documents
Culture Documents
MATLAB Toan Tap
MATLAB Toan Tap
Matlab ton tp
ci t
1. MATLAB for WIN
Yu cu h thng
a) CD ROM
- B iu phi ho 8 bit v card mn hnh ( 256 mu ng thi )
- Khong trng a ci t v chy cc tu chn. S yu cu a
cng thay i tu theo kch c cc partition v cc tp tr gip help c ci
t trc tip theo tu chn. Qu trnh ci t s thng bo cho bn bit t
m v dung lng a yu cu. V d:
Partition vi mt lin cung mt 0 cn 25 MB cho ring MATLAB v 50 MB
cho c MATLAB v HELP.
Partition vi lin cung 64 KB cn 115 MB cho ring MATLAB v 250 MB cho
c MATLAB v HELP.
b ) B nh.
Microsoft WIndow 95: 8 MB ti thiu v 16 MB khuyn ngh.
Microsoft WIN NT 3.51 hoc 4.0: 12 MB ti thiu v 16 MB khuyn ngh.
Cc khuyn ngh
B nh ph vo (B nh b sung: additional Memory).
V mch tng tc ho b tr cho Microsoft Window.
My in tr gip cho Microsoft Window.
V mch m thanh tr gip cho Microsoft Window.
Microsoft Word 7.0 hoc hn ( nu bn c nh s dng MATLAB
NoteBook ).
Trnh bin dch Watcom C, Borland, Microsoft (xy dng file MEX).
Netscape Navigator 2.0 hoc version cao hn hoc Microsoft Internet
Explorer 3.0 chy MATLAB Help Desk.
Qu trnh ci t
1. t a vo CD. Trn WIN 95 chng trnh SETUP bt u chy t
ng nu nh MATLAB cha c ci t trc. Cn khng, nhn p vo biu tng
setup.exe bt u qu trnh ci t.
2. Chp nhn hay b i nhng khuyn co v cp ng k phn mm trn
mn hnh. Nu chp nhn bn mi c th bt u qu trnh ci t.
2
3. Trn Custumer Information, nhp vo tn bn, a ch ca bn. Tn khng
c qu 30 k t. Nhn nt NEXT.
4. Nhn vo cc hp trng thnh phn du v nu nh bn mun tu chn
v nhn tip nu bn c nh khng mun tu chn ( c th thm
vo sau ny nu mun ). Trn mn hnh hin th C:\MATLAB l th mc ch
mc nh ca qu trnh ci t. Nu bn mun ci t vo th mc khc
hoc i tn th mc th bn la chn Browse.
MATLAB cho Macintosh.
MATLAB cho my Macintosh chy c trn:
Mi my Macintosh c cu hnh mnh ( power Macintosh ).
Mi Macintosh c trang b b vi x l 68040 ( b ng x l ton hc bn
trong ).
Mi my Macintosh c trang b b vi x l 68020 hoc 68030 v b ng
x l ton hc 68881 hoc 68882.
Yu cu ti thiu chy MATLAB.
3
Trong thc t MATLAB cn ng dng rt rng ri trong nhiu lnh vc v n
cng s dng rt nhiu cc php tnh ton hc. Vi nhng c im v
kh nng thn thin vi ngi s dng nn n d dng s dng hn cc ngn
ng khc nh Basic, Pascal, C.
N cung cp mt mi trng phong ph cho biu din d liu, v c kh
nng mnh m v ho, bn c th to cc giao din ring cho ngi s
dng(GUIs) gi quyt nhng vn ring cho mnh. Thm vo
MATLAB a ra nhng cng c gii quyt nhng vn c bit, gi l
Toolbox (hp cng c). V d Student Edition ca MATLAB bao gm c Toolbox
iu khin h thng, Toolbox x l tn hiu, Toolbox biu tng ton hc. Ngoi
ra bn c th to Toolbox cho ring mnh.
Vi nhng kh nng mnh m, rng ln ca MATLAB nn n rt cn thit cho
bn bt u t phn c bn. Sau y chng ta s nghin cu tng phn, v
cun sch ny s gip bn hiu c chng. Trc tin, mt cch n gin nht l
chng ta quan nim nh l mt my tnh c bn, tip theo l nh my tnh k
thut v nh my tnh c th lp trnh c, cui cng l nh my tnh hin i
nht. Bng cch quan nim ny bn s d dng hiu c nhng cch m
MATLAB gii quyt nhng vn thng thng v xem MATLAB gii quyt
nhng vn v s phc mm do nh th no.
Tu thuc vo kin thc ca bn, bn c th tm thy nhng phn trong
cun sch hng dn ny hng th hay bun t...
Khi bn chy chng trnh MATLAB, n s to mt hoc nhiu ca s trn
mn hnh ca bn, v ca s lnh (command) l ca s chnh bn giao
tip vi MATLAB, ca s ny xut hin nh hnh di y.
Cc k t EDU>> l du nhc ca MATLAB trong student MATLAB. Trong
cc version khc ca MATLAB, du nhc n gin ch l >>. Khi ca s
lnh xut hin, l ca s hot ng, con tr xut hin bn phi du nhc nh
hnh di. Con tr v du nhc ny ca MATLAB bo rng MATLAB ang i
thc hin lnh.
Hnh 1.1
Trong MATLAB chng ta c th gii quyt vn ny theo nhiu cch. Trc tin
ging nh my tnh trn, chng ta c th tnh:
>> 4 + 6 + 2
4
ans=
12
>> 4*25 + 6*52 + 2*99
ans=
610
Ch rng MATLAB khng ch n nhng khong trng, cho tt c cc
phn, v php nhn c mc u tin cao hn php cng. V mt ch khc
l MATLAB gi kt qu ans (vit tt ca answer) cho c hai php tnh.
Nh ni trn, vn trn c th gii quyt bng cch cha cc thng
tin vo bin ca MATLAB:
>> erasers = 4
erasers=
4
>> pads = 6
pads=
6
>> tape = 2;
>> iterms = erases + pads + tape
iterms=
12
>> cost = erases*25 + pads*52 + tape*99
cost=
610
y chng ta to 3 bin MATLAB: erases, pads, tape cha s lng
mi loi vt. Sau khi vo cc gi tr cho cc bin ny, MATLAB hin th kt qu
ra mn hnh, tr trng hp bin tape. Du hai chm ng sau cu lnh >>
tape = 2; thng bo cho MATLAB nhn gi tr gn nhng khng hin th ra mn
hnh. Cui cng khc vi gi kt qu ans, chng ta yu cu MATLAB gi kt qu
tng s cc vt l iterms, v tng s tin l cost. Ti mi bc MATLAB u a
ra cc thng tin. V c lu gi cc bin nn chng ta c th yu cu MATLAB
tnh gi tr trung bnh cho mi vt:
>> everage_cost = cost/iterms
everage_cost=
50.8333
Bi v everage cost c hai t, m MATLAB yu cu bin ch c mt t, nn
chng ta dng du gch di ni hai t ny thnh mt t.
Ngoi cc php tnh trn, MATLAB cn c mt s php tnh c bn khc nh
bng di y:
Php
Php
Php
Php
Php tnh
cng, a + b
tr, a - b
nhn, a.b
chia, ab
Biu tng
+
*
/ hoc \
V d
5+3
7-4
18*24
56/8 = 8\ 56
5
Php lu tha, ab
5^2
Trong cc php ton trn c mc u tin khc nhau, khi tnh t tri sang
phi ca mt dng gm nhiu lnh th php ton lu tha c mc u tin
cao nht, tip theo l php nhn v php chia c mc u tin bng nhau
cui cng l php cng v php tr cng c mc u tin bng nhau.
1.2 Khng gian lm vic ca MATLAB
Cng nh bn lm vic vi ca s Lnh, MATLAB nh cc lnh bn g vo cng
nh cc gi tr bn gn cho n hoc n c to ln. Nhng lnh v bin ny c
gi l lu gi trong khng gian lm vic ca MATLAB, v c th c gi li khi bn
mun. V d, kim tra gi tr ca bin tape, tt c nhng g bn phi lm
l yu cu MATLAB cho bit bng cch nh vo tn bin ti du nhc:
>> tape
tape=
2
Nu bn khng nh tn bin, bn c th yu cu MATLAB cho danh sch cc
bin bng cch dnh lnh who t du nhc lnh:
>> who
Your variables are:
ans
cost
average_cost
erasers
iterms
pads
tape
6
Tn bin bt u phi l ch ci, tip theo c th l ch s, s gch di
V d: how_about_this_veriable_name, X51483. a_b_c_d_e
K t chm cu khng c php dng v n c nhng ngha c bit
Cng vi nhng quy nh trn, MATLAB c nhng bin c bit trong bng
sau:
Cc bin c Gi tr
bit
ans
Tn bin mc nh dng tr v kt qu
pi = 3.1415..
Eps
S nh nht, nh vy dng cng vi 1 cs nh nht ln
hn 1
flops
S ca php ton s thc
inf
ch s v cng nh kt qu ca 1/0
NaN hoc nan
Dng ch s khng xc nh nh kt qu
ca 0/0
i (v) j
i=j=
nargin
S cc i s a vo hm c s dng
narout
S cc i s hm a ra
realmin
S nh nht c th c ca s thc
realmax
S ln nht c th c ca s thc
Nh bn c th to mt bin ca MATLAB, v bn cng c th gn li gi tr
cho mt hoc nhiu bin.
V d:
>> erases
>> pads =
>> tape =
>> iterms
iterms=
12
>> erases
erases=
6
>> iterms
iterms=
12
= 4;
6;
2;
= eases + pads + tape
= 6
7
MATLAB. Do bn khng nn thay i gi tr ca bin c bit, tr khi n
thc s cn thit.
Cc bin trong khng gian lm vic ca MATLAB c th b xo khng
iu kin bng cch dng lnh clear. V d:
>> clear erases
ch xo mt bin erases
>> clear cost iterms
xo c hai bin cost v iterms
>> clear cl*
du * ch rng xo tt c cc bin bt u bng hai k t cl.
>> clear
xo tt c cc bin trong khng gian lm vic!. Bn s khng c hi xc
nhn cu lnh ny v tt c cc bin b xo khng th khi phc li.
C th ni rng dng lnh clear rt nguy him, v vy khi dng lnh ny bn
nn dng ng v tr.
1.4 Cu gii thch (comment) v s chm cu
Tt c cc vn bn ng sau k hiu phn trm (%) u l cu gii thch.
V d:
>> erases = 4
erases=
4
% S cc ty.
8
erms
??? age_cost = cost/iterms
Missing operator, coma, or semicolon.
ging nh vy, trng thi ca li gii thch khng th tip tc:
>> % Comments cannot be continued ...
>> either
??? Undefined function or variable either.
Bn c th dng chng trnh bng cch nhn ng thi Ctrl v C.
1.5 S phc
Mt trong nhng c im mnh m nht ca MATLAB l lm vic vi s
phc. S phc trong MATLAB c nh ngha theo nhiu cch, v d nh sau:
>> c1 = 1 - 2i
% Chn thm k t i vo phn o.
c1=
1.0000 - 2.0000i
>> c1 = 1 - 2j
% j y tng t nh i trn.
c1=
1.0000 - 2.0000i
>> c2 = 3*(2-sqrt(-1)*3)
c2=
6.0000 - 9.0000i
>> c3 = sqrt(-2)
c3=
0 + 1.4142i
>> c4 = 6 + sin(.5)*i
c4=
6.0000 + 0.4794i
>> c5 = 6 + sin(.5)*j
c5=
6.0000 + 0.4794i
Trong hai v d cui, MATLAB mc nh gi tr ca i = j = dng cho phn o.
Nhn vi i hoc j c yu cu trong trng hp ny, sin(.5)i v sin(.5)j
khng c ngha i vi MATLAB. Cui cng vi cc k t i v j, nh trong hai v
d u trn ch lm vic vi s c nh, khng lm vic c vi biu thc.
Mt s ngn ng yu cu s iu khin c bit cho s phc khi n
xut hin, trong MATLAB th khng cu nh vy. Tt c cc php tnh ton hc
u thao tc c nh i vi s thc thng thng:
>> c6 = (c1 + c2)/c3
% T cc d liu trn
c6=
-7.7782 - 4.9497i
>> check_it_out = i^2
% Bnh phng ca i phi l -1
check_it_out=
9
-1.0000 + 0.0000i
trong v d ny ch cn li phn thc, phn o bng khng. Chng ta c th
dng hm real v imag kim tra tng phn thc v o.
Chng ta c th biu din s phc dng ln v gc (dng cc):
M M.ej = a+bi
trn s phc c biu din bng ln M v gc , quan h gia cc i lng
ny v phn thc, phn o ca s phc biu din di dng i s l:
M=
= tan-1(b/ a)
a = Mcos
b = Msin
Trong MATLAB, chuyn t dng cc sang dng i s, dng cc hm
real, imag, v angle:
% Gi li c1
>> c1
c1=
1.0000 - 2.0000i
>> M_c1 = abs(c1)
M_c1=
2.2361
>> angle_c1 = angle(c1)
angle_c1=
-1.1071
>> deg_c1 = angle_c1*180/ pi
-63.4349
>> real_c1 = real(c1)
real_c1=
1
>> imag_c1 = imag(c1)
imag_c1=
-2
-------------------oOo------------------
10
Chng2
CC C tnh K THUT
11
cos(x)
cosh(x)
exp(x)
fix(x)
floor(x)
gdc(x, y)
Hm cosine ca x
Hm hyperbolic cosine ca x
Hm ex
Xp x khng
Xp x m v cng
c s chung ln nht ca hai s nguyn
xv y
Hm tr v phn o ca s phc
Bi s chung nh nht ca hai s nguyn x
v y
Logarithm t nhin
Logarithm c s 10
Hm tr v phn thc ca x
Phn d ca php chia x/ y
Hm lm trn v s nguyn t
Hm du: tr v du ca argument nh:
sign(1.2)=1; sign(-23.4)=-1; sign(0)=0
Hm tnh sine ca x
Hm tnh hyperbolic sine ca x
Hm khai cn bc hai
Tangent
Hyperbolic tangent
imag(x)
lcm(x, y)
log(x)
log10(x)
real(x)
rem(x, y)
round(x)
sign(x)
sin(x)
sinh(x)
sqrt(x)
tan(x)
tanh(x)
>> 4*atan(1)
ans=
3.1416
>> help atant2
% Mt cch tnh xp x gi tr ca pi
% Yu cu gip i vi hm atan2
ATAN2
12
Mt s v d khc:
>> y = sqrt(3^2 + 4^2)
% Tnh cnh huyn ca tam gic pitago 3-4-5
y=
5
>> y = rem(23,4)
% 23/4 c phn d l 3
y=
3
>> x = 2.6,y1 = fix(x),y2 = floor(x),y3 = ceil(x),y4 = round(x)
x=
2.6000
y1=
2
y2=
2
y3=
3
y4=
3
>> gcd(18,81)
% 9 l c s chung ln nht ca 18 v 81
ans=
9
>> lcm(18,81)
% 162 l bi s chung ln nht ca 18 v 81
ans=
162
V d: c lng chiu cao ca ngi nh
Vn : Gi thit bit khong cch t ngi quan st n ngi nh l D, gc
t ngi quan st n ngi nh l ; chiu cao ca ngi quan st l h. Hi ngi
nh cao bao nhiu?
Gii php: Ta biu din kch thc nh hnh 2.1:
(khng thy)
Hnh 2.1
Ngi nh c chiu cao l H + h, H l chiu di ca mt cnh ca tam gic,
chiu di ny c th tnh c bng cng thc quan h gia gc v cnh ca
tam gic:
tan() =
T ta c chiu cao ca ngi nh l
h + H = h + D.tan()
Nu h =2meters, D =50meters, v l 60o, MATLAB s a ra kt qu l:
>> h = 2
h =
2
13
>> theta = 60
theta =
60
>> D = 50
D =
50
>> buiding_height = h+D*atan(theta*pi/180)
buiding_height =
54.3599
14
>>
>>
>>
>>
P=
FR = 1500;
% Tin gim gi ca nh my
% Gii php th nht
R = (2.9/100)/12;
% T l li xut hng thng
P = A*(R*(1+R)^M/((1+R)^M - 1)) % Khon tin phi tr hng thng
408.67
>> T1 = P*M
% Tng gi tr ca t
T1=
19616.06
>> % Gii php th hai
>> R = (8.9/100)/12;
% T l li xut hng thng
>> P = (A-FR)*(R*(1 + R)^M/((1+R)^M - 1)) % Tin phi tr hng thng
P=
422.24
>> T2 = P*M
% Tng gi tr ca t
T2=
20267.47
>> Diff = T2 - T1
Diff=
651.41
Nh vy ta c gii php th nht gi r hn gii php th hai.
V d: Vn nng acid
Vn : Nh mt phn ca qu trnh sn xut b phn ca vt c ti mt
nh my t ng, b phn c nhng trong nc lm ngui, sau
nhng trong bn ng dung dch acid lm sch. Trong ton b ca qu
trnh nng acid gim i khi cc b phn c ly ra khi bn acid v khi
nhng b phn ca vt c vo bn th mt lng nc cn bm trn vt c khi
nhng b trc cng vo theo v khi nhc ra khi bn mt lng acid bm theo
vt. m bo cht lng th nng acid phi khng c nh hn mt lng
ti thiu. Bn hy bt u vi nng dung dch l 90% th nng ti thiu
phi l 50%. Lng cht lng thm vo v ly i sau mi ln nhng dao ng
trong khong t 1% n 10%. Hi bao nhiu b phn c th nhng vo b
dung dch acid trc khi nng ca n gim xung di mc cho php?
Gii php:
Ban u nng acid l initial_con = 90% = acid/ (acid + water)
sau ln nhng th nht nng acid cn:
con =
=
=
=
15
acid l lng acid ban u trong dung dch, water l lng nc ban u trong
dung dch, lost l lng phn trm nc thm vo. S acid cn li trong dung
dch sau ln nhng th nht l:
acid_left =
Ngha l, khi nhng ln th hai nng dung dch s l:
con =
=
=
Tip tc qu trnh ny, sau n ln nhng, nng acid l:
con =
Nu nng acid cn li l mc ti thiu chp nhn c, s ln nhng cc i
s l mt s nguyn bng hoc nh hn n:
n=
Trong MATLAB gii php s l:
>> initial_con = 90
initial_con=
90
>> min_con = 50
min_con=
50
>> lost = 0.01;
>> n = floor(log( initial_con/min_con)/log(1+lost))
n=
59
Nh vy c th nhng 59 ln trc khi nng acid gim xung di 50%. Ch
hm floor dng lm trn s n xung s nguyn gn nht, v dy ta cng
c th dng hm logarithm c s 10 v logarithm c s 2 thay cho hm
logarithm t nhin trn.
-------------------oOo---------------------chng 3
NHNG C IM CA CA S LNH
16
Ca s lnh (comand) ca MATLAB c rt nhiu nhng c im cn ch ,
mt s chng c gii thiu chng trc, v sau y chng ta tm hiu r
hn v chng.
3.1 Qun l khng gian lm vic ca MATLAB
Cc d liu v bin c to ln trong ca s lnh, c lu trong mt phn gi
l khng gian lm vic ca MATLAB. Mun xem tn bin trong khng gian lm
vic ca MATLAB ta dng lnh who:
>> who
Your variables are:
D
buiding_height
h
theta
Cc bin ny c dng trong v d c lng chiu cao ngi nh. xem chi tit
hn v cc bin ta dng lnh whos:
>> whos
Name
Bytes
1x1
1x1
1x1
1x1
8
8
8
8
D
buiding_height
h
theta
Size
Class
double
double
double
double
array
array
array
array
theta
17
Cc tu chn khc ca hm clear chng ta c th tm hiu thm bng lnh
help:
>> help clear
CLEAR Clear variables and functions from memory.
CLEAR removes all variables from the workspace.
CLEAR VARIABLES does the same thing.
CLEAR GLOBAL removes all global variables.
CLEAR FUNCTIONS removes all compiled M-functions.
CLEAR MEX removes all links to MEX-files.
CLEAR ALL removes all variables, globals, functions and MEX
links.
CLEAR VAR1 VAR2 ... clears the variables specified.
The
wildcard
character '*' can be used to clear variables that match a
pattern.
For instance, CLEAR X* clears all the variables in the current
workspace that start with X.
If X is global, CLEAR X removes X from the current workspace,
but leaves it accessible to any functions declaring it global.
CLEAR GLOBAL X completely removes the global variable X.
CLEAR FUN clears the function specified.
by MLOCK it will remain in memory.
CLEAR ALL also has the side effect of removing all debugging
breakpoints since the breakpoints for a file are cleared
whenever
the m-file changes or is cleared.
Use the functional form of CLEAR, such as CLEAR('name'),
when the variable name or function name is stored in a xu.
See also WHO, WHOS, MLOCK, MUNLOCK.
Cui cng, khi lm vic trong khng gian lm vic ca MATLAB, n thng
thun tin ghi hoc in mt bn sao cng vic ca bn, lnh diary ghi d
liu ngi dng a vo v ca s lnh v a ra file vn bn dng m ASCII c tn
l diary trong th mc hin ti.
>> diary frame
>> diary off
18
3.2 Ghi v phc hi d liu
nh cc bin MATLAB c th ghi v gi li d liu t file trong my tnh
ca bn. Mc Workspace as... trong bng chn file m hp chun hi thoi
ghi tt c cc bin hin ti. Ging nh vy, trong mc Load Workspace trong
bng chn file m hp hi thoi gi li tt c cc bin m ta ghi li t
khng gian lm vic trc, n khng lm mt cc bin ny trong khng gian lm
vic hin ti. Khi ta gi li cc bin, m cc bin ny trng tn vi cc bin trong
khng gian lm vic ca MATLAB, n s thay i gi tr ca cc bin theo gi
tr ca cc bin gi ra t file.
Nu bng chn file khng thun tin hoc khng p ng c nhng yu
cu ca bn, MATLAB cung cp hai lnh save v load, n thc hin mt cch
mm do hn, trong trng hp c bit, lnh save cho php bn ghi mt hoc
nhiu hn mt bin tuy theo s la chon ca bn.
V d:
>> save
Cha tt c cc bin trong MATLAB theo kiu nh phn trong file MATLAB.mat
>> save
data
cha tt c cc bin trong MATLAB theo kiu nh phn trong fle data.mat.
>> save
data
erasers
pads
tape
-ascii
Ghi cc bin erasers, pads, tape trong dng m ASCII 8 s trong file data. File
dng m ASCII c th sa i bng bt c chng trnh son tho vn bn no,
ch rng file ASCII khng c phn m rng .mat.
>> save
data
erasers
pads
tape
-ascii
-double
Ghi cc bin erasers, pads, tape dng ASCII 16 s trong file data.
Lnh load cng dng vi c php tng t.
3.3 Khun dng hin th s
Khi MATLAB hin th kt qu dng s, n tun theo mt s quy nh
sau:
Mc nh, nu kt qu l s nguyn th MATLAB hin th n l mt s
nguyn, khi kt qu l mt s thc th MATLAB hin th s xp x vi bn ch
s sau du phy, cn cc s dng khoa hc th MATLAB hin th cng ging nh
trong cc my tnh khoa hc.
Bn c th khng dng dng mc nh, m to mt khun dng ring t
mc Preferences, trong bng chn file, c th mc nh hoc nh dng
xp x ti du nhc.
Chng ta dng bin average_cost ( trong v d trc) lm v d, dng s ny l:
Lnh ca MATLAB
format short
Average_cost
50.833
Ch thch
5 s
19
format long
format short e
format long e
format short g
50.83333333333334
5.0833e+01
5.083333333333334e
+01
50.833
format long g
50.83333333333333
format hex
format bank
format +
40496aaaaaaaaaab
50.83
+
format rat
305/ 6
16 s
5 s vi s m
16 s vi s m
chnh xc hn format
short hoc format short
e
chnh xc hn format
long
hoc format long e
h c s 16
hai s h 10
dng, m hoc bng
khng
dng phn s
20
Bn c th ghi v lu gi file nybng cch chn Save t bng chn file. Khi
bn ghi ln file ch phi nh tn file trng vi tn hm (example) khng cn
nh vo phn m rng, MATLAB t gn vo cho n. Khi t du nhc ta c
th nh:
>> example1
h=
2
theta=
60
building_height=
54.3599
Khi MATLAB din gii cc trng thi ca example1 trn, n s c ni k
hn chng sau, nhng mt cch ngn gn, MATLAB dng cc trng thi ca
bin MATLAB hin ti v to ln cc lnh ca n, bt u bng tn M_file.
Ngha l, nu example1 khng phi l bin hin ti, hoc mt lnh MATLAB
xy dng ln, MATLAB m file example1.m (nu n tm thy) v tnh gi tr cc
lnh tm thy ch khi chng ta vo cc thng s chnh xc ti du nhc ca
ca s lnh. Nh thy lnh trong M_file truy cp n tt c cc bin trong
khng gian lm vic ca MATLAB, v tt c cc bin trong M_file tr thnh mt
phn ca khng gian lm vic. Bnh thng cc lnh c trong M_file khng c
hin th nh l n c tnh trong ca s lnh, nhng lnh echo on yu cu
MATLAB hin th hoc lp li lnh i vi ca s lnh nh chng ta c v
tnh. Tip theo bn c th on c lnh echo of lm g. Ging nh vy, lnh
echo lp li bi chnh n lm thay i chnh trng thi ca n.
Vi c im ny ca M_file bn c th thay i li ni dung ca file, v
d bn c th m M_file example1.m thay i li cc gi tr ca h, D, hoc
theta, ghi li file v yu cu MATLAB tnh li lnh trong file. Thm na, bng
cch to M_file, cc lnh ca bn c lu trn a v c th ng dng v sau khi
bn cn.
Nhng ng dng ca ch dn ca MATLAB gip chng ta hiu c khi
dng script file nh trong example1.m, ch dn cho php bn lu gi cng cc lnh
trong script file, v vy bn nh c nhng lnh lm g khi bn nhn li file
sau y. Thm na, du chm phy ng sau cu lnh khng cho hin th
kt qu, t bn c th iu chnh script file a ra nhng kt qu cn
thit.
V nhng ng dng ca script file, MATLAB cung cp mt s hm c
bit c ch khi bn s dng trong M_file:
Cc hm M_file
disp(ans)
echo
input
keyboard
pause
pause(n)
waitforbuttonpress
21
hoc phm.
Khi lnh ca MATLAB khng kt thc bng du chm phy, kt qu ca
lnh c hin th trn ca s lnh cng vi tn bin. i lc n thun tin khi
khng cho hin tn bin, trong MATLAB ta dng lnh disp thc hin vic
ny:
>> h
h=
2
>> disp(h)
2
gip bn son tho script file khi tnh ton cho nhiu trng hp, lnh
input cho php bn to cu nhc vo d liu c an ton. V d
example1.m vi nhng phn c sa:
function example1
% example1.m V d c lng chiu cao ngi nh
h = 2
theta = 60
D = input( Vo khong cch gia ngi v ngi nh: )
building_height = h + D*tan(theta*pi/180)
chy file ny:
>> example1
h=
2
theta=
60
Vo khong cch gia ngi v ngi nh: 60
D=
60
building_height=
64.8319
v d trn ta g vo s 60 v n Enter. Nhng lnh sau s tnh vi gi tr
ca D l 60. Ch rng hm input c th dng vi cc php ton khc ging nh
i vi cc hm thng thng khc, hm input cng chp nhn i vi bt c
kiu biu din s no, v d ta vo mt s l: +5.
>> example1
h=
2
theta=
60
Vo khong cch gia ngi v ngi nh: sqrt(1908)+5
D=
22
48.6807
building_height=
52.9783
xem nhng tc ng ca lnh echo, ta dng chng trong script file:
echo on
function example1
% example1.m V d c lng chiu cao ngi nh
h = 2
theta = 60
D = input( Vo khong cch gia ngi v ngi nh: )
building_height = h + D*tan(theta*pi/180)
echo off
chy chng trnh ta c:
>> example1
% example1.m V d c lng chiu cao ngi nh
h = 2
h=
2
theta = 60
theta=
60
D = input( Vo khong cch gia ngi v ngi nh: )
Vo khong cch gia ngi v ngi nh: 60
building_height = h + D*tan(theta*pi/180)
building_height=
64.8319
echo off
Nh bn thy trong trng hp ny, lnh echo lm cho kt qu kh c
hn, nhng ngc li lnh n c th rt c ch khi g ri nhiu script file ng dng.
------------------oOo------------------Chng 5
QUN L Tp
MATLAB cung cp mt s cc hm file h thng v cc lnh cho php bn lit k
tn file, xem, v xo M_file, hin th v thay i th mc cha n. Mt s tng
kt cc lnh c wa ra trong bng di y. Thm vo bn c th xem v
sa ng dn ca MATLAB (matlabpath). Nhng ng dn ny ch cho
MATLAB ni cha script file v hm M_file trong my tnh ca bn. C rt nhiu
trng hp cc hm trong MATLAB l cc M_file n gin c cha trong a,
nhng MATLAB thng bo khng bit hm ny, nh vy do n khng tm c ng dn ca MATLAB, bn cn phi thay i li ng dn:
23
Cc hm h thng file
addpath dir1
cd
p = cd
cd path
delete test.m
dir
d = dir
edit test
exist(cow,file)
exist(d,dir)
filesep
fullfile
inmem
ls
MATLABrc.m
MATLABroot
path
pathdef.m
pathsep
pwd
rmpath dir1
startup.m
tempdir
tempname
type test
what
which test
Thm th mc dir1 vo bt u ca ng dn
Hin th th mc hin thi
Gn th mc lm vic hin thi cho bin p
Thay i th mc a ra bng ng dn
Xo M_file test.m
Danh sch tt c cc file trong th mc hin
thi
Tr li file trong th mc hin thi trong cu trc
bin d
M test.m son tho, ging nh Open trong
bng chon file
Kim tra s tn ti ca file cow.m trong ng
dn
Kim tra s tn ti ca th mc d trong ng
dn
Tch file nh\ trong Windows95 v NT, : trn
Macintosh
To tn file vi ng dn y
Danh sch hm M_file, gi ra t b nh
Ging nh dir
MATLAB ch khi ng script M_file, thc
hin trc khi startup.m
Tr ng dn th mc cho chng trnh thc
hin MATLAB
Hin th hoc sa ng dn ca MATLAB
(MATLABpath)
Hm M_file, ni m mmatlabpath l ng
Chia ng dn cho matlabpath
Ging nh cd
B i th mc dir1 t ng dn matlabpath
script M_file thc hin khi MATLAB khi ng
Tn ca th mc tm thi
Tn ca file tm thi
Hin ra M_file test.m trong ca s lnh
Tr li danh sch tt c M_file v MAT_file
trong th mc hin thi
Hin th ng dn th mc n test.m
24
(1) Kim tra nu cow l mt bin trong khng gian lm vic ca MATLAB,
nu khng th...
(2) N kim tra nu cow l mt hm c xy dng, nu khng th...
(3) N kim tra nu mt tn M_file cow.m tn ti trong th mc hin thi, nu
khng th...
(4) N kim tra nu cow.m tn ti bt c ni no trn ng dn ca MATLAB
bng cch tm kim ng dn.
Khi no s ph hp c tm thy th MATLAB chp nhn n. V d nh cow
tn ti nh mt bin trong khng gin lm vic ca MATLAB, th MATLAB khng
dng hm hoc bin c tn l cow. V vy bn trnh khng nn to bin c tn
trng vi tn hm nh:
>> sqrt = 1.2;
>> sqrt(2);
Nhng lnh trn s to ra li, bi v sqrt y khng phi l hm tnh
cn bc hai, n l bin c gi tr l 1.2. Th tc ng dn cn c dng khi lnh
load c dng. u tin MATLAB tm kim trong th mc hin ti, sau n tm
theo ng dn ca MATLAB n file d liu.
Thc t th tc tm kim ca MATLAB phc tp hn l trnh by trn rt
nhiu v MATLAB dng rt nhiu file c phn m rng l .m . Hm M_file c
th cha nhiu hn mt bin, th mc trong matlabpath c th c th mc con
gi l private, v MATLAB cung cp chng trnh hng i tng vi cc ton t
nh ngha li M_file trong th mc con, bt u bng k t @. Nu tt c
nhng c im ny c cng thm vo bng trn th n s y hn,
nhng s rt kh hiu. Nu bn mun nghin cu thm v phn ny th xem cc
ti liu cung cp trong a CD.
Nu bn c M_file hoc MAT_file cha trong th mc khng phi trong ng
n ca MATLAB v khng trong th mc hin ti, MATLAB khng th tm thy
chng. C hai gii php cho vn ny l:
(1)_To th mc thit k thnh th mc hin ti, dng lnh cd hoc pwd t
trong bng trc.
(2)_Cng thm th mc thit k trong ng dn ca MATLAB .
Cui cng n rt d dng khi ta s dng phng php duyt qua cc ng
dn (path browser) hoc cc lnh trong ca s lnh path v addpath.
dng path browser, ta chn set path t bng chn file hoc nhn chut trn nt
path browser trn thanh cng c ca ca s lnh. Lm nh vy ta s c mn
hnh ging nh hnh 5.1:
Ging nh thit k cc GUI, n lin quan trc tip khi ta s dng. ng dn
matlabpath c hin th bn tri, th mc con nm trong ng dn c chn
nm bn tri, cn cc nt thay i ng dn nh thm ng dn mi (add to
path), loi b ng dn (remove from path) pha trn. ghi li s thay i
ta chn save path t bng chn file ca ca s
path browser trc khi ng GUI.
25
Hnh 5.2
26
5.1 MATLAB khi khi ng
Khi khi ng MATLAB, n to ra hai script M_file l matlabrc.m v
startup.m, trong atlabrc.m i cng MATLAB, v nhn chung l khng c
sa n.
Cc lnh trong M_file to mt cu hnh mc nh v kch c ca ca s v
v tr ca n, cng nh cc c im mc nh khc trong Windows95,
WindowNT. ng dn mc nh c to bng cch gi script file pathdef.m t
matlabrc.m. Trong cc phn, cc lnh trong matlabrc.m kim tra s tn ti ca
script M_file startup.m trong ng dn ca MATLAB nu n tn ti, cc lnh
trong n c thc hin.
S la chn M_file startup.m cha cc lnh c nhng c im ring
i vi MATLAB. V d n rt thng thng nu ta thm mt hoc hn cc lnh
path hoc addpath trong startup.m chn thm cc th mc vo trong ng dn ca MATLAB. Ging nh vy, mc nh hin th khun dng s c th
thay i c nh format compact. Nu bn c mn hnh cn bng xm, lnh
graymon s c ch khi to mc nh ho cho ch ny. Hn na, nu
bn v th c cc kiu mc nh ring th mt s gi ti colordef c th
xut hin trong startup.m. Khi startup.m l mt file chun trong script M_file,
th khng mt lnh no c th thay th c trong n. Tuy nhin ta c th thay
th lnh quit trong startup.m.
----------------oOo-----------------
chng 6
cc php ton vi MNg
Tt c mi s tnh ton u duy tr mt im l c s dng n cc s
n, gi l scalars. Php ton c lin quan n scalars l cc php ton c
bn, nhng mt lc no , php ton phi lp li nhiu ln khi tnh trn nhiu
s. gii quyt vn ny, MATLAB nh ngha thao tc trn mng d liu.
6.1 Mng n
Gi s ta xt hm y=sin(x) trong mt na chu k ( x 0 ) trong khong
ny s im gi tr ca x l v tn, nhng ta ch xt nhng im cch nhau
mt khong gi tr l 0.1 nh vy s cc gi tr ca x l m c. T ta c
mng cc gi tr ca x l
x= 0, 0.1, 0.2,...,
27
Nu ta dng my tnh k thut tnh th ta c tng ng cc gi tr ca
y, t ta c mng ca y
x
y
0
0
0.6283
0.9425
1.2566
28
Truy nhp t phn t th 7 n phn t cui ca mng y:
>> y(7:end)
ans=
0.9511
0.8090
0.5878
0.3090
0.0000
0.9425
1.5708
0.3142
0.6283
0.9425
2.8274
1.2566
1.5708
1.8850
3.1416
29
linspace(gi tr phn t u, gi tr phn t cui, s cc phn t)
v d
>> x = linspace(0,pi,11)
x=
Columns 1 through 7
0
0.3142
0.6283
Columns 8 through 11
2.1991
2.5133
0.9425
1.2566
2.8274
1.5708
1.8850
3.1416
15.8489
1]
1
30
a l mng gm cc phn t [1 3 5], mng d l mng gm cc phn t ca a
v ghp thm cc phn t [1 0 1]
Tm li ta c bng cu trc cc mng c bn:
x=[ 2 2*pi sqrt(2) 2-3j To vector hng x cha cc phn t c
]
bit.
x= first : last
To vector hng x bt u ti first, phn t
sau bng phn t trc cng vi 1, kt thc l
phn t c gi tr bng hoc nh hn last .
x= first : increment : To vector hng x bt u ti fist, gi tr
last
cng l increment, kt thc l phn t c gi
tr bng hoc nh hn last.
x= linspace(fist, last, n) To vector hng x bt u ti first, kt thc
l last, c n phn t.
x= logspace(first, last, To vector hng khng gian logarithm x bt
n)
u ti 10first, kt thc ti 10last, c n phn t.
6.4 Vector hng v vector ct
Trong cc v d trc, mng cha mt hng v nhiu ct, ngi ta thng gi l
vector hng. Ngoi ra ta cn c mng l vector ct, tc l mng c mt ct v
nhiu hng, trong trng hp ny tt c mi thao tc v tnh ton i vi mng
nh trn l khng thay i.
T cc hm to mng minh ho phn trc (tt c u to vector hng), c
nhiu cch to vector ct. Mt cch trc tip to vector ct l vo tng
phn t ca mng nh v d sau:
>> c = [1;2;3;4;5]
c=
1
2
3
4
5
Khc vi trc l ta dng du cch hay du phy phn cch gia hai ct
ca vector hng. Cn v d ny ta dng du chm phy phn cch gia
hai hng ca vector ct.
Mt cch khc to cc vector ct l dng cc hm linspace, logspace,
hay t cc vector hng, sau dng phng php chuyn v. MATLAB dng ton
t chuyn v l ( ' ) chuyn t vector hng thnh vector ct v ngc li.
V d to mt vector a v vector b l chuyn v ca vector a, vector c l
chuyn v ca vector b:
>> a= 1:5
a=
1
2
>> b= a'
b=
31
1
2
3
4
5
>> c= b'
c=
1
2
32
g=
1
5
2
6
3
7
4
8
4
8
12
33
5
6
7
8
9
10
11
12
>> h = [1 1 1 1; 2 2 2 2; 3 3 3 3]
% To mt mng mi h.
h=
1
1
1
1
2
2
2
2
3
3
3
3
>> h + g
% Cng hai ma trn g v h ( cng tng ng tng phn t ca h vi
g)
ans=
2
3
4
5
7
8
9
10
12
13
14
15
>> ans - h % Ly kt qu trc tr i mng h, ta c li mng g.
ans=
1
2
3
4
5
6
7
8
9
10
11
12
>> 2*g - h % Nhn ma trn g vi 2 sau ly kt qu tr i ma trn h.
ans=
1
3
5
7
8
10
12
14
15
17
19
21
>> g.*h % Nhn tng ng cc phn t ca mng g vi cc phn t ca mng
h
ans=
1
2
3
4
10
12
14
16
27
30
33
36
v d trn ta dng ton t chm_nhn ( .* ), ngoi ra MATLAB cn dng ton
t chm_chia ( ./ hoc .\ ) chia tng ng cc phn t ca hai mng nh v
d di y:
>> g./h
% Chia phi tng ng cc phn t ca mng g vi cc phn t ca
mng h
ans=
1.0000
2.0000
3.0000
4.0000
2.5000
3.0000
3.5000
4.0000
3.0000
3.3333
3.6667
4.0000
>> h.\g
% Chia tri tng ng cc phn t ca mng g vi cc phn t ca
mng h
ans=
1.0000
2.0000
3.0000
4.0000
2.5000
3.0000
3.5000
4.0000
3.0000
3.3333
3.6667
4.0000
Ch ta ch c th dng php nhn_chm hay php chia_chm i vi cc
mng g v h m khng th dng php nhn ( * ) hay php chia ( / hoc \ ) v
34
i vi cc php ton ny yu cu s ct v s hng ca hai ma trn phi tng
thch.
v d:
>> g*h
??? Error using ==> *
Inner matrix dimensions must agree.
>> g/h
Warning: Rank deficient, rank = 1 tol = 503291e-15.
ans=
0
0
0.8333
0
0
2.1667
0
0
3.5000
>> h/g
Warning: Rank dificient, rank = 2 tol = 1.8757e-14.
ans=
- 0.1250
0
0.1250
- 0.2500
0
0.2500
- 0.3750
0
0.3750
Php chia ma trn a ra kt qu m khng cn thit phi cng kch c
nh ma trn g v ma trn h. V cc php ton i vi ma trn chng ta s ni
n sau
+) Mng vi lu tha.
MATLAB dng ton t ( .^ ) nh ngha lu tha ca mng.
V d ta c hai mng g v h nh trn, ta c th to cc mng mi bng ton t
( .^ ) nh sau:
>> g.^2
% Cc phn t ca g c lu tha v s m l 2.
ans=
1
25
81
>> g.^-1
4
9
16
36
49
64
100
121
144
% Cc phn t ca g c lu tha vi s m l -1.
ans=
1
0.2
0.11111
>> 2.^g
ans=
2
25
729
0.5
0.33333
0.25
0.16667
0.14286
0.125
0.1
0.090909
0.083333
% Cc phn t ca g l s m ca 2.
4
36
1000
8
49
1331
16
64
1728
>> g.^(h - 1)
ans=
1
35
5
81
6
100
7
121
8
144
0
0
0
0
0
0
0
0
36
6.6 Thao tc i vi mng
T cc mng v cc ma trn c bn ca MATLAB, c nhiu cch thao tc
i vi chng. MATLAB cung cp nhng cch tin ch chn vo, ly ra, sp
sp li nhng b phn t con ca chng bng cc ch s ca cc phn t. V d
di y s minh ho nhng c im thao tc i vi mng v ma trn trn:
>> A = [1
A=
1
4
7
3; 4
2
5
8
3
6
9
6; 7
9]
% Gn tt c cc phn t thuc ct th 4
3
6
0
4
4
4
0
0
0
0
1
0
[1
3; 4
A(3:-1:1,1:3)
trn A.
8
9
5
6
2
3
A(3:-1:1,:)
ct.
B=
7
4
8
5
9
6
6; 7
9];
% Gn li cc gi tr ca ma
37
1
2
3
>> C = [ A B(:,[1 3])]
bn phi ma trn A.
C=
1
2
3
4
5
6
7
8
9
>> C = [1 3]
C=
1
3
>> B = A(C,C)
ma trn A.
B=
1
3
7
9
>> B= A(:)
B=
1
4
7
2
5
8
3
6
9
>> B = B.'
t chuyn v chm.
B=
1
4
7
>> B = A;
>> B(:,2) = []
B=
1
3
4
6
7
9
7
4
1
9
6
3
% To ma trn ct B t ma trn A.
7
9
7
38
A=
1
2
1
4
7
8
>> B = A(:,[2
B=
2
2
4
4
8
8
3
7
9
2
2])
2
4
8
2
4
8
39
i khi tin li hn ta ch dng ch s n truy nhp n cc
phn t ca mng. Khi ch s n c dng trong MATLAB th th t cc phn
t ca mng c tnh bt u t phn t u tin ca ct, tnh ht ct th
tnh n ct tip theo..
V d:
>> D = [1
D=
1
5
9
>> D(2)
ans=
5
>> D(5)
ans=
6
>> D(end)
ans=
12
>> D(4:7)
ans=
2
4; 5
8; 9
10
11
12]
2
3
4
6
7
8
10
11
12
% Phn t th hai ca mng.
% Phn t th nm ca mng ( ct 2, hng 2 ).
% Phn t cui cng ca mng.
% T phn t th t n phn t th by ca ma trn.
6
10
y = x( abs(x)>1)
-3
-2
2
3
To mng y bng cch ly nhng phn t ca x m c tr tuyt i ln hn
mt.
>> y = x([1 1 0 0 0 1 1])
??? Index into matrix is negative or zero. See release notes on
changes to logical indices
40
Cu lnh b li mc d abs(x)>1 v [1 1 0 0 0 1 1] cng l vector nh nhau.
Trong trng hp ny, [1 1 0 0 0 1 1] l mt mng s, khng phi l mng
logic. V vy MATLAB c nh a ch cc phn t c s ch s trong mng [1
1 0 0 0 1 1] v cu lnh b li v khng c phn t 0. Tuy nhin MATLAB
cung cp hm logical chuyn i t mng s sang mng logic
>> y = x(logical([1 1 0 0 0 1 1]))
y=
-3
-2
2
3
mng logic lm vic vi ma trn cng nh l i vi vector:
>> B = [5 -3; 2 -4]
B=
5
-3
2
-4
>> x = abs(B)>2
x=
1
1
0
0
>> y = B(x)
5
-3
4
Tuy nhin kt qu c chuyn thnh vector ct v khng cch no nh
ngha ma trn ch c ba phn t. a ch ca mng A( r, c ). a ch mt
mng con trong mng A, nh ngha bng cc ch s vector ca hng thit k
trong r, ch s vector ca ct thit k trong c. A( r, : ). a ch mt mng con
trong mng A, nh ngha bnh cc ch s vector ca hng thit k trong r,
v tt c cc ct ca A. A( : , c). a ch mt mng con trong mng A, nh
ngha bng tt c cc hng ca A, ch s vector ca ct c thit k trong c.A(
: ). a ch tt c cc phn t ca A nh mt vector ct, bng cch ghp th t
cc ct ca vector A. A( i ) a ch mt mng con trong mng A, nh ngha
bng cc ch s vector n c thit k trong i, vi gi s A l vector ct.
A( x ). a ch mt mng con trong mng A, nh ngha bi mng logic x. x
phi cng kch c vi A.
6.7 Tm kim mng con
Nhiu khi chng ta mun bit cc ch s hay danh sch cc ch s ca
nhng phn t ca mt mng m n tho mn mt biu thc quan h, trong
MATLAB thc hin vic ta s dng hm find, hm ny tr v danh sch
con ch s ti nhng phn t m biu thc quan h ca chng l ng:
>> x = -3:3
x=
-3
-2
-1
0
1
2
3
>> k = find(abs(x)>1)
k=
1
2
6
7
tm nhng ch s ti nhng v tr m ti abs(x)>1
41
y = x(k)
y=
-3
-2
2
3
To mng y, dng cc ch s trong mng k.
Hm find cng c th s dng trong ma trn:
>> A = [1 2 3; 4 5 6; 7 8 9]
A=
1
2
3
4
5
6
7
8
9
>> [i,j] = find(A>5)
i=
3
3
2
3
j=
1
2
3
3
y i l ch s hng, cn j l ch s ct; gia i v j c mi quan h tng ng ch nhng v tr m ti biu thc quan h l ng.
Ch : khi MATLAB tr li hai hoc nhiu bin, chng c t trong du
ngoc vung, v c t bn tri du bng. C php ny khc vi c php thao
tc i vi mng trn, khi m [i,j]c t bn phi du bng, v n xy
dng ln mt mng m j c kt ni vo bn phi du bng.
Bng di y tm tt dng lnh ca phn tm kim mng:
Tm kim mng
i = find(x)
Tr li cc ch s ca mng x ni m cc phn t ca
n khc khng
[ r, c ] = find(x)
Tr li ch s hng v ch s ct ca mng x ni m
cc phn t ca n khc khng.
6.8 So snh mng
Chng ta c th dng hm isequal so snh hai mng. Th d:
>> A = [1 2 3; 4 5
A=
1
4
7
2
5
8
3
6
9
>> B = A.*(-1).^A
B=
-1
4
-7
2
-5
8
6; 7
9]
42
-3
6
-9
>> C = 1:9
dng khc.
1
2
3
>> isequal(A,C)
ans=
0
>> isequal(A,B)
ans=
0
>> isequal(A,A)
ans=
1
>> isequal(C,C)
ans=
0
>> ismember(A,B)
ans=
0
1
0
1
0
1
0
1
0
>> ismember(A,B)
ans=
1
1
1
1
1
1
1
1
1
% mng vi 11 phn t.
6
10
12
14
16
18
20
43
>> ismember(x,A)
ans=
0
1
1
1
1
0
0
0
0
y l mng c cng kch c vi x, vi 1 ti cc phn t chung.
>> ismember(x,A)
ans=
0
1
0
1
0
1
0
1
0
44
>> setxor(A,B)
% Cc phn t khng thuc phn chung gia A v
B.
ans=
-9
-7
-5
-3
-1
1
3
5
7
9
Nhng hm ny c tng kt li trong bng di y:
So snh mng
isequal(A, B)
ismember(A, B)
ng nu A v B ging nhau.
ng khi phn t ca A cng l phn t ca
B.
Cc phn t chung gia A v B.
Cc phn t c trong A m khng c trong
B.
Cc phn t khng thuc phn chung gia
A v B.
Tt c cc phn t c trong A v B.
intersect(A, B)
setdiff(A, B)
setxor(A, B)
union(A, B)
6.9 Kch c ca mng
phn trc chng ta bit lnh who cung cp tn bin do ngi dng nh
ngha. Trong trng hp ca mng, n cn rt quan trng khi bit kch c ca
mng. Trong MATLAB, lnh whos cung cp nhng thng tin ny:
>> whos
Name
size
Bytes Class
A
3x3
72 double array
B
1x3
24 double array
ans
1x4
32 double array
Grand total is 16 elements using 128 bytes
(logical)
4; 5
8];
45
2
46
6.10 Mng nhiu chiu
i vi cc MATLAB versions trc 5.0, mng ch c th c mt hoc hai
chiu. T MATLAB 5.0 tr ln th s chiu ca mng tng ln. V d:
>> a = [1 0; 0 1]
a=
1
0
0
1
>> b = [2 2; 2 2]
b=
2
2
2
2
>> c = [0 3; 3 0]
c=
0
3
3
0
>> d = cat(3,a,b,c)
d(:,:,1)=
1
0
0
1
d(:,:,2)=
2
2
2
2
d(:,:,3)=
0
3
3
0
>> size(d)
ans=
2
2
3
To cc mng hai chiu a, b, c, sau ghp chng lai vi nhau thnh mng
ba chiu bng cch s dng hm cat. Nh vy mng d l mng c hai hng, hai
ct, v ba trang. Mng a to trang th nht, b l trang th hai, v c l trang th
ba. Thng s trang din t chiu th ba ca mng, cung cp mt cch hnh
dung v mng ba chiu nh mng hai chiu, cc trang xp th t t mt cho
n cui nh trong mt quyn sch. i vi cc mng c s chiu cao hn, khng
c tn chung, v n cng rt kh tng tng!
Thao tc vi mng nhiu chiu cng ging nh cc th tc a ra trn i
vi mng mt chiu v hai chiu. Ngoi ra MATLAB cn cung cp mt s hm
thao tc trc tip i vi mng nhiu chiu:
Cc hm vi mng nhiu chiu
s = size(A)
Cho n_s chiu ca A, tr v vector hng s vi n
phn t, phn t th i l kch c chiu th i ca
mng A
ndims(A)
S chiu ca A, tng t nh hm length(size(A))
permute(A, order)
n_s chiu, tng ng vi ton t chuyn v
chm.
ipermute(A, order)
Ngc vi hm permute(A, order)
47
shiftdim(A, n)
squeeze(A)
8.7055
8.4090
8.1225
7.8458
48
Hnh 6.1
V d: Tm kim gii php s dng vectors
Vn : Vn ca tun trong trng cp hai l tm mt s nh hn 100
m chia ht cho 7,
nhng cn d li 1 khi chia cho 2, 3, 4, 5, v 6.
Gii php: Khng c mt gii php phn tch no cho vn ny c, v
vy chng ta phi gii bng phng php tm kim. Nu bn bt u vi tt c
cc s l bi s ca 7 v nh hn 1000, cn cc s khc th khng xt n,
bn s xy dng c mt gii php. Trong MATLAB gii php c a ra trong
script file l:
function pow
% pow.m script file to solve problem of the week
n=7:7:1000
% all multiples of 7 less than 1000
number=length(n)
% number of potential solutions
n(rem(n,2)~=1)=[];
% throw out non solutions by
number=length(n)
n(rem(n,3)~=1)=[];
%setting them equal to an empty array,
number=length(n)
n(rem(n,4)~=1)=[];
% the function rem computes remainders
number=length(n)
n(rem(n,5)~=1)=[];
number=length(n)
n(rem(n,6)~=1)=[];
Chy script file ny ta c gii php nh di y:
>> pow
49
number =
142
number =
71
number =
24
number =
12
number =
2
n=
301
721
29
19
14
5
12
10
10
50
Hnh 6.2
Ch y yu cu phng php chia chm v log(1 + lost/ 100) l mt vector
--------------------oOo------------------
chng 7
cc php tnh vi mng
7.1 To phng trnh tuyn tnh.
V c bn, MATLAB c vit i vi nhng ma trn v thc hin php ton
s hc tuyn tnh n gin m xut hin trong nhiu ng dng. Mt vn
chung nht ca s hc tuyn tnh l vic gii phng trnh. V d to phng
trnh:
51
. =
A.x = b
Biu tng php nhn ton hc (.) c nh ngha trong php ton trn,
khc vi k hiu ta dng i vi mng trc kia. Trong MATLAB php nhn ma trn
ny c nh ngha bng du sao (*). Tip theo nh ngha du bng, ma
trn to ra t ma trn A v vector x bng vi vector b. Gii php tn ti cho s
cn bng cp trn l nhng vn c bn ca s hc tuyn tnh. Thm
na, khi li gii khng tn ti, c rt nhiu cch gn ng tm kim gii
php, nh php loi tr Gaussian, s tm tha s LU, hoc tnh trc tip A -1 .b.
Di y chng ta s cp n mt s cch gii quyt nh trn:
Trc tin nhp vo ma trn A v b:
>> A = [1 2
A=
1
4
7
>> b = [366;
b=
366
804
351
3; 4
6; 7
0]
2
3
5
6
8
0
804; 315]
52
Phng trnh ny s dng phng php tm tha s LU gn ng v a ra
cu tr li nh l php chia tri A cho b. Ton t chia tri ( \ ) khng c du chm
pha trc l mt php ton ca ma trn, n khng phi l cc php ton gia cc
phn t ca mng. Phng php th hai ny c s dng nhiu hn do nhiu
nguyn nhn, mt trong nhng nguyn n gin nht l phng php ny dng
t php ton hn v tc nhanh hn. Thm vo , nhn chung phng php
ny chnh xc hn cho nhng bi ton ln. Trong trng hp khc, nu MATLAB
khng tm thy phng php gii hoc khng tm thy phng php chinh xc,
n s hin thng bo li.
Nu bn nghin cu s hc tuyn tnh, bn bit rng khi s phng trnh v
s bin khc nhau, th khng th c mt phng php duy nht gii. Trong
MATLAB khi gp nhng h phng trnh c s phng trnh ln hn s bin n
dng ton t chia tri hoc chia phi, t ng gim thp nht nhng phn t
tha A.x - b. Cch ny gi l phng php vung nh nht. V d:
>> A = [1 2 3; 4 5 6; 7 8 0; 2 5 8]
% Bn phng trnh, ba bin.
A=
1
2
3
4
5
6
7
8
0
2
5
8
>> b = [366 804 351 514]
b=
366
804
351
514
>> x = A\b
% Phng php vung nh nht.
x=
247.9818
-173.1091
114.9273
>> res = A*x - b
res=
-119.4545
11.9455
0.0000
35.8364
Mt khc khi s phng trnh t hn s bin tng t nh trng hp khng
xc nh, th s nghim phng trnh l v tn. i vi nhng nghim ny
MATLAB tnh theo hai cch. Dng ton t chia a ra phng php m c s phn
t 0 ca x l cc i. Nh mt s la chn, tnh x=pinv(A)*b a ra phng php
chiu di hoc tiu chun ca x nh hn cc phng php khc. Phng php ny
gi l phng php tiu chun cc tiu.
V d:
>> A = A
A=
53
1
4
7
2
2
5
8
5
3
6
0
8
>> b = b(1:3)
b=
366
804
351
>> x = A\b
% phng php vi s phn t 0 cc i.
x=
0
-165.9000
99.0000
168.3000
>> xn = pinv(A)*b
% Tm kim gii php tiu chun nh nht.
xn=
30.8182
-168.9818
99.0000
159.0545
>> norm(x)
% Tiu chun O_clit vi cc phn t 0.
ans=
256.2200
>> norm(xn) % Gii php tiu chun nh nht
ans=
254.1731
7.2 Cc hm ma trn .
gii phng trnh tuyn tnh, MATLAB cung cp cc hm tr gip sau:
Cc hm ma trn
balance(A)
Cn bng tng chnh xc
cdf2rdf(A)
Chuyn t dng s phc cho sang dng s
thc cho
chol(A)
Tm tha s Cholesky
cholinc(A, droptol)
Tha s Cholesky khng y
cond(A)
S iu kin ma trn
condest(A)
c lng s iu kin ma trn theo tiu
det(A)
nh thc ma trn
expm(A)
Ma trn theo lut m
expm1(A)
B sung M_file ca expm
expm2(A)
Ma trn theo lut hm m, dng th t
Taylor
funm(A, fun)
Tnh ton hm ma trn chung
hess(A)
Mu Hessenberg
inv(A)
Ma trn chuyn v
logm(A)
Ma trn logarithm
lu(A)
Tm tha s vi php kh Gaussian
luinc(A, droptol)
Tha s LU khng y
54
norm(A)
norm(A,1)
norm(A, 2)
norm(A, inf)
norm(A, p)
norm(A, fro)
normest(A)
null(A)
orth(A)
poly(A)
polyvalm(A)
qr(A)
qrdelet(Q, R, j)
qrinsert(Q, R, j, x)
rank(A)
rcond(A)
sqrtm(A)
subspace(A, B)
svd(A)
svds(A, K)
trace(A)
1
1
55
3.1416
3.1416
3.1416
3.1416
3.1416
3.1416
3.1416
3.1416
3.1416
0.0751
0.3516
0
0
1
0
0
1
nht 3x3
>> eye(3,2)
ans=
1
0
0
1
0
0
Ma trn ng nht 3x2
Ngoi ra ch kch c ca mt ma trn, bn c th dng hm size to
mt ma trn c kch c ging nh ma trn khc:
>> A = [1 2 3; 4
>> ones(size(A))
ans=
1
1
1
1
6];
1
1
56
eye
gallery
hadamard
hankel
hilb
invhilb
magic
ones
pascal
rand
randn
rosser
toeplitz
vander
wilkinson
zeros
Ma trn ng nht
Ma trn kim tra nh vi phn t
Ma trn Hadamard
Ma trn Hankel
Ma trn Hilbert
Chuyn thnh ma trn Hilbert
Ma trn vung, gi tr cc phn t bng t 1 n gi
tr s phn t
Ma trn 1
Ma trn tam gic Pascal
Ma trn vi cc phn t ngu nhin t 0 n 1.
Ma trn ngu nhin thng thng vi gi tr trung
bnh bng 0
Ma trn kim tra i xng trc chnh
Ma trn Toeplitz
Ma trn Vandermond
Ma trn kim tra Wilkinson
Ma trn khng
V d
Vn : Ta c mch in nh trong hnh 7.1 c m t bng phng trnh
in p nt khi ngun a vo l sng hnh sin.
Hnh 7.1
E = 10o;
R1 = 2; L = 10j; C = ; R2 = 10.
y vi l in p gia nt th i v t. Hi in p ti mi nt l bao nhiu?
Gii php: y l vn v phn tch pha. Phng php gii bi ny l
gii phng trnh trn, v chuyn cc kt qu v dng thi gian. Trong MATLAB
gii php s l:
function circuit
% circuit.m script file to solve circuit proplem
A(1,1)=1/2;
% poke in nonzero values as needed
A(1,2)=-1/2;
A(2,1)=-1/2;
A(2,2)=1/2 + 0.2j + 1/10j;
A(2,3)= -1/10j;
A(3,2)=-1/10j;
A(3,3)=1/10 + 1/10j;
57
y=[-1 0 0]';
%
v=A\y
%
vmag=abs(v)
%
vphase=angle(v)*180/pi
%
theta=linspace(0,2*pi);
%
v1=vmag(1)*cos(theta-vphase(1));
v2=vmag(2)*cos(theta-vphase(2));
v3=vmag(3)*cos(theta-vphase(3));
thd=theta*180/pi;
plot(thd,v1,thd,v2,thd,v3)
58
Hnh 7.2
---------------------oOo---------------------
chng 8
cc php tnh LOGIC V QUAN H
Thm vo nhng ton t truyn thng, MATLAB cung cp ton t logic v
quan h. Bn c th quen thuc vi nhng php ton ny, nu bn lm quen
vi cc ngn ng lp trnh khc. Mc ch ca nhng ton t v hm ny l
tr li cu hi True_False (ng_sai).
i vi cc s th trong ton t logic v quan h quy nh cc s khc khng
l True cn s khng l False. Kt qu ca php ton logic v quan h a ra l
1 cho True, 0 cho False.
8.1 Ton t quan h
Ton t quan h MATLAB bao gm tt c cc php so snh:
59
Ton t quan h
<
<=
>
>=
==
~=
ngha
nh hn
nh hn hoc bng
ln hn
ln hn hoc bng
bng
khng bng
60
-1.0000 -0.6667
-0.3333
0
0.3333
0.6667
1.0000
>> sin(x)./x
Warning: Divide by zero
ans=
0.8415
0.9276
0.9816
NaN
0.9816
0.9276
0.8415
Tnh ton hm sin(x)/ x a ra mt cnh bo v phn t th t bng khng,
sin(0)/ 0 khng c nh ngha, MATLAB tr li NaN ( ngha l khng phi l
mt s) ti v tr trong kt qu. Th li v d trn, sau khi thay th phn t
c gi tr bng khng bng s eps:
>> x = x + (x==0)*eps;
>> sin(x)/x
ans=
0.8415 0.9276
0.9816
1.0000
0.9816
0.9276
0.8415
ngha
AND
OR
NOT
>> tf = ~(A>4)
1
1
1
0
0
0
0
0
ph nh ca kt qu, tng ng vi v tr no bng khng thay bng mt v
ngc li.
>> tf = (A>2)&(A<6)
tf=
0
0
1
1
Tr li mt ti nhng v tr m phn t ca A ln hn 2 v nh hn 6.
8.3 Cc hm logic v hm quan h
61
Thm vo nhng ton t logic v ton t quan h cp n trn,
MATLAB cung cp cc hm logic v quan h khc di y:
Cc hm logic v hm quan h khc
xor(x,y)
Ton t hoc. Tr li gi tr 1 khi x hoc y khc khng (True),
gi tr 0 khi c x
v cng bng khng (False) hoc cng khc khng (True)
any(x).
Tr li 1 nu bt c phn t no trong vector x khc khng. Tr
li 1 cho mi ct
trong ma trn x m c cc phn t khc khng.
all(x)
Tr li 1 nu tt c cc phn t ca vector x khc khng. Tr li
1 cho mi ct
trong ma trn x m tt c cc phn t khc khng.
MATLAB cn cung cp rt nhiu cc hm kim tra cho s tn ti ca cc
gi tr c bit hoc iu kin v tr li nhng kt qu l gi tr logic.
Cc hm kim tra
isa(X, name)
iscell(X)
iscellstr(X)
ischar(S)
isempty(X)
isequal(A, B)
isfield(S, name)
isfinite(X)
isglobal(X)
ishandle(h)
ishold
isiee
isinf(X)
isletter(S)
islogical(X)
ismember(A, B)
isnan(X)
isnumeric(X)
isppc
isprime(X)
isreal(X)
isspace(S)
issparse(A)
isstruct(S)
isstudent
isunix
isvms
62
chng 9
VN Bn
S tin ch ca MATLAB l x l vi cc con s. Tuy nhin chng ta nhiu ln
cp n thao tc vi vn bn (text), nh khi a nhn v tiu vo trong
th. Trong MATLAB bin text c dng n nh l xu k t, hoc n gin l
cc xu.
9.1 Xu k t
Xu k t trong MATLAB l mng ca cc gi tr ASCII m quy c ca n l
cc k t.
V d:
>> t = 'How about this character
t=
How about this character string?
>> size(t)
ans=
1
32
>> whos
Name
Size
t
1x32
Grand total is 32 elements using
string?'
Bytes
64 char
64 bytes
Class
array
63
>> char(t)
ans=
How about this character string?
Vi mng xu l mt mng s vi thuc tnh c bit, chng ta c th
thao tc bng tt c cc cng c thao tc vi mng sn c trong MATLAB. V d:
>> u = t(16:24)
u=
character
a ch ca xu cng ging nh mng. y phn t t 16 n 24 cha t
character
>> u = t(24:-1:16)
retcarahc
y l t character c ngc li
>> u = t(16:24)
u=
c
h
a
r
a
c
t
e
r
Dng ton t chuyn v chuyn t character sang dng ma trn ct
>> v = 'I cant't find the manual!'
v=
I can't find the manual!
Du nhy n vi xu k t l biu tng trong hai du nhy n.
Chng ta c th ni hai xu nh i vi hai mng:
>> w = [u,v]
w=
character I can t find the manual!
Hm disp cho php bn hin th xu k t m khng c tn bin
>> disp(v)
I can't find the manual
Ch l trng thi v= b b i, iu ny rt c ch cho chng ta hin th
nhng li tr gip trong script file.
64
Cng ging nh i vi ma trn, xu k t c th c nhiu hng, nhng mi
mt hng phi c s ct bng nhau, cho s ct ca chng bng nhau chng
ta c th dng k t trng.
>> v = ['However, this'
'does work!
']
v=
However, this
does work!
>> w = ['this'; ' does not']
??? All rows in the bracketed expression must have the same
number of columns.
>> size(v)
ans=
2
13
Ta cng c th dng hm char to mt mng xu t cc xu, v n t
thm cc k t trng to ra mt mng y .
>> w = char('this', 'does not')
w=
this
does not
>> size(w)
ans=
2
8
9.2 Chuyn i xu
b xung thm v s chuyn i gia xu v m ASCII ca n nh
trnh by trn, MATLAB a ra mt s cc hm chuyn i hu ch khc,
chng bao gm di y:
Cc hm chuyn i xu
base2dec
bin2dec
char
dec2base
dec2bin
dec2hex
double
fprintf
hex2dec
hex2num
int2str
mat2str
65
num2str
sprintf
sscanf
str2num
Chuyn t s sang xu
Chuyn t m ASCII sang xu
Chuyn t s sang xu c iu chnh kch thc
Chuyn t xu sang s khng c iu chnh
kch thc
Tr li mt xu gm cc k t trng hay
du cch
Tr li cc vt trng t mt xu
c lng xu nh l mt lnh ca MATLAB
c lng xu v bt li
Hm evaluate a ra bng xu
Tm kim mt xu trong mt xu khc
True nu a vo l mt xu
True ti nhng v tr k t Alphabet tn
ti
True ti nhng v tr l k t trng
Xu ca li cui cng MATLAB a ra
Xu vi nhng ch ci thng
Ni cc xu thnh hng
True nu cc xu ging nhau
Tm kim kh nng ging nhau ca xu
True nu n k t u ging nhau
Thay th mt xu bng mt xu khc
Tm kim du hiu cho xu
Ni cc xu thnh ct
Chuyn thnh ch in
66
Mt s cc hm trn cung cp kh nng x l cc xu c bn. V d nh,
findstr tr li ch s bt u ca mt xu trong mt xu khc:
>> b = 'Peter Piper picked a peck of pickled peppers';
>> findstr(b, ' ')
% Tm kim khong trng
6
12
19
21
26
29
37
>> findstr(b, 'p')
9
13
22
30
38
40
41
>> find(b=='p')
9
13
22
30
38
40
41
>> findstr(b, 'cow')
% Tm kim t cow
ans=
[ ]
>> findstr(b,'pick')
ans=
13
30
Hm ny tr li ma trn rng khi khng c nhng phn cn tm.
>> strrep(b,'Peter','Pamela')
ans=
Pamela Piper picked a peck of pickled peppers
Nh trnh by trn, strrep n gin ch l s thay th mt xu. strrep
khng lm vic vi ma trn xu, v vy trc tin bn cn phi chuyn t ma
trn thnh vector.
9.4 Ma trn t bo ca xu
Ma trn t bo l mt kiu d liu cho php bn gi tn v thao tc vi mt
nhm d liu c nhiu kch c v nhiu kiu.
>> C = {'How';'about';'this for a';'cell array of strings?'}
C=
'How'
'about'
'this for a'
'cell array of strings?'
>> size(C)
4
1
Ma trn trn c 4 hng v mt ct nhng mi ct li c di khc nhau.
Tt c cc phn t c t trong du ngoc nhn, mi phn t c t trong
du nhy n, gia hai hng l du chm phy. Mng t bo c nh a
ch cng ging nh mng thng thng:
>> C(2:)
ans=
'about'
67
'this for a'
>> C([4 3 2 1])
ans=
'cell array of strings?'
'this for a'
'about'
'How'
>> C(1)
ans=
How
y vn l mng t bo. thay i du nhy ca t bo, ta s dng ngoc
nhn:
>> s = c{4}
ans=
cell array of strings?
>> size(s)
ans=
1
22
truy nhp vo nhiu hn mt t bo, ta dng hm deal:
>> [a, b, c, d] = deal(C{:})
a=
How
b=
about
c=
this for a
d=
cell array of trings?
y C{:} ch truy nhp n tt c cc t bo, n ging nh:
>> [a, b, c, d] = deal(C{1}, C{2}, C{3}, C{4})
a=
How
b=
about
c=
this for a
d=
cell array of strings?
Hm char c th dng chuyn t mng t bo sang mng xu:
>> s = char(C)
How
about
this for a
68
cell array of strings?
>> size(s)
% Kt qu l cc xu vi cc khong trng.
ans=
4
22
>> ss = char(C(1:2))
ss=
How
about
>> size(ss)
ans=
2
5
chuyn ngc li mng t bo, ta dng hm cellstr:
>> cellstr(s)
ans=
'How'
'about'
'this for a'
'cell array of strings?'
Hu ht cc hm xu trong MATLAB lm vic vi c mng xu hoc mng
t bo.
V mng t bo s c trnh by r hn Chng 19.
chng 10
thi gian
21
16
33
39.934708
69
729411.690045541
C hai kt kt qu trn c cng mt thng tin.
Hm date tr li ngy hin ti nh mt xu theo mu: dd-mmm-yyyy
>> date
ans =
21-Jan-1997
10.2 S chuyn i gia cc kiu
Bn c th chuyn s ngy ra xu, s dng hm datestr. Cu trc ca hm
ny c dng nh sau:
datestr(date_number,format_spec).
Sau y l tr gip ca help cho hm datestr:
>> help datestr
DATESTR string representation of date.
DATESTR(D,DATEFORM) converts a serial data
number D (as returned by DATENUM) into a date
string. The string is formatted according to
the format number or string DATEFORM (see table
below). By default,
DATEFORM is 1, 16, or 0 depending on whether D
contains
dates, times or both.
DATEFORM number DATEFORM string
0
'dd-mmm-yyyy
HH:MM:SS'
1
2
3
4
5
6
7
8
9
10
11
12
13
14
16
17
18
'dd-mmm-yyyy'
'mm/dd/yy'
'mmm'
'm'
'mm'
'mm/dd'
'dd'
'ddd'
'd'
'yyyy'
'yy'
'mmmyy'
'HH:MM:SS'
'HH:MM:SS PM'
'HH:MM'
'HH:MM PM'
'QQ-YY'
'QQ'
Example
01-Mar-1995
15:45:17
01-Mar-1995
03/01/95
Mar
M
3
03/01
1
Wed
W
1995
95
Mar95
15:45:17
3:45:17 PM
15:45
3:45 PM
Q1-96
Q1
70
v d vi hm datestr:
>> datestr(t)
ans=
21-Jan-1997 16: 33: 40
>> datestr(t,14)
ans=
4: 33: 40 PM
Hm datenum l hm ngc ca datestr. Hm ny chuyn mt xu k t
dng ngy dng mu datenum(str), hoc mt s c lp hoc mt vector
sang s dng ngy, dng mu:
datenum(year, month, day)
hoc
datenum(year, month, day, hour, minute, second).
>> datenum('21-Jan-1997 16: 33: 40')
ans=
729411.690045541
>> datenum(1997, 01, 21)
ans=
729411
>> datenum(1997, 01, 21, 16, 33, 40)
ans=
729411.690045541
Hm datevec chuyn mt xu k t dng ngy (dng datestr dng 0, 1,
2, 6, 13, 14, 15, hoc 16) hoc mt s dng ngy sang vector.
>> c = datevec('12/ 24/ 1984')
c=
1984
12
24
0
0
0
>> [yr, mo, day, hr, nim, sec] = datevec('24-Dec-1984
yr=
1984
mo=
12
day=
24
hr=
8
min=
22
sec=
0
08: 22')
71
10.3 Cc hm v ngy
Ngy ca tun c th tm t xu dng ngy hoc s dng ngy, dng hm
weekday, MATLAB s dng quy c Sunday = 1 v Saturday = 7.
>> [d
d=
w] = weekday(728647)
2
w=
Mon
>> [d w] = weekday('21-Dec-1994')
d=
4
w=
Wed
Ngy cui thng c th tm bng hm eomday. Trong bt buc phi a
vo nm, thng.
>> eomday(1996, 2)%1996 l nm
ans=
29
MATLAB c th to lch cho bt c thng no bn yu cu, v hin th n
trong ca s lnh hoc t chng trong mt ma trn 6x7.
>> calendar('7/ 17/ 95')
Jul 1995
S
M
Tu
W
Th
0
0
0
0
0
2
3
4
5
6
9
10
11
12
13
16
17
18
19
20
23
24
25
26
27
30
31
0
0
0
>> S = calendar(1994, 12)
S =
0
0
0
0
1
2
4
5
6
7
8
9
11
12
13
14
15
16
18
19
20
21
22
23
25
26
27
28
29
30
0
0
0
0
0
0
F
0
7
14
21
28
0
S
1
8
15
22
29
0
3
10
17
24
31
0
72
0.2200
Hnh 10.1
73
Hnh 10.2
Ch s khc nhau v hm thi gian gia elapsed_time i vi lnh plot,
lnh plot th hai nhanh hn v MATLAB to hnh dng ca s v dch cc
hm cn thit vo trong nh.
Hm cputime tr v tng s thi gian ca CPU (Central Processing Unit),
tnh theo giy, trong thi gian MATLAB dng t khi n c khi ng ln.
Hm etime tnh khong thi gian gia hai vector thi gian. Cc vector
phi l vector hng gm 6 phn t, ging nh kt qu tr v trong lnh clock v
datevec. Ti thi gian hin ti etime khng chuyn gia thng v nm.
Tt c cc hm c th s dng tnh ton thi gian.
>> t0 = cputime; pause(5); cputime - t0
ans =
5
>> t1 = clock; pause(2); etime(clock,t1)
ans =
2.0400
Bn hy xem help v MATLAB CD tm hiu thm v nhng hm ny.
10.5 V th vi hm ngy v thi gian
i khi n rt c ch v th trong dng xu ngy v thi gian cho
mt hoc hn mt cc nhn. Hm datetick t ng vi cng vic ny. Nu
th c v, dng s ngy cho mt hoc hn mt trc, th hm datetick s vit
cc nhn cho im nh du. V d sau v hnh 10.3:
74
>> t = (1900:10:1990)';
>> p = [75.995; 91.972; 105.771; 123.203; 131.669;
150.697; 179.323; 203.212; 226.505; 249.633];
>> plot(datenum(t,1,1),p)
>> datetick('x','yyyy')
% use 4-digit year on the x-axis
>> title('Population by year')
Chng ta c th to biu ct ca cng ty bn hng bn t thng 11 nm
1994 n thng 12 nm 1995 (Hnh 10.4):
>>
>>
>>
>>
>>
>>
>>
Hnh 10.3
75
Hnh 10.4
V d: Tm th su ngy 13
By gi chng ta c gii thiu cc lnh v thi gian, hy dng chng
to mt s hm c ch. Nu bn l ngi cn thn, bn mun bit bao gi th su
ngy 13 xy ra. Hm M_file s cho bn nhng thng tin ny.
function m=friday(start)
% FRIDAY Date of the next Friday the 13th
% FRIDAY display the next occurrence of Friday the
% 13th
% FRIDAY(START) start the search at the date
% specified by START
% M=FRIDAY return the date number of the next Friday
% the 13th
if nargin==0
start=now;
% use the current date if none
end
% was supplied
[yr,mo,da]=datevec(start);
da=da+6-weekday(start);
% Start with the Friday in
% this week
start=datenum(yr,mo,da,0,0,0);
while 1
[yr,mo,da]=datevec(start);
if (weekday(start)==6)&(da==13)
break;
76
end
start=datenum(start+7);
end
if nargout==0
disp(['Friday,'datestr(start,1)]) % Display the
% the result
else
m=start;
% or return the resulting date
end
% number
Sau khi chy chng trnh ta c kt qu:
>> friday
Friday,13-Aug-1999
Nu bn mun c cnh bo cho ton b nm, xem hm fridays:
function F=fridays(ynum)
% FRIDAY List the Friday the 13ths in the year ynum.
% M=FRIDAY return the date numbers found.
%
if nargin==0
[ynum dummy]=datevec(now); % use the current date if
end
% non was supplied
MM=[];
trynum=datenum(ynum,1,13,0,0,0);
% check January 13 first
trynum=friday(trynum);
% find the first one
[tyr dummy]=datevec(trynum);
while tyr==ynum
% May be there are more this year
MM=[MM;trynum];
trynum=friday(trynum+7); % skip to the next week
[tyr dummy]=datevec(trynum);
end
if nargout==0
disp('Fridays');
% Display the results
disp(datestr(MM,1)) % Display the result
else
F=MM;
% or return the vector of
end
% date number
-------------------oOo-------------------
77
chng 11
VNG LP IU KHIN
Cc ngn ng lp trnh v my tnh c kh nng lp trnh u cp
n mt c im l cho php bn iu khin vng lp ca cc cu lnh
da trn nhng cu trc ca n. Nu bn tng s dng nhng c im
ny th phn ny s rt n gin i vi bn. Mt khc nu vng lp iu
khin l mi i vi bn th n s rt rc ri, nu nh vy, th bn hy nghin cu
n t t.
Vng lp iu khin rt hu ch v c ng dng rt rng ri, n lm cho cc
php ton c thc hin mt cch thun tin hn v nhanh hn. MATLAB a ra
cc dng vng lp c iu khin l: vng lp for, vng lp while, cu trc ifelse-end v cu trc switch-case. V cc cu trc thng hon thin cc lnh
ca MATLAB, nn chng thng xut hin trong M_file, hn l trong cu lnh
nh trc tip ti du nhc ca MATLAB.
11.1 Vng lp for
Vng lp for cho php mt nhm lnh thc hin lp li mt s ln c
nh. C php ca vng lp for nh sau:
for
x = array
commands
% Khi cc lnh
end
Cc cu lnh gia hai trng thi for v end c thc hin mt ln cho tt
c cc ct ca mng (array). Ti mi ln lp li, x c gn cho phn t ct tip
theo nh trong sut n ln ca vng lp, x = array(:, n).
V d:
>> for n = 1:10
x(n) = sin(n*pi/10);
end
>> x
x=
Columns 1 through 7
0.3090
0.5878
0.8090
0.9511
1.0000
0.9511
0.8090
Columns 8 through 10
0.5878
0.3090
0.0000
78
Vng lp for khng th b kt thc bng cch gn li bin iu khin n trong
vng lp:
>> for n = 1:10
x(n) = sin(n*pi/10);
n = 10;
end
>> x
x=
Columns 1 through 7
0.3090 0.5878 0.8090
Columns 8 through 10
0.5878 0.3090 0.0000
0.9511
1.0000
0.9511
0.8090
Trng thi 1:10 l mt trng thi to ln mng MATLAB tiu chun. Bt c kiu
mng no ca MATLAB u c chp nhn trong vng lp for:
>> data = [3 9 45 6; 7 16 -1 5]
data =
3
9 45
6
7 16 -1
5
>> for n = data
x = n(1)-n(2)
end
x=
-4
x=
-7
x=
46
x=
1
Bnh thng vng lp for c th lng vo nhau:
>> for n = 1:5
for m = 5:-1:1
A(n,m) = n^2+m^2;
end
disp(n)
end
1
2
3
4
5
>> A
A=
2
5 10 17 26
5
8 13 20 29
79
10 13 18 25 34
17 20 25 32 41
26 29 34 41 50
Khng nn dng vng lp for khi m tng ng vi vic ta dng mng tnh
ton. Nh trong v d trc ta cng c th dng mng tnh ton:
>> n = 1: 10;
>> x = sin(n*pi/10)
x=
Columns 1 through 7
0.3090 0.5878 0.8090 0.9511 1.0000 0.9511 0.8090
Columns 8 through 10
0.5878 0.3090 0.0000
Trong hai trng hp nh trn, trng hp th hai ta dng mng tnh ton cng
c kt qu nh vy, nhng n nhanh hn v cc tho tc cng t hn.
tng tc tnh ton, mng cn phi c khi to trc khi thc hin vng
lp for (hoc vng lp while). Trong v d trc c mi ln lnh trong vng lp
for c tnh, kch c ca bin x li tng ln 1. iu ny lm cho MATLAB mt
thi gian cp nht thm b nh cho x trong mi vng. rt ngn bc ny,
v d v vng lp for trc vit li nh sau:
>> x = zeros(1,10); % Khi to b nh cho x
>> for n = 1: 10
x = sin(n*pi/10);
end
By gi ch cn thay i gi tr ca cc phn t ca x.
11.2 Vng lp while
Vng lp while thc hin lp li mt nhm lnh mt s ln c nh, nhng khng bit trc c s ln lp li.
C php ca vng lp while nh sau:
while biu thc iu kin
khi cc lnh..
end
khi cc lnh.. gia hai trng thi while v end c thc hin lp i lp li
khi tt c cc biu thc iu kin l ng. Thng thng gi tr ca iu
kin a ra kt qu l mt s, nhng nu cc kt qu a ra l mt mng th
vn hp l. Trong trng hp mng, tt c cc phn t trong mng kt qu a ra
phi l True (ng). C th tham kho v d di y:
>> num = 0; ESP =
>> while (1+ESP)
ESP
num
end
>> num
1;
> 1
= ESP/ 2;
= num + 1;
80
num=
53
>> ESP = 2*ESP
ESP=
2.2204e-16
V d ny a ra cch tnh gi tr c bit eps ca MATLAB, n l mt s dng
nh nht, c th cng vi 1 c mt s ln hn 1 dng cho gii hn chnh
xc. y chng ta dng ch hoa EPS chc chn rng gi tr eps ca
MATLAB khng ghi ln. Trong v d ny, gi tr ca EPS bt u bng 1,
trong khi iu kin (1+EPS)>1 l True ( cho n khc khng), cc lnh trong
vng lp while c tnh, gi tr ca EPS tip tc c chia i, gi tr ca EPS
nh i, m cng EPS vi 1 th n l s nh nht m ln hn 1. Do my tnh s
dng s c nh c 16 ch s nn khi gi tr nh qu th n lm trn bng 0,
v khi iu kin (EPS+1)> 1 False (sai) v vng lp while dng li. Cui
cng EPS c nhn vi 2 v sau ln chia cui cng cho 2 th vng lp dng li.
11.3 Cu trc if-else-end
Nhiu khi chng ta cn nhng cu lnh c thc hin theo mt iu kin
no . Trong ngn ng lp trnh, logic ny c cung cp bi cu trc if-elseend. C php ca cu trc ny nh sau:
if biu thc iu kin
khi cc lnh...
end
Khi cc lnh gia hai trng thi if v end c thc hin khi tt biu thc
iu kin l ng. Trong trng hp iu kin bao gm cc iu kin con, th
tt c cc iu kin con c tnh v tr v mt trng thi logic ca iu kin.
V d:
>> apple = 10
% s to
>> cost = apple*25
cost=
250
>> if apple > 5
cost = (1-20/100)*cost;
end
>> cost
cost
200
% b i 20%
81
Khi c ba hoc nhiu iu kin thay i, cu trc ca n s l:
biu thc iu kin 1
khi cc lnh c thc hin nu iu kin 1 l ng
elseif biu thc iu kin 2
khi cc lnh c thc hin nu iu kin 2 l ng
elseif biu thc iu kin 3
khi cc lnh c thc hin nu iu kin 3 l ng
elseif biu thc iu kin 4
.
.
.
else
khi cc lnh c thc hin nu khng c iu kin no ng.
End
if
82
khi lnh 1
case { gi tr th 2, gi tr th 3, gi tr th 4}
khi lnh 2
otherwise
khi lnh 3
end
y biu thc iu kin phi l dng s hoc dng chui, nu biu thc
iu kin l dng s th lnh case s th xem gi tr ca biu thc c
bng gi tr th i hay khng. Nu biu thc iu kin l mt chui th lnh
case s so snh chui vi gi tr th i. Trong v d trc, biu thc iu kin
c em so snh vi gi tr th 1, nu chng bng nhau th khi lnh u tin
c thc hin, m cc khi lnh tip theo cho n trc trng thi end c b
qua, nu chng khng bng nhau th iu kin tip tc c em so snh vi
gi tr th 2, gi tr th 3, gi tr th 4, nu mt trong cc gi tr ny bng biu
thc iu kin th khi lnh 2 c thc hin. Nu tt c cc lnh so snh ca
case u khng ng th khi lnh 3 c thc hin. Ch rng trong cu
trc switch-case c it nht mt nhm lnh phi c thc hin. Sau y l
mt v d v cu trc switch-case:
x = 2.7;
units = 'm';
switch units
% Chuyn x ra centimeters
case {'inch','in'}
y=x*2.54;
case {'feet','ft'}
y=x*2.54*12;
case {'meter','m'}
y=x/ 100;
case {'millimeter','mm'}
y=x*10;
case {'centimeter','cm'}
y=x;
otherwise
disp(['khng bit units: ' units])
y=nan;
end
Khi thc hin v d ny th gi tr cui cng ca y l: y=0.027.
V d: Vn v li xut
Vn : mua mt t, bn phi vay 10,000$ vi li xut hng thng l
8.9%, trong 3 nm gc v li c tnh nh th no sau mi ln chi tr. Ngoi ra
phn tin cn li sau mi ln chi tr l bao nhiu?
Gii php: T chng 2, s tin chi tr P hng thng cho khon vay A dollar vi
li xut hng thng l R, tnh trong M thng l:
P = A.
83
Ti ln chi tr u tin, tin li phi tr l I p1= R.A. Gi s s tin phi tr l P
th tin gc phi tr l Pr1= P - Ip1 v s tin cn li sau ln chi tr th nht l
B1=A - Pr1. Trong tt c cc ln chi tr sau tin li phi tr l Ipm= R.Bm-1 v s
tin cn li l Bm= Bm-1 - Prm. S dng cc thng tin ny th chng trnh
MATLAB s nh sau:
function amort
% amort.m script file
A=10000; % amount of loan
M=3*12; % number of months
R=8.9;
% annual interest rate
r=(R/100)/12; % monthly interest rate
P=A*(r*(1+r)^M/((1+r)^M-1)); % payment required
B=zeros(M,1); %storage for balance remaining per month
Ip=B;
% storage for interest paid per month
Pr=B;
% storage for principle paid per month
for m=1:M
if m==1 % compute interest when balance is
Ip(m)=r*A;
% original amount
else
Ip(m)=r*B(m-1);
end
Pr(m)=P-Ip(m); % principle paid this month
if m==1 % compute balance remaining after payment
B(m)=A-Pr(m);
else
B(m)=B(m-1)-Pr(m);
end
end
format bank
disp(['Amount=' num2str(A)])
disp(['Interest Rate=' num2str(R)])
disp(['Number of months = ' num2str(M)])
disp(['Payment =' num2str(P)])
disp(' ')
disp('
Amortization Schedule')
disp(' Payment Balance Interest Principle')
disp([(1:M)' B Ip Pr])
format short g
Chy chng trnh ny th kt qu nh sau:
>> Amount=10000
Interest Rate=8.9
Number of months = 36
Payment =317.5321
Payment
1.00
2.00
Amortization Schedule
Balance
Interest
9756.63
74.17
9511.46
72.36
Principle
243.37
245.17
84
3.00
4.00
5.00
6.00
7.00
8.00
9.00
10.00
11.00
12.00
13.00
14.00
15.00
9264.48
9015.65
8764.99
8512.46
8258.07
8001.78
7743.60
7483.49
7221.47
6957.49
6691.56
6423.66
6153.77
70.54
68.71
66.87
65.01
63.13
61.25
59.35
57.43
55.50
53.56
51.60
49.63
47.64
246.99
248.82
250.67
252.53
254.40
256.28
258.19
260.10
262.03
263.97
265.93
267.90
269.89
85
Kt qu ca chng trnh ny kh th v, v d vi x=2 m , trong m l mt
s nguyn th chui s rt ngn (ti sao?), hn na bt c khi no gi tr ca
mt s hng trong chui l lu tha ca 2 th chui s nhanh chng dng li, nh ng i vi nhng s x tng i nh th kt qu l mt chui kh th v. V d
x1=27. Hu nh tt c cc gi tr ban u u sinh ra mt chui c gi tr rt
ngu nhin nh hnh v di y vi x(1)=837799. Liu bn c dm kt lun chui
ny hi t hay khng!
th kt qu ca chng trnh vi x(1)=837799 l:
Hnh 11.1
--------------------oOo------------------chng 12
HM M_FILE
Khi bn s dng cc hm MATLAB nh inv, abs, angle, v sqrt, MATLAB
nhn gi tr m bn truyn vo, da vo kt qu , tnh ton kt qu ca
hm v tr li cho bn kt qu tnh ton. Cc lnh tnh ton bng hm cng nh
cc bin trung gian c to ra bi cc lnh ny bn u khng nhn thy, tt
c nhng g bn trng thy ch l cc gi tr nhp vo v cc gi tr a ra, v
vy c th coi mt hm nh mt ci hp en. Cc thuc tnh ny lm cho hm
tr ln rt hu dng i vi cc lnh tnh ton m phi dng n cc hm ton
hc phc tp thng xut hin khi bn gii quyt nhng vn ln. Da vo u
im ny, MATLAB cung cp mt cu trc bn c th t to mt hm cho
86
mnh di dng mt M_file. Hm flipup di y l mt v d v vic dng hm
M_file:
function y=flipup(x)
% FLIPUP Flip matrix in up/down directiopn.
% FLIPUP(x) return x with columns preserved and rows flipped
% in the up/down direction. For example.
%
% x = 1 4
becomes
3 6
%
2 5
2 5
%
3 6
1 4
%
%
See also FLIPLR, ROT90, FLIPDIM.
%
Copyright (c) 1984-96 by the MathWork, Inc.
%
$Revision:
5.3 $ $Date: 1996/10/24 18: 41: 14 $
if ndim(x)~=2
error( X must be a 2-D matrix.);
end
[m, n] = size(x);
y = x(m: -1: 1, :);
Mt hm M_file c v rt ging vi mt script file bi v chng cng l cc file
vn bn v cng c phn m rng l .m. im khc nhau gia script file v cc
hm M_file l cc hm M_file khng c nhp vo t ca s lnh m thng qua
mt trnh son tho vn bn t bn ngoi. Hm M_file cn khc vi script file
ch n ch thng tin vi MATLAB thng qua cc bin truyn vo cho n v thng
qua cc bin ra m n to ln, cc bin trung gian bn trong hm th khng
xut hin hay tng tc vi mi trng ca MATLAB. Nh bn c th thy v d trc, dng u tin ca hn M_file nh ngha file ny nh mt hm v ch ra tn
ca n, tn ny chnh l tn file nhng khng c phn m rng l .m ng thi
n cng nh ngha lun bin vo v ra. Chui cc dng lnh tip theo l cc
li ch thch, s xut hin khi ta dng lnh >>help, >>help flipud, hoc
>>helpwinflipud dng lnh help u tin gi l dng H1 chnh l dng hin
ra khi dng lnh lookfor. Cui cng phn cn li ca file ny cha cc lnh ca
MATLAB to ln cc bin ra.
12.1 Cc quy lut v thuc tnh
Hm M_file phi tun theo nhng quy lut v thuc tnh nht nh, ngoi
ra chng cn c mt s tnh cht rt quan trng bao gm:
*) Tn hm v tn file phi l mt, v d hm flipud phi c lu trong file vi
ci tn l flipud.m.
*) Ln u tin MATLAB thc hin hm M_file n s m file vn bn tng ng
v dch cc dng lnh ca file ra mt dng m lu trong b nh nhm mc
ch tng tc thc hin cc li gi hm tip theo. Nu trong hm c cha
li gi hm M_file khc th cc hm cng c dch vo trong b nh.
*) Cc dng ghi li ch thch cho ti dng u tin khng phi l ch thch
trong hm M_file l nhng dng vn bn, n s hin ra khi bn s dng lnh
87
help. V d: >>help flipud s tr v 9 dng u tin trong hm M_file ni trn.
Dng u tin l dng H1, n s xut hin khi bn dng ln look for.
*) Mi hm c mt khng gian lm vic ring tch bit so vi mi trng
MATLAB, mi quan h duy nht gia cc bin trong hm vi mi trng MATLAB
l cc bin vo v ra ca hm . Nu trong thn hm gi tr b thay i th
s thay i ny ch tc ng bn trong ca hm m khng lm nh hng
n cc bin ca mi trng MATLAB. Cc bin c to ra bn trong mt hm
th ch nm trong khng gian lm vic ca hm v c gii phng khi hm
kt thc, v vy khng th s dng thng tin ca ln gi trc cho ln gi sau.
*) S cc tham s vo v ra khi mt hm c gi th ch c tc dng bn
trong hm , bin nargin cha cc tham s a vo cn bin nargout cha
cc gi tr a ra, trong thc t th cc bin ny thng c s dng xc
nh gi tr ra da vo s lng cc i s a vo. V d xt hm linespace
sau:
function y=linespace(d1, d2, n)
% LINESPACE Linearly spaced vector.
% LINESPACE(x1, x2) generates a row vector of 100 linearly
% equally spaced points betwin x1 and x2.
%
% LINESPACE(x1, x2, N) generates N points betwin x1 and x2.
%
%
See also LOGSPACE, :.
%
Copyright (c) 1984-96 by the MathWork, Inc.
%
$Revision:
5.3 $ $Date: 1996/10/24 18: 41: 14 $
if nargin==2
n = 100;
end
y = [d1 + (0: n-2)*(d2-d1)/ (n-1) d2];
y nu li gi ca ngi s dng ch truyn vo hai i s th linespace
tr v gi tr 100, nhng nu s i s l 3, v d nh linespace(0,10,50) th
i s th 3 s quyt nh s cc im d liu.
*) Cc hm c th dng chung cc bin vi hm khc, vi mi trng MATLAB v
c th quy nu nh cc bin c khai bo l ton cc. c th truy cp
n cc bin trong mt hm hoc trong mi trng MATLAB th cc bin
phi c khai bo l bin ton cc trong mi hm s dng n. Hm tic v toc
sau y m t mt v d v vic s dng bin ton cc:
function tic
% TIC Start a stopwatch timer.
%
The sequence of lnhs
%
TIC, operation, TOC
%
prints the time required for the operation.
%
%
See also TOC, CLOCK, ETIME, CPUTIME.
%
Copyright (c) 1984-96 by the MathWork, Inc.
%
$Revision:
5.3 $ $Date: 1996/10/24 18: 41: 14 $
% TIC simple stores CLOCK in a global variable
88
global TICTOC
TICTOC = clock;
function t = toc
% TOC Read the stopwatch timer.
%
TOC, by itself, prints the elapsed time in t,
% instead of
printing it out.
%
%
See also TIC, ETIME, CLOCK, CPUTIME.
%
Copyright (c) 1984-96 by the MathWork, Inc.
%
$Revision:
5.3 $ $Date: 1996/10/24 18: 41: 14 $
%
TOC uses ETIME and the value of clock saved by TIC.
global TICTOC
if nargout< 1
elapsed_time = etime(clock, TICTOC);
else
t = etime(clock, TICTOC);
end
Trong hm tic th bin TICTOC c khai bo l bin ton cc v gi tr ca
bin ny c c thng qua vic gi hm clock. Sau trong hm toc, bin
TICTOC cng c khai bo l bin ton cc lm cho toc c kh nng truy cp
n bin TICTOC trong hm tic, s dng gi tr ca bin ny toc s tnh c
khong thi gian tri qua k t khi hm tic c thi hnh. Mt iu quan
trng cn nh l bin TICTOC ch tn ti trong khng gian lm vic ca tic v
toc nhng khng tn ti trong mi trng MATLAB.
*) Vic thi hnh hm M_file s kt thc khi gp dng cui cng ca file
hoc gp dng lnh return. Lnh return gip ta kt thc mt hm m khng
cn phi thi hnh ht cc lnh ca hm .
*) Hm error ca MATLAB s hin th mt chui ln ca s lnh v dng thc
hin hm, tr iu khin v cho ca s lnh v bn phm. Hm ny rt hu
dng cnh bo vic s dng hm khng ng mc ch. V d nh cu
lnh sau:
if
length(val) > 1
error(VAL phi l gi tr s!)
end
y nu val khng phi l s th hm error s hin ln chui cnh bo v
tr iu khin cho ca s lnh v bn phm.
*) Mt M_file c th cha nhiu hm. Hm chnh trng M_file ny phi c
t tn trng vi tn ca M_file nh cp n trn. Cc hm khc c khai
bo thng qua cu lnh function c vit sau hm u tin. Cc hm con ch
c s dng bi hm chnh, c ngha l ngoi hm chnh ra th khng c hm
no khc c th gi c chng. Tnh nng ny cung cp mt gii php hu hiu
gii quyt tng phn ca hm chnh mt cch ring r lm gim bt cc kh
khn khi ta lp trnh mt hm ln.
89
Ni tm li, hm M_file cung cp cho ta mt phng php n gin m
rng kh nng ca MATLAB. Trong thc t rt nhiu hm ca MATLAB l cc hm
M_file.
V d: Hm tr dn theo thi hn
Vn : Gi s c mt khon cho vay A dollar, vi li sut hng thng l R%
v phi tr trong vng M thng. Hy vit mt hm M_file th hin:
- Lch chi tr nu nh ban u cha bit cc s liu a ra.
- S tin chi tr hng thng nu bit mt s liu ra.
- S tin chi tr hng thng v mt ma trn s cha lch thanh ton nu bit
trc hai i s ra.
Gii php: Trong chng 2, s tin phi chi tr hng thng P cho khon cho
vay A dollar vi t gi li xut l R, tr trong M thng:
P = A.
Ti ln chi tr u tin, tin li phi tr l Ip1= R.A. Gi s s tin phi tr l P
th tin gc phi tr l P r1= P - Ip1 v s tin cn li sau ln chi tr th nht l
B1=A - Pr1 . Trong tt c cc ln chi tr sau tin li phi tr l I pm= R.Bm-1 v
s tin cn li l Bm= Bm-1 - Prm. S dng cc thng tin ny th chng trnh
MATLAB s nh sau:
function [P,S]=loan(a,r,m)
%LOAN Loan Payment and Amortization Table.
% (H1 help line)
%P=LOAN(A,R,M) computes the monthly payment on a loan
%amount of a, having an annual intereat rate of R,
% to be paid off in equal amounts over M months.
%
%[P,S]=LOAN(A,R,M) also returns
% an amortization table S,
%which is an M-by-4 matrix
% where S(:,1)=Payment Number,
%S(:,2)=Remaining Balance, S(:,3)=Interest Paid, and
%S(:,4)=Principle Paid.
%
%If no output arguments are provided
% the table is displayed.
%Start with some error checking
if nargin<3
error('Three input argument are required.')
end
if fix(m)~=m
error('Number of Months Must be Integer.')
end
% Now calculate
rm=(r/100)/12;
% Monthly interest rate
p=a*(rm*(1+rm)^m/((1+rm)^m-1)); % payment required
if nargout==1
% done if only payment is required.
P=p;
% copy out into output variable
return
end
90
B=zeros(m,1);
Ip=B;
Pr=B;
for i=1:m
if i==1
%
%
%
%
storage for
storage for
storage for
creat table
en
Nu
Gi tr
Vn
g
3
Lc
Lam
Trm
Tm
Xm
Trn
g
9
Nu A, B, C l cc gi tr ca cc mu trn gii mu th gi tr ca cc in tr
l:
R = (10.A + B).10C
91
S dng cc thng tin ny, hy to mt M_file tr v gi tr ca in tr ng
vi bt k mt in tr chun no.
Gii php: Vn ny yu cu mt chui cc thao tc v so snh thc
hin s chuyn i trong bng trn. Gii php ca MATLAB l:
function r=resistor(a, b, c)
%RESISTOR(A, B, C) Resistor value from color code.
%RESISTOR(a, B, C) returns the resistace
%value of resistor
%given its three color bands, A, B, C.
%A, B, C must be one of the
%following character strings:
%
%'black', 'brown', 'red', 'orange', 'yellow',
%'green', 'blue', 'violet', 'gray', 'white'
% first some error checking
if nargin~=3
error('Three input arguments required')
end
if ~ischar(a)|~ischar(b)|~ischar(c)
error('Inputs Must be Character Xus')
end
%now solve problem
vals=zeros(1,3);
% string cell array of three inputs
abc={a,b,c};
% tring cell aray thr input
for i=1:3
%do each color band in turn
band=lower(abc(i));
%get (i)th input and make lower case
if strncmp(band,'bla',3) % black (compare min # of)
vals(i)=0;
% chars for unique match)
elseif strncmp(band,'br',2) %brown
vals(i)=1;
elseif strncmp(band,'r',1)
%red
vals(i)=2;
elseif strncmp(band,'o',1)
%orange
vals(i)=3;
elseif strncmp(band,'y',1)
%yellow
vals(i)=4;
elseif strncmp(band,'gre',3) %green
vals(i)=5;
elseif strncmp(band,'blu',3) %blue
vals(i)=6;
elseif strncmp(band,'v',1)
%violet
vals(i)=7;
elseif strncmp(band,'gra',3) %gray
vals(i)=8;
elseif strncmp(band,'w',1)
%white
vals(i)=9;
92
else
error(['Unknown Color Band.'])
end
end
if vals(1)==0
error('First Color Band Cannot Be Black.')
end
r=(10*vals(1)+vals(2))*10^vals(3);
S dng hm ny cho mt vi v d:
>> resistor('brown', 'black', 'red')
ans=
1000
------------------------oOo-----------------------
chng 13
PHN TCH D LIU
8
9
5
8
6
9
9
10
7
7
10
8
7
8
18
22
19
23
22
19
15
20
18
18
19
17
23
19
93
15
8
10
12
9
12
12
10
13
9
10
14
12
13
15
13
12
8
10
7
7
8
8
8
9
12
10
6
7
5
7
10
11
12
18
20
17
22
19
21
20
17
18
20
22
21
22
18
23
24
22
94
Hnh 13.1
Lnh plot va dng trn y minh ho thm mt cch s dng. Bin d l
mt vector di 31, trong khi bin temps l mt ma trn 31x3. Cho trc nhng
d liu ny, lnh plot s trc mi ct ca bin temps cho vo d.
minh ho mt vi kh nng phn tch d liu ca MATLAB, hy xt cc
lnh sau, da trn d liu v nhit cho:
>> avg_temp = mean(temps)
avg_temp=
11.9677
8.2258
19.8710
95
13.6667
13.3333
12.0000
14.3333
13.0000
12.6667
14.0000
13.0000
12.6667
16.0000
16.0000
15.3333
y l gi tr nhit trung bnh c ba thnh ph trong tng ngy.
Xt bi ton tm s chnh lch nhit ca mi thnh ph so vi gi tr
trung bnh, c ngha l avg_temp(i) phi b tr i bi ct th i ca bin
temps. Bn khng th ra mt cu lnh nh sau:
>> temps-avg_temp
??? Error using ==> Matrix dimensions must agree.
Bi v thao tc ny khng phi l cc thao tc nh ngha trn mng
(temps l mt mng 31x3, cn avg_temp l mt mng 1x3). C l cch dng vng
lp for l n gin nht:
>> for i = 1:3
tdev(:,i) = temps(:,i)- avg_temp(i);
end
>> tdev
tdev =
0.0323
-0.2258
-1.8710
3.0323
0.7742
2.1290
0.0323
-3.2258
-0.8710
2.0323
-0.2258
3.1290
0.0323
-2.2258
2.1290
-0.9677
0.7742
-0.8710
3.0323
0.7742
-4.8710
-3.9677
1.7742
0.1290
7.0323
-1.2258
-1.8710
0.0323
-1.2258
-1.8710
2.0323
1.7742
-0.8710
-0.9677
-0.2258
-2.8710
-2.9677
-1.2258
3.1290
-3.9677
-0.2258
-0.8710
3.0323
-0.2258
-1.8710
-3.9677
0.7742
0.1290
-1.9677
-1.2258
-2.8710
0.0323
-1.2258
2.1290
-2.9677
-0.2258
-0.8710
0.0323
-0.2258
1.1290
96
0.0323
-1.9677
1.0323
-2.9677
-1.9677
2.0323
0.0323
1.0323
3.0323
1.0323
0.0323
-0.2258
0.7742
3.7742
1.7742
-2.2258
-1.2258
-3.2258
-1.2258
1.7742
2.7742
3.7742
0.1290
-2.8710
-1.8710
0.1290
2.1290
1.1290
2.1290
-1.8710
3.1290
4.1290
2.1290
97
y avg_temp(ones(31,1),:) s nhn bn hng u tin (v l hng duy
nht) ca bin avg_temp thnh 31 bn, to ln mt ma trn 31x3. Trong ct
th i chnh l avg_temp(i).
>> max_temp = max(temps)
max_temp=
19
12
24
Cu lnh tm ra nhit ln nht mi thnh ph trong thng .
>> [max_temp,x] = max(temps)
max_temp=
19
12
24
x=
9
23
30
Cho bit gi tr nhit ln nht mi thnh ph v gi tr ch s hng x,
ti gi tr ln nht xut hin, trong v d ny x cho bit ngy nng nht
trong thng.
>> min_temp = min(temps)
min_temp=
8
15
2.2322
= diff(temps)
4
-3
4
-1
-3
-4
5
98
11
-7
2
-3
-2
-1
7
-7
2
2
-3
3
0
-2
3
-4
1
4
-2
1
2
-2
-1
-3
0
3
-2
-1
1
0
1
-2
0
1
0
0
1
3
-2
-4
1
-2
2
3
1
1
-2
0
1
-2
6
-4
-1
2
-3
5
-3
2
-1
-3
1
2
2
-1
1
-4
5
1
-2
Cho bit s khc nhau v nhit gia cc ngy lin tip chnh l
chnh lch nhit ca ngy hm sau so vi ngy hm trc. Trong v d ny,
hng u tin ca daily_change l chnh lch nhit gia ngy u
tin v ngy th hai trong thng.
13.1 Cc hm phn tch d liu
Phn tch d liu trong MATLAB c thc hin thng qua cc ma trn hng
ct, cc bin khc nhau c lu gi trong cc ct khc nhau v mi hm th hin
gi tr ca bin mt thi im quan st nht nh. Cc hm thng k ca
MATLAB gm c:
Cc hm phn tch d liu
cplxpair(x)
Xp xp cp phc lin hp
cross(x,y)
Tch cho vector
cumprod(x)
Tch tch lu theo ct
cumprod(x,n)
Tch tch lu theo chiu n
cumsum(x)
Tng tch lu theo ct
cumsum(x,n)
Tng tch lu theo chiu n
cumtrapz(x,y)
Tch cho tch lu
cumtrapz(x,y,n)
Tch cho tch lu theo chiu n
del2(A)
Ton t ri rc Laplacian 5 im
diff(x)
Tnh chnh lch gia cc phn t
diff(x,m)
Tnh s ra cp m ca cc phn t
diff(x,m,n)
Tnh s ra cp m ca cc phn t theo
99
chiu n
Tch v hng ca hai vector
Gradient vi phn
Biu hnh ct
Phn t ln nht
Phn t ln nht theo chiu n
Gi tr trung bnh ca ct
Gi tr trung bnh theo chiu n
Gi tr ca phn t gia ca ct
Gi tr ca phn t gia theo chiu n
Phn t nh nht
Phn t nh nht theo chiu n
Tch cc phn t trong ct
Tch cc phn t theo chiu n
S ngu nhin phn b u
S ngu nhin phn b bnh thng
Xp xp cc ct theo th t tng dn
Xp xp theo chiu n
Xp xp cc hng theo th t tng dn
lch chun ca ct chun ho theoN1
lch chun ca ct chun ho theoN
lch chun theo chiu n
Gc gia hai im
Tng cc phn t trong mi ct
Tng cc phn t theo chiu n
Tch cho ca y=f(x)
Tch cho theo chiu n
dot(x,y)
gradient(Z,dx,dy)
histogram(x)
max(x), max(x,y)
max(x,n)
mean(x)
mean(x,n)
median(x)
median(x,n)
min(x), min(x,y)
min(x,n)
prod(x)
prod(x,n)
rand(x)
randn(x)
sort(x)
sort(x,n)
sortrows(A)
std(x), std(0)
std(x,1)
std(x, flag, n)
subspace(A,B)
sum(x)
sum(x,n)
trapz(x,y)
trapz(x,y,n)
---------------------oOo------------------chng 14
A THC
14.1 Cc nghim ca a thc
Tm nghim ca a thc l gi tr a thc bng khng, l mt bi
ton thng gp trong thc t. MATLAB gii quyt nhng bi ton ny v ng
thi cung cp nhng cng c tnh ton a thc. Trong MATLAB mt a thc
c biu din bng mt vector hng cc h s vi bc gim dn. V d a thc
x4-12x3+25x+116
c nhp vo nh sau:
>> p = [1
p=
1
-12
-12
25
116]
0
25
116
100
Nh rng mc dnh cho h s 0 cng phi c g vo nu khng MATLAB s
khng hiu c h s ca bi thc bc my l khng. S dng dng ny th
nghim ca mt a thc c th tm c bng cch dng hm roots:
>> r = roots(p)
r=
11.7374
2.7028
-1.2251 + 1.4672i
-1.2251 - 1.4672i
Bi v trong MATLAB c a thc v cc nghim ca n u l vector nn
MATLAB ngm quy c rng a thc l vector hng, cn cc nghim l cc vector
ct. Nu bit trc nghim ca mt a thc th ta d dng bit c a thc
. Trong MATLAB lnh poly s thc hin cng vic ny:
>> pp = poly(r)
pp=
1
-12
-1.7764e-14
25
116
>> pp(abs(pp)< 1e-12 = 0
% Gn nhng phn t qu nh bng khng
1
-12
0
25
116
Bi v trong tnh ton thng gp nhng sai s nn i khi kt qu ca
lnh poly cho ra cc a thc c cc h s gn bng khng v cc a thc c
phn o rt nh nh c ch ra trn, cc gi tr bng khng c th c lm
trn bng cc cng c v mng. Tng t nh vy, ta c th lm trn mt s phc
tr thnh mt s thc bng hm real.
14.2 Nhn a thc
Hm conv thc hin nhn hai a thc (thc ra l hai ma trn), xt tch ca
hai a thc sau:
a(x) = x3+2x2+3x+4 v b(x) = x3+4x2+9x+16
>> a = [1 2 3 4]; b = [1 4
>> c = conv(a,b)
c=
1
6
20
50
16];
75
84
64
101
>> d = a + b
d=
2
6
12
20
3
2
Kt qu l d(x)=2x +6x +12x+20. Khi hai a thc c bc khc nhau th a
thc c bc thp hn phi c thm vo cc h s 0 cho bc ca n c cng
bc vi a thc c bc cao hn. Xt php cng hai a thc c v d trn:
>> e = c + [0 0
e=
1
6
d]
20
52
81
96
84
102
0
80
144
138
72
-7
-10];
103
Hnh 14.1
14.7 Phn thc hu t
i khi bn gp nhng bi ton lin quan n t s ca hai a thc hay
cn gi l phn thc hu t, v d nh cc hm truyn hay cc hm xp x
pade c dng nh sau:
Trong MATLAB phn thc cng c m phng bng hai a thc ring r.
V d nh:
>> n=[1 -10 100]
% a numerator
n =
1
-10
100
>> d=[1 10 100 0]
% a dimominator
d =
1
10
100
0
>> z=roots(n)
% the zeros of n(x)/d(x)
z =
5.0000 + 8.6603i
5.0000 - 8.6603i
>> p=roots(d)
% the poles of n(x)/d(x)
p =
0
-5.0000 + 8.6603i
-5.0000 - 8.6603i
104
o hm ca phn thc ny theo bin x c tnh da trn hm polyder:
>> [nd,dd]=polyder(n,d)
nd =
-1
20
-100
-2000
-10000
dd =
Columns 1 through 6
1
20
300
2000
10000
0
Column 7
0
y nd v dd l t thc v mu thc ca o hm. Mt thao tc thng thng
khc l tm phn d ca phn thc.
>> [r,p,k]=residue(n,d)
r =
0.0000 + 1.1547i
0.0000 - 1.1547i
1.0000
p =
-5.0000 + 8.6603i
-5.0000 - 8.6603i
0
k =
[]
Trong trng hp ny hm residue tr v cc h s m rng phn thc tng
phn r, cc nghim ca phn thc l p v phn thng chia ht ca phn thc
l k. Nu bc ca t s nh hn bc ca mu s th phn thc chia ht s
bng khng. Trong v d trn th m rng phn thc tng phn ca phn thc
cho l:
Nu cho trc cc a thc ny th phn thc ban u s tm c bng cch s
dng hm residue:
>> [nn,dd]=residue(r,p,k)
nn =
1.0000 -10.0000 100.0000
dd =
1.0000
10.0000 100.0000
105
chng 15
php ni suy v mn ho ng cong
Trong cc lnh vc ng dng s, nhim v ca chng ta l phi biu din
s liu, thng l cc s o bng cc chc nng phn tch. C hai cch gii
quyt vn ny, trong phng php ni im (interpolation) th d liu c
coi l ng v ci chng ta cn l cch biu din d liu khng nm gia cc
gi tr o c, theo phng php th hai gi l phng php mn ho ng cong
(curve fitting or regression), bn tm mt ng cong khng gy khc m ph hp
nht vi d liu c, nhng khng cn thit phi i qua mt cch chnh xc
bt k mt in no trn bng s liu. H15.1 minh ho hai phng php trn,
ch o nh du cc im biu din d liu, cc on thng bng nt lin ni
cc ng biu din d liu li vi nhau theo phng php ni im cn ng
chm chm l mt ng cong v theo phng php mn ho d liu.
15.1 Mn ho ng cong
Phng php mn ho ng cong lin quan n vic tr li hai cu hi c
bn, l ng cong th no th ph hp vi d liu nht v cu hi th hai l
phi s dng loi ng cong no. Ph hp nht c th hiu theo nhiu cch v
do c nhiu ng cong, v vy chng ta phi bt u t u?. Nu ph
hp nht l gim nh n mc ti thiu tng sai s qun phng ti mi im
biu din d liu, so vi gi tr tng ng trn ng cong th ng cong ph
hp nht s l mt ng thng v mt ton m ni phng php ny c gi l
phng php xp x a thc. Nu nh khi nim ny cn kh hiu i vi bn
th xin hy xem li hnh 15.1 khong cch theo chiu dc gia ng cong d
liu v cc im biu din d liu gi l sai s ca im , bnh phng
khong cch ny ln v cng tt c chng li ta c tng bnh phng sai s. ng cong chm chm l ng cong lm cho bnh phng sai s l nh nht v
c gi l ng cong ph hp nht. T qun phng b nht l cch ni tt
ca cm t Tng bnh phng sai s b nht.
106
Hnh 15.1
Trong MATLAB hm polyfit s gii quyt vn xp x ng cong qun
phng b nht. minh ho cho vic s dng hm ny, chng ta hy bt u
bng cc d liu c trong hnh v.
>> x = [0 .1 .2 .3 .4 .5 .6 .7 .8 .9 1];
>> y =[-.447 1.978 3.28 6.16 7.08 7.34 7.66 9.56 9.48 9.30 11.2];
s dng hm polyfit, chng ta phi truyn cho n d liu trn v bc ca
a thc m chng ta mun ph hp vi d liu, nu chng ta chn bc n l 1
th ng cong xp x gn nht s l ng thng. Phng php ny c gi l
phng php xp x tuyn tnh. Mt khc nu chng ta chon n=2 th chng ta
s tm c mt tam thc bc hai. V d:
>> n = 2;
>> p = polyfit(x,y,n)
p =
-9.8108
20.1293
-0.0317
Kt qu ca polyfit l mt vector biu din h s ca mt a thc bc hai.
y a thc l
y= -9.8108x2+20.1293x-0.0317. so snh mc xp x ca a thc vi
cc im d liu chng ta hy v hai ng:
>> xi = linspace(0,1,100);
Dng ny to ra d liu trc x chun b v a thc
107
>> z = polyval(p,xi)
Dng ny gi hm polyval ca MATLAB tnh gi tr ca a thc p ti cc
im xi
>> plot(x,y,'-o',xi,z,':')
V cc im c to l x v y, nh du cc im ny bng ch o sau
ni cc im ny bng cc on thng. Ngoi ra n cn v d liu ca a thc
xi v z dng ng chm chm.
>> xlabel('x'),ylabel('y=f(x)')
>> title('Second Oder Curver Fitting')
To nhn cho ng cong va v. Kt qu ca cc lnh trn y l mt
th c gii thiu trn.
Vic chn bc ca a thc khng phi l ngu nhin, nu c hai im th
xc nh mt ng thng, tc l mt a thc bc nht, ba im th xc
nh mt parabol bc hai. C nh vy, xc nh mt ng cong bc n, cn
c n+1 im. V vy, trong v d trc c 11 im d liu, chng ta c th
chn bc ca a thc l t 1 n 10. Tuy nhin, do tnh cht s hc ca cc a
thc bc cao rt phc tp nn bn khng nn chn bc ca a thc ln hn mc
cn thit. Ngoi ra khi bc ca a thc tng ln th s xp x cng km hn,
v vy cc a thc bc cao c th b o hm nhiu ln trc khi o hm ca
chng bng khng. V d cho mt a thc bc 10:
>> pp = polyfit(x,y,10)
pp =
1.0e+006 *
Columns 1 through 7
-0.4644
2.2965
-4.8773
5.8233
-4.2948
2.0211
-0.6032
Columns 8 through 11
0.1090
-0.0106
0.0004
-0.0000
>> format short e
% change display format
>> pp.' % display polynomial coefficients as a column
ans =
-4.6436e+005
2.2965e+006
-4.8773e+006
5.8233e+006
-4.2948e+006
2.0211e+006
-6.0322e+005
1.0896e+005
-1.0626e+004
4.3599e+002
-4.4700e-001
Lu kch thc ca vector h s a thc trong trng hp ny so vi ng cong
bc hai trc y, ng thi cng lu s khc nhau gia s hng nh nht v s
108
hng ln nht trong a thc vo khong 107. Hy th v ng cong ny v so
snh vi d liu gc v vi ng cong bc hai.
>>
>>
>>
>>
Hnh 15.2
Trn hnh 15.2, d liu gc c nh du o, ng cong bc hai c v bng
nt chm chm, cn ng cong bc 10 c v bng nt m. n nt
gn sng xut hin gia cc im d liu bn pha tri v bn pha phi ca ng cong bc 10. Da vo th ny th r rng rng ci chit l cng nhiu
cng tt khng th p dng c y.
15.2 Ni im mt chiu
Nh gii thiu th ni im c nh ngha nh l mt phng php d
on gi tr ca hm gia nhng im cho trc. Ni im l mt cng c hu
hiu khi chng ta khng th nhanh chng tinh c gi tr ca hm ti cc
im trung gian. Phng php ny c s dng rng ri i vi d liu l gi tr
ca cc php o thc nghim hoc l kt qu ca cc chui tnh ton di. C
th v d n gin nht ca vic ni im chnh l phng php v tng
im ca MATLAB, tc l v nhng on thng ni nhng im d liu lin
tip to ln mt th.
109
y l phng php ni im tuyn tnh, n cho rng cc gi tr ca hm
nm gia hai im cho trc s ri vo khong gia hai u ca on thng
ni hai im . Hin nhin l khi s lng cc im d liu tng ln v khong
cch gia chng gim i th phng php ni im tuyn tnh cng tr ln
chnh xc.
>>
>>
>>
>>
>>
x1 = linspace(0,2*pi,60);
x2 = linspace(0,2*pi,6);
plot(x1,sin(x1),x2,sin(x2),'-')
xlabel('x'),ylabel('sin(x)')
title('Linear Interpolation')
Hnh 15.3
C hai th cng v mt hm sine nhng th 60 im th mn hn th
6 im.
Cng ging nh phng php xp x ho ng cong, y chng ta cng
phi thc hin mt s la chn, c rt nhiu cch ni hai im, tu thuc
vo gi nh m chng ta la chn. Hn na chng ta c th ni cc im
trong khng gian khng phi l mt chiu. Ni nh th nu bn c d liu phn
nh mt hm ph thuc vo hai bin z=f(x,y), bn c th ni gi tr nm gia
hai im c x v y khc nhau tm ra gi tr trung gian ca hai im.
MATLAB cung cp mt s hm ni l : interp1 ni cc d liu mt chiu,
interp2 ni cc d liu hai chiu, interp3 ni cc d liu ba chiu, interpn
ni cc d liu c s chiu ln hn 3.
110
Sau y chng ta s xem xt cc d liu mt v hai chiu. minh ho
vic ni d liu mt chiu, hy xt v d sau, kh nng ca thnh gic, v d
nh mc m thanh b nht hay cn gi l ngng nghe ca tai ngi thay i theo
tn s, d liu do ngi thng k c cho nh sau:
>>
>>
>>
14
-8
>>
semilogx(Hz,spl,'-o')
xlabel('Frequency, Hz')
ylabel('Relative Sound Presure Level1, dB')
title('Threshold of Human Hearing')
111
Hnh 15.4
V vy bn chn cch no gi quyt mt bi ton cho trc?, trong nhiu
trng hp th ch cn ni mt cch tuyn tnh l , trong thc t th
chnh l phng php mc nh khi cc ng cong cng gn vi cc on
thng th cng km chnh xc nhng ngc li tc tnh ton nhanh, iu ny
c bit quan trng khi tp d liu ln. Mt phng php tiu tn nhiu thi
gian, cho ra kt qu p mt nhng khng hiu qu. Trong thc t mt trong
nhng tc dng ch yu ca phng php ni im bng hm bc 3 hoc cao
hn l mn ho d liu, c ngha l cho trc mt tp d liu ta c th dng
phng php ny tnh ra gi tr ca hm nhng thi im nht nh bt
k. V d:
>>
>>
>>
>>
>>
>>
>>
>>
>>
Hzi = linspace(2e3,5e3);
% look closely near minimum
spli = interp1(Hz,spl,Hzi,'cubic');% interpolate near minimum
i = find(Hz>=2e3&Hz<=5e3);
% find original data indices near minimum
semilogx(Hz(i),spl(i),'-o',Hzi,spli) % plot old and new data
xlabel('Frequency, Hz')
ylabel('Relative Sound Presure Level1, dB')
title('Threshold of Human Hearing')
grid on
112
Hnh 15.5
Trn hnh 15.5 ng gch gch s dng phng php ni im tuyn tnh,
ng lin nt l mt hm bc 3, cn nhng im d liu gc c nh du
bi ch o. Bng cch nng cao phn gii trn trc tn s v s dng ng
bc 3 th cc s liu v ngng nghe m chng ta d on c s mn hn.
Cn ch rng dc ca ng bc 3 khng thay i mt cch t
ngt khi i qua im d liu nh l khi s dng phng php ni tuyn tnh. Vi
b d liu trn chng ta c th d on c tn s m ti tai ngi nhy cm
nht i vi m thanh.
>> [sp_min,i] = min(spli)
% minimum and index of minimum
sp_min =
-8.4245e+000
i =
45
>> Hz_min = Hzi(i)
% frequency at minimum
Hz_min =
3.3333e+003
Tai ngi nhy cm nht i vi m thanh c tn s khong 3.3kHz. Trc khi
cp n vic xp x ho hai chiu th chng ta cn nhn r hai hn ch
ln ca interp1 l: Th nht khi yu cu tnh ton ngoi khong ca mt bin
c lp. V d nh interp1(Hz, spl, 1e5) th s sinh ra kt qu NaN.
113
Th hai l cc bin c lp phi n iu, ngha l cc bin c lp phi
lun tng hoc l lun gim. Trong v d trn ca chng ta th trc tn s Hz
lun tng.
15.3 Xp x ho hai chiu
Xp x ho hai chiu da trn cng mt nguyn l ca xp x ho mt chiu.
Tuy nhin nh tn ca n ch ra, xp x ho hai chiu l xp x mt hm ph
thuc vo hai bin c lp
z = f(x, y). hiu r khi nim ny, ta hy xt v d sau:
Mt cng ty thm him i dng, cn thm him mt vng bin, c 0.5Km
theo hnh vung th su ca y bin li c o v ghi li mt phn ca
d liu thu thp c lu trong mt chng trnh MATLAB di dng mt M_file c
tn l ocean.m nh sau:
function ocean
% ocean depth data
x=0:.5:4; % x-axis (veries across the rows of z)
y=0:.5:6; % y-axis ( varies down the columns of z)
z=[100
99 100
99 100
99
99
99 100
100
99
99
99 100
99 100
99
99
99
99
98
98 100
99 100 100 100
100
98
97
97
99 100 100 100
99
101 100
98
98 100 102 103 100 100
102 103 101 100 102 106 104 101 100
99 102 100 100 103 108 106 101
99
97 99
100 100 102 105 103 101 100
100 102 103 101 102 103 102 100
99
100 102 103 102 101 101 100
99
99
100 100 101 101 100 100 100
99
99
100 100 100 100 100
99
99
99
99
100 100 100
99
99 100
99 100
99];
th ca d liu trn c v bi cc lnh sau:
mesh(x,y,z)
xlabel('X-axis, Km')
ylabel('Y-axis, Km')
zlabel('Ocean depth, m')
title('Ocean depth Measurements')
114
Hnh 15.6
S dng cc d liu ny th su ca mt im bt k nm trong khu
vc kho st c th tnh c da vo hm interp2. V d:
>> zi = interp2(x,y,z,2.2,3.3)
zi =
1.0392e+002
>> zi = interp2(x,y,z,2.2,3.3,'linear')
zi =
1.0392e+002
>> zi = interp2(x,y,z,2.2,3.3,'cubic')
zi =
1.0419e+002
>> zi = interp2(x,y,z,2.2,3.3,'nearest')
zi =
102
Cng ging nh trong trng hp xp x ho mt chiu, xp x ho hai chiu
cng c nhiu phng php, m phng php n gin nht l phng php ni
bng on thng, hay cn gi l ni tuyn tnh. Mt ln na chng ta c th
xp x ho cho th tr ln mn hn vi phn gii cao hn:
xi=linspace(0,4,30);
% finer x-axis
yi=linspace(0,6,40);
% finer y-axis
[xxi,yyi]=meshgrid(xi,yi);
% grid of all combinations of xi and yi
zzi=interp2(x,y,z,xxi,yyi,'cubic'); % interpolate
mesh(xxi,yyi,zzi)
% smoothed data
hold on
[xx,yy]=meshgrid(x,y); % grid original data
plot3(xx,yy,z+0.1,'ok')
% plot original data up a bit to show nodes
hold off
115
Hnh 15.7
y hm meshgrid c dng to mng xp x ho bao ph ton b
nhng im yu cu nm trong im kho st. Nh trong hnh 15.7, hm
meshgrid thc hin iu bng cch to ra mt mng hai chiu da trn cc
vector xi v yi, s dng mng ny chng ta c th d on c ch nng nht
ca y bin.
>> zmax = max(max(zzi))
zmax=
108.05
>> [i,j] = find(zmax==zzi);
>> xmax = xi(j)
xmax=
2.6207
>> ymax = yi(j)
ymax=
2.9231
-----------------oOo-------------------
chng 16
phn tch s liu
Cho d vic gii mt bi ton tch phn hoc tnh gi tr ca mt hm l
tng i phc tp, nhng i vi my tnh th ch n gin l vic x l
cc s liu. Lnh vc ny ca tin hc v ton hc c gi l x l s liu. Nh bn
c th d on, MATLAB cung cp cc cng c gii quyt vn ny.
Trong chng trnh nychng ta xem xt cch s dng cc cng c .
116
16.1 V th
Cho n thi im ny th vic v th ca mt hm vn ch n
gin da trn vic tnh gi tr ca hm ti mt s im ri rc, v dng cc
im biu din cc hm ti cc gi tr ri rc . Trong nhiu trng hp th
gii php ny l c th chp nhn c. Tuy nhin c mt s hm th tng i
bng phng mt s khong no nhng li tr ln t bin mt s gi tr
nht nh. S dng phng php v truyn thng trong trng hp ny c th lm
mt i tnh chn thc ca th. V vy MATLAB cung cp cho ta mt hm
v th thng minh, gi l fplot. Hm ny tnh ton mt cch cn thn hm
s cn v v m bo mt cch chc chn rng tt c cc im c bit c
biu din trn th. Hm flot nhn vo l tn ca hm cn v d i dng mt
chui k t, v gi tr cn v di dng mng gm hai phn t cha gi tr u v
gi tr cui.
V d:
>> fplot('humps',[0 2])
>> title('FPLOT of humps')
Tnh cc gi tr ca hm humps nm gia 0 v 2 v th hin th trong
hnh 16.1. Trong v d ny humps l mt hm M_file thit k sn.
Hnh 16.1
function [out1,out2] = humps(x)
%HUMPS A function used by QUADDEMO, ZERODEMO and FPLOTDEMO.
%
Y = HUMPS(X) is a function with strong maxima near x = .3
117
%
%
%
%
%
%
%
%
%
and x = .9.
%
%
Example:
plot(humps)
See QUADDEMO, ZERODEMO and FPLOTDEMO.
118
Hnh 16.2
Da trn nhng tnh nng c bn ny, hm fplot c nhng kh nng rt
mnh, hy xem phn tr gip trc tuyn ca MATLAB hiu r hn v cch
dng hm ny.
16.2 Cc tr ca mt hm
Ngoi vic s dng phng php v th thu c nhng thng tin trc
quan v hm, chng ta cn cn phi bit thm nhng thng tin v mt s
thuc tnh nht nh ca hm. Trong nhiu trng hp chng ta cn phi bit
cc cc tr ca hm , l cc cc i, cc cc tiu. V mt ton hc th
cc tr c tm theo phng php gii tch bng cch tnh o hm ca hm
v tm nhng im m ti o hm bng 0. iu ny rt d hiu nu
bn xem li th ca hm humps ni trn. Nhng im m th ca hm
nh ln cao l nhng im cc i, cn nhng im th lm xung thp
nht l nhng im cc tiu. R rng rng khi hm c nh ngha mt cch
n gin th phng php gii tch c th d dng thc hin c, tuy nhin
i vi mt s hm cho d vic tnh o hm l kh d dng th vic tm
nghim ca o hm th li khng phi l n gin.Trong nhng trng hp
ny, v trong nhng trng hp kh c th tm ra cch phn tch o hm, th
cn thit phi tm hm v cng v s lng. MATLAB cung cp hai hm thc hin
vic ny, l fmin v fmins , hai hm ny tng ng tm gi tr cc tiu ca
cc hm mt chiu v hm n chiu. Ta ch quan tm n fmin trong phn
119
ny. Hn na fmin c th tm thy trong help trc tuyn. Bi v max ca f(x)
hon ton tng ng vi min ca -f(x) , nn fmin v fmins , c hai u c
dng tm gi tr ln nht v nh nht.
minh ho php cc tiu ho v cc i ho, hy xem v d trc mt ln
na.T hnh 16.2 c mt gi tr cc i gn x max =0.7 v mt gi tr nh nht
gn xmin =4. iu ny c th cho php ta xem nh xmax=/40.785, xmin=5/43.93.
Vit ra mt script-file dng ch son tho thun tin v s dng fmin
tm ra s ny:
function ex_fmin.m
%ex_fmin.m
fn='2*exp(-x)*sin(x)';
% define function for min
xmin=fmin(fn,2,5)
% search over range 2<x<5
emin=5*pi/4-xmin
x=xmin;
ymin=eval(fn)
fx='-2*exp(-x)*sin(x)';
xmax=fmin(fn,0,3)
% find error
% eval needs x since fn has x
% as its variable
% evaluate at xmin
% definr function for max:
% note minus sign
% search over range 0<x<3
emax=pi/4-xmax
% find error
x=xmax;
ymax=eval(fn)
120
Cui cng, mt iu quan trng cn ch khc l vic ti thiu ho lin quan
n vic tm gi tr nh nht, fmin s c lng hm tm gi tr ny. Qu
trnh tm kim s tn thi gian nu nh hm c mt lng php tnh ln, hoc l
hm c nhiu hn mt gi tr cc tiu trong di tm kim. Trong mt s trng
hp, qu trnh ny khng tm ra c p s. Khi m fmin khng tm c gi
tr nh nht th n dng li v a ra li gii thch.
16.3 Tm gi tr khng
Nu nh bn quan tm n vic tm kim khi hm tin ra v cng, th
i khi rt l quan trng tm ra khi no hm qua 0 v khi no qua cc gi
tr khng i
Mt ln na MATLAB cung cp cho ta cng c gii quyt vn ny.
Hm fzero tm gi tr 0 ca mng mt chiu. lm sng t, chng ta cng
xem li v d v hm humps mt ln na:
>> xzero = fzero('humps',1.2)
% look for zero near 1.2
xzero =
1.2995
>> yzero = humps(xzero)
% evaluate at zero
yzero =
3.5527e-15
Nh vy, gi tr 0 gn vi 1.3. Nh thy trn, qu trnh tm kim gi tr 0 c
th khng c kt qu. Nu khng tm thy , n dng li v a ra gii thch.
Hm frzero bt buc phi c cung cp tn cho n mi khi n c gi n.
fzero cho bit ti u hm bng 0 hoc n cn c th tm ra gi tr khi
no hm bng hng s. V d tm x f(x)= c, th ta phi nh ngha li
hm g(x) nh sau: g(x)= f(x)- c, v hm fzero tm gi tr ca x g(x)= 0,
tng ng f(x)= c.
16.4 Php ly tch phn
MATLAB cung cp cho ta ba hm tnh cc php ton lin quan n tch
phn: trapz, quad v quad8. Hm trapz cho ta gi tr xp x tch phn
pha di hm bng cch ly tng cc min hnh thang ca cc im d liu
nh trong hnh 16.4.
Nh thy trong hnh 16.4, cc min hnh thang c lp c gi tr c lng di
mc thc t. Nu ta chia nh ra nh php ni suy tuyn tnh th s xp x ca
hm s cao hn. V d nu ta gp i s lng cc hnh thang c, th
xp x tng ln nh hnh
v 16.5.
50
40
30
20
10
0
- 10
-1
- 0.5
0.5
1.5
Hnh 16.4
80
70
60
50
40
30
20
10
0
- 10
-1
-0. 5
0. 5
1. 5
Hnh 16.5
Tnh ton cc vng ny bng hm y = humps(x) vi -1<x<2 , s dng trapz cho
mi hnh trn ta c:
121
>> x = -1:.3:2;
>> y = humps(x);
>> area = trapz(x,y)
area =
21.8453
>> x = -1:.15:2;
>> y = humps(x);
>> area = trapz(x,y)
area =
25.8523
% rough approximation
% call trapz just like the plot command
% better approximation
122
>> xlabel('x'),ylabel('y=f(x)')
>> title('Second Order Curve Fitting')
Vi phn trong trng hp ny c s dng bng cch s dng hm o hm
polyder:
>> pd = polyder(p)
pd =
-19.6217
20.1293
Vi
phn
ca
a
thcy=-9.8108x2+20.1293x-0.0317ldx/dy=
-19.6217x+20.1293. Bi v o hm ca mt a thc cng c v v tnh gi
tr ging nh l i vi a thc:
>> z = polyval(pd,xi); % evaluate derivative
>> plot(xi,z)
>> xlabel('x'),ylabel('dy/dx')
>> title('Derivative of a Curve Fit Polynomial')
Hnh 16.6
123
Hnh 16.7
Trong trng hp ny xp x a thc l mt hm bc hai v o hm ca n
tr thnh hm bc nht.
MATLAB cung cp mt hm tnh ton o hm mt cch s b da vo
d liu m t mt s hm, hm ny c tn l dif, n tnh ton chnh lch
gia cc phn t trong mng. Bi v o hm c nh ngha nh sau:
nn o hm ca hm f(x) c th c tnh mt cch s b da vo cng thc:
khi h>0
Gi l s ra ca y chia cho s ra ca x, do hm dif tnh ton s khc nhau gia
cc phn t trong mng nn o hm c th c tnh mt cch xp x da vo
hm dif:
>>
>>
>>
>>
>>
>>
>>
dy = diff(y)./diff(x);
% compute differences and use array division
xd = x(1:length(x)-1);
% create new x axis array since dy is shorter than y
plot(xd,dy)
title('Approximate Derivative Using DIFF')
ylabel('dy/dx'),xlabel('x')
124
Hnh 16.8
Do hm dif tnh ra s khc nhau gia cc phn t nn kt qu ca v d
trn l mt mng c s phn t t hn mng ban u mt phn t. V vy
v c th ca o hm th phi b i mt phn t ca mng x. So sng
hai th cui cng th thy hin nhin rng o hm tnh bng phng php
gn ng khc xa so vi thc t.
16.6 Phng trnh vi phn
C th bn kh quen vi thc t l rt nhiu h thng vt l u c m
t bng phng trnh vi phn. Do vy phn sau y i vi bn c th kh hp
dn.
Mt phng trnh vi phn thng m t tc thay i ca mt bin s
trong h thng theo s thay i ca mt bin khc trong h thng hoc theo
kch thch bn ngoi. Phng trnh vi phn thng thng c th c gii nh cc
phng php gii tch hoc s dng cng c ton k hiu ca MATLAB.
Trong nhng trng hp m phng trnh vi phn khng th gii c bng phng php gii tch th vic s dng phng php s hc tr ln kh hiu qu.
minh ho hy xt phng trnh Van Der Pol, phng trnh biu din mt b dao
ng.
Tt c cc phng php ton hc gii phng trnh dng ny u s dng
mt phng trnh vi phn cao cp hn, tng ng vi mt tp phng trnh vi
phn bc nht. i vi phng trnh vi phn trn th cch gii ny c thc
hin bng cch nh ngha hai bin trung gian:
t y1 = x, v y2 =
suy ra:
i vi cc h phng trnh nh th ny MATLAB cung cp mt tp cc hm
ODE gii xp x ho chng mt cch s hc. Trong quyn hng dn ny
chng ta khng c kh nng nu ht nhng ni dung v ng dng ca tng
hm trong b ODE. tm hiu thm v cc hmm ODE ng dng trong rt
125
nhiu bi ton th d, hy g >> odedemo ti du nhc ca MATLAB. Trc ht
chng ta hy xt v d sau y, chnh l v d ode45. Chng ta phi vit mt
hm M_file tr v cc o hm nu bit trc cc gi tr tc thi ca y1 v y2.
Trong MATLAB cc o hm c cho bi cc vector ct, trong trng hp ny gi l
yprime. Tng t y1 v y2 c vit di dng vector ct y. Kt qu ca mt hm
M_file nh sau:
function yprime=vdpol(t,y);
% VDPOL(t,y) returns the state derivatives of
%
the Van der Pol equation:
%
%
x''-mu*(1-x^2)*x+x=0
%
%
let y(1)=x
and y(2)=x'
%
%
then y(1)'=y(2)
%
y(2)'=mu*(1-y(1)^2)*y(2)-y(1)
mu=2;
% choose 0< mu < 10
yprime=[y(2)
mu*(1-y(1)^2)*y(2)-y(1)]; % output must be a column
Gi s thi gian ko di t 0 n 30 giy, v d tspan=[0 30]. Sau s
dng lnh vdpol th li gii cho bi ton nh sau:
>> tspan = [0 30];
>> yo = [1;0];
>> ode45('vdpol',tspan,yo);
Khi s dng hm m khng c i s ra, cc hm ODE s t ng chn nhng
thi im thch hp tnh o hm. c th truy nhp c d liu, ta ch
cn cung cp cho hm nhng thng s ra.
>> [t,y] = ode45('vdpol',tspan,yo);
y t l mt vector ct cha nhng thi im tnh o hm, cn y l
mt ma trn cha hai ct v cc hng length(t), hng u tin ca ma trn y
cha bin s y(1), hng th hai l bin s y(2).
Da vo nhng c im ny chng ta c th v c th pha, l th
gia y(2) v y(1):
>> plot(y(:,1),y(:,2))
4
3
2
1
0
-1
-2
-3
-4
0
10
15
20
25
30
Hnh 16.9
Cc hm ODE ca MATLAB u c tr gip trc tuyn, mi hm u c cc
i s cng nh cch s dng ring, nu bn mun nghin cu thm th hy tham
kho thm phn tr gip trc tuyn ca chng.
4
3
2
1
0
-1
-2
-3
-4
-3
-2
-1
Hnh 16.10
126
chng 17
ho trong h to phng
Hnh 17.1
By gi cng v hm sine v cosine trn cng mt th
>> z = cos(x);
>> plot(x,y,x,z)
127
Hnh 17.2
V d ny cho thy bn c th v nhiu hn mt th trn cng mt
hnh v, bn ch vic a thm vo plot mt cp i s, plot t ng v
th th hai bng mu khc trn mn hnh. Nhiu ng cong c th cng v mt
lc nu nh bn cung cp cc cp i s cho lnh plot.
Nu nh mt trong cc i s l ma trn v i s cn li l vector, th lnh
plot s v tng ng mi ct ca ma trn vi vector :
>> W = [y;z]
% xy dng mt ma trn sine v cosine
>> plot(x,W)
% v cc ct ca W vi x
128
Hnh 17.3
Nu nh bn thay i trt t cc i s th th s xoay mt gc bng
90 .
>> plot(W,x)
Hnh 17.4
Nu lnh plot c gi m ch c mt i s, v nh plot(Y) th hm plot
s a ra mt kt qu khc, ph thuc vo d liu cha trong Y. Nu gi tr ca
Y l mt s phc, Plot(Y) tng ng vi plot ( real(Y ) ) v plot ( imag(Y ) ),
trong tt c cc trng hp khc th phn o ca Y thng c b qua. Mt khc
nu Y l phn thc th plot(Y) tng ng vi
plot(1:length(Y), Y).
17.2
Kiu ng, du v mu
Mu
K hiu
Kiu nt v
xanh
da
nt lin
tri
xanh
l
ng chm
:
cy
ng
gch
-.
K hiu
s
ngha
vung
diamond
triangle(down)
129
chm
c
xanh xm
ng
gch
^
triangle(up)
-gch
m
tm
O
ng o
<
triangle(left)
y
vng
X
ng x
>
triangle(right)
k
en
+
ng du +
p
pentagram
w
trng
*
ng hnh *
h
hexagram
Nu bn khng khai bo mu th MATLAB s chn mu mc nh l blue.
Kiu ng mc nh l kiu solid tr khi bn khai bo kiu ng khc. Cn
v du, nu khng c du no c chn th s khng c kiu ca du no c
v.
Nu mt mu, du, v kiu ng tt c u cha trong mt xu, th kiu
mu chung cho c du v kiu nt v. khai bo mu khc cho du, bn phi
v cng mt d liu vi cc kiu khai bo chui khc nhau. Di y l mt v d
s dng cc kiu ng, mu, v du v khc nhau:
>> plot(x,y,' b:p',x,z,' c-',x,z,' m+')
Hnh 17.5a
17.3 Kiu th
Lnh colordef cho php bn la chn kiu hin th. Gi tr mc nh ca
colordef l white . Kiu ny s dng trc to , mu nn, nn hnh v mu
xm sng, v tn tiu ca trc mu en. Nu bn thch nn mu en, bn
c th dng lnh colordef black. Kiu ny s cho ta nn trc to en, nn
hnh v mu ti xm, v tiu trc mu trng.
17.4 th li, hp cha trc, nhn, v li ch gii
130
Lnh grid on s thm ng li vo th hin ti. Lnh grid of s b cc
nt ny, lnh grid m khng c tham s i km theo th s xen k gia ch
on v of. MATLAB khi to vi
grid of . Thng thng trc to c nt gn kiu solid nn gi l hp cha
trc. Hp ny c th tt i vi box of v box on s khi phc li. Trc ng v
trc ngang c th c nhn vi lnh xlabel v ylabel. Lnh title s thm vo
th tiu nh. Dng hm sine v cosine minh ho:
>>
>>
>>
>>
x = linspace(0,2*pi,30);
y = sin(x);
z = cos(x);
plot(x,y,x,z)
>>
>>
>>
>>
Hnh 17.5b
box off
xlabel('Independent variable X')
ylabel('dependent variable Y and Z')
title('Sine and Cosine Curve')
131
Hnh 17.6
Bn c th thm nhn hoc bt c chui k t no vo bt c v tr no bng
cch s dng lnh text. C php ca lnh ny l : text (x, y,string) trong
x, y l to tm bn tri ca chui vn bn. thm nhn vo hnh sine
v tr (2.5, 0.7) nh sau:
>> grid on, box on
>> text(2.5,0.7,'sin(x)')
Nu bn mun thm nhn m khng mun b hnh v khi h trc ang xt,
bn c th thm chui vn bn bng cch di chut n v tr mong mun. Lnh
gtext s thc hin vic ny.
V d (Hnh 17.8):
>> gtext('cos(x)')
132
Hnh 17.7
Hnh 17.8
17.5 Kin to h trc to
MATLAB cung cp cho bn cng c c th kim sot hon ton hnh dng
v thang chia ca c hai trc ng v ngang vi lnh axis. Do lnh ny c
nhiu yu t, nn ch mt s dng hay dng nht c cp y. bit
mt cch y v lnh axis, bn hy xem h tr gip help ca MATLAB
133
hoc cc tham kho khc. Cc c tnh c bn ca lnh axis c cho trong
bng di y:
Lnh
M t
axis([xmin
xmax ymin Thit lp cc gi tr min,max ca h trc dng
ymax])
cc gi tr
c a ra trong vector hng
V=axis
V l mt vector ct c cha thang chia cho
th hin ti:
[xmin xmax ymin ymax]
axis auto
Tr li gi tr mc nh thang chia
axis(auto)
xmin = min(x), xmax = max(x), ..v.v...
axismanual
Gii hn thang chia nh thang chia hin ti
axis xy
S dng (mc nh ) h to decac trong
gc to
Gc gc thp nht bn tri, trc ngang tng t
tri qua phi, trc ng tng t di ln
axis ij
S dng h to ma trn, trong gc to
nh gc tri, trc ng tng t nh
xung, trc ngang tng t tri qua phi
axissquare
Thit lp th hin ti l hnh vung, so vi
mc nh hnh
ch nht
axisequal
Thit lp thang chia ging nhau cho c hai h
trc
axis tightequal
Tng t nh axis equal nhng hp th va
i vi d liu
axis normal
Tt i ch axis equal, equal, tight v
vis3d
axis off
Tt b ch nn trc, nhn, li, v hp,
du. Thot khi ch lnh title v bt c
lnh label no v thay bi lnh text v gtext
axison
Ngc li vi axis off nu chng c th.
Th kim nghim mt s lnh axis cho th ca bn, s dng cc v d
trc s cho ta kt qu nh sau:
>> axis off
% b trc to
134
Hnh 17.9
>> axis on, grid off
Hnh 17.10
>>axis ij
135
Hnh 17.11
>> axis square equal
Hnh 17.12
>> axis xy normal
136
Hnh 17.13
17.6 In hnh
in cc hnh m bn va v hoc cc hnh trong chng trnh ca
MATLAB m bn cn, bn c th dng lnh in t bng chn hoc nh lnh in
vo t ca s lnh:
+) In bng lnh t bng chn: Trc tin ta phi chn ca s hnh l c s hot
ng bng cch nhn chut ln n, sau bn chn mc bng chn Print t
bng chn file. Dng cc thng s to ln trong mc bng chn Print Setup
hoc Page Setup, th hin ti ca bn s c gi ra my in.
+) In bng lnh t ca s lnh: Trc tin bn cng phi chn ca s hnh lm
ca s hot ng bng cch nhn chut ln n hoc dng lnh figure(n), sau
bn dng lnh in.
>> print
% prints the current plot to your printer
Lnh orient s thay i kiu in: Kiu mc nh l kiu portrait, in
theo chiu ng, gia trang. Kiu in landscape l kiu in ngang v kn ton
b trang. Kiu in tall l kiu in ng nhng kn ton b trang. thay i kiu
in khc vi kiu mc nh, bn dng lnh orient vi cc thng s ca n nh sau:
>> orient
% What is the current orientation
ans=
portrait
>> orient landscape
% print sideways on the page
>> orient tall % stretch to fill the vertical page
Nu bn mun tm hiu k hn v chng th hy xem tr gip trc tuyn v
chng.
137
17.7 Thao tc vi th
Bn c th thm nt v vo th c sn bng cch dng lnh hold. Khi
bn thit lp hold on, MATLAB khng b i h trc tn ti trong khi lnh
plot mi ang thc hin, thay vo , n thm dng cong mi vo h trc hin
ti. Tuy nhin nu nh d liu khng ph hp vi h trc to c, th trc c
chia li . Thit lp hold of s b i ca s figure hin ti v thay vo bng
mt th mi. Lnh hold m khng c i s s bt tt chc nng ca ch
thit lp hold trc . Tr li vi v d trc:
>> x = linspace(0,2*pi,30);
>> y = sin(x);
>> z = cos(x);
>> plot(x,y)
Hnh 17.14
By gi gi nguyn th v thm vo ng cosine
>> hold on
%Gi nguyn th v lc trc
>> ishold
% hm logic ny tr v gi tr 1 (true) nu hold trng thi
ON
ans =
1
>> plot(x,z,'m')
>> hold off
>> ishold
% hold by gi khng cn trng thi ON na.
ans =
0
Ch rng kim tra trng thi ca hold ta c th dng hm ishold .
138
Hnh 17.15
Nu bn mun hai hay nhiu th cc ca s figure khc nhau, hy
dng lnh figure trong ca s lnh hoc chn new figure t bng chn file,
figure khng c tham s s to mt figure mi. Bn c th chn kiu figure
bng cch dng chut hoc dng lnh figure(n) trong n l s ca s hot
hot ng.
Mt khc mt ca s figure c th cha nhiu hn mt h trc. Lnh
subplot(m,n,p) chia ca s hin ti thnh mt ma trn mxn khong v
th, v chn p l ca s hot ng. Cc th thnh phn c nh s t tri
qua phi, t trn xung di, sau n hng th hai .v.v. . . V d:
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
x = linspace(0,2*pi,30);
y = sin(x);
z = cos(x);
a = 2*sin(x).*cos(x);
b = sin(x)./(cos(x)+eps);
subplot(2,2,1)
% pick the upper left of
% 2 by 2 grid of subplots
plot(x,y),axis([0 2*pi -1 1]),title('sin(x)')
subplot(2,2,2)
% pick the upper right of the 4 subplots
plot(x,z),axis([0 2*pi -1 1]),title('cos(x)')
plot(x,z),axis([0 2*pi -1 1]),title('cos(x)')
subplot(2,2,3)% pick the lowwer left of the 4 subplots
plot(x,a),axis([0 2*pi -1 1]),title('2sin(x)cos(x)')
subplot(2,2,4)%pick the lowwer right of the 4 subplots
plot(x,b),axis([0 2*pi -20 20]),title('sin(x)/cos(x)')
139
Hnh 17.6
17.8 Mt s c im khc ca th trong h to phng
loglog tng t nh plot ngoi tr thang chia l logarithm cho c hai trc.
semilogx tng t nh plot ngoi tr thang chia ca trc x l logarithm cn
thang chia trc y l tuyn tnh.
semology tng t nh plot ngoi tr thang chia ca trc y l logarithm, cn
thang chia trc x l tuyn tnh.
area( x, y ) tng t nh plot (x,y) ngoi tr khong cch gia 0 v y c
in y, gi tr c bn y c th c khai bo, nhng mc nh th khng.
S hnh mi tiu chun c to thnh t lnh pie(a, b), trong a l
mt vector gi tr v b l mt vector logic tu chn. V d:
>> a = [.5 1 1.6 1.2 .8 2.1];
>> pie(a,a==max(a));
>> title('Example Pie Chart')
Hnh 17.7
140
>> pareto(a);
>> title('Example Pareto Chart')
Hnh 17.18
>>
>>
>>
>>
>>
>>
141
Hnh 17.19
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
Hnh 17.20
142
>> rose(v)
>> title('Angle Histogram of Random Angle')
Hnh 17.21
----------------------oOo----------------------
chng 18
ho
trong khng gian 3 chiu
143
Hnh 18.1
Ch rng: hm zlabel tng ng vi hm hai chiu xlabel v ylabel. Tng t
nh vy, lnh axis cng c khun dng: axis ( [xmin
xmax ymin ymax
zmin zmax ] ) thit lp gii hn cho c 3 trc. V d :
>> axis('ij') % thay i hng trc t sau ra trc
Hnh 18.2
Hm text cng c khun mu nh sau: text ( x, y, z, string ) s t v tr
xu string vo to x, y, z.
18.2 th b mt v li
MATLAB nh ngha b mt li bng cc im theo hng trc z trn ng k hnh vung trn mt phng x-y. N to ln mu mt th bng cch
ghp cc im gn k vi cc ng thng. Kt qu l n trng nh mt mng li
144
nh c vi cc mt li l cc im d liu. th li ny thng c s dng
quan st nhng ma trn ln hoc v nhng hm c hai bin.
Bc u tin l a ra th li ca hm hai bin z = f (x, y ), tng
ng vi ma trn X v Y cha cc hng v cc ct lp i lp li. MATLAB cung
cp hm meshgrid cho mc ch ny. [ X, Y ] = meshgrid(x, y ), to mt
ma trn X, m cc hng ca n l bn sao ca vector x, v ma trn Y c cc ct
ca n l bn sao ca vector y. Cp ma trn ny sau c s dng c lng hm hai bin s dng c tnh ton hc v mng ca MATLAB.
Sau y l mt v d v cch dng hm meshgrid.
>> x = -7.5:.5:7.5;
>> y = x;
>> [X,Y] = meshgrid(x,y);
X, Y l mt cp ca ma trn tng ng mt li ch nht trong mt phng x-y.
Mi hm z=f(x,y) c th s dng tnh cht ny.
>> R = sqrt(X.^2+Y.^2)+eps;
>> % find the distance from the origin (0,0)
>> Z = sin(R)./R;
% calculate sin(r)/ r
Ma trn R cha bn knh ca mi im trong [X,Y], n l khong cch
t mi im n tm ma trn. Cng thm eps khng xy ra php
chia cho 0. Ma trn Z cha sine ca bn knh chia cho bn knh mi im trong
s . Cu lnh sau v th li:
>> mesh(X,Y,Z)
Hnh 18.3
th trn l n sc. Tuy nhin bn c th thay i mu sc vi s tr
gip ca MATLAB rt r dng nu bn c n phn colormaps..
145
Trong v d ny, hm mesh xp xp gi tr ca cc phn t ca ma trn
vo cc im (X,Y,Z) trong khng gian ba chiu. mesh cng c th v mt
ma trn n tng t nh vi mt i s; mesh(Z), s dng cc im (i,j,Z).
Nh vy Z c v ngc li vi cc ch s ca n, trong trng hp ny mesh(Z) ch
n gin l chia li khc cc trc x, y theo cc ch s ca ma trn Z. Bn
hy th to v d cho trng hp ny?.
th b mt ca cng mt ma trn Z trng nh th li trc , ngoi tr
khong cch gia hai ng l khc nhau (gi l patchs). th loi ny dng
hm surf, n c tt c cc i s nh hm mesh. Hy xem v d di y (Hnh
18.4):
>> surf(X,Y,Z)
Hnh 18.4
lm r thm mt vi ch , chng ta cng quay li hm peaks a ra
phn trc. th li trong khng gian 3 chiu ca hm ny c a ra nh sau
(hnh 18.5):
>> mesh(peaks)
>> title('Mesh Plot of Peaks function')
146
Hnh 18.5
th ng vin cho ta thy c nng hoc cao ca hnh. Trong
MATLAB th ng vin trong khng gian hai chiu tng t nh trong khng
gian ba chiu nhng hm gi ca n l contour3. th s dng cc lnh s c
minh ho trong bng khc mu.
18.3 Thao tc vi th
MATLAB cho php bn khai bo gc t quan st c th trong
khng gian ba chiu. Hm view(azimuth, elevation ) thit lp gc xem bng
vic khai bo azimuth v elevation. Elevation m t v tr ngi quan st,
xem nh l gc o bng trn h trc x-y. Azimut m t gc trong h trc
ni ngi quan st ng.
Azimuth c o bng t phn m trc y. Pha m trc y c th quay
theo chiu kim ng h mt gc -37.5 t pha bn. Elevation l gc m ti
mt bn thy c mt phng x-y. S dng hm view cho php bn c th
quan st hnh v t cc gc khc nhau. V d nu elevation thit lp l
m, th view s nhn hnh t pha di ln. Nu azimuth thit lp dng, th
hnh s quay ngc chiu kim ng h t im nhn mc nh.Thm ch bn
c th nhn trc tip t trn bng cch thit lp view(0,90 ). Thc ra th
y l im nhn mc nh 2 chiu, trong x tng t tri qua phi, v y
tng t trn xung di, khun dng view(2) hon ton ging nh mc
nh ca view(0, 90 ), v view(3) thit lp mc nh trong khng gian 3
chiu.
Lnh view c mt dng khc m rt tin ch khi s dng l view([X,Y,Z ])
cho php bn quan st trn mt vector cha h trc to decac trong khng
gian 3 chiu. Khong cch t v tr bn quan st n gc to khng b nh
hng. V d, view([0 10 0 ]), view([0 -1 0 ]) v view(0, 0 ) cho cc kt
qu nh nhau. Cc thng s azimuth v elevation m bn ang quan st c th
ly li c bng cch dng [az, e] = view. Vd:
147
>> view([-7 -9 7])
>> [az,el] = view
az =
-37.8750
el =
31.5475
Mt cng c hu dng khc l quan st th khng gian 3 chiu bi hm
rotate3d. Cc thng s Azimtuh v elevation c th c tc ng bi chut,
rotate3d on cho php chut can thip, rotate3d of khng cho php.
Lnh hidden du cc nt khut. Khi bn v th, th mt s phn ca n
b che khut bi cc phn khc, khi nu dng lnh ny th cc nt khut s
b du i, bn ch c th nhn phn no trong tm nhn ca bn. Nu bn
chuyn n hidden of, bn c th thy phn khut qua mng li. Di y
l v d:
>>
>>
>>
>>
>>
mesh(peaks(20)+7)
hold on
pcolor(peaks(20))
hold off
title('Mesh with hiden on')
Hnh 18.8
By gi hy b ch du cc nt khut i ta s thy s khc nhau:
>> hidden off
>> title('Mesh with Hidden Off ')
148
Hnh 18.9
18.4 Cc c im khc ca th trong khng gian 3 chiu
149
Hnh 18.10
Hm clabel tng thm cao cho th ng vin. C ba mu clabel(cs),
clabel(cs, V ) v clabel( cs, manual). clabel(cs), trong cs l cu trc
ng vin c tr v t lnh contour, cs=contour(z), ly nhn tt c cc
th ng vin vi cao ca n. V tr ca nhn c ly ngu nhin.
clabel (c, manual) nh v nhn ng vin v tr kch chut tng t nh
lnh ginput ni trn. Nhn phm Return kt thc vic to nhn ny.
Hm contourf s v mt th ng vin kn, khng gian gia ng vin
c lp y bng mu.
Hai mu trng thi ca lnh mesh dng vi th li l: meshc v th li
v thm ng vin bn di, meshz v th li v th c dng nh mn
che.
Hm waterfall c xem nh mesh ngoi tr mt iu l hm mesh ch xut
hin hng x.
C hai mu trng thi ca lnh surf, l surfc v mt th surf v thm
ng bao bn di, surflvex v mt th surf nhng thm vo s chiu sng
b mt t ngun sng. Cu trc tng qut l surfl( X,Y, Z, S, K ) trong
X, Y,v Z tng t nh surf, S l mt vector tu chn trong h to decac
(S=[Sx Sy Sz]) hoc trong to cu (S=[az,el]) ch ra hng ca
ngun sng. Nu khng khai bo, gi tr mc nh ca S l 45 theo
chiu kim ng h t v tr ngi quan st, S l mt vector tu chn ch ra
phn ng gp tu thuc vo ngun sng bao quanh, s phn chiu nh
sng v h s phn chiu (K=[ka,kd,ks,spread]).
>> colormap(gray)
>> surfl(peaks)
>> title('surf1 plot of peaks with default lighting')
150
Hnh 18.11
>> color(cool)
>> fill3(rand(3,4),rand(3,4),rand(3,4),rand(3,4))
18.5 Bng mu
Mu v biu mu c cp n trong mt s v d phn trc. Trong
phn ny chng ta s ni r v chng. MATLAB nh ngha mt biu mu
nh l mt ma trn c 3 ct. Mi hng ca ma trn nh ngha mt mu ring
bit s dng cc s trong di 0 v 1. Nhng s ny ch ra cc gi tr RGB,
nhy ca cc mu thnh phn , xanh l cy, v xanh da tri trong mt mu
do cc thnh phn to ra. Mt s mu c bn c cho trong bng di y:
Xanh l cy
0
Xanh da tri
0
mu
en
151
1
1
0
cy
0
tri
1
1
0
-5
trung bnh
-5
1
-49
xanh bin
1
0
1
1
0
0
trng
xanh l
xanh da
1
0
1
-5
0
1
1
-5
vng
tm
lam xm
xm
0
-62
1
-40
0
ng
-83
ti
ngc
M t bng mu
Gi tr mu bo ho (HSV)
en--vng-trng
xm cn bng tuyn tnh
xm c pha nh vi mu xanh
sc thi ca mu ng
mu hng nht nh
trng hon ton
xen k , trng, xanh da tri, v en
s thay i mu bo ho
c mu sc lng knh
mu xanh tm
mu ca nt v
Bng ca xanh l cy v vng
Bng ca v vng
Bng ca xanh l cy v xanh da tri
Bng ca magenta v yellow
152
>>
>>
>>
>>
>>
[X,Y,Z]=peaks(30);
surf(X,Y,Z,atan2(X,Y))
colormap(hsv),shading flat
axis([-3 3 -3 3 -6.5 8.1]),axis off
title('using a color Argument to surf')
Hnh 18.12
18.7 S dng mu thm thng tin
Mu c th c dng thm thng tin vo th 3 chiu nu n c s
dng to thnh chiu th t. Cc hm nh mesh v surf bin i mu dc
theo trc z, tr khi mt i s mu c a ra nh surf(X,Y,Z) hon ton tng
ng vi surf(X,Y,Z,t ) trong thnh phn th t c dng nh mt ch s
trong biu mu. iu ny khin cho th y mu nhng li khng thng
tin khi m trc z tn ti.
Di y l mt s cch s dng i s mu thm thng tin hoc nhn
mnh thng tin tn ti trong th
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
153
>>
>>
>>
>>
[dZdx,dZdy]=gradient(Z);
%compute the slope
dZ=sqrt(dZdx.^2+dZdy.^2)
%compute the slope's manitude
subplot(2,2,4),surf(X,Y,Z,dZ)
title('Color Varies With the slope Magnitude')
Hnh 18.13
18.8 Hin th bng mu.
Bn c th hin th bng mu theo mt s cch sau. Mt trong nhng cch
l xem tt c cc phn t trong trong mt ma trn bng mu mt cch trc
tip:
>> hot(8)
ans =
0.3333
0.6667
1.0000
1.0000
1.0000
1.0000
1.0000
1.0000
0
0
0
0.3333
0.6667
1.0000
1.0000
1.0000
0
0
0
0
0
0
0.5000
1.0000
154
>>
>>
>>
>>
n=8;
colormap(jet(n))
pcolor([1:n+1;1 :n+1]')
title('using pcolor to display a colormap')
Hnh 18.4
Hm colorbar thm mt thanh mu ng hoc thanh mu ngang (cn
chnh mu ) vo ca s hnh v ca bn, a ra biu mu cho trc hin ti.
colorbar( h) nh v thanh mu ngang di hnh v hin ti ca bn.
colorbar( v) nh v thanh mu ng v bn phi hnh v ca bn. colorbar
khng c i s th l thm mt thanh mu ngang, nu thanh mu ny khng
tn ti hoc l cp nht nu n tn ti.
>> [X,Y,Z] = peaks;
>> mesh(X,Y,Z );
>> colormap(hsv)
>> axis([-3 3 -3 3 -6 8])
>> colorbar
Hnh 18.5
155
18.9 Thit lp v thay i bng mu.
Thc t colormaps l cc ma trn, c ngha l bn c th thao tc chng
ging nh bt k mt ma trn no khc. Hm brighten nh vo c im
ny thay i colormap tng hoc gim nhy ca cc mu m.
bighten(n) cng vi bighten(-n) phc hi colormap ban u. Lnh
newmap=brighten(n) to mt thanh mu sng hn hoc ti hn ca
colormap hin ti m khng lm thay i bi mu hin ti. Lnh
newmap=brighten(cmap,n) iu chnh phin bn ca thanh mu c
khai bo m khng lm nh hng n colormap hin ti hoc cmap.
brighten(gcf, n) lm sng tt c cc i tng trong hnh v hin ti.
Bn c th to mt colormap ca ring bn bng cch a ra mt ma trn
mymap m hng,3 ct v ci t n cng vi colormap(mymap) mi gi tr
trong mt ma trn colormap phi thuc khong t 0 n 1. Nu bn c gng
s dng mt ma trn vi nhiu hn hoc t hn 3 ct hoc cha mt gi tr
no b thua 0 hoc ln hn1 colormap s a ra thng bo li.
Bn c th kt ni cc colormap theo kiu ton hc. Mc d kt qu i khi
khng th on trc c. V d, biu c tn gi l pink :
>> pinkmap = sqrt (2/3*gray+1/3*hot);
Bi v colormap l cc ma trn, chng c th c v th. Lnh rgbplot
s v th cc gi tr ca colormap tng t nh lnh plot, nhng s dng mu
, mu xanh l cy v xanh da tri cho nt v. rgbplot(gray) cho bit c ba
mu tng tuyn tnh v ng u. Lnh rgbplot vi mt s colormap khc
nh jet, hsv, v prism.
Gi tr hin ti ca cmin v cmax c tr li bng caxis khng c i s.
Chng thng l nhng gi tr ln nht v nh nht ca d liu, caxis([cmin
cmax ]) s dng colormap nguyn bn cho d liu trong di gia cmin v
cmax, nhng im d liu ln hn cmax s b chia ra thnh cc mu kt hp
vi cmax. V nhng im d liu c gi tr nh hn cmin s b chia ra thnh
cc mu kt hp vi cmin. Nu cmin nh hn min(data) hoc cmax ln hn
max(data ), th cc mu kt hp vi cmin hoc cmax s khng bao gi c s
dng ; ch mt phn nh ca colormap c s dng. caxis(auto) s hi phc
gi tr mc nh ca cmin v cmax.
V d sau c minh ho trong colorplate4 .
>> pcolor([1:17;1:17]')
>> title('Default color range')
>> colormap(hsv(8))
>> axis('auto')
>> colorbar
>> caxis
ans =
1 17
156
Hnh 18.6
Chng19
Mng t bo v cu trc
MATLAB 5.0 gii thiu 2 loi d liu mi c tn gi l mng t bo v cu
trc. Mng t bo c xem nh mt mng ca cc s nh phn hoc l nh b
cha c th lu gi nhiu kiu d liu khc nhau. Cu trc l nhng mng d
liu hng i tng xy dng cng vi tn cc trng c th cha nhiu kiu d
liu khc nhau, bao gm mng t bo v cc cu trc khc. Cu trc cung cp
cho ta phng tin thun li nhm cc kiu d liu khc nhau. Nhng kiu
d liu mi ny, mng t bo v cu trc to cho bn kh nng t chc d liu
thnh cc gi rt thun tin.
19.1 Mng t bo
Mng t bo l nhng mng MATLAB m cc phn t ca n l cc t
bo. Mi t bo trong mng t bo cha cc kiu d liu ca MATLAB bao gm
mng s, vn bn, i tng c trng, cc mng t bo v cu trc. V d mt
t bo ca mng t bo c th l mng s, loi khc l kiu chui vn bn, loi
khc l vector cc gi tr s phc. Cc mng t bo c th c xy dng vi s
chiu ln hn 2, tuy nhin cho thun tin khi xt ngi ta ly s chiu l 2 .
19.2 Xy dng v hin th mng t bo
Mng t bo c th c xy dng bng cch dng cu lnh gn, hoc
ch nh mng trc bng cch s dng hm t bo sau gn d liu cho
mng.
Nh mi loi mng khc, mng t bo c th to ra bng cch gn d liu
cho tng t bo c lp cng mt thi im. C hai cch khc nhau thm
nhp vo mng t bo. Nu bn s dng c php mng tiu chun, bn phi
cc t bo trong du ngoc { }. V d:
157
>>
>>
>>
>>
[]
[]
158
[ 1x2 double ] ' John Smith'
[ 2.0000+ 3.0000i ] [
5 ]
Mt tp con cc t bo c th c tch ra to thnh mt mng t bo mi.
Nu D l mt mng t bo 3x3, ngi ta c th tch ra to thnh mt mng
t bo mi 2x2 nh sau:
>> F = D(2:2,2:3);
Hm reshape c th c s dng thay i cu hnh ca mt mng
t bo nhng khng th dng thm vo hoc bt i t bo.
>> X = cells(3,4);
>> size(X)
ans =
3
4
>> X= reshape(X,6,2);
>> size(Y)
ans =
6
2
19.4 Truy nhp vo trong mng t bo
truy nhp d liu cha trong cc phn t ca mng t bo, s dng
du ngoc nhn. Dng du ngoc n thm nhp mt phn t nh l mt t
bo. truy nhp ni dung ca phn t trong mng t bo, kt ni cc biu
thc nh sau:
>> x = B{2,2}
x =
5
>> class(x)
ans=
double
>> y = B[2,2]
% truy nhp vo bn thn t bo.
y =
[5]
>> class(y)
ans=
cell
>> B{1,1} (1,2) % truy nhp vo phn t th hai ca
% vector trong t bo
ans=
2
truy nhp di cc phn t trong mng t bo, s dng hm deal
>> [a,b] = deal(B{2,:1})
a =
2.0000+
3.0000i
b =
5
159
Hm deal cn mt danh sch cc bin phn bit nhau bi du phy. Biu
thc B{2, :} c th s dng mi ni v du phy dng phn tch danh
sch cc bin. Do , B{2, :} tng ng vi B(2,1) v B(2,2).
19.5 Mng t bo ca chui k t
Mt trong nhng ng dng ph bin ca mng t bo l xy dng mt
mng vn bn. Mng chui k t tiu chun i hi tt c cc chui u c
chung di. Bi v mng t bo c th cha nhiu kiu d liu khc nhau
trong mi phn t, chui k t trong mng t bo khng c gii hn ny. V d:
>> T = {' Tom';' Disk'}
T=
'Tom'
'Disk'
19.6 Cu trc
Cu trc l nhng i tng MATLAB c tn b cha d liu cn gi l
fields. Nh mi phn t ca mng t bo, trng cu trc c th c bt c mt
kiu d liu no. Chng khc ch cu trc trng c truy nhp bng tn ph
bin hn l ch s, v khng c s hn ch no v ch s cng nh cu hnh
ca cc trng cu trc. Cng ging nh mng t bo, cu trc c th c nhm
li vi nhau to thnh mng v mng t bo. Mt cu trc n l mt mng cu
trc 1x1.
19.7 Xy dng mng cu trc
Cu trc s dng du . truy nhp vo trng. Xy dng mt cu
trc n gin nh gn d liu vo cc trng c lp. V d sau to mt bn ghi
client cho th vin kim tra.
>> client.name = ' John Doe';
>> client.cost = 86.50;
>> client.test.AIC = [6.3 6.8 7.1 7.0 6.7 6.5
>> client.test.CHC = [2.8 3.4 3.6 4.1 3.5];
>> client
client =
name L ' John Doe '
cost :86.50
test : [1x1 struct]
>> client.test
ans=
AIC:6.3000 6.8000 7.1000 7.0000 6.7000 6.5000
CHC:2.8000 3.4000 3.6000 4.1000 3.5000
6.3
6.4]
6.3000 6.4000
6.5 6.7
5.5
6.0
5.9 ]
160
>> client(2).test.CHC =[ 3.8 6.3
3.2 3.1 2.5 ]
>> client
client =
1x2 struct array with field
name
cost
test
Cu trc cng c th c xy dng bng cch dng hm struct to
trc mt mng cu trc. C php l: ( field. V1, field2, V2, .... ) trong
field1, field2, .v.v... l cc trng, v cc mng V1, V2, v.v.... phi l cc mng t
bo c cng kch thc., cng s t bo, hoc gi tr. V d, mt mng cu trc
c th c to ra nh sau:
>> N ={' John Doe ', ' Alice Smith'};
>> C = {86.50, 112.35 };
>> P = {[10.00 20.00 45.00];
>> bills = struct('name',N,'cost',C,'payment',P)
bils=
1x2 struct array with fields
name
cost
payment
19.8 Truy nhp vo cc trng cu trc
Bi v ni dung cu trc l tn nhiu hn l ch s, nh trong trng hp
mng t bo, tn ca cc trng trong cu trc phi c bit n truy nhp
d liu cha trong chng. Tn ca cc trng c th c tm thy trong
trong ca s lnh, n gin l ch vic nhp vo tn ca cu trc. Tuy nhin
trong M-file, mt hm cn thit c to ra cp nht cc tn trng . Hm
fieldname tr li mt mng t bo c cha tn ca cc trng trong mt cu
trc.
>> T = fieldnammes(bills)
T =
' name '
' cost '
' payment '
C hai phng php truy nhp vo trng cu trc. Ch s trc tip s
dng k thut ch mc thch hp, nh phng php truy nhp trng cu trc, v
ch s mng thch hp truy nhp vo mt s hoc mt mng t bo. Sau
y l mt v d da trn cu trc bills v client xt trn:
>> bills.name
ans =
John Doe
ans=
Alice Smith
>> bills(2).cost
ans=
112.3500
161
>> bills(1)
ans=
name : ' John Doe '
cost : ' 86.5000 '
payment: 10.000
20.0000 45.0000
>> baldue = bills(1).cost - sum(bills(1).payment )
baldue=
6.5000
>> bills(2).payment(2)
ans =
12.3500
>> client(2).test.AIC(3)
ans=
7.000
Phng php ch mc trc tip thng c s dng truy nhp gi tr trng. Tuy nhin, cc M-file nu tn cc trng c gi ra t hm fieldnames,
th hm getfield v setfield c th c s dng truy nhp d liu trong
cu trc. V d :
>> getfield(bills,{1},'name' )
% tng t nh bills(1).name
ans=
John Doe
>> T = fieldnames(bills);
>> getfriend(bills,{2},T{3},{2})%tng t nh s(2),payment(2)
ans=
12.3500
V d sau tr li cu trc c cha cng kiu d liu nh cu trc nguyn thu
vi mt gi tr b thay i. Dng lnh
tng ng ca
client(2).test.AIC(3) = 7.1. l:
>> client = setfield(client,{2 },'test', 'AIC ',{3},7.1)
client=
1x2 struct array with fields
name
cost
test
>> client(2).test.AIC(3)
ans=
7.1000
Mt trng c th c thm vo trong mt mng cu trc ch n gin
bng cch gn gi tr cho trng cu trc mi.
>> client(1).addr = {' MyStreet';' MyCity '}
client =
1x2 struct array with fields
name
cost
test
addr
162
Mt trng c th c b i khi cu trc ( hoc mt mng cu trc )
bng lnh rmfield. S= rmfield ( S, field ) s b i trng field t cu trc S.
S= rmfield ( S, F ), trong F l mt mng t bo ca tn cc trng, b i
nhiu hn mt trng t cu trc S ti mt thi im.
>> client = rmfield( client,' addr ')
client =
1x2 struct array with fields
name
cost
test
19.9 S nghch o v hm kim tra
S nghch o gia cc mng t bo v cc cu trc bng cch dng
hm struct2cell v cell2struct . Tn trng phi c cung cp y cho
cell2struct v b mt i khi chuyn thnh mt mng t bo t mt cu trc.
S chuyn i t mng s v mng xu k t thnh mng t bo bng cch
s dng hm num2cell v cellstr. Ngc li chuyn i t mt mng t bo
thnh mng k t bng hm char.
Mc d hm class tr v kiu kiu d liu ca i tng, class vn khng
thun tin s dng kim tra kiu d liu. Hm isa(x, class ) tr li true
nu x l mt i tng kiu class. V d, isa ( client, struct ) s tr li true.
thun tin, mt s hm kim tra s khc c sn trong th vin chng trnh
nh: isstruct, iscell, ischar, isnumeric, v islogical.
---------------------oOo---------------------Chng 20
Biu tng ca hp cng c ton hc
Cc chng trc, bn bit c MATLAB mnh ra sao trn phng din lp
trnh, tnh ton. Mc d kh nng tnh ton ca n rt mnh, tuy nhin n vn
cn c nhng hn ch. Nh mt my tnh, MATLAB c s s dng cc con s. N
nhn cc s (123/4) hoc cc bin (x =[ 1 2 3 ]).
Hp cng c ton hc l mt tp hp cc cng c ( hm ) MATLAB s
dng nhm gii cc bi ton. C cc cng c t hp, n gin ho, tch
phn, vi phn v gii cc php ton i s v php ton vi phn. Cc cng c
khc s dng trong i s hc tuyn tnh chuyn i chnh xc dng
nghch o, nh thc v cc khun mu tiu chun.
Cc cng c trong Symbolic Math Tollbox c to nn t chng trnh
phn mm mnh c tn l Maple @ pht trin khi u t trng i hc Waterloo
Ontario, Canada v by gi l phn mm ca hng Waterloo Maple Software.
Khi bn yu cu MATLAB thc hin mt php ton, n s s dng cc hm ca
Symbolic Math Tollbox lm vic ny v tr li kt qu ca s lnh.
20.1 Biu thc v cc i tng c trng
163
MATLAB c s s dng mt s cc kiu i tng khc nhau lu tr gi
tr. Bin s hc dng lu tr gi tr s hc, v d nh x=2, mng k t lu
tr chui vn bn, v nh : t = A text string . Hp cng c ton hc c trng
dng nhng i tng ton hc thay th cc bin v cc ton t, v d: x = sym (
x ). Cc i tng ton hc c s dng bi MATLAB trong nhiu trng hp tng
t nh cc bin s hc v chui c s dng. Biu thc ton hc l nhng biu
thc c cha i tng ton hc thay th cho cc s, hm, ton t.v cc bin.
Cc bin khng yu cu phi nh ngha trc. Thut ton l cng c thc hnh
gii quyt nhng bi ton trn c s bit c nhng quy lut v s nhn
dng cc biu tng c a ra, chnh xc nh ci cch bn gii bng i s hc v
s tnh ton.. Cc ma trn ton hc l nhng mng m phn t ca n l cc
i tng ton hc hoc cc biu thc.
20.2 To v s dng cc i tng c trng
i tng c trng c xy dng t nhng chui k t hoc cc bin s hc
s dng hm sym. V d x = sym ( x ) to ra mt bin c trng x, y = sym (
y ) to ra mt bin c trng y, y = sym ( 1/3 ) to ra mt bin c trng y
mang gi tr 1/3. Gi s bin c trng c nh ngha, n c th c s dng
trong cc biu thc ton hc tng t nh cc bin s hc c s dng trong
MATLAB . Nu nh cc bin x, y c to ra trc th lnh z= (x+y) / ( x-2 ) s
to mt bin mi z bi v biu thc m n thay th c mang mt hay nhiu
bin c trng x hoc y.
Mt i tng s hc c th chuyn thnh i tng c trng. Di y l
mt v d:
>> m = magic(3)
% to mt ma trn s
m =
8
1
6
3
5
7
4
9
2
>> M = sym(m)
% to mt ma trn c trng t m
M =
[ 8, 1, 6 ]
[ 3, 5, 7 ]
[ 4, 9, 2 ]
>> det(M)
% xc nh nh thc ca ma trn c trng M
ans =
-360
V d ny xy dng mt ma trn vung 3x3, chuyn i thnh ma trn
c trng, v tm nh thc ca ma trn.
Hm sym cho php bn la chn nh dng cho s hin thi c trng ca
gi tr s. C php l: S = sym ( A, fmt ) trong A l gi tr s hoc ma trn
cn fmt l mt c tnh nh dng tu chn, c th l f , r , e , hoc d
. Gi tr mc nh l r . Nu chn f tng ng h ch s lc phn, r tng ng ch s hu t, e tng t nh r nhng dng chnh tc hm m,
cn d tng ng ch s h thp phn.
Di y l mt s v d v s hin th ca mt s nh dng tu chn:
164
Lnh
format short
format long
format short e
format long e
format short g
format long g
format hex
format bank
format rat
format +
sym
sym
sym
sym
(
(
(
(
1/3,
1/3,
1/3,
1/3,
f )
r )
e )
d )
Lp
sym
sym
sym
sym
165
>> x = sym('x')
>> diff(cos(x))
ans =
-sin(x)
% to mt bin c trng x
% i ca cos(x ) vi bin s l x
166
ans =
char
>> M = sym('[a,b;c,d ]')
M=
[a,b;c,d]
>> size(M)
% M l mt vector 3 phn t (2 du
phy )
ans =
1
3
>> class(M)
ans =
sym
>> syms a b c d
% nh ngha bin s c trng a n d
>> M = [a,b;c,d]
% M l mt ma trn c trng
M =
[a, b]
[c, d]
>> size(M)
ans =
2
2
>> class(M)
ans =
sym
>> a = 1; b = 2 ; syms c d
% nh ngha mt bin c nh t a
>> M = [a,b;c,d]
M=
[1, 2]
[c, d]
>> size(M)
ans=
sym
% M l mt ma trn c trng t a n d
167
3
>> class(f)
ans=
sym
>> g = sym(pi)
g=
pi
>> class(g)
ans=
sym
>> h = sym(sin(pi/4))
h=
sqrt(1/2)
>> class(h)
ans=
sym
% kiu ca i tng f l g
168
ra u l kiu s nguyn, mt chui c trng hoc mt i tng c trng
bng cch s dng hm class t MATLAB c s.
20.6 Tch cc t s v mu s
Nu biu thc ca bn l mt a thc hu t hoc c th m rng ti
mt a thc hu t tng ng ( bao gm ton b cc phn t ca t s c
chung mu s), bn c th tch t s v mu s bng cch s dng hm
numden. V d:
m = x2, f = a x2/( b-x)
g = 3 x 2 /2 + 2 x /3 -3/5.
2
h = (x + 3)/ ( 2 x - 1 ) + 3x/(x-1)
numden t hp hoc hu t ho biu thc nu cn thit, v tr li kt qu
t s v mu s. Cu lnh MATLAB c thc hin nh sau:
>> sym x a b
% to mt s bin c trng
>> m = x^2
% to mt biu thc n gin
m =
x^2
>> [n,d] = numden(m)
% tch t s v mu s.
n =
x^2
d =
1
>> f = a*x^2/(b-x) % to mt biu thc lin quan
f =
a*x^2/(b-x)
>> [n d] = numden(f)
% tch t s v mu s.
m =
-a*x^2
d=
-b + x
Hai biu thc u tin cho ta kt qu nh mong mun
>> g = 3/2*x^2 + 2*x - 3/4
% to mt biu thc khc.
g =
3/2*x^2 + 2*x - 3/4
>> [n,d] = numden(g)
% hu t ho v tch cc phn
n =
6*x^2 + 8*x - 3
d =
4
>> h = (x^2 + 3)/(2*x - 1) + 3*x/(x - 1) % tng ca a thc hu t
h =
x^3 + 5*x^2 - 3
d= (2*x - 1)*(x - 1)
>> h2 = n/d
% to li biu thc cho h
h2 =
(x^2 + 3)/(2*x - 1) + 3*x/(x - 1)
169
Hai biu thc g v h c hu t ho hoc tr v biu thc n gin vi mt t
s v mu s, trc khi cc phn t c tch c th chia t s cho mu s to li
biu thc nguyn gc.
20.7 Php ton i s tiu chun
Mt s php ton tiu chun c th biu din trn biu thc c trng
s dng cc ton t quen thuc. V d cho hai hm:
f = 2x2 + 3x - 5
g = x2 - x + 7
>> sym('x')
% nh ngha mt bin s c tr ng
>> f = (2*x^2 + 3*x - 5)
% nh ngha biu thc c trng f v g
f=
(2*x^2 + 3*x - 5 )
>> x^2 - x + 7
g =
x^2 - x + 7
>> f +
ans =
3*x^2 + 2*x + 2
>> f - g
% tm biu thc ca f-g
ans =
x^2 + 4*x - 12
>> f*g
% tm mt biu thc ca f*g
ans =
(2*x^2 + 3*x -5 ) *( x^2 - x + 7)
>> f/g
% tm mt biu thc ca f/g
ans =
(2*x^2 + 3*x - 5 )/(x^2 - x + 7)
>> f ^(3*x)
% tm nt biu thc cho f3x
ans =
(2*x^2 + 3*x - 5)*3*x
Thc s l mt php ton trn bt c biu thc no cha t nht mt bin
s c trng s cho kt qu ca mt biu thc c trng, bn hy t hp cc
biu thc c nh to nhng biu thc mi. V d:
>> a = 1; b = 3/2 ; x = sym('x');
c trng
>> f = sin(a - x)
ans=
-sin(x-1)
>> g = sin(b*x^2)
ans=
sin(3/2*x^2)
>> b*f/(g - 5)+ x
ans =
% to mt s v
nhng bin s
% to mt s biu thc
% kt hp chng
170
-3/2*sin(x - 1)/(sin(3/2*x^2)- 5 )+ x )
Tt c cc php ton ny u thc hin tt vi cc i s l mng.
20.8 Cc php ton nng cao
MATLAB c th biu din nhiu php ton nng cao hn biu thc c
trng. Hm compose kt hp f(x ) v g ( x) thnh f ( g(x)). Hm finverse tm
hm nghch o ca mt biu thc v hm symsum tm tng c trng ca
mt biu thc. V d :
f = 1/ ( 1 + x2 ) g = sin ( x )
>> syms x u v
>> f = 1/(1+x^2)
>> g = sin(x)
>> h = x/(1 + u^2)
>> k = cos(x + v)
>> compose(f,g)
ans =
sym(1/(1 +
h = x/ ( 1 + u
) k = cos ( x+v )
% tm biu thc ca f( g ( x ))
x^2))
171
>> finverse(a*b + c*d - a*z,a)
ans=
-(c*d - a)/(b - z)
172
20.10
S thay th bin s
173
Php ly vi phn ca mt biu thc c trng s dng hm dif theo
mt trong 4 mu sau:
>> syms a b c d
x
s
>> f = a*x^3 + x^2 - b*x - c
ng
f =
a*x^3 + x^2 - b*x - c
>> diff(f)
mc nh
ans =
3*a*x^2 + 2*x - b
>> diff(f,a)
cho x
ans =
x^3
>> diff(f,2)
ans=
6*a*x + 2
>> diff(f,a,2) % vi phn 2 ln vi ?
ans=
0
% ly vi phn ca f vi x l bin
% ly vi phn ca f vi a thay
% ly vi phn f hai ln vi
174
p = int(....
>> pretty(p)
ans =
output from pretty
Hm tch phn, cng nh hm vi phn u c nhiu hn mt c php.
int(f) s tm mt php tnh tch phn theo cc bin c lp mc nh, cn
int(f, s ) tm php ly tch phn theo bin c trng s. Khun mu int( f, a, b
) v int (f, s, a, b ), trong a, b l cc bin s, tm ra biu thc c trng
cho php ly tch phn theo cn t a n b. Tng t cho hm int(f, m, n ) v
int ( f, s, m, n ).
>> syms x s m n
% nh ngha mt s bin
>> f = sin(s + 2*x)
% to mt hm tng trng
f=
sin(s+2*x)
>> int(f)
% php ly tch phn theo bin x
ans=
-1/2*cos(s+2*x)
>> int(f,s)
% php ly tch phn theo i s s
ans=
-cos(s + 2*x)
>> int(f,pi/2,pi)
% ly tch phn theo bin x vi cn t pi/2 n
pi
ans=
-cos(s)
>> int(f,s,pi/2,pi)
% ly tch phn theo s, cn t pi/2 n pi
ans=
2*cos(x)^2 - 1 - 2*sin(x)*cos(x)
>> g = simple(int(f,m,n))
% ly tch phn theo x, cn t m n n
g =
-1/2*cos(s + 2*n) + 1/2*cos(s + 2*m)
Trong v d ny, hm simple c s dng n gin ho kt qu ca php
ly tch phn. Chng ta s nghin cu thm v hm simple sau ny.
Cng nh hm dif, hm ly tch phn int trn mi phn t ca mng
c trng:
>> syms a
b
c
d
x
s
>> f = [a*x,b*x^2;c*x^3,d*s]
f=
[a*x,
b*x^2 ]
[c*x^3,
d*s ]
>> int(f)
theo i s x
ans =
[1/2*a*x^2,
[1/4*c*x^4,
175
V d : Gii php c trng ca mt phng php tnh ton c in
Fox Mulder, ang gim st trn mt mi nh ca mt to cao c Roswell,
New Mexico, trong khi ang n ba tra th anh ta cht pht hin ra mt vt c
hnh dng k l trn khng cao 50 m. Anh ta ly mt qu c chua chn
ra khi chic ti eo sau lng, t vo cnh ca mi nh ri nm mnh qu c
chua vo khng trung. Qu c chua c bay ln vi vn tc ban u l v0 = 20
m/s. Mi cao 30 m so vi mt t, thi gian bay ca n l t giy. Hi khi no n
t n cao cc i, cao m qu c chua t ti so vi mt t? Khi
no th qu c chua chm ti mt t? Gi s rng khng c lc cn ca khng
kh v gia tc ph thuc vo sc ht l khng i l a =-9.7536 m/s2.
Chng ta chn mt t cao l 0, y = 0 l mt t v y = 30 l nh
ca to nh. Vn tc tc thi s l v = dy/dt, v gia tc s l a = d 2y/dt2 . Do
nu ly tch phn mt ln gia tc, ta s c vn tc tc thi, cn tch phn
vn tc ta s c cao y.
>> t = sym('t');
% nh ngha bin dc trng thi gian
>> digits(5);
% chnh xc 5 ch s
>> a = sym('-9.7536')
% gia tc o bng m/s2
a =
-9.7536
>> v = int(a,t)
%vn tc xem nh hm thi gian
v =
-9.7536*t
>> v = v + 20
% thi im t=0 vn tc l 20m/s
v =
-9.7536*t + 20
>> y = int(v,t)
%tm cao y thi im t bng cch ly
tch phn
y =
-4.8768*t^2+20.*t
>> y = y + 30
% cao khi t=0 l 30 m
y =
-4.8768*t^2 + 20.*t + 30
Kim tra xem kt qu c ng khng, nu nh chng ta thay t=0 vo trong
biu thc, ta c:
>> yo = subs(y,t,0)
yo =
30.
kt qu ng nh cao qu c chua trc khi n c nm.
By gi chng ta c vn tc v v tr l hm ca thi gian t. cao
cc i khi m qu c chua ngng ln v bt u ri xung. tm im
ny, ta tm gi tr ca t khi v=0 bng cch dng hm solve. Hm ny tm
im khng ca biu thc c trng, hay ni cch khc, solve(f), trong f l
hm ca x, tm x khi cho f(x) =0.
176
% tm gi tr ca t khi v(t)=0
% v cao qu c chua
177
-4.8768*t^2+20.*t+30
50
40
30
20
10
0
-10
-20
-30
0
41 3
--- x +
750
293 4
---- x 7500
1207
5
----- x
37500
178
-6 + (5 + (5 + (-5 + x)*x)*x)*x
>> factor(ans)
thc
ans =
(x - 1)*(x - 2)*(x - 3)*(x + 1)
>> expand(f)
ans =
x^4 - 5*x^3 + 5*x^2 + 5*x - 6
Cng c
collect
factor
expand
simplify
simple
M t
Gom tt c cc mc ging nhau
Biu din di dng mt a thc
M rng tt c cc mc
n gin ho cc biu thc
Tm biu thc tng ng c chui k t ngn nht
>> s = sym('s');
>> Y =(10*s^2 + 40*s + 30 )/(s^2 + 6*s + 8)
Y =
179
(10*s^2 + 40*s + 30)/(s^2 + 6*s + 8)
>> diff(int(Y))
ans =
10 - 15/(s + 4) - 5/(s + 2)
>> pretty(ans)
15
5
10 - ----- - ----s + 4
s + 2
K thut ny cng tht l hu ch khi ta mun ti gin a thc trong
c bc cao hn mu s.
>> x = sym('x');
>> g = (x^3 + 5)/(x^2 - 1)
g =
(x^3 + 5)/(x^2 - 1)
>> diff(int(g))
ans =
x + 3/(-1+ x) - 2/(x + 1)
>> pretty(ans)
3
2
x + ------ - ----20.16 T lm
-1 + x
x + 1
180
>> solve('a*x^2 + b*x - (-c)')
ans =
[1/2/a*(-b + (b^2 - 4*a*c)^(1/2))]
[1/2/a*(-b (b^2 - 4*a*c)^(1/2))]
Nu nh bn mun gii i s khc so vi bin s mc nh th bn c th
khai bo trong solve nh sau:
>> solve(a*x^2 + b*x + c,b)
ans =
-(a*x^2 + c)/x
Php ton c th gii bng cch gn biu thc cho 0. By gi chng ta s
gii cos(x)=sin(x) v tan(x) =sin(2x) theo x, v qui kt qu ca chng v bin f
v t:
>> f = solve(cos(x)- sin(x))
f =
1/4*pi
>> t = solve(tan(x)- sin(2*x))
t =
[
0]
[
pi]
[ 1/4*pi]
[ -3/4*pi]
Kt qu di dng s:
>> double(f)
ans =
0.7854
>> double(t)
ans =
0
3.1416
0.7854
-2.3562
20.19 Mt vi php ton i s
C th gii vi php ton cng mt lc. Cu lnh [a1, a2, ..., an ] =
solve(f1, f2, ...,fn ) gii n php ton cho cc bin mc nh v tr li kt qu
trong a1, a2, ..., an. Tuy nhin bin mc nh s c lu tr . V d:
>> syms x y
>> [a1 a2] = solve(x^2 + x^y + y - 3, x^2 - 4*x + 3)
a1 =
[ 1]
[ 3]
181
a2 =
[
1]
[ -(6*log(3)+lambertw(1/729*log(3)))/log(3)]
20.20 Php ton vi phn
Thng thng php ton vi phn rt kh gii, MATLAB cung cp cho bn
mt s cng c mnh tm kt qu ca php ton vi phn.
Hm dsolve s gii cc php ton vi phn v cho ta kt qu. C php ca
dsolve khc vi phn ln cc hm khc. i s ca hm phi l xu k t thay
v biu thc, v nh xu cha mt du =. iu ny r rng l khc so vi hm
solve, m i s ca n phi l mt biu thc c trng khng c du =.
Php ton vi phn c nhn ra bng k hiu ch hoa D v D2, D3,
v.v... .Bt k mt ch no theo sau Ds u ph thuc vo bin. Php ton
( d2y/dt2 ) c thay bi chui k t D2y=0. cc bin c lp c th c ch ra,
hoc nu khng s mc nh l t. V d gii php ton
(dy,dt) - 1+2y2:
>> clear
>> dsolve('Dy=1+y^2')
ans =
tan(t - C1)
trong C1 l hng s. Cng bi ton trn nhng cho gi tr ban u l y(0) =1
th s c kt qu sau:
>> dsolve('Dy=1+y^2, y(0)=1')
ans =
tan(t+1/4*pi)
20.21 Mt vi php ton tch phn
Hm dsolve c th gii nhiu php ton vi phn cng mt lc. Khi gii
nhiu php ton vi phn dsolve tr cc bin vo mt cu trc hoc mt
vector nh solve lm. Ch dsolve xp xp cc bin trc khi c lp trc
khi tr. V d:
Gii php ton sau:
df/dt = 3f + 4g
dg/d = -4f + 3g
>> [f,g] = dsolve('Df = 3*f + 4*g, Dg = -4*f + 3*g')
f =
exp(3*t)*cos(4*t)*C1 + exp(3*t)*sin(4*t)*C2
g =
-exp(3*t)*sin(4*t)*C1 + exp(3*t)*cos(4*t)*C2
20.22 Ma trn v i s tuyn tnh
Ma trn c trng v vector l cc mng m phn t ca n l cc biu
thc c trng. chng c th c to bi hm sym:
182
>> syms a b c s t
>> A = [a,b,c;b,c,a;c,a,b]
A =
[ a, b, c]
[ b, c, a]
[ c, a, b]
>> G = [cos(t),sin(t);-sin(t),cos(t)]
G =
[ cos(t), sin(t)]
[ -sin(t), cos(t)]
Kch thc ca ma trn c trng c th tm c bng hm chun size v
length. V d:
>> syms a b c d e f
>> S = [a,b,c;d,e,f]
S =
[ a, b, c]
[ d, e, f]
>> h = size(S)
h =
2
3
>> [m,n] = size(S)
m =
2
n =
3
>> length(S)
ans =
3
Phn t ca mng c trng cng c truy nhp tng t nh mng s
>> syms ab cd ef gh
>> G = [ab,cd,ef,gh]
G =
[ ab, cd, ef, gh]
>> G(1,2)
ans =
cd
20.23 Php ton i s tuyn tnh
Php nghch o v nh thc ca ma trn c tnh bi hm: inv v
det
>> H = sym(hilb(3))
H =
[1,
1/2, 1/3]
[1/2, 1/3, 1/4]
[1/3, 1/4, 1/5]
183
>> det(H)
ans =
1/2160
>> J = inv(H)
J =
[ 9, -36,
30]
[-36, 192, -180]
[ 30, -180, 180]
>> det(J)
ans =
2160
20.24 Hm bc v xung
Hm step, u(t) v hm impulse, (t) thng c dng trong h thng. Hm
bc Ku(t-a ) trong K l hng s c nh ngha nh sau: Ku(t-a) =0 nu
t<a v Ku(t-a)= K nu T>=a. Di y l hm bc:
20.25 Bin i Laplace
Php bin i laplace bin i t min t sang min s. Hm ca n nh sau:
L(s) =
>> syms a s t w
>> f = exp(-a*t)*cos(w*t)
f =
exp(-a*t)*cos(w*t)
>> L = laplace(f,t,s)
L=
(s + a)/((s + a)^2 + w^2)
>> pretty(L)
s + a
------------2
2
s + a) + w
20.26 Bin i Fourier
Hm bin i Fourier v Fourier ngc nh sau:
F() =
f(t)=
MATLAB dng w thay cho trong biu thc c trng
>> syms t w
>> f=t*exp(-t^2)
f =
t*exp(-t^2)
>> f=fourier(f,t,w)
% bin i fourier s dng tham s t v w
f =
-1/2*i*pi^(1/2)*w*exp(-1/4*w^2)
>> ifourier(f,w,t)
% timbin i fourier ngc
184
ans =
1/2*4^(1/2)*t*exp(-t^2)
>> simplify(ans)
ans =
t*exp(-t^2)
--------------------------oOo-------------------------
chng 21
hp cng c h thng iu khin
MATLAB : A, B,
185
Ri rc
x[n+1] = Ax[n] + B u[n] y[n] = C x[n] + Du[n]
C, D
MATLAB : A, B,
=
C mt s tng quan t nhin 1-1 gia ch s mng t bo v ch s ma
trn hm truyn.
21.2 i tng LTI
MATLAB cung cp mt cch tm lc mng d liu tng quan thnh cc
i tng tuyn tnh, bt bin theo thi gian, hoc cc i tng LTI. iu ny
gip cho vic qun l chng c d dng. V d:
>> my_sys= zpk( z, p, k )
Zero/ pole / gain from input 1 to output:
1
s
Zero / pole / gain from input 2 to output:
3 ( s+1 )
-------------(s+10) (s+2)
xy dng mt i tng LTI zero-pole-gain c tn l my_sys c cha h thng 2
u vo v mt u ra. Cng nh vy:
>> H = tf( num, den )
Transfer function from input 1 to output...
10
#1: .........
s+10
-1
#2: .....
s
Transfer function from input 2 to output ...
s+10
#1:..............
s^2+6 s+10
3s+1
#2: ............
s^2 + 3 s + 3
to mt hm truyn i tng LTI t mng t bo num v den nhp vo trc .
Cng nh vy h thng hin ti hin th mt ch d hiu.
Cui cng, i tng LTI khng gian trng thi c hnh thnh nh sau:
>> a = [ 0
1 ;
-2
-4
] ; b = [ 0 1 ]; c = [ 1 1 ] ; d =0;
% inh ngha ma trn khng gian trng thi
186
>> system2=ss( a, b, c, d)
a=
x1
x2
x1
0
1.00000
x
-2.00000 -4.00000
b =
x1
x2
u1
0
1.00000
c =
y1
x1
1.00000
x2
1.00000
d=
u1
y1
0
H thng lin tc theo thi gian
Trong trng hp ny, h thng s xc nh cc thnh phn bin gn vi mi
phn t v xc nhn h thng l lin tc theo thi gian.
xy dng mt h thng gin on theo thi gian, s dng hm zpk,
tf, v hm ss, bn nht thit phi khai bo chu k ly mu km theo vi h
thng c xem nh l mt i s u vo cui cng.V d:
>> dt_sys = tf ( [ 1 0.2 ], [ 1 -1 ], 0.01 )
hm truyn
z+0.
...........
z-1
thi gian ly mu : 0.01
H thng ri rc theo thi gian ny c chu k ly mu l : 0.01
21.3 Khi phc d liu
Gi s i tng LTI c to dng, th d liu trong c th tch ra
bng cch s dng hm tfdata, zpkdata, v ssdata. V d :
>> [nz, dz ]= tfdata (dt_sys )
nz =
[1x2
double ]
dz =
[1x2
double ]
>> [ n z, dz ] = tfdata (dt_sys, 'v' )
z =
[ -0.2 ]
p =
[ 1 ]
k =
1
% tch ra nh l mng t bo
% chch ra nh l vector
187
>> [z, p, k ] =zpkdata ( dt_sys, 'v' ) % chch ra nh l vector
z =
-0.2
p =
1
k =
1
>> [ a, b, c, d ] = ssdata(dt_sys)
% chch ra ma trn khng gian
trng
%thi s
a =
1
b =
1
c =
1.2
d =
1
Nu nh mt i tng LTI c xy dng th n c th c tch ra theo bt c
mt mu no.
21.4 S nghch o i tng LTI
Bn cnh vic tch cc i tng LTI thnh nhiu kiu khc nhau, chng
cn c th c chuyn i thnh cc dng khc nhau bng cch s dng cc
hm t to. V d :
>> t = tf ( 100, [1
6
100])
% xy dng mt hm truyn.
Hm truyn :
100
.................
s^2 + 6 s + 100
>> sst = ss(t )
a =
x1
x2
x1
-6.00000
-6.25000
x2
16.00000
0
b =
u1
x1
2.00000
x2
0
c =
x1
x2
y1
0
3.12500
d =
u1
y1
0
H thng lin tc theo thi gian.
>> zpkt = zpkt(t)
Zero / pole / gain:
100
.................
(s^2+ 6 s + 100 )
188
21.5 Thut ton i tng LTI
S dng i tng LTI cng cho php bn thit lp thut ton s khi.
V d, hm truyn lp ca mt h thng hi tip l G( s ) . Th hm truyn
lp gn nht ca l : T(s ) = G(s ) ( 1 + G(s) ). Trong MATLAB, iu ny bt
u:
>> g = tf( 100, [1 6 0])
% hm truyn lp
Hm truyn:
100
............
s^2 + 6 s
>> t = g/(1+g)
hm truyn:
100 s^2 + 600 s
...............................
s^4 + 12 s^3 + 136 s^2 + 600 s
>> t = minreal(t)
% thit lp hm hu pole-zero
Hm truyn:
100
...................
s^2 + 6 s + 100
-5,
-10 ], 100 )
% h thng open-loop
100
....................
s (s+5 ) ( s+ 10 )
>>t =minreal ( g /( 1 +g ) ) H thng closed-loop
Zero / pole/ gain:
100
.....................................
(s+11.38 ) ( s^2 + 3.62 s ) + 8.789 )
Poles ca h thng ny l:
>>pole( t )
ans =
-11.387
-1.811 + 2.3472 i
-1.811 + 2.3472 i
189
th Bode ca h thng c cho nh hnh v:
>>bode(g)
Hnh 21.1
th Bode n gin ca h thng closed-loop l:
>> bode(t)
Hnh 21.2
190
p ng xung ca h thng
>> step(t)
Hnh 21.3
Ngoi cc phng php nu trn, hp cng c h thng iu khin cn a ra
thm cho bn lnh tr gip ltiview. Hm ny cho php bn la chn cc i tng
LTI t ca s lnh v quan st cc p ng khc nhau trn mn hnh.
21.7 Danh sch cc hm ca hp cng c h thng iu khin
S hnh thnh cc kiu LTI
ss
Xy dng kiu khng gian trng thi
zpk
Xy dng kiu zero-pole-gain
tf
Xy dng kiu hm truyn
dss
Ch r kiu ho php khng gian
trng thi
filt
ch r b lc s
set
Thit lp hoc sa i c th ca
LTI
ltiprops
Tr gip tri tit cho c tnh TTI
Phn tch d liu
ssdata
zpkdata
tfdata
dssdata
get
191
ca LTI
c tnh ca cc loi
class
size
isempty
isct
isdt
isproper
issiso
isa
S nghch o
ss
zpk
tf
c2d
d2d
Cc php ton
+ v *
\
/
.
[...]
inv
ng hc
pole, eig
tzero
pzma
dcgai
norm
covar
damp
esort
192
phn thc
Xp xp cc tnh ri rc bi bin
dsort
pade
p ng thi gian
step
impulse
inittial
lsim
Ltiview
gensig
stepfun
p ng bc
p ng xung
p ng h thng khng gian trng thi
vi trng thi khi to
p ng u vo tu
p ng phn tch GUI
Pht sinh tn hiu u vo cho lsim
Pht sinh u vo n v -bc
p ng tn s
bode
sigma
nyquist
nichols
ltiview
evalfr
margin
th Bode ca p ng tn
s
th gi tr tn s duy nht
th Nyquist
Biu Nichols
p ng phn tch GUI
p ng tn s ti mt tn s
nht nh
Gii hn pha v tng ch
Lin kt h thng
append
Nhm h thng LTI bi vic thm cc u ra v u
vo
parallel
Kt ni song song ( tng t overload + )
series
Kt ni ni tip ( tng t overload * )
feeback
Kt ni hi tip hai h thng
star
Tch s star( kiu lin kt LFT )
connect
Chuyn ho t kiu khng gian trng thi sang c
tnh biu khi
Dng c thit k c in
rlocus
acker
place
estime
Qu tch nghim
S thay th cc SISO
S thay th cc MIMO
Khun dng b nh
gi
193
Cng c thit k LQG
lqr, dlqr
B iu chnh hi tip v phng trnh bc
hai tuyn tnh
lqry
B iu chnh LQ vi u ra ph
lqrd
B bin i LQ ri rc sang lin tc
kalman
B nh gi Kalman
lqgrreg
B bin i LQG c a ra t tng ch
LQ v b nh gi Kalman
Gii quyt php ton ma trn
lyap
Gii phng trnh Lyapunop lin tc
dlyap
Gii ph ng trnh Lyapunop ri rc
care
Gii phng trnh i s Riccati lin
tc
dare
Gii phng trnh i s Riccati ri
rc
S biu din
crtldemo
jetdemo
diskdemo
milldemo
kalmdemo
Chng 22
Hp dng c x l tn hiu
22.1 Phn tch tn hiu
Hp cng c x l tn hiu cung cp cng c cho kim tra v phn tch tn
hiu; kim tra v phn tch tn s ca n hoc ph v xy dng b lc.
chng ta xy dng mt tn hiu nhiu sau phn tch n.
>> t = linspace(0,10,512);
% trc thi gian
>> x = 3*sin(5*t)- 6*cos(9*t)+ 5*randn(size(t));
% tn hiu vi nhiu Gaussian
>> plot(t,x)
% th tn hiu
194
Hnh 22.1
>>
>>
>>
>>
x = fft(x);
X = fft(x);
Ts = t(2)- t(1);
Ts = t(2)- t(1)
Ts =
0.0196
>> Ws = 2*pi/Ts;
>> Wn = Ws/2
Wn =
160.5354
>> W = linspace(0,Wn,length(t)/2);
>> Xp = abs(X(1:length(t)/2));
>> plot(w,Xp)
th c v hnh 22.2
195
Hnh 22.2
>> i = find(w<=20);
>> plot(w(i),Xp(i))
>> grid
>> xlabel('tan so, rad/s')
>> titile('Pho bien do cua tin hieu nhieu')
Pho bien do cua tin hieu nhieu
1400
1200
1000
800
600
400
200
10
tan so, rad/s
Hnh 22.3
15
20
196
chng 23
tr gip
23.1 Ca s lnh tr gip
MATLAB tr gip mt s lnh gip bn truy nhp thng tin nhanh chng
v cc lnh ca MATLAB hoc cc hm bn trong ca s lnh, bao gm help,
lookfor,whatsnew, v info.
23.1.1 Lnh help
Lnh help ca MATLAB l cch n gin nht nhn tr gip nu bn
bit c topic ca ci cn tr gip. Nhp vo lnh help topic, mn hnh s hin
th ni dung ca topic nu nh n tn ti. V nh:
>> help sqrt
SQRT
Square root.
SQRT(x) is the square root of the elements of x. complex
results are produced if X is not positive
See also SQRT
Bn s nhn c tr gip ca MATLAB v hm cn bc hai. Mt khc, nu
nh bn nhp vo dng lnh sau:
>> help cows
cows not found
th MATLAB s khng bit g v cows. Bi v hm ny khng c trong th vin
mu.
Ch : trong v d trn, SQRT c vit ch hoa. Tuy nhin khi s dng sqrt
khng bao gi l ch in, do MATLAB l mt ngn ng cht ch nn SQRT s
khng c bit n v qu trnh s sinh ra li.
>> SQRT (2)
??? SQRT (
|
Missing operator, coma, or semicolon.
tm tt, tn hm c in hoa cho d c nhng khi s dng, hm s dng
k t thng thng.
Lnh help hot ng tt nu nu nh bn bit chnh xc topic m bn
mun tr gip m iu ny thng kh thc hin, help hng dn bn trc tip
truy tm chnh xc cc topic m bn mun, bn ch n gin nhp vo help
m khng c topic.
>> help
HELP topics
MATLAB : general
MATLAB : ops
- mc ch chung ca cu lnh
- cc ton t v cc k hiu c bit
197
MATLAB
MATLAB
MATLAB
MATLAB
MATLAB
MATLAB
MATLAB
MATLAB
MATLAB
MATLAB
MATLAB
MATLAB
MATLAB
MATLAB
MATLAB
MATLAB
MATLAB
MATLAB
MATLAB
MATLAB
MATLAB
MATLAB
MATLAB
MATLAB
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
:
lang
elphun
specfun
matfun
datafun
polyfun
funfun
sparfun
graph2d
graph3d
specgraph
graphics
uitools
strfun
iofun
timefun
datattypes
MacOS
demos
specmat
local
cntol
signal
symbolic
Lnh lookfor
complex
198
CONJ (x) is the complex conjugate of X
For a complex x, CONJ(X ) = REAL (X) - i * IMAG( X)
See also : REAL, IMAG, I, J
Hnh 23.1
Nhn kp vo bt c topic no hin th trong ca s help, s hin th mt
ca s mi cha cc topic con hoc cc hm gn vi n.
Nhn kp vo bt c biu tng no trong s hin th thng tin tr gip
v mc .
199
200
HELP Topic
Th mc MATLAB
Mc ch chung ca cu lnh
Thng tin chung
help
helpwin
helpdesk
demo
whatsnew
Readme
Nhn/to ng dn
Thm th mc theo ng dn
Ri th mc t t ng dn
Sa i ng dn
Qun l cc hm v lnh
what
Danh sch cc file c trng ca MATLAB trong th mc
type
Danh sch file-M
edit
Son tho filr-M
lookfor
Tm kim tt c cc file-M theo t kho
which
Xc nh cc hm v file
pcode
To file-P
inmem
Danh sch cc hm trong b nh
mex
Bin dch hm MEX
Cu lnh iu khin
echo
file-M
more
ra cc trang ca s lnh
diary
Ly li lnh t
Kim sot u
Lu gi vn bn
201
format
dng cho u ra
Hot ng ca lnh h thng
cd
mc lm vic hin ti
pwd
mc lm vic hin ti
dir
mc
delete
getenv
mi trng
!
cu lnh ca h iu hnh
dos
dos v tr li kt qu
unix
unix v tr li kt qu
vms
VMS DCL v tr li kt qu
web
duyt Web
computer
M-file g ri
debug
cc lnh g ri
dbstop
ngt
dbclear
im ngt
dbcont
thc hin lnh
dbstack
cc hm gi ngn xp
dbstatus
cc im ngt
dbstep
mt hoc nhiu dng
dbtype
file-M vi s lng dng
dbup
phm vi khng gian lm vic a phng
dbquit
ch g ri
Thit lp nh
Thay
th
Hin
th
th
Danh sch th
Xo file
Ly li
bin
Thc
hin
Danh
To
Di
sch
im
chuyn
Tip
tc
Hin
th
Danh
sch
Thc
hin
Danh
sch
Thay
Thot
khi
202
dbmex
ri ( ch cho UNIX )
file- MEX g
Cc ton t v cc k t c bit
Cc ton t
plus (+)
uplus (+)
minus ( - )
uminus (-)
mtimes(. *)
times (*)
mpower (^)
power (. ^ )
mldivide (\ )
mrdivide /)
ldivide (.\ )
mdivide (./ )
kron
Ton t quan h
eq (== )
ne ( ~= )
lt (< )
gt (>)
le (<= )
ge (>= )
Ton t logic
and ( & )
or ( | )
not ( ~ )
xor
any
all
Cng
Cng unary
Tr
Tr unary
Nhn ma trn
Nhn mng
Lu tha ma trn
Lu tha mng
Chia tri ma trn
Chia phi ma trn
Chia tri mng
Chia phi ma trn
Sn phm c cng
Bng
Khng bng
Nh thua
Ln hn
Nh thua hoc bng
Ln hn hoc bng
Logic v
Logic hoc
Logic ph nh
Logic hoc ph nh
True nu mi phn t ca vector khc khng
True nu tt c cc phn t khc khng
Cc ton t Bitwise
bitand
bitcmp
bitor
bitmax
bitset
bitget
bitshift
Bitwise and
Bit hon thnh
Bitwise OR
Maximum floating point integer
Thit lp bt
Nhn bt
Dch bit
Thit lp cc k t
union
Thit lp lin kt
203
unique
intersect
setdiff
setxor
ismember
Cc k t c bit
colon
()
[]
{}
.
.
..
...
,
;
%
!
=
transpose(.)
ctranspose( )
horzcat [, ]
vertcat[; ]
subsasgn
bsref
subsindex
Ch s duy nht
Thit lp s giao nhau
To s khc nhau
Thit lp hoc ph nh
True nu thit lp cc thnh vin
Du hai chm
Du ngoc n
Du ngoc vung
Du ngoc nhn
Chm thp phn
Truy nhp cu trc trng
Th mc m
S tip tc
Du phy
Du chm phy
Ch thch
Lin quan cu lnh ca h iu hnh
Gn
Nhy
Chuyn v
Chuyn v s pc lin hp
Gp chui theo chiu ngang
Gp chui theo chiu ng
Gn subscripted
Tham chiu subscripted
Ch s subscripted
Cu Trc ngn ng lp trnh
Cu lnh iu khin
if
elseif
else
end
for
while
break
return
pause
Thi hnh v nh gi
eval
Thc hin xu vi biu thc MATLAB
feval
Thc hin hm ch ra bi xu
evalin
nh gi cc biu thc trong khng gian lm vic
builtin
Thc hin cc hm c to bi phng php xp chng
204
assignin
run
Hin th thng bo li v hm hu
Hin th thng bo cnh bo
Thng bo li trc
B qua li trong qu trnh kim tra
Hin th mt mng
Hin th thng bo nh dng
Ghi d liu nh dng vo mt xu
Nhc ngi s dng nhp vo
Gi bn phm t M-file
i ngi s dng nhp d liu vo
To giao din bng chn-ngi s dng
To giao din ngi iu khin
Ma trn c bn v Thao tc vi ma trn
Ma trn c bn
zeros
ones
eye
repmat
rand
Mng s khng
Mng s 1
Nhn dng ma trn
Ti to v mng
S ngu nhin xp xp ng u
205
randn
linspace
logspace
meshgrid
:
Kch c ma trn
di vector
S chiu
Hin th ma trn hoc vn bn
True nu l ma trn trng
True nu ma trn l ng nht
True cho mng s
True cho mng logic
Chuuyn i gi tr s thnh logic
Thao tc vi ma trn
reshape
Thay i kch c
diag
Ma trn ng cho v ng cho ca ma trn
tril
Trch pha di ra ma trn tam gic
triu
Trch pha trn ra ma trn tam gic
fliplr
Ma trn flip theo hng tri /phi
flippud
Ma trn flip theo hng trn/ di
flipdim
Ma trn flip dc theo chiu khai bo
rot90
Quay i mt gc 90
find
Tm ch s phn t khc khng
end
Ch s cui
sub2ind
Ch s tuyn tnh t multiple subscripts
ind2sub
Multiple subscripts t ch s tuyn tnh
Hng v cc bin c bit
ans
Tr li kt qu khi biu thc khng c gn
eps
Vit di dng du phy ng
realmax
S du phy ng dng ln nht
realmin
S du phy ng dng nh nht
pi
3.1415926535897...
i, j
n v o
inf
V cng
NaN
Khng phi l mt s
isNaN
True nu NaN
isinf
True nu s phn t l khng v cng
isfinite
True nu s phn t l v cng
flops
m s ch s sau du phy ng
206
Cc bin c bit
ans
eps
pi
i, j
inf
NaN
clock
date
flops
nargin
narout
Bu bn
ng cho
Nhn dng
B mt
Hadamard
Hankel
Hilbert
Hilbert o
Vector
Vector
Vung Magic
Thc hin cho mesh plots
Hng
Cc phn t ngu nhin
Toeplitz
Vandermonde
Khng
Hm sine
Hm cosine
Hm tangent
Hm arcsine
Hm arccosine
Hm arctangent
Hm arctan gc phn t
Sine hyperpolic
Cosine hyperpolic
Tangent hyperpolic
Arcsine hyperpolic
207
acosh
atanh
Cc hm ton hc
abs
angle
sqrt
real
imag
conj
round
fix
floor
ceil
sign
rem
exp
log
log10
Cc hm c bit
airy
besselj
bessely
besselh
besseli
besselk
beta
betainc
betaln
erf
erfc
ellipk
ellipj
gamma
gammaln
inverf
rat
Hm l thuyt s hc
factor
isprime
primes
gcd
lcm
rat
rats
perms
nchoosek
Arccosine hyperpolic
Arctangent hyperpolic
Tr tuyt i hoc bin s phc
Gc pha
Cn bc hai
Phn thc
Phn o
Phc lin hp
Lm trn n s nguyn gn nht
Lm trn n khng
Lm trn n m v cng
Lm trn n v cng
Hm du
S lu li hoc cc khi ( modulus)
Hm m c s e
Logarithm t nhin
Log 10 c s
Hm airy
Hm Bessel loi th nht
Hm Bessel loi th hai
Hm Bessel loi th ba ( hm Hankel )
Sa i hm Bessel loi th nht
Sa i hm Bessel loi th hai
Hm beta
Hm beta khng hon ton
Hm logarithm beta
Hm li
Hm li thnh phn
Php tch phn elliptic
Hm elliptic Jacobian
Hm gamma
Hm logarithm gamma
Hm li ngc
Xp x
H s s khai
True nu l s s khai
Danh sch cc s s khai
B chia chung ln nht
Php nhn chung nh nht
Xp x hu t
u ra hu t
S hon v
S t hp chp K ca N phn t
208
ho
Trang ho
plot
loglog
semilogx
semilogy
polar
mesh
contour
meshdom
bar
errorbar
title
xlabel
ylabel
grid
text
gtext
ginput
iu khin ca s ho
axis
zoom
hold
shg
clg
subplot
Tra ca bng mu
S phn chia bng mu gi
Ch lm bng
Ch du cc nt
Bng tra cu mu ti hoc sng
209
Chiu sng
surfl
sng
lighting
material
specular
diffuse
surfnorm
Bng mu
hsv
hot
gray
pink
white
bone
.
..
iu chnh trc
axis
zoom
grid
box
hold
axes
Ch thch ho
title
xlabel
ylabel
zlabel
colorbar
text
gtext
To mt chui k t
Chuyn chui sang m s k t
To mng chui t bo t mng k t
Xu rng
Di chuyn cc xu rng
Thc hin xu vi biu thc MATLAB
True nu l chui k t ( xu )
True nu l mng chui t bo
True nu l ch hoa trong bng ch ci
210
isspace
Cc php ton vi chui
strcat
strvcat
strcmp
strncmp
findstr
strjust
strrep
strtok
upper
lower
Chui v vn bn
abs
num2str
int2str
settr
sprintf
hex2num
True nu l k t rng
Kt ni xu
Kt ni dc xu
So snh chui
So snh N k t u tin ca chui
Tm mt xu bn trong xu khc
Mng k t ng u
Thay th chui bng chui khc
Tm th bi trong chui
Chuyn chui sang ch hoa
Chuyn chui sang k t thng thng
Chuyn i t chui sang gi tr ASCII
i t s thnh chui
i s nguyn sang chui
Thit lp c ch rng ma trn l mt chui
i s sang chui
Chuyn i chui t h 16 sang dng s
file input/output
M v ng file
fopen
fclose
File nh phn i/o
fread
fwrite
M file
ng file
c d liu nh phn t file
Vit d liu nh phn ln file
211
save
dlmread
dlmwrite
c phn o t file ho
Ghi phn o ln file ho
Tr li thng tin v file ho
Ghi
Ghi
Ghi
c
Xo ca s lnh
a con tr v u vn bn
Hin th mng
Thng bo cho ngi s dng nhp vo
i t ngi s dng tr li
thi gian v ngy
Gi v ngy hin ti
now
date
clock
Cc hm c bn
datenum
datestr
datevec
S ngy ni tip
Chui thay th ngy
Thnh phn ngy thng
Hm ngy thng
calendar
weekday
eomday
datetick
Lch
Ngy trong tun
Kt thc thng
Du tick nh dng cho ngy thng
Hm m
cputime
tic, toc
etime
pause
212
kiu d liu v cu trc
Kiu d liu
double
sparse
char
cell
struct
uint8
inline
To mng t bo
Hin th ni dung ca mng t bo
Hin th thut ho mng t bo
Chuyn i mng s thnh mng t bo
Phn pht u vo n u ra
Chuyn i mng t bo thnh mng cu trc
Chuyn i mng cu trc thnh mng t bo
True nu l mng t bo
To hoc chuyn i thnh mng cu trc
Nhn tn trng cu trc
Nhn li ni dung ca trng cu trc
Thit lp ni dung trng cu trc
True nu trng trong mng cu trc
True nu l mng t bo
chuyn i d liu ng
Hm t DDE
ddeadv
ddeexec
ddeinit
ddereq
ddeterm
ddeunadv
213
V d v s th hin
MATLAB/matrn
intro
inverter
matmanip
Ca s lnh
clc
home
format
disp
fprintf
echo
General
hlep
demo
who
what
size
lengh
clear
computer
^C
quit
exit
i th mc hin ti
Xo file
Ghi mc
Th mc ca file trn a
214
load
save
type
what
fprintf
pack
Np cc bin t file
Lu cc bin nn file
Lit k hm hoc file
Hin th cc M-file trn a
Vit vo file
Nn b nh qua save
a thc
poly
roots
roots1
polyval
polyvalm
conv
deconv
residue
polyfit
a thc c trng
Nghim a thc- phng php ma trn bu bn
Nghim a thc- phng php Laguerre
c lng a thc
c lng a thc ma trn
Php nhn
Php chia
Khai trin a thc
S diu chnh chnh lch a thc
Cc hm ma trn v i s tuyn tnh
215
Hm ma trn
expm
logm
sqrtm
funm
Ma trn theo hm m
Ma trn logarithm
Ma ttrn bc hai
nh gi chung hm ma trn
Sai phn c hn
diff
gradient
del2
Sai phn v o hm xp x
Gradient xp x
Laplacien ri rc
Bin i fourier ri rc
Bin i fourier ri rc 2 chiu
Bin i fourier ri rc n chiu
216
ifft
ifft2
ifftn
Php ni suy
interpl
interplq
interpft
interp2
interp3
interpn
griddata
217
Full to Sparse Conversion
sparse
To ma trn khng lin tc
full
Chuyn i ma trn khng lin tc thnh ma trn y
find
Tm ch s cc phn t khc khng
spconvert
Nhp vo t nh dng ma trn khng lin tc bn
ngoi
mc lc
Matlab ton tp..................................................................................................1
ci t.............................................................................................................1
1. MATLAB for WIN..........................................................................................1
a) CD
ROM.1
b ) B nh1
chng 1: GII THIU chung................................................................................2
1.1 Cc php ton n gin......................................................................3
1.2 Khng gian lm vic ca MATLAB....................................................4
1.3 Bin........................................................................................................5
1.4 Cu gii thch (comment) v s chm cu....................................6
1.5 S phc..................................................................................................7
chng 2: CC C tnh K THUT....................................................................9
2.1 Cc hm ton hc thng thng...........................................................9
chng 3: NHNG C IM CA CA S LNH.............................................14
3.1 Qun l khng gian lm vic ca MATLAB.....................................14
3.2 Ghi v phc hi d liu.....................................................................16
3.3 Khun dng hin th s.....................................................................16
chng 4: Script M_files..................................................................................17
chng 5: QUN L Tp...................................................................................20
5.1 MATLAB khi khi ng.......................................................................23
chng 6: cc php ton vi MNg...................................................................24
6.1 Mng n............................................................................................24
6.2 a ch ca mng...............................................................................24
6.3 Cu trc ca mng..............................................................................25
6.4 Vector hng v vector ct.................................................................27
6.5 Mng c cc phn t l 0 hoc 1.....................................................32
6.6 Thao tc i vi mng.........................................................................32
6.7 Tm kim mng con..........................................................................36
6.8 So snh mng.......................................................................................37
6.9 Kch c ca mng................................................................................40
6.10 Mng nhiu chiu............................................................................41
chng 7 cc php tnh vi mng....................................................................46
7.1 To phng trnh tuyn tnh............................................................46
7.2 Cc hm ma trn ................................................................................48
7.3 Ma trn c bit...............................................................................49
chng 8 cc php tnh LOGIC V QUAN H...................................................53
8.1 Ton t quan h...................................................................................53
218
8.2 Ton t Logic........................................................................................54
8.3 Cc hm logic v hm quan h........................................................55
chng 9 VN Bn.............................................................................................56
9.1 Xu k t.............................................................................................56
9.2 Chuyn i xu................................................................................58
9.3 Cc hm v xu..................................................................................59
9.4 Ma trn t bo ca xu....................................................................60
chng 10 thi gian..........................................................................................62
10.1 Ngy v gi hin ti.........................................................................62
10.2 S chuyn i gia cc kiu.......................................................62
10.3 Cc hm v ngy.............................................................................64
10.4 Cc hm v thi gian......................................................................65
10.5 V th vi hm ngy v thi gian............................................67
chng 11 VNG LP IU KHIN...................................................................70
11.1 Vng lp for....................................................................................70
11.2 Vng lp while................................................................................72
11.3 Cu trc if-else-end.........................................................................73
11.4 Cu trc switch-case........................................................................74
chng 12 HM M_FILE.....................................................................................78
12.1 Cc quy lut v thuc tnh.............................................................78
chng 13 PHN TCH D LIU......................................................................84
13.1 Cc hm phn tch d liu...........................................................90
chng 14 A THC..........................................................................................91
14.1 Cc nghim ca a thc..................................................................91
14.2 Nhn a thc..................................................................................91
14.3 Php cng a thc.........................................................................92
14.4 Chia hai a thc...............................................................................93
14.5 o hm..............................................................................................93
14.6 Tnh gi tr ca mt a thc.........................................................93
14.7 Phn thc hu t............................................................................94
chng 15 php ni suy v mn ho ng cong............................................96
15.1 Mn ho ng cong........................................................................96
15.2 Ni im mt chiu.......................................................................99
15.3 Xp x ho hai chiu....................................................................103
chng 16 phn tch s liu.........................................................................105
16.1 V th..........................................................................................105
16.2 Cc tr ca mt hm......................................................................108
16.3 Tm gi tr khng..........................................................................109
16.4 Php ly tch phn......................................................................109
16.5 Php ly vi phn...........................................................................110
16.6 Phng trnh vi phn...................................................................112
chng 17 ho trong h to phng....................................................114
17.1 S dng lnh Plot...........................................................................114
17.2 Kiu ng, du v mu..............................................................116
17.3 Kiu th....................................................................................117
17.4 th li, hp cha trc, nhn, v li ch gii...........................117
17.5 Kin to h trc to ................................................................120
17.6 In hnh............................................................................................123
17.7 Thao tc vi th.........................................................................123
219
17.8 Mt s c im khc ca th trong h to phng125
chng 18 hotrong khng gian 3 chiu..................................................128
18.1 th ng thng.......................................................................128
18.2 th b mt v li.....................................................................129
18.3 Thao tc vi th.........................................................................132
18.4 Cc c im khc ca th trong khng gian 3 chiu....134
18.5 Bng mu........................................................................................135
18.6 S dng bng mu........................................................................136
18.7 S dng mu thm thng tin................................................137
18.8 Hin th bng mu........................................................................138
18.9 Thit lp v thay i bng mu...............................................139
chng 19 Mng t bo v cu trc..............................................................141
19.1 Mng t bo...................................................................................141
19.2 Xy dng v hin th mng t bo..........................................141
19.3 T hp v khi phc mng t bo..............................................142
19.4 Truy nhp vo trong mng t bo...............................................142
19.5 Mng t bo ca chui k t.......................................................143
19.6 Cu trc............................................................................................143
19.7 Xy dng mng cu trc...............................................................143
19.8 Truy nhp vo cc trng cu trc................................................144
19.9 S nghch o v hm kim tra.............................................146
chng 20 Biu tng ca hp cng c ton hc.............................................146
20.1 Biu thc v cc i tng c trng............................................147
20.2 To v s dng cc i tng c trng........................................147
20.3 S biu din biu thc c trng ca MATLAB......................148
20.4 Bin c trng................................................................................150
20.5 Php ton trn biu thc c trng...........................................151
20.6 Tch cc t s v mu s..............................................................151
20.7 Php ton i s tiu chun........................................................152
20.8 Cc php ton nng cao...............................................................153
20.9 Hm nghch o...........................................................................154
20.10 S thay th bin s...................................................................155
20.11 Php ly vi phn.......................................................................155
20.12 Php tch phn..........................................................................156
20.13 V th biu thc c trng...................................................159
20.14 nh dng v n gin ho biu thc.....................................159
20.15 Tm tt v mt s c im khc..........................................160
20.16 T lm.............................................................................................161
20.17 Gii phng trnh.........................................................................161
20.18 Gii phng trnh i s n gin...........................................161
20.19 Mt vi php ton i s...........................................................162
20.20 Php ton vi phn......................................................................163
20.21 Mt vi php ton tch phn....................................................163
20.22 Ma trn v i s tuyn tnh...................................................163
20.23 Php ton i s tuyn tnh....................................................164
20.24 Hm bc v xung...........................................................................165
20.25 Bin i Laplace.........................................................................165
20.26 Bin i Fourier..........................................................................165
chng 21 hp cng c h thng iu khin...............................................166
220
21.1 S biu din bng th............................................................166
21.2 i tng LTI........................................................................................166
21.3 Khi phc d liu...........................................................................168
21.4 S nghch o i tng LTI..........................................................169
21.5 Thut ton i tng LTI..................................................................169
21.6 Phn tch h thng......................................................................170
21.7 Danh sch cc hm ca hp cng c h thng iu khin. . .172
S hnh thnh cc kiu LTI.........................................................................172
Phn tch d liu......................................................................................172
c tnh ca cc loi...................................................................................172
S nghch o...........................................................................................172
Cc php ton.............................................................................................172
ng hc......................................................................................................173
p ng thi gian.........................................................................................173
p ng tn s.............................................................................................173
Lin kt h thng........................................................................................173
Dng c thit k c in.........................................................................173
Cng c thit k LQG.................................................................................174
Gii quyt php ton ma trn....................................................................174
S biu din...............................................................................................174
chng 22 Hp dng c x l tn hiu..........................................................174
22.1 Phn tch tn hiu......................................................................174
chng 23 tr gip..........................................................................................177
23.1 Ca s lnh tr gip.....................................................................177
23.1.1 Lnh help........................................................................................177
23.1.2 Lnh lookfor...................................................................................178
23.1.3 Lnh whatsnew v info....................................................................179
23.2 Ca s tr gip...............................................................................179
cc M- File ca Student Edition...............................................................180
HELP Topic......................................................................................................180
Mc ch chung ca cu lnh.....................................................................180
Thng tin chung..........................................................................................180
Qun l khng gian lm vic......................................................................180
Qun l ng dn......................................................................................180
Qun l cc hm v lnh............................................................................180
Cu lnh iu khin................................................................................180
Hot ng ca lnh h thng....................................................................181
M-file g ri..................................................................................................181
Cc ton t v cc k t c bit.................................................................181
Cc ton t..................................................................................................181
Ton t quan h..........................................................................................181
Ton t logic................................................................................................182
Cc ton t Bitwise......................................................................................182
Thit lp cc k t......................................................................................182
Cc k t c bit.....................................................................................182
Cu lnh iu khin................................................................................183
Thi hnh v nh gi..................................................................................183
Script, hm, v cc bin.............................................................................183
Thao tc vi cc i s................................................................................183
221
Hin th thng bo.....................................................................................183
u vo tng h..........................................................................................184
Ma trn c bn v Thao tc vi ma trn........................................................184
Ma trn c bn...........................................................................................184
Thng tin mng c s.................................................................................184
Thao tc vi ma trn....................................................................................184
Hng v cc bin c bit........................................................................185
Cc bin c bit.....................................................................................185
Cc loi ma trn c bit..........................................................................185
Cc hm ton hc thng thng......................................................................186
Cc hm lng gic........................................................................................186
Cc hm ton hc........................................................................................186
Cc hm c bit......................................................................................186
Hm l thuyt s hc.................................................................................187
ho.............................................................................................................187
Trang ho...............................................................................................187
iu khin ca s ho..........................................................................187
ho TRONG KHNG GIAN 3 chiu.............................................................187
Lnh ho thng thng...........................................................................187
Cn chnh mu.........................................................................................188
Chiu sng..................................................................................................188
Bng mu....................................................................................................188
iu chnh trc...........................................................................................188
Ch thch ho........................................................................................188
chui k t......................................................................................................188
Khi qut chung...........................................................................................188
Kim tra chui.............................................................................................189
Cc php ton vi chui...............................................................................189
Chui v vn bn.........................................................................................189
file input/output.............................................................................................189
M v ng file..........................................................................................189
File nh phn i/o.........................................................................................189
File i/o nh dng.......................................................................................189
V tr file.....................................................................................................189
Cc hm xut nhp file...............................................................................190
Xut nhp file o.........................................................................................190
Xut nhp file audio....................................................................................190
Ca s lnh I / O........................................................................................190
thi gian v ngy...........................................................................................190
Gi v ngy hin ti....................................................................................190
Cc hm c bn..........................................................................................190
Hm ngy thng..........................................................................................190
Hm m...................................................................................................190
kiu d liu v cu trc................................................................................191
Kiu d liu................................................................................................191
Hm ca mng nhiu chiu.......................................................................191
Hm ca mng t bo................................................................................191
Hm cu trc...............................................................................................191
chuyn i d liu ng............................................................................191
222
Hm t DDE.................................................................................................191
V d v s th hin.....................................................................................192
MATLAB/matrn...........................................................................................192
Ca s lnh................................................................................................192
General.......................................................................................................192
(Lp trnh )Programming v file-M.............................................................192
Cc file trn a.........................................................................................192
a thc........................................................................................................193
Cc hm ma trn v i s tuyn tnh........................................................193
Phn tch ma trn.....................................................................................193
Php ton tuyn tnh.................................................................................193
Gi tr duy nht..........................................................................................193
Hm ma trn...............................................................................................194
Tm tha s tiu chun..............................................................................194
Bin i fourier v phn tch d liu........................................................194
Php ton c bn.......................................................................................194
Sai phn c hn..........................................................................................194
Filtering and convolution ( np, cun ).......................................................194
Bin i fourier.........................................................................................194
a thc v php ni suy.................................................................................195
Php ni suy...............................................................................................195
hm v gii php ODE....................................................................................195
Optimization and Root Finding....................................................................195
Numaric Integration....................................................................................195
i tng hm inline.......................................................................................195
ma trn ri rc................................................................................................195
Cc ma trn khng lin tc c bn.............................................................195
Full to Sparse Conversion............................................................................195
mc lc...........................................................................................................196