You are on page 1of 79

Hunh Hu Dinh

INDUSTRIAL UNIVERSITY OF HO CHI MINH CITY


Hunh Hu Dinh Trng i hc Cng Nghip TP.HCM

CHNG 1: TNG QUAN V MATLAB

Trong chng ny, bn s bt u hc cch s dng phn mm MATLAB gii


quyt cc vn Ton hc. Bn nn c chng ny cng lc vi vic s dng phn mm
MATLAB. Th cc lnh (command) trong mi trng Command Window. C gng thc
hnh nhiu ln cc lnh c trnh by trong ti liu ny. Cch tt nht bit cch
MATLAB phn hi mt lnh l hy th n. c thc hnh nhiu hn na, bn c th
gii cc bi tp trong Practice Set A.

1.1. u vo v u ra (INPUT V OUTPUT)


Bn nhp cc lnh vo MATLAB trong Command Window. MATLAB tr v
output theo hai cch: nu output l vn bn (text) hoc s (numerical) th n s xut hin
cng trong Command Window; nhng nu output l th (graphic) th n s xut hin
trong mt ca s ring bit c tn gi l graphic window. Mt mn hnh mu, vi mt
MATLAB Desktop v mt graphic window c th hin trong Hnh 1-1.

Hnh 1-1: MATLAB Output

1
Hunh Hu Dinh Trng i hc Cng Nghip TP.HCM

c giao din nh Hnh 1-1, bn g lnh 1/2+1/3 trong Command Window


v nhn Enter. Tip theo, bn ta g lnh ezplot(x3 - x) v nhn Enter.
Ch : Trong khi MATLAB ang lm vic, n c th hin th biu tng "ch i"
(wait) - v d: mt chic ng h ct xut hin khi chng trnh ang chy. Tuy nhin,
thnh thong, MATLAB khng a ra bt k biu tng thng bo no cho n khi kt
thc tnh ton.

1.2. Cc php ton s hc (Arithmetic)


Chng ta c th s dng MATLAB thc hin cc php ton s hc n gin
nh: cng "+" , tr "-", nhn "*", chia "/", ly tha "^". V d:
>> 5^2-(6+2)+4*2-6/3+2
ans =
25
MATLAB in p n trong Command Window v gn n vi mt bin c gi l
ans. Nu bn mun thc hin thm cc tnh ton m c s dng p n , bn c th s
dng bin ans thay v g li p n. V d, bn c th tnh tng ca bnh phng v cn
bc hai ca p n trc nh sau ( y ans=25):
>> ans^2+sqrt(ans)
ans =
630
Ta thy MATLAB gn mt gi tr mi cho bin ans sau mi ln tnh ton. Do ,
thc hin cc php tnh phc tp hn, bn c th gn cc gi tr tnh cho cc bin s
m bn chn. V d,
>> x=cos(1)
x=
0.5403
>> y=sin(1)
y=
0.8415
>> x^2+y^2
ans =

2
Hunh Hu Dinh Trng i hc Cng Nghip TP.HCM

1
MATLAB s dng double-precision floating point arithmetic nn n c chnh
xc n khong 15 ch s. Tuy nhin, MATLAB ch hin th mc nh 5 ch s. hin
th thm ch s, bn chn nh dng format long khi bt u g cc lnh tnh ton trong
Command Window. Sau , tt c cc numerical output s c 15 ch s hin th. Chn
format short hin th tr li 5 ch s.
MATLAB c th cho kt qu chnh xc khi thc hin cc php tnh s hc, c bit
khi i tng cn tnh l cc phn s. V d, n c th cng hai phn s 1/2 v 1/3 c
kt qu chnh xc 5/6. Chng ta s tho lun lm th no thc hin iu ny trong phn
Symbolic Expressions, Variable Precision v Exact Arithmetic.

1.3. i s (Algebra)
S dng hp cng c Symbolic Math Toolbox ca MATLAB, bn c th thc hin
cc php tnh i s (algebraic) hoc biu tng (symbolic) nh phn tch cc a thc
thnh nhn t hoc gii phng trnh i s v siu vit. G help symbolic m bo
rng Symbolic Math Toolbox c ci t trn h thng ca bn.
thc hin tnh ton biu tng (symbolic canculation), bn phi s dng lnh
syms khai bo (declare) cc bin bn d nh s dng thnh cc bin biu tng (symbolic
variable). Xem xt cc chui lnh sau:
>> syms x y
>> (x+y)*(x+y)^3
ans =
(x + y)^4
>> expand(ans)
ans =
x^4 + 4*x^3*y + 6*x^2*y^2 + 4*x*y^3 + y^4
>> factor(ans)
ans =
(x + y)^4
Ch . Symbolic output nm u l tri song song vi du >>, trong khi
numerical output c tht l. Tnh nng ny thng hu ch trong vic phn bit gia
symbolic output v numerical output.

3
Hunh Hu Dinh Trng i hc Cng Nghip TP.HCM

Mc d MATLAB c gng n gin ha cc cng thc bn g, nhng n ch thc


hin nhng thay i ln nu bn yu cu n. Lnh expand ni vi MATLAB cn khai trin
biu thc (nhn cc biu thc n gin li vi nhau), v lnh factor yu cu MATLAB
a biu thc v dng tch cc biu thc n gin.
MATLAB c mt lnh gi l simplify, chng ta c th s dng lnh ny a mt
biu thc v dng n gin nht c th. V d,
>> simplify((x^3-y^3)/(x-y))
ans =
x^2 + x*y + y^2
MATLAB c mt lnh mnh hn, c gi l simple, lnh ny i khi thc hin
cng vic tt hn lnh simplify. Hy th c hai lnh trn i vi biu thc lng gic sin
(x) * cos (y) + cos (x) * sin (y). Bn s phi c help online cho simple hiu cn k cu
tr li v cch thc lm vic ca lnh ny.
>> simplify(sin(x)*cos(y) + cos(x)*sin(y))
ans =
sin(x + y)

1.4. Biu thc mang tnh biu tng (Symbolic Expressions), Variable
Precision v Exact Arithmetic (Php ton s hc chnh xc)
Nh chng ta bit, MATLAB s dng floating point arithmetic cho cc tnh
ton ca n. S dng Symbolic Math Toolbox, bn cng c th thc hin exact arthmetic
vi symbolic expressions. Xem xt v d sau:
>> cos(pi/2)
ans =
6.1232e-17
p n c vit bng nh dng floating point v 6.1232e-17 c ngha l
6.1232 1017 . Tuy nhin, chng ta bit rng cos / 2 c gi tr chnh xc bng 0. S
khng chnh xc ny l do khi g pi, MATLAB cho mt xp x chnh xc n khong 15
ch s, ch khng phi gi tr chnh xc ca . c kt qu chnh xc, thay v p n
gn ng, chng ta phi to mt exact symbolic representation ca / 2 bng cch nhp
sym ('pi / 2'). By gi chng ta hy ly cosin ca symbolic representation ca / 2 :
>> cos(sym('pi/2'))

4
Hunh Hu Dinh Trng i hc Cng Nghip TP.HCM

ans =
0
Du ngoc kp quanh pi/2 trong sym ('pi /2') to ra mt chui gm cc k t pi / 2
v ngn khng cho MATLAB nh gi pi / 2 nh mt floating point number. Lnh sym
chuyn i chui thnh symbolic expression.
Cc lnh sym v syms lin quan cht ch vi nhau. Trn thc t, lnh syms x tng
ng vi x = sym ('x'). Lnh syms c tc ng lu di i vi cc bin m n bin
thnh symbolic variables (n tuyn b n l biu tng t by gi), trong khi sym ch c
mt nh hng tm thi tr khi bn ch nh output cho mt bin, nh trong x = sym ('x').
Sau y l cch cng hnh thc 1/2 vi 1/3:
>> sym('1/2')+sym('1/3')
ans =
5/6
Cui cng, bn cng c th thc hin variable-precision arithmetic vi vpa. V
d, in 50 ch s ca 2 , ta g
>> vpa('sqrt(2)',50)
ans =
1.4142135623730950488016887242096980785696718753769
Bn nn thn trng khi s dng lnh vpa. minh ha, hy nhp cc biu thc
3^45, vpa (3^45) v vpa ('3^45').
>> 3^45
ans =
2.9543e+21
>> vpa(3^45)
ans =
2954312706550833610752.0
>> vpa('3^45')
ans =
2954312706550833698643.0

5
Hunh Hu Dinh Trng i hc Cng Nghip TP.HCM

Gi tr u tin cho ta mt floating point xp x p n ng, gi tr th hai - bi v


MATLAB ch c tnh chnh xc 16 ch s trong its floating point evaluation of the
exponentiation do vy cu tr li ch chnh xc trong 16 ch s u tin. Gi tr th ba
l p n hon ton chnh xc.

1.5. Variable and Assignments (Bin v php gn)


Trong MATLAB, bn s dng du = gn gi tr cho mt bin. V d,
>> x=9
x=
9
s cho bin x mang gi tr 9 t by gi. Do , bt c khi no MATLAB thy ch x, n s
thay th cho 9. V d, nu y c nh ngha nh symbolic variable th
>> x^2-2*x*y+y
ans =
81 - 17*y
Ch : xa gi tr ca bin x, g lnh clear x.
Bn c th thc hin php gn mt bin vi i tng l cc bin tng trng v
sau thao tc chng. V d,
>> syms x y
>> z=x^2-2*x*y+y^2
z=
x^2 - 2*x*y + y^2
>> z*(x-y)
ans =
(x - y)*(x^2 - 2*x*y + y^2)
>> simplify(ans)
ans =
(x - y)^3
Tn bin hoc tn hm c th l mt chui cc ch ci, ch s v du gch di,
min l n bt u vi mt ch ci (du chm cu khng c php). MATLAB phn bit

6
Hunh Hu Dinh Trng i hc Cng Nghip TP.HCM

gia ch hoa v ch thng. Bn nn chn tn d nh cho bn, u tin s dng cc ch


thng. V d, bn c th g ngbacba t tn cho nghim ca mt phng trnh bc ba.

1.6. Gii phng trnh (Solving Equation) bng lnh solve


gii cc phng trnh ta dng lnh solve. V d, gii phng trnh bc hai
x 2 2 x 4 0 ta g
>> solve('x^2-2*x-4')
ans =
5^(1/2) + 1
1 - 5^(1/2)
Lu rng phng trnh trn c xc nh nh mt chui bi v n c bao
quanh bi cc du nhy n. p n bao gm cc nghim chnh xc (symbolic) 1 5 .
c c cc numerical solution, bn g lnh double (ans) hoc vpa (ans) hin th
nhiu ch s.
>> vpa(ans)
ans =
3.2360679774997896964091736687313
-1.2360679774997896964091736687313
Lnh solve c th gii cc phng trnh a thc bc cao, cng nh nhiu dng
phng trnh khc. Ngoi ra, n cng c th gii c h phng trnh. V d,
>> [x,y]=solve('x+2*y=1','x^2+y^2=1')
x=
1
-3/5
y=
0
4/5
H phng trnh ny c hai nghim. MATLAB cho thy nghim ca h bng cch
a ra hai gi tr ca x v hai gi tr ca y. Do , nghim u tin ca h bao gm gi tr
u tin ca x cng vi gi tr u tin ca y. Bn c th trch xut cc gi tr ny bng
cch g

7
Hunh Hu Dinh Trng i hc Cng Nghip TP.HCM

>> [x(1),y(1)]
ans =
[ 1, 0]
Nghim th hai ca h chnh l cp [x(2),y(2)]
>> [x(2),y(2)]
ans =
[ -3/5, 4/5]
Nu s phng trnh t hn s bin, bn nn nh dng chui cho cc phng trnh
v cc bin m bn mun tm. V d, g solve ('2 * x -log (y) = 1', 'y') gii phng trnh
2x - log y = 1 vi nghim y c biu din theo x.
>> solve('2*x-log(y)=1','y')
ans =
exp(2*x - 1)
Lu rng khi gii h phng trnh bng lnh solve, chng ta gn u ra bng
vector [x, y]. Nu bn s dng lnh solve gii h phng trnh m khng gn u ra
bng mt vector th MATLAB khng t ng hin th cc nghim ca h. V d,
>> sol=solve('x+2*y=5','2*x+y=4')
sol =
x: [1x1 sym]
y: [1x1 sym]
bit cc vector x v y mang gi tr g ta g
>> sol.x
ans =
1
>> sol.y
ans =
2

8
Hunh Hu Dinh Trng i hc Cng Nghip TP.HCM

Mt s phng trnh khng th dng lnh solve tm symbolic solution m ch


c th tm numerical solution. V d,
>> solve('cos(x)=x')
ans =
0.73908513321516064165531208767387

1.7. Vector v Ma trn (Matrix)


MATLAB ban u c vit cc nh ton hc, cc nh khoa hc v k s x l
phn c hc ca i s tuyn tnh - tc l cc vector v ma trn - cng d dng cng tt.
Trong phn ny chng ti gii thiu nhng khi nim ny.

1.7.1 Vector
Vector l mt b gm cc s c sp th t. Bn c th nhp mt vector c chiu
di bt k trong MATLAB bng cch g mt b cc s, c phn tch bng du phy
hoc du cch, c bao xung quanh bi du ngoc vung. V d,
>> X=[2 3 5 8]
X=
2 3 5 8
>> X=[2,3,5,8]
X=
2 3 5 8
Gi s bn mun to mt vector vi cc s chy t 1 n 9. Di y l cch thc
hin iu m khng cn nhp mi s:
>> Y=1:9
Y=
1 2 3 4 5 6 7 8 9
>> Y=[1:9]
Y=
1 2 3 4 5 6 7 8 9
i vi cc vector m cc phn t ca n tnh t tri sang lp thnh mt cp s cng
vi cng sai d, th cch g l a:d:b vi a v b l hai phn t bin ca vector.

9
Hunh Hu Dinh Trng i hc Cng Nghip TP.HCM

>> Z=1:2:13
Z=
1 3 5 7 9 11 13
>> Z=1:0.1:2
Z=
Columns 1 through 8
1.0000 1.1000 1.2000 1.3000 1.4000 1.5000 1.6000 1.7000
Columns 9 through 11
1.8000 1.9000 2.0000
>> Z=0:-1:-5
Z=
0 -1 -2 -3 -4 -5
Cc phn t ca vector Z c th c chit xut nh Z(1), Z (2), v.v .V d,
>> Z(1)
ans =
0
>> Z(2)
ans =
-1
thay i vector Z t vector dng sang vector ct, ta t du (') sao vector Z.
>> Z'
ans =
0
-1
-2
-3
-4

10
Hunh Hu Dinh Trng i hc Cng Nghip TP.HCM

-5
Bn c th thc hin cc php ton trn vector. V d, bnh phng cc phn t
ca vector Z ta g
>> Z.^2
ans =
0 1 4 9 16 25
>> Z'.^2
ans =
0
1
4
9
16
25
Nu ta g Z^2 thay v Z.^2 th MATLAB s ly php nhn ma trn nhn Z vi
bn thn n (lc ny MATLAB hiu Z l mt ma trn c 1 dng). Khi , chng trnh s
bo li v i vi mt ma trn m mun nhn cho chnh bn thn n, ma trn phi l ma
trn vung.
>> Z^2
Error using ^
Inputs must be a scalar and a square matrix.
Do , nu ta ch mun bnh phng cc phn t ca Z mt cch ring r, ta phi
g Z.^2. Tng t, nu ta c hai vector U v V c cng s phn t, v ta mun nhn cc
phn t cng v tr ca U v V, ta ch cn g U.*V. V d,
>> U=[2 4 5 6]
U=
2 4 5 6
>> V=[-1 4 2 -3]
V=

11
Hunh Hu Dinh Trng i hc Cng Nghip TP.HCM

-1 4 2 -3
>> U.*V
ans =
-2 16 10 -18
Nu bn mun chia cc phn t ca vector U cho cc phn t cng v tr ca vector
V ta g U./V. V d
>> U./V
ans =
-2.0000 1.0000 2.5000 -2.0000
Hu ht cc php ton ca MATLAB, theo mc nh, c thc hin (performed)
theo tng phn t (element-by-element). V d, bn c th g exp (Z) tnh m mi
phn t trong Z. Mt trong nhng im mnh ca MATLAB l kh nng hot ng hiu
qu trn vector. V d,
>> Z=[1 3 5 0]
Z=
1 3 5 0
>> exp(Z)
ans =
2.7183 20.0855 148.4132 1.0000
>> sin(Z)
ans =
0.8415 0.1411 -0.9589 0

1.7.2. Ma trn
Ma trn l mt tp hp cc s c sp di dng mt hnh ch nht. Cp ca ma
trn bng s dng nhn vi s ct. Vector l mt trng hp c bit ca ma trn vi s
dng bng 1. Ta xt mt ma trn c cp 2 4 nh sau:

1 1 4 8
A
2 3 5 1
Sau y l cch g c ma trn A nh trn

12
Hunh Hu Dinh Trng i hc Cng Nghip TP.HCM

>> A=[1 -1 4 8;2 3 5 1]


A=
1 -1 4 8
2 3 5 1
Lu rng cc phn t ca ma trn trong bt k hng no c phn cch bng du
phy, v cc hng c cch nhau bi du chm phy. Cc thnh phn trong mt hng
cng c th c phn cch bng du cch.
Nu hai ma trn A v B c cng kch thc, th tng ca chng c tnh bng cch
g A + B (php cng c thc hin theo cch: ly cc phn t cng v tr ca A v B
cng vi nhau). Bn cng c th thm mt i lng v hng (mt s) vo mt ma trn;
A + c, tc cng c vo mi phn t ca A. Tng t, A - B i din cho s khc bit ca A
v B, v A - c s tr i s c trong mi phn t A.
>> A=[1 3 4 6;1 3 -1 4;3 4 0 -1]
A=
1 3 4 6
1 3 -1 4
3 4 0 -1
>> B=[0 1 2 -1;4 5 7 -2;3 1 2 -4]
B=
0 1 2 -1
4 5 7 -2
3 1 2 -4
>> A+B
ans =
1 4 6 5
5 8 6 2
6 5 2 -5
>> A-B
ans =

13
Hunh Hu Dinh Trng i hc Cng Nghip TP.HCM

1 2 2 7
-3 -2 -8 6
0 3 -2 3
>> A+2
ans =
3 5 6 8
3 5 1 6
5 6 2 1
>> A-3
ans =
-2 0 1 3
-2 0 -4 1
0 1 -3 -4
Nu hai ma trn A v B tha iu kin v cp php nhn hai ma trn tn ti (tc
ma trn A c cp m n , ma trn B c cp n p ) th ma trn tch AB, ta g A*B, s c cp
l m p . V nu gi s AB cij th
m p

n
cij aik bkj
k 1

Ta xt v d
>> A=[1 2 3;3 4 0]
A=
1 2 3
3 4 0

>> B=[0 1 1;2 0 1;3 2 0]


B=
0 1 1

14
Hunh Hu Dinh Trng i hc Cng Nghip TP.HCM

2 0 1
3 2 0
>> A*B
ans =
13 7 3
8 3 7
Nu mun nhn mt s thc c cho mt ma trn A th ta g c*A. Tch c*A l mt ma
trn c cng cp vi A v cc phn t ca n c hnh thnh bng cch nhn cc phn t
tng ng ca A cho c. Ta xt v d
>> A=[1 2 5;-1 3 4]
A=
1 2 5
-1 3 4
>> 5*A
ans =
5 10 25
-5 15 20
Ch : MATLAB c nhiu lnh tnh ton trn ma trn. Bn c th c cc vn
ny trong phn More about Matrices Chng 4 v trong online help. Mt s trong
c minh ha trong phn Cc m hnh kinh t tuyn tnh.

1.8. Hm
Trong MATLAB, ta s s dng nhng hm c sn trong th vin ca chng trnh
ln cc hm do chnh ta xy dng.

1.8.1 Hm c tnh hp
MATLAB c nhiu hm c tch hp sn. Chng bao gm cc hm c bn
sqrt, cos, sin, tan, log, exp, v atan (cho arctan) cng nh cc hm ton hc chuyn dng
hn nh gamma, erf, v besselj. MATLAB cng c mt s hng s c dng sn, bao
gm pi (s ), i (s phc i 1 ), v Inf ( ). Di y l mt s v d:
>> log(exp(9))
ans =
15
Hunh Hu Dinh Trng i hc Cng Nghip TP.HCM

9
Hm log l hm logarithm vi c s e (cn gi l logarithm t nhin), c k hiu
"ln" trong nhiu ti liu. By gi xem xt
>> sin(pi/3)
ans =
0.8660
ra kt qu chnh xc ta g
>> sin(sym('pi/3'))
ans =
3^(1/2)/2

1.8.2. Cc hm do ngi dng nh ngha


Trong mc ny, ta s tm hiu lnh inline xy dng cc hm cho chnh ngi
dng nh ngha.

V d, xy dng hm f x x 2 2 x 3 ta g

>> f=inline('x^2+2*x+3','x')
f=
Inline function:
f(x) = x^2+2*x+3
i s u tin ca inline l mt chui cha biu thc xc nh hm. i s th hai
l mt chui xc nh cc bin c lp. tnh ton gi tr ca hm f ti mt im, chng
hn x 3 , ta g
>> f(3)
ans =
18
Cc hm c tch hp trong MATLAB c th hot ng trn cc vector cng nh
cc i lng v hng. to ra mt inline function c th hot ng trn cc vector,
chng ta s dng hm vectorize ca MATLAB. y l phin bn vector ca hm
f x x2 2x 3 :

>> g=inline(vectorize('x^2+2*x+3'),'x')

16
Hunh Hu Dinh Trng i hc Cng Nghip TP.HCM

g=
Inline function:
g(x) = x.^2+2.*x+3
>> g(1:5)
ans =
6 11 18 27 38
Hm inline c th c dng xy dng cc hm s nhiu bin. Chng hn,
>> h=inline('x^4-y^3','x','y')
h=
Inline function:
h(x,y) = x^4-y^3
>> h(4,5)
ans =
131
Ta cng c th dng hm vectorize cho cc hm nhiu bin hot ng trn cc
vector. Xt v d
>> h=inline(vectorize('x^2+y^2'),'x','y')
h=
Inline function:
h(x,y) = x.^2+y.^2
>> [h(1:4,2);h(1:4,3)]
ans =
5 8 13 20
10 13 18 25
>> [h(1:4,2:2:8)]
ans =
5 20 45 80

17
Hunh Hu Dinh Trng i hc Cng Nghip TP.HCM

1.9. th
Trong phn ny, ta s tm hiu hai lnh c bn ca MATLAB dng v th v
cch s dng chng.

1.9.1. V th vi ezplot
Cch n gin nht v th hm mt bin l dng lnh ezplot, i s c
mong i l mt string hoc symbolic expression i din cho hm c v. V d, v
th hm s y x 2 x 1 trn khong -3 n 3 (s dng dng chui ca ezplot), ta g

>> ezplot('x^2-x+1',[-3 3])


th s xut hin trn mt ca s mi c gi l graphic window (Hnh 1-2).

Hnh 1-2: th hm s y x 2 x 1

Chng ta bit rng ezplot chp nhn mt string argument hoc mt symbolic
expression. S dng mt symbolic expression, bn c th to ra Hnh 1-2 bng cch g
>> syms x
>> ezplot(x^2-x+1,[-3 3])

18
Hunh Hu Dinh Trng i hc Cng Nghip TP.HCM

1.9.2. Sa i th
Ta c th sa i th theo mt s cch. Ta thay i tiu (title) ca th bng
cch g title Tn tiu trong Command Window (ch l khng c thot ca s
graphic window khi g lnh title). V d,
>> ezplot(x^2,[-2 2])
>> title 'A Parabola'

Hnh 1-3: th hm s y x 2

Bn c th i nhn (label) trn trc ngang (horizontal axis) vi lnh xlabel hoc
thay i nhn trn trc dc vi lnh ylabel. V d, qung ng s ca mt vt th ang di
chuyn ti thi im t (n v s) c xc nh bi hm s t 2 3t vi t 0;5 . Sau y
l th th hin qung ng di chuyn ca vt th theo thi gian t cng vi cc lnh g.
>> ezplot('t^3+3*t',[0 5])
>> title 'Distance of a moving Object'
>> xlabel 'time t(s)'
>> ylabel 'Distance s'

19
Hunh Hu Dinh Trng i hc Cng Nghip TP.HCM

Hnh 1-3: th hm s s t 3 3t

1.9.3. V th vi plot
Lnh plot lm vic trn cc vector ca d liu s (vectors of numerical data). C
php c bn l plot(X,Y) trong X v Y l hai vector c cng kch thc. V d,
>> X=[1 1.1 1.2 1.4 1.7 1.8 2 2.1 2.2 4.1 5];
>> Y=[2 1.9 2.4 2.7 1.1 3.1 5 2.1 3.4 4.5 4];
>> plot(X,Y)

20
Hunh Hu Dinh Trng i hc Cng Nghip TP.HCM

Hnh 1-4
Lnh plot(X,Y) to ra mt th bao gm cc on thng ni hai im k nhau l
(X(i),Y(i)) v (X(i+1),Y(i+1)) (xem Hnh 1-4).

v th hm s y x 2 trong khong t -2 n 2 bng lnh plot, u tin chng


ta to ra mt danh sch X cc gi tr ca bin x, v sau g plot(X, X.^2 + X + 1). Chng
ta cn phi s dng nhiu cc gi tr ca bin x m bo rng th c v bi "kt
ni cc im" trng trn tru hn. Ta thc hin nh sau:
>> X=-2:0.1:2;
>> plot(X,X.^2)
Khi , ta c hnh Hnh 1-5. Cn nu ta g
>> Y=-2:0.4:2;
>> plot(Y,Y.^2)
th c Hnh 1-6.

21
Hunh Hu Dinh Trng i hc Cng Nghip TP.HCM

Hnh 1-5

Hnh 1-6

22
Hunh Hu Dinh Trng i hc Cng Nghip TP.HCM

Ta thy vector Y c t phn t hn vector X. Do , th 1-6 c trn km hn


th 1-5.

1.9.4. V nhiu th trong cng h trc


Mi ln bn thc hin mt lnh v th, MATLAB s xa b cc th c v v
th mi. Nu bn mun cc th c vn c gi li, hy g hold on. N s c hiu
lc cho n khi bn g hold off. y l mt v d s dng lnh ezplot:
>> ezplot('sin(x)',[-pi pi])
>> hold on
>> ezplot('cos(x)',[-pi pi])
>> hold on
>> ezplot('x^2-2',[-pi pi])
>> hold off
>> title 'sin(x),cos(x) and x^2-2'
Khi , ta c Hnh 1-7.

Hnh 1-7

23
Hunh Hu Dinh Trng i hc Cng Nghip TP.HCM

Ch : Trong qu trnh thc hin cc lnh ny ta khng c tt ca s Graphic


Window.
Vi lnh plot ta thc hin nhim v trn d dng hn. V d,
>> X=-pi:0.1:pi;
>> plot(X,sin(X),X,cos(X),X,X.^2-2)
>> title 'sin(x),cos(x) and x^2-2'
Khi , ta c Hnh 1-8

Hnh 1-8

24
Hunh Hu Dinh Trng i hc Cng Nghip TP.HCM

CHNG 2: TNG TC VI MATLAB

Trong chng ny chng ta s tho lun cch s dng script M-file v function M-
file mt cch hiu qu nht. Ngoi ra, chng ta cng a ra mt s gi n gin sa
li M-file ca bn.

2.1. M-File
i vi nhng vn phc tp, cc cng c c cung cp bi Command Window
v c ch lch s ca n l khng y . Cch tip cn tt hn l to ra mt M-file. C
hai loi M-file khc nhau: script M-file v function M-file. Chng ta s minh ho vic s
dng c hai loi M-file ny.
M-file l nhng tp tin vn bn thng thng cha lnh ca MATLAB. Bn c
th to v sa i chng bng bt k trnh son tho vn bn no c kh nng lu cc tp
v dng vn bn ASCII thun ty (plain ASCII text). Cc trnh son tho vn bn nh
vy bao gm notepad trong Windows hoc emacs, textedit, v vi trong UNIX. Tin li
hn, bn c th s dng Editor/Debugger c tch hp sn trong MATLAB (ch vic
chn Home\ New Script), ngoi ra bn cng c th bt u to ra mt M-file bng cch
g lnh edit vo ca s Command Window. Nu bn mun gi mt M-file c to
ra t trc bn ch vic g lnh edit + tn ca M-file.

2.1.1 Script M-File


By gi chng ta s ch ra cch xy dng mt script M-file gii quyt cc vn
ton hc. To mt tp c cha cc dng sau:
format long
x=[0.1 0.001 0.001 0.0001 0.00001]
y=sin(x)./x

Chng ti gi nh rng bn lu tp ny vi tn Ex1.m trong th mc lm vic


ca bn, hoc trong mt s th mc trn ng dn ca bn. Bn c th t tn tp theo
bt k cch no m bn thch (ty thuc vo cc gii hn t tn thng thng trn h iu
hnh ca bn), nhng hu t ".m" l bt buc.
Bn c th cho MATLAB chy tp ny bng cch g Ex1 trong Command
Window v nhn Enter. (Bn khng c g phn m rng ".m" y, MATLAB t
ng thm n khi tm kim tn M-file m bn g). Output - khng phi l cc lnh to ra
chng - s c hin th trong Command Window. By gi chui cc lnh c th d dng
c thay i trong Ex1.m. V d, nu bn cng mun tnh thm sin(0.000001)/0.000001,
bn c th sa i Ex1.m nh sau:
format long
x=[0.1 0.001 0.001 0.0001 0.00001 0.000001]

25
Hunh Hu Dinh Trng i hc Cng Nghip TP.HCM

y=sin(x)./x
Lnh echo. Nh cp trn, cc lnh trong script M-file s khng t ng
hin th trong Command Window. Nu bn mun cc lnh c hin th cng vi kt qu
trong Command Window, hy s dng lnh echo:
echo on
format long
x=[0.1 0.001 0.001 0.0001 0.00001 0.000001]
y=sin(x)./x
echo off
Phn ch thch. Bao gm cc ch thch trong mt script M-file di. Nhng ch
thch ny c th gii thch cc lnh m bn ang s dng cho vic tnh ton, hoc n c th
gii thch cc kt qu tnh ton. Bt k dng no trong script M-file m bt u vi du
phn trm u c coi nh mt ch thch v khng c thc hin bi MATLAB. y
l phin bn mi ca Ex1.m vi mt vi nhn xt thm:
echo on
% Turn on 15 digit display
format long
x=[0.1 0.001 0.001 0.0001 0.00001 0.000001]
y=sin(x)./x
% These values illustrate the fact that the limit of
% sin(x)/x as x approaches 0 is 1.
echo off
Ch . Nu bn s dng lnh echo trong mt script M-file, th MATLAB cng s
echo cc ch thch, v vy chng s xut hin trong Command Window.
Cu trc ca mt script M-File. Mt script M-File nn c t cha (self-
contained), tc khng b nh hng bi cc bin m bn c th nh ngha ni khc
trong MATLAB, v khng b hng bi cc th cn st li. Vi iu ny trong tm tr,
bn c th g lnh clear all u mt script M-File m bo rng cc nh ngha trc
ca cc bin khng nh hng n kt qu. Bn cng c th g thm lnh close all ng
tt c cc th trc. V d, bn to script M-file nh sau:
clear all % xoa sach
close all % dong sach
echo on
f=inline('x^2','x')
ezplot(f,[-3 3])% ve do thi ham so x^2
hold on % giu do thi
ezplot('exp(x)',[-3 3])
% Ve do thi ham e^x trong doan [-3 3]
title 'x^2 and exp(x)' % Doi nhan
xlabel 'x axis' % Doi ten truc Ox
ylabel 'y axis' % Doi ten truc OY
echo off
Kt qu xut hin trong Command Window v Graphic Window l

26
Hunh Hu Dinh Trng i hc Cng Nghip TP.HCM

>> Ex2
f=inline('x^2','x')

f=

Inline function:
f(x) = x^2

ezplot(f,[-3 3])% ve do thi ham so x^2


hold on % giu do thi
ezplot('exp(x)',[-3 3]) % Ve do thi ham e^x trong doan [-3 3]
title 'x^2 and exp(x)' % Doi nhan
xlabel 'x axis' % Doi ten truc Ox
ylabel 'y axis' % Doi ten truc OY
echo off

Hnh 2-1
Ch . Thnh thong bn phi g, hoc trong Command Window hoc trong mt
M-file, mt lnh di n ni mt dng khng cha ht. Nu c, khi bn n gn cui dng,
bn g ba du chm lin tip ri nhn ENTER, v tip tc g lnh trn dng mi. Trong
Command Window, bn s khng nhn thy du nhc lnh trn dng mi.

27
Hunh Hu Dinh Trng i hc Cng Nghip TP.HCM

2.1.2. Function M-File

Bn thng lp li mt quy trnh no nhiu ln cho cc gi tr u vo khc nhau


ca mt hay nhiu tham s. V d, bn mun kim tra b ba s dng bt k c lp thnh
mt tam gic vung. Nh bn bit, bn c th s dng lnh inline nh ngha cc
hm s ca ring bn. Tuy nhin, i vi cc hm phc tp v c nhiu tham s, lnh inline
kh lng p ng c k vng. Vy nn vic s dng function M-file l mt gii php
ti u.
Chng ta hy quay li bi ton tnh gi tr ca hm sin x / x ti mt s im dng
x 10 b , trong b l s nguyn dng. Thm vo , gi s bn mun tm gi tr nh
nht ca b sao cho sin 10 b /10 b v 1 ging nhau 15 ch s u tin. Sau y l mt
function M-file vi tn gi sinlimit c thit k gii quyt cc vn c nu.
function y=sinlimit(c)
format long
b=1:c;
x=10.^(-b);
y=(sin(x)./x)';
Ging nh script M-file, mt function M-file l mt tp vn bn thun ty nm
trong th mc lm vic ca MATLAB. Dng u tin ca tp cha cu lnh function, xc
nh tp di dng mt function M-file. Ngoi ra, dng u tin cn xc nh tn ca hm,
m t tt c cc i s u vo v cc gi tr u ra ca hm. Trong v d ny, hm c
xy dng c tn gi sinlimit. Lu l tn tp v tn hm phi khp vi nhau.
Hm sinlimit ly mt i s u vo (input argument) v tr v mt gi tr u
ra (output value), c gi ln lt l c v y bn trong M-file. Khi function kt thc qu
trnh thc hin, u ra ca n s c gn cho bin ans (theo mc nh) hoc cho bt k
bin no m bn chn, ging nh vi cc hm c tch hp sn. Cc dng cn li ca
M-File xy dng function. Trong v d c nu, b l mt vector cha cc s nguyn
dng t 1 n c. Vector y cha cc kt qu tnh ton ca hm sin x / x ti x 10 b ; Du
' bin y thnh vector ct. Lu rng u ra ca cc dng dng xc nh cc vector b, x,
v y b chn bng du chm phy. Ni chung, u ra ca cc tnh ton trung gian trong
function M-file khng cn th hin trong Command Window.
Khi chng ta chy M-file trn, chng ta mun thy kt qu ca dng cui cng
trong M-file. Do , mt cch t nhin, ta s trnh t du chm phy vo dng cui cng
ny. Nhng y l mt function M-file, khi chy n s t ng hin th cc ni dung ca
bin u ra c ch nh y. V vy, nu chng ta khng t du chm phy cui dng
cui cng th chng ta s thy kt qu dng cui xut hin hai ln mi khi chy hm!
Di y l mt v d ch ta cch s dng hm sinlimit:
>> sinlimit(10)
ans =

28
Hunh Hu Dinh Trng i hc Cng Nghip TP.HCM

0.998334166468282
0.999983333416666
0.999999833333342
0.999999998333333
0.999999999983333
0.999999999999833
0.999999999999998
1.000000000000000
1.000000000000000
1.000000000000000

T kt qu trn ta suy ra b = 8 l s nguyn dng nh nht tha sin 10 b /10 b


v 1 ging nhau 15 ch s u tin.
2.2. Vng lp (Loop)
Mt vng lp (loop) xc nh mt lnh hoc nhm cc lnh nn c lp i lp li
nhiu ln. Cch d nht to ra mt vng lp l s dng cu trc for-end. Di y l
mt v d n gin tnh 10! 10 9 8 1 . Lu rng cc lnh ny c vit trong
mt script M-file c tn l loopoffor1.
close all
f=1;
for i=1:10
f=f*i;
end
f
Chy loopoffor1 trn Command Window ta c
>> loopoffor1
f=
3628800
Ch : Bng cch s dng function M-file, ta c th xy dng hm tnh n ! vi
n l mt s nguyn dng. Sau y l cc lnh trong function M-file c tn giaithua.
function gt=giaithua(n)
f=1;
for i=1:n
f=f*i;
end
f
Khi , tnh 12! ta ch vic g trong Command Window nh sau:

29
Hunh Hu Dinh Trng i hc Cng Nghip TP.HCM

>> giaithua(12)
f=
479001600
Thnh thong bn c th dng vng lp for-end v cc th c cng loi trn
cng mt Graphic Window. Sau y l cc lnh trong mt function M-file c tn gi
loopforofdothi, dng v th cc hm s y sin x , y sin 2 x , y sin 3x v
y sin 4 x vi x ; .

function dt=loopforofdothi(n)
syms x
for i=1:n
ezplot(sin(i*x),[-pi pi]);
hold on
end
title 'Do thi cac ham so y=sin(ix) voi i=1,2,3,4';
xlabel 'x axis';
ylabel 'y axis';
G loopforofdothi(4) trong Command Window ta c kt qu

Hnh 2-2
Ngoi cch dng lnh ezplot, ta c th dng lnh plot.
function dt=loopfordothibyplot(n)

30
Hunh Hu Dinh Trng i hc Cng Nghip TP.HCM

x=-pi:0.2:pi;
for i=1:n
plot(x,sin(i*x));
hold on
end
title 'Do thi cac ham so y=sin(ix) voi i=1,2,3,4';
xlabel 'x axis';
ylabel 'y axis';
G loopfordothibyplot(4) trong Command Window ta c kt qu

Hnh 2-3

31
Hunh Hu Dinh Trng i hc Cng Nghip TP.HCM

CHNG 3: VT QUA NHNG IU C BN

Trong chng ny, ta s trnh by mt s im ni tri ca MATLAB v xem xt


chi tit hn mt s khi nim c gii thiu trong cc chng trc. Ta cng khm ph
cu trc trong (internal structure) ca MATLAB nng cao kh nng lm vic vi cc
hm, biu thc v cc cu lnh phc tp. Vo cui chng, ta s tm hiu mt s lnh
ca MATLAB dnh ring cho mn Gii tch.

3.1. Ngt Output


Mt s lnh trong MATLAB to ra nhng Output khng cn thit. V d, khi bn
gn mt gi tr cho mt bin no , MATLAB s lp li gi tr . Bn c th ngt u ra
ca mt lnh bng cch t mt du chm phy sau lnh. y l mt v d:
>> syms x
>> y=x+1
y=
x+1
>> z=x+1;
>> z
z=
x+1
Du chm phy khng nh hng n cch MATLAB x l cc lnh trong, nh bn
thy t phn ng ca n i vi lnh z.
Bn cng c th s dng du chm phy tch mt chui cc lnh khi bn ch
quan tm n output ca lnh cui cng. Du phy cng c th c s dng tch cc
lnh nhng n khng ngt output. Nu bn s dng mt du chm phy sau lnh v th,
MATLAB s khng ngt s xut hin ca th.
Ch : Du chm phy thng c s dng nhiu nht l ngt s xut hin ca
cc vector c di ln.
Mt i tng khc m bn c th mun ngn chn l nhn (label) cho output ca
mt lnh. Lnh disp c thit k t c iu ; G disp (x) s in gi tr ca bin x
m khng cn in nhn v du bng. V d,

32
Hunh Hu Dinh Trng i hc Cng Nghip TP.HCM

>> x=9;
>> disp(x)
9
hoc
>> disp(solve('x+y=2','y'))
2-x

3.2. Cc lp d liu
Mi bin bn nh ngha trong MATLAB, cng nh mi input, output v
command l mt mng (array) cc d liu thuc mt lp c th. Trong cun sch ny, ta
s dng ch yu bn loi d liu, bao gm: floating point number, symbolic
expression, character string v inline function. Ta tm hiu tng loi trong Chng
1. Tuy nhin, bn c tin theo di, chng ti lit k cc loi d liu, lp cha n v
cch to cc loi d liu ny trong bng di y.

Bng 3-1
Bn c th xem mt mng (array) nh mt li d liu hai chiu (two-dimensional
grid of data). Mt s n l (hoc mt symbolic expression, hoc mt inline function)
c MATLAB coi l mng c cp 1 1, i khi c gi l mt v hng (scalar). Mt
mng kch thc 1 n c gi l mt vector hng v mt mng c kch thc m1 c
gi l mt vector ct (mt chui thc s l mt vector hng ca cc k t). Mt mng gm
cc s c kch thc m n c gi l mt ma trn (matrix). Lu , bn c th thy cc
lp v kch thc mng ca mi bin m bn nh ngha trong Workspace.
Nhiu lnh cho php nhiu hn mt lp input, mc d ta thy ch c mt lp d
liu c cp trong online help. Tnh linh hot ny c th tin li trong mt s trng
hp nhng cng l mt mi nguy him trong vi trng hp khc. V d, lnh tnh tch
phn, int, chp nhn chui cng nh symbolic input, mc d help text ca n ch cp
n symbolic input. Mt v d khc, lnh factor c dng a cc symbolic
expression v dng n gin nht c th. Tuy nhin, lnh ny cng c dng phn
tch mt s nguyn v dng tiu chun. Chng hn,

33
Hunh Hu Dinh Trng i hc Cng Nghip TP.HCM

>> factor(45)
ans =
3 3 5
trong khi
>> syms x y
>> factor(x^2-y^2)
ans =
(x - y)*(x + y)
Ch : hiu thm v cch dng cc lnh. Bn g help+tn lnh.
i khi bn cn chuyn i mt lp d liu no sang mt lp d liu khc
chun b cho vic output ca lnh ny phc v nh l input cho mt lnh khc. V d, s
dng lnh plot trn mt symbolic expression ly t solve, thc hin iu ta s dng
lnh vectorize v sau n lnh inline, bi v lnh inline khng cho php symbolic input
v vectorize chuyn symbolic expression sang dng string. Bn c th thc hin cng
mt chuyn i m khng vectorizing cc expression bng cch s dng lnh char. Cc
lnh chuyn i hu ch khc m chng ta thng gp l double (symbolic to numerical),
sym (numerical or string to symbolic), v inline (string to inline function). Ngoi ra,
cc lnh num2str v str2num chuyn i gia s v chui.
3.2.1. X l chui
Trong qu trnh x l cc bi ton bng MATLAB, bn thng c yu cu ni
cc chui (string) vi nhau. Cch n gin nht lm iu ny l s dng khi nim
vector ca MATLAB, lu rng mt chui l mt vector hng cc k t. V d: g
[string1, string2] kt hp string1 v string2 thnh mt chui.
Sau y l mt ng dng hu ch ca vic ni chui. Bn cn xc nh mt bin
chui (string variable) cha mt biu thc phi mt nhiu dng g. (Trong hu ht cc
trng hp, bn c th tip tc nhp MATLAB input vo dng k tip bng cch g ba
du chm lin tip v nhn ENTER, nhng iu ny khng c php gia mt chui).
Gii php l ph v chui thnh cc chui nh hn v sau ni chng li bng vector,
nh trong:
>> tamgiacdeu=['Mot tam giac co ba canh bang nhau thi ' ...]
'ba goc cua tam giac do cung bang nhau']

34
Hunh Hu Dinh Trng i hc Cng Nghip TP.HCM

tamgiacdeu =

Mot tam giac co ba canh bang nhau thi ba goc cua tam giac do cung bang nhau
3.2.2. Symbolic v Floating Point Number
Chng ti cp trn rng bn c th chuyn i gia symbolic number v
floating point number vi lnh double v sym. Cc con s m bn g, theo mc nh, l
floating point. Tuy nhin, nu bn kt hp cc symbolic number v floating point
number trong mt biu thc s hc, cc floating point number s t ng chuyn thnh
symbolic number. iu ny gii thch ti sao bn c th g syms x v sau x^2 m
khng cn phi chuyn i s 2 sang symbolic number. V d,
>> b=1/3
b=
0.3333
>> c=1/(sym(3))
c=
1/3
MATLAB c thit k sao cho mt s floating point number c th khi phc
gi tr chnh xc khi chuyn i sang symbolic nh: cc s nguyn, s hu t vi t s v
mu s nh, cn bc hai ca mt s nguyn dng nh, s v cc kt hp nht nh ca
cc s ny. V d,
>> c=sqrt(5)
c=
2.2361
>> c=sym(sqrt(5))
c=
5^(1/2)
Rt kh d on khi no MATLAB s gi cc gi tr chnh xc, tt nht l ta nn
ngn chn floating point evaluation ca numeric argument bng cch t s trong
du ri mi tc ng lnh sym. V d,
>> sym(1+sqrt(3))
ans =

35
Hunh Hu Dinh Trng i hc Cng Nghip TP.HCM

6152031499462229/2251799813685248
>> sym('1+sqrt(3)')
ans =
3^(1/2) + 1

3.3. Hm v biu thc


Chng ta s dng cc thut ng nh expression v function nhng cha gii
thch s khc bit ca hai khi nim ny. Ni mt cch nghim tc, nu chng ta nh ngha
f x x3 x , th f l function trong khi f x v x3 x l cc expression cha bin x
. Trong bi l thuyt ton hc, chng ta thng lm m s khc bit ny bng cch gi
hm f x hoc x3 x , nhng trong MATLAB s khc bit gia expression v function
l rt quan trng.
Trong MATLAB, mt biu thc c th thuc v mt trong hai dng string hoc
symbolic class of data. Xem xt v d sau:
>> f='x^2+1';
>> f(3)
ans =
2
Kt qu ny c th gy bi ri nu bn mong i f hnh ng nh mt function.
Tuy nhin f l mt string, f (3) biu th k t th ba trong f, l s 2. Ging nh symbolic
output, string output khng b tht t l tri.
Bn hc c hai cch xy dng function ca ring bn, s dng inline (cho
trng hp function n gin) hoc function M-File (cho trng hp function phc tp,
cn nhiu lnh trung gian). Hu ht cc lnh ca MATLAB thc s l cc M-File, v bn
c th c cc tng xy dng cc function M-File ca ring bn - xem M-
File, chng hn, ca lnh factor ta ch cn g type factor trong Command Window.
Mt s lnh, chng hn nh ode45 (a numerical ordinary different equation
solver) yu cu i s u tin l mt function, hoc mt inline function (nh trong ode45
(f, [0 2], 1)) hoc mt function handle (tn ca function c tch hp) hoc mt
function M-File ng sau biu tng c bit @ (nh trong ode45 (@func, [0 2], 1)).
Trong chng 1 chng ta m t lm th no to ra mt inline function t mt
expression. Sau , bn c th thay s vo function , hoc v th ca function. Tuy
nhin, bn cng c th thay s trc tip vo mt expression vi lnh subs. V d,

36
Hunh Hu Dinh Trng i hc Cng Nghip TP.HCM

>> f=inline('x^2+3*x+1','x');
>> f(2)
ans =
11
>> syms x;
>> subs(x^2+3*x+1,x,2)
ans =
11

3.4. S phc
S phc l cc s c dng a bi , trong i 2 1 v a v b l s thc. S phc i
c biu din di dng i trong MATLAB. Mc d bn t khi c c hi nhp mt s phc
trong MATLAB, MATLAB thng a ra mt cu tr li lin quan n s phc. V d,
nhiu a thc vi h s thc c nghim l cc s phc:
>> solve('x^2+4*x+5=0','x')
ans =
-2+i
-2i
C hai nghim ca phng trnh bc hai trn u l cc s phc. Mt vi function
ph bin cng tr v gi tr phc cho mt s gi tr ca i s. V d,
>> log(-1)
ans =
0.0000 + 3.1416i

3.5. B sung v ma trn


Cho A,B l hai ma trn. Nu ta g A*B th iu c ngha l ta ang nhn hai ma
trn A v B (php nhn Gauss), php nhn ny ch tn ti khi s ct ca A bng s dng
ca B. Con nu ta g A.*B th iu ny c ngha l ta mun nhn phn t a_(i,j) ca A cho
phn t b_(i,j) ca B. Do , php nhn A.*B ch tn ti khi A va B cng cp. Tng t,
nu ta g A./B th MATLAB hiu l ta mun ly a_(i,j)/b_(i,j), ta g A^m th Matlab hiu
l (a_(i,j))^m. Tng qut hn, nu ta g f(A) vi f l mt hm c tch hp sn th Matlab
hiu l ta mun tnh f(a_(i,j)). V d,

37
Hunh Hu Dinh Trng i hc Cng Nghip TP.HCM

>> A=[1 2 3;3 4 0]


A=
1 2 3
3 4 0
>> B=[1 2 4;4 0 1]
B=
1 2 4
4 0 1
>> A*B
Error using *
Inner matrix dimensions must agree.
>> A.*B
ans =
1 4 12
12 0 0
>> A.^2
ans =
1 4 9
9 16 0
>> sin(B)
ans =
0.8415 0.9093 -0.7568
-0.7568 0 0.8415
Ta bit x(3) l phn t th ba ca vector x. Tng t, A(2,3) i din cho phn
t nm dng hai v ct ba ca ma trn A. Bn c th to ra mt submatrices theo cch
tng t. Khi ta g A (2, [2 4]) th cc phn t th hai v th t ca hng th hai ca A s
xut ra. chn cc phn t th hai, th ba v th t ca hng hai, ta g A (2,2: 4). Mt
submatrix bao gm phn t trong cc hng hai v ba v trong ct cc ct hai, ba v bn

38
Hunh Hu Dinh Trng i hc Cng Nghip TP.HCM

c to ra bng cch g A (2: 3,2: 4). Du hai chm s biu th ton b mt hng hoc
mt ct. V d, A (:, 2) biu th ct th hai ca A, v A (3, :) cho ra hng th ba ca A.
>> A=[1 2 5 4;3 6 9 7;1 0 5 8];
>> A(2,4)
ans =
7
>> A(2,[2 4])
ans =
6 7
>> A(2,2:4)
ans =
6 9 7
>> A(2,:)
ans =
3 6 9 7
>> A(:,1)
ans =
1
3
1
>> A(1:2,2:4)
ans =
2 5 4
6 9 7
Nu bn mun xy dng mt ma trn c cp m n vi cc phn t u bng 0 th
bn g zeros(m,n), cn u bng 1 th bn g ones(m,n). Ngoi ra, nu bn g eye(n) th
ma trn n v cp n s c to ra.
>> zeros(2)

39
Hunh Hu Dinh Trng i hc Cng Nghip TP.HCM

ans =
0 0
0 0
>> ones(2)
ans =
1 1
1 1
>> eye(2)
ans =
1 0
0 1

3.5.1. Gii h phng trnh tuyn tnh


Gi s A l mt ma trn khng suy bin cp n (tc det A 0 ) v b l mt vector ct
c di n. Nh bit, h phng trnh Ax=b s c nghim duy nht. tm nghim ,
theo chng 1, ta dng lnh solve. Ngoi ra, ta cn mt cch khc gii h l g x = A \ b.
>> A=[1 3;1 2];
>> b=[1 4]';
>> x=A\b
x=
10
-3

3.5.2. Gi tr ring v vector ring


Cc gi tr ring ca mt ma trn vung A c tnh bng eig (A). Lnh [U, R] =
eig (A) tnh c gi tr ring v vector ring. Cc gi tr ring l cc phn t nm trn ng
cho chnh ca ma trn cho R, v cc ct ca U l cc vector ring. Di y l mt v d
minh ho vic s dng lnh eig:
>> A=[2 1 1;1 2 1;1 1 2];
>> eig(A)
ans =

40
Hunh Hu Dinh Trng i hc Cng Nghip TP.HCM

1.0000
1.0000
4.0000
>> [U,R]=eig(A)
U=
0.4082 0.7071 0.5774
0.4082 -0.7071 0.5774
-0.8165 0 0.5774
R=
1.0000 0 0
0 1.0000 0
0 0 4.0000
c c symbolic output ta g
>> A=[2 1 1;1 2 1;1 1 2];
>> [U,R]=eig(sym(A))
U=
[ 1, -1, -1]
[ 1, 1, 0]
[ 1, 0, 1]
R=
[ 4, 0, 0]
[ 0, 1, 0]
[ 0, 0, 1]

3.6. Lm ton Gii tch bng MATLAB


MATLAB c lnh cho hu ht cc tnh ton c bn ca mn Gii tch (trong hp
cung c Symbolic Math Toolbox). Hp cng c ny bao gm mt phn ca mt chng
trnh c tn gi l Maple, n chuyn x l cc php tnh biu tng.

41
Hunh Hu Dinh Trng i hc Cng Nghip TP.HCM

3.6.1. o hm
Bn c th s dng lnh diff tnh o hm cc symbolic expression, v cng
xp x o hm ca nhng hm c cho bi bng s liu.
>> syms x
>> diff(x^4)
ans =
4*x^3
C php tnh o hm cp hai l diff (f (x), 2), v i vi o hm cp n l diff (f
(x), n).
>> f=inline('sin(2*x)','x');
>> diff(f(x))
ans =
2*cos(2*x)
>> diff(f(x),2)
ans =
-4*sin(2*x)
>> diff(f(x),5)
ans =
32*cos(2*x)
Lnh diff cng c th tnh cc o hm ring ca cc biu thc c nhiu bin, nh
trong diff (x^2*z+y^2*z^2,y), nhng tm cc o hm ring cp cao, bn phi s dng
lnh diff nhiu ln, nh trong diff (diff(x^2*z+y^2*z^2, x), y). (Hy nh khai bo x,y v
z l cc biu tng.)
>> syms x y z
>> f=inline('x^2*z+y^2*z^2','x','y','z')

f=
Inline function:
f(x,y,z) = x^2*z+y^2*z^2
42
Hunh Hu Dinh Trng i hc Cng Nghip TP.HCM

>> diff(f(x,y,z),y)
ans =
2*y*z^2
>> diff(diff(f(x,y,z),y),y)
ans =
2*z^2
C mt trng hp m o hm phi c th hin bng ch D, c th l khi bn
cn ch nh mt phng trnh vi phn nh l input cho mt lnh. V d, gii phng
trnh vi phn y '-2*y/x=0, bn nhp dsolver(Dy-2*y/x=0, x).
>> dsolve('Dy-2*y/x=0','x')
ans =
C2*x^2

3.6.2. Tnh tch phn


MATLAB c th tnh c c tch phn xc nh v tch phn bt nh bng lnh
int. Sau y l mt s v d:
4 x
Tnh tch phn x dx; sin 2 x dx; e xdx .
>> syms x
>> int(x^4)
ans =
x^5/5
>> int(sin(2*x))
ans =
sin(x)^2
>> int(exp(x)*x)
ans =
exp(x)*(x - 1)
3 2
ln x
5
Tnh cc tch phn x dx; dx; x sin x .
0 1 x 0

43
Hunh Hu Dinh Trng i hc Cng Nghip TP.HCM

>> syms x
>> int(x^5,0,3)
ans =
243/2
>> int(sym(log(x)/x),1,2)
ans =
log(2)^2/2
>> int(sym(x*sin(x)),0,pi)
ans =
pi
Bn chc chn bit c rng khng phi mi function u tnh c nguyn hm,
ko theo tnh phn xc nh ca n khng th c dng symbolic output. Do , vic cho
ra kt qu dng numerical output l iu cn thit. MATLAB c hai lnh thc hin
iu l: quad v quadl. Chng ti ngh quadl, v quad nh l mt s la chn th
hai. y l mt v d:
>> syms x
>> int(exp(x^2),0,1)
ans =
(pi^(1/2)*erfi(1))/2
>> quadl(vectorize(exp(x^2)),0,1)
ans =
1.4627
>> quad(vectorize(exp(x^2)),0,1)
ans =
1.4627
Cc lnh quad v quadl khng th dng tnh tch phn c cn l inf hoc -inf,
m ch dng lnh int. Tuy nhin, cc tt nht tnh tch phn suy rng l ta thay inf bng
mt s rt ln v -inf bng mt s rt nh. V d,
>> syms x

44
Hunh Hu Dinh Trng i hc Cng Nghip TP.HCM

>> int(1/(x^2),1,inf)
ans =
1
>> int(1/(x^2),1,10^(10))
ans =
9999999999/10000000000
>> quadl(vectorize(1/(x^2)),1,10^(10))
ans =
1.0000
MATLAB cng c th x l tch phn bi 2 bng lnh int. Sau y l mt v d:
1 x
Tnh tch phn x y dxdy .
0 0

>> int(int(x+y,y,0,x),0,1)
ans =
1/2
tnh gn ng tch phn bi 2 ta dng lnh dblquad. V d
3 3

x y 2 dxdy
2
Tnh tch phn
0 0

>> syms x y;
>> int(int(x^2+y^2,y,0,3),0,3)
ans =
54
>> dblquad(vectorize(x^2+y^2),0,3,0,3)
ans =
54.0000

45
Hunh Hu Dinh Trng i hc Cng Nghip TP.HCM

3.6.3. Gii hn
Bn c th dng lnh limit tnh gii hn, gii hn tri, gii hn phi, gii hn ti
v cng. V d,
>> limit((exp(x)-1)/x,x,0)
ans =
1
>> limit(abs(x)/x,x,0,'left')
ans =
-1
>> limit(abs(x)/x,x,0,'right')
ans =
1
>> limit(x/(sqrt(x^2+1)),x,inf)
ans =
1
>> limit(x/(sqrt(x^2+1)),x,-inf)
ans =
-1

3.6.4. Tng v tch


tnh tng v tch ca hu hn cc s ta dng lnh sum v prod. Lu rng trc
khi s dng cc lnh ny, bn nn gn dy s cn tnh bng mt vector. V d, tnh tng
1+2+3++2017 ta lm nh sau:
>> c=1:2017;
>> sum(c)
ans =
2035153

tnh tng 12 22 20172 ta lm nh sau:


>> c=1:2017;

46
Hunh Hu Dinh Trng i hc Cng Nghip TP.HCM

>> sum(sym(c.^2))
ans =
2737280785
tnh tch 3 5 7 11 19 25 ta lm nh sau:

>> c=[3 5 7 11 19 25];


>> prod(c)
ans =
548625
Bn c th thc hin finite v infinite symbolic sums bng lnh symsum. V d,
n
2
xc nh tng k
k 1
ta lm nh sau:

>> syms k n;
>> symsum(k^2,1,n)
ans =
(n*(2*n + 1)*(n + 1))/6

1
tnh chui k k 1
k 1
ta g

>> syms k ;
>> symsum(1/(k*(k+1)),1,inf)
ans =
1

k
tnh chui a
k 0
ta g

>> syms a k;
>> symsum(a^k,0,inf)
ans =
piecewise([1 <= a, Inf], [abs(a) < 1, -1/(a - 1)])

47
Hunh Hu Dinh Trng i hc Cng Nghip TP.HCM

3.6.5. Khai trin Taylor


khai trin Taylor hm exp(x) ti x=0 ta g
>> syms x;
>> taylor(exp(x),x,0)
ans =
x^5/120 + x^4/24 + x^3/6 + x^2/2 + x + 1
khai trin Taylor hm ln(x) ti x=1 ta g
>> syms x;
>> taylor(log(x),x,1)
ans =
x - (x - 1)^2/2 + (x - 1)^3/3 - (x - 1)^4/4 + (x - 1)^5/5 - 1
C hai v d trn cho ta thy khi dng lnh taylor th a thc Taylor c bc mc
nh l bng 5.
khai trin Taylor hm f(x) ti x=a ti (x-a)^n th ta g
>> taylor(f(x),x, Order,n+1, ExpansionPoint,a)
Chng hn ta g
>> taylor(exp(x),x,'Order',4,'ExpansionPoint',1)
ans =
exp(1) + exp(1)*(x - 1) + (exp(1)*(x - 1)^2)/2 + (exp(1)*(x - 1)^3)/6

CHNG 4: V TH TRN MATLAB

48
Hunh Hu Dinh Trng i hc Cng Nghip TP.HCM

Trong chng ny, chng ta s tm hiu cc lnh v th ca MATLAB v cc


cch ph bin nht thao tc v ty chnh cc th. Bn c th nhn c mt danh sch
cc lnh v v th ca MATLAB bng cch g help graphics (cho cc lnh v th
chung), help graph2d (cho th hai chiu), help graph3d (cho th ba chiu) hoc help
specgraph (cho cc lnh v th chuyn dng).
Chng ta tm hiu cc lnh v th plot v ezplot trong chng 1 v s bt u
chng ny bng vic tho lun v cc ng dng khc ca hai lnh ny, cng nh cc lnh
v thng dng khc trong hai v ba chiu. Sau chng ta s tho lun mt s k thut
ty bin v thao tc trn th.

4.1. th hai chiu


i vi hm s c dng y f x vi f x l mt biu thc tng minh theo x th
vic v th hm f rt n gin (ch cn dng lnh ezplot). V d, ta g

>> ezplot('sin(x)',[0 2*pi])


Kt qu

Hnh 4.1: th hm y=sin(x) vi x thuc [0 2*pi]


Trng hp hm y khng c biu din mt cch r rng theo x th ta c hai k
thut sau y v y.

49
Hunh Hu Dinh Trng i hc Cng Nghip TP.HCM

4.1.1. th hm cho bi phng trnh tham s


i khi c x v y c biu din nh l mt hm theo tham s t no . V d,
ng trn bn knh 1 vi tm ti O(0,0) c th c biu din di dng tham s: x = cos
(2*pi*t), y = sin (2*pi*t) trong t chy t 0 n 1. Mc d y khng c biu din nh
l mt hm theo bin x, ta vn d dng v ng cong ny vi lnh plot nh sau (vit trn
mt script M-File vi tn gi circle1):
t=0:0.01:1;
plot(sin(2*pi*t),cos(2*pi*t))
title 'Do thi cua duong tron x^2+y^2=1'
axis square
G trn Command Window lnh circle1 ta c

Hnh 4-2: th ng trn x 2 y 2 1

i vi ng trn x 2 y 2 1 , ta cng c th dng lnh ezplot nh sau:

>> ezplot('sin(t)','cos(t)',[0 2*pi])


V kt qu c th nh Hnh 4-2.

4.1.2. th ng vin (contour plot) v th hm n (implicit plot)


th ng vin (contour plot) ca hm hai bin z f x, y bao gm cc
ng mc (level curves) ca hm hai bin , tc l tp cc im trong mt phng Oxy

50
Hunh Hu Dinh Trng i hc Cng Nghip TP.HCM

sao cho f x, y C vi C l mt hng s. V d, cc ng mc ca hm z x 2 y 2 l


cc ng trn c tm ti gc ta O, v c mc (levels) bng bnh phng bn knh ca
ng trn . Contour plot c to ra trong MATLAB bng hai lnh meshgrid v
contour. Lnh meshgrid to ra mt li cc im trong mt min ch nht xc nh. Li
ny c s dng bi lnh contour to ra mt contour plot trong vng xc nh .

to mt contour plot cho hm z x 2 y 2 ta g cc lnh sau (trn mt script


M-File c tn l contourplot1):
[X Y]=meshgrid(-8:0.01:8 -8:0.01:8);
contour(X,Y,X.^2+Y.^2)
axis square
G contourplot1 trn Command Window ta c

Hnh 4-3.
Bn c th ch nh mt tp gm mt s ng mc ca hm z x 2 y 2 m bn
mun v bng cch b sung mt vector vi cc phn t l bn knh ca cc ng mc .
V d, v cc ng mc ca hm z x 2 y 2 vi bn knh ln lt bng i , i 1, 64
ta g (trn mt script M-File c tn l contourplot2)
[X Y]=meshgrid(-8:0.01:8 -8:0.01:8);
51
Hunh Hu Dinh Trng i hc Cng Nghip TP.HCM

contour(X,Y,X.^2+Y.^2,[1:64])
axis square
G contourplot2 trn Command Window ta c

Hnh 4-4.

Vector bn knh phi cha t nht hai phn t, do , nu bn mun v mt ng


mc duy nht, bn phi xc nh cng mt mc hai ln. iu ny kh hu ch cho vic v
th hm n (implicit function) (hm y=y(x) c gi l hm n nu gia y(x) v x c
mi quan h F x, y x 0 nhng ta khng bit r biu thc tng minh ca y(x) theo
x). V d, v ng mc c bn knh bng 4 ca hm z x 2 y 2 , ta g (trn mt script
M-File c tn l contourplot3)
[X Y]=meshgrid(-8:0.01:8 -8:0.01:8);
contour(X,Y,X.^2+Y.^2,[16 16])
axis square
G contourplot3 trn Command Window ta c

52
Hunh Hu Dinh Trng i hc Cng Nghip TP.HCM

Hnh 4-5.
2
v ng lemniscate x 2 y 2 x 2 y 2 , ta vit li phng trnh

2
x 2
y 2 x2 y 2 0

v g (trn mt script M-File c tn l lemniscate) nh sau:


[X Y]=meshgrid(-1.2:0.01:1.2 -1.2:0.01:1.2);
contour(X,Y,(X.^2+Y.^2).^2-X.^2+Y.^2,[0 0])
axis square
title 'Do thi duong Lemniscate'
G lemniscate trn Command Window ta c

Hnh 4-6.
53
Hunh Hu Dinh Trng i hc Cng Nghip TP.HCM

Nu ta c Symbolic Math Toolbox th th ng vin c th c v bng lnh


ezcontour, v th hm n c th v bng lnh ezplot. V d, nu ta g trn Command
Window lnh
>> ezcontour('x^2+y^2',[-8 8],[-8 8]);axis square
th th xut ra ging nh Hnh 4-3.
Nu ta g trn Command Window lnh
>> ezplot('(x^2+y^2)^2-x^2+y^2=0',[-1.2 1.2],[-1.2 1.2]);axis square
Th th xut ra ging Hnh 4-6.

4.1.3. Trng vector


Trong MATLAB, lnh quiver c dng v trng vector hoc mt mng cc
mi tn. Cc mi tn c th c t cc khong cch u nhau trong mt phng hoc
chng c th c t ti cc v tr xc nh. Thnh thong, khi v trng vector, chng ta
cn mt s yu cu trng vector ca ta khng qu ln cng nh khng qu nh. on
m sau y, v mt trng vector vi mt "im yn nga", tng ng vi s kt hp ca
lc hp dn hng v pha trc x v lc y hng ra khi trc y (vit trn mt srcipt M-
File c tn gi l vectorfield):
[X Y]=meshgrid(-1.2:0.2:1.2 -1.2:0.2:1.2);
quiver(X,-Y)
axis square; axis off
G vectorfield trn Command Window ta c

Hnh 4-7.

54
Hunh Hu Dinh Trng i hc Cng Nghip TP.HCM

4.2. th ba chiu
4.2.1. ng cong trong khng gian ba chiu
i vi cc ng cong v trong khng gian 3, lnh c bn l plot3 v n hot ng
ging nh lnh plot, ngoi tr phi c ba vect thay v hai, mt cho ta x, mt cho ta
y, v mt cho ta z. V d, chng ta c th v mt helix (ng xon c) bng cch
g (trn mt script M-File c tn l helix)
X=-2:0.01:2;
plot3(cos(2*pi*X),sin(2*pi*X),X)
axis([-1.5 1.5 -1.5 1.5 -1.5 1.5]);
G lnh helix trn Command Window ta c

Hnh 4-8.
Ngoi ra, bn c th dng lnh ezplot3 v ng helix bng cch g (trn
Command Window) lnh
>> ezplot3('cos(2*pi*x)','sin(2*pi*x)','x',[-2 2]);axis([-1.5 1.5 -1.5 1.5 -1.5 1.5]);

4.2.2. Mt trong khng gian ba chiu


C hai lnh c bn v mt l mesh v surf. Lnh mesh to li trn mt cn v;
lnh surf ngoi vic to li trn mt cn to ra bng m cho li.

55
Hunh Hu Dinh Trng i hc Cng Nghip TP.HCM

C hai cch khc nhau dng lnh mesh v surf. Cch th nht dng v nhng
mt c phng trnh tng qut z f x, y ; cch th hai dng v nhng mt c phng
trnh tham s x x u, v ; y y u; v v z z u; v . Sau y l mt s v d minh ha:

v mt yn nga z x 2 y 2 bng lnh mesh ta g (trn mt script M-File c


tn l plot3formesh)
[X Y]=meshgrid(-1.2:0.1:1.2 -1.2:0.1:1.2);
Z=X.^2-Y.^2;
mesh(X,Y,Z)
G trn Command Window lnh plot3formesh ta c

Hnh 4-9.
v bng lnh surf ta g (trn mt script M-File c tn l plot3forsurf)
[X Y]=meshgrid(-1.2:0.1:1.2 -1.2:0.1:1.2);
Z=X.^2-Y.^2;
surf(X,Y,Z)
G trn Command Window lnh plot3forsurf ta c

56
Hunh Hu Dinh Trng i hc Cng Nghip TP.HCM

Hnh 4-10.
v mt cu x 2 y 2 z 2 1 , ta chuyn v phng trnh tham s

x cos u sin v

y sin u sin v

z cos v
vi u, v ; . Sau dng lnh mesh bng cch g (trn mt script M-File c tn l
plot3formeshpara)
[u v]=meshgrid(-pi:0.1*pi:pi -pi:0.1*pi:pi);
X=cos(u).*sin(v);
Y=sin(u).*sin(v);
Z=cos(v);
mesh(X,Y,Z)
axis equal
xlabel 'x axis';
ylabel 'y axis';
xlabel 'z axis';
G plot3formeshpara trn Command Window ta c

57
Hunh Hu Dinh Trng i hc Cng Nghip TP.HCM

Hnh 4-11.
v bng lnh surf ta g (trn mt script M-File c tn l plot3forsurfpara)
[u v]=meshgrid(-pi:0.1*pi:pi -pi:0.1*pi:pi);
X=cos(u).*sin(v); Y=sin(u).*sin(v);
Z=cos(v); surf(X,Y,Z)
axis equal; xlabel 'x axis'; ylabel 'y axis'; xlabel
'z axis';
G plot3forsurfpara trn Command Window ta c

Hnh 4-12.

58
Hunh Hu Dinh Trng i hc Cng Nghip TP.HCM

Ch : Ngoi vic dng lnh mesh v surf, ta c th s dng cc lnh ezmesh v


ezsurf thc hin cc yu cu tng t nh trn. V d, nu ta g trong Command
Window lnh
>> ezmesh('x^2-y^2',[-1.2 1.2],[-1.2 1.2])
th c Hnh 4-9.
Nu ta g
>> ezsurf('x^2-y^2',[-1.2 1.2],[-1.2 1.2])
th c Hnh 4-10.
Nu ta g
>> ezmesh('cos(u)*sin(v)','sin(u)*sin(v)','cos(v)',[-pi pi -pi pi])
>> axis equal
th c Hnh 4-11.
Nu ta g
>> ezsurf('cos(u)*sin(v)','sin(u)*sin(v)','cos(v)',[-pi pi -pi pi])
>> axis equal
th c hnh 4-12.

4.3. Cc hiu ng c bit


4.3.1. Kt hp cc th trn cng mt ca s
Lnh subplot chia figure window thnh mt mng cc smaller figure. Hai i s
u tin cung cp kch thc ca mng v i s cui cng cho bit v tr ca cc th
con trn mng.
V d sau y to ra mt mng 2 2 cc th ca bn hm Bessel u tin J n vi
0 n 3 (trn mt script M-File c tn gi l subplotex)
x = 0:0.05:40;
for j = 1:4
subplot(2,2,j)
plot(x, besselj(j*ones(size(x)), x))
end
G subplotex trn Command Window ta c

59
Hunh Hu Dinh Trng i hc Cng Nghip TP.HCM

Hnh 4-13

4.3.2. Hnh ng
Cch n gin nht to ra hnh ng l ta dng lnh comet. Cch dng lnh
comet tng t nh cch dng lnh plot. Bn xem v d sau y:

Dng lnh comet v ng trn x 2 y 2 1 ta g (trn mt script M-File c tn


l hinhdong1)
t=0:0.001:2;
axis square;
axis([-2 2 -2 2]);
hold on
comet(cos(t*pi),sin(t*pi))
G hinhdong1 trn Command Window ta thy xut hin mt graphic window,
km theo l mt cht im ta (1,0) di chuyn ngc chiu kim ng h dc theo
ng x 2 y 2 1 n v tr cui cng l (1,0).
Lnh comet c th phi hp vi lnh subplot to ra cc th con chuyn ng.
Sau y l mt v d (c g trn mt script M-File c tn l hinhdong2)
t=0:0.001:2;
axis([-3 3 -3 3]);

60
Hunh Hu Dinh Trng i hc Cng Nghip TP.HCM

axis square;
hold on
for i=1:6
subplot(3,2,i);
comet(t,cos(t*pi*i));
end
to ra cc hnh ng phc tp hn, bn c th s dng lnh getframe v movie.
Lnh getframe chp li active figure window cho mt khung ca phim, v lnh movie s
pht li kt qu. V d sau y to ra mt b phim ca mt dy rung (c g trn mt
script M-File c tn l hinhdong3):
x = 0:0.01:1;
for j = 0:50
plot(x, sin(j*pi/5)*sin(pi*x))
axis([0, 1, -1, 1]);
M(j+1) = getframe;
end
movie(M)
Cn lu rng lnh axis trong trng hp ny rt quan trng, n m bo mi
khung ca phim c v trn cng mt h trc ta (nu khng, t l ca cc trc s khc
nhau mi khung v kt qu ca b phim s hon ton gy hiu nhm). Du chm phy
sau lnh getframe cng rt quan trng, n ngn cn vic pht sinh rt nhiu d liu s vi
mi khung ca b phim. Cui cng, trong lc MATLAB thc hin vng lp to ra cc
khung ca b phim, bn khng nn g cc lnh to ra th trn Command Window.
4.4. Ty chnh v thao tc trn th
Mt khi th c to ra v hot ng, ta c hai cch c bn ty chnh v
thao tc trn th. Cc th hot ng (active figure) c th c sa i bi cc lnh
trong Command Window, chng hn nh cc lnh title v axis square m chng ta
tm hiu. Hoc ta c th sa i th bng cch s dng menu hoc tool trong figure
window cha th . Hy xem xt mt vi v d. chn nhn hoc vn bn vo mt
th, ta c th s dng cc lnh text, xlabel, ylabel, zlabel, legend, v thm vo tiu
bng lnh title. Cc lnh xlabel, ylabel, v zlabel ln lt thm vn bn bn cnh cc trc
ta Ox, Oy v Oz; lnh legend t mt "cu ch gii" trn th, v lnh text thm
vn bn vo mt im c th. Cc lnh ny c cc i s ty chn khc nhau c th c
s dng thay i font v font size ca vn bn. Chng hn, ta xem xt v d sau (vit
trn mt Script M-File c tn l Tuychinhhinh1)
close all
clear all
syms x y
a=ezplot('-x^2+y^2+(x^2+y^2)^2=0',[-1.1 1.1],[-1.1
1.1])
hold on
b=ezplot('x^2+y^2=1',[-1 1],[-1 1])
axis square

61
Hunh Hu Dinh Trng i hc Cng Nghip TP.HCM

xlabel ('Ox axis','Fontname','Bell Mt','Color','b')


ylabel ('Oy axis','Fontname','Bell Mt','Color','b')
title ('Leniscate curve and circle
curve','FontSize',13,'FontName','Bell
MT','FontWeight','bold','Color','r')
legend([a,b],'Leniscate curve','Circle
curve','Location','SouthOutside')
set(a,'Color','r')
set(b,'Color','b')
hold off
G Tuychinhhinh1 ln Command Window ta c th nh sau:

Hnh 4-14
Trong v d trn ta c s dng lnh set (cu trc l set(a, Color, character of
color)). Khi v cc th trn cng mt figure window bng lnh ezplot, kt qu mc
nh l cc th s c cng mu nn gy kh khn cho ta trong vic s dng lnh legend.
Lnh set gip ta khc phc nhc im trn bng cch gn mt th cho mt mu c th
m ta chn.
Ta xt thm mt v d (vit trn mt Script M-File c tn l Tuychinhhinh2)
close all

62
Hunh Hu Dinh Trng i hc Cng Nghip TP.HCM

clear all
syms x y
dothi=ezplot('(x^2+y^2+x)^2-x^2-y^2=0',[-2.1 2.1],[-2.1
2.1])
axis square;
title('Cardioid curve','Fontname','Bell
MT','FontSize',13,'Color','r','FontWeight','bold')
xlabel('x axis','FontName','Bell
MT','FontSize',13,'Color','b')
ylabel('y axis','FontName','Bell
MT','FontSize',13,'Color','b')
set(dothi,'Color','m')
text(0.1,0,'\leftarrow a node','FontName','Bell
MT','FontSize',11)
G Tuychinhhinh2 ln Command Window ta c th nh sau:

Hnh 4-15
Ch rng nhiu k hiu (trong Hnh 4-15 l mt mi tn ch bn tri) c th c
chn vo mt chui vn bn (text string) bng cch gi chng vi tn bt u bng \ (nu
bn s dng chng trnh sp ch khoa hc TEX, bn s nhn ra quy c ny). Trong
hu ht cc trng hp, cc tn sau du \ l self-explanatory. V d, bn nhn k t
bng cch g \pi, nhn du bng cch g \Sigma hoc \sum, v cc mi tn tr theo cc

63
Hunh Hu Dinh Trng i hc Cng Nghip TP.HCM

hng khc nhau vi \leftarrow, \uparrow, v.v. bit thm chi tit v danh sch y
cc biu tng c sn, hy xem danh sch "Text Properties" trong Browser Help.

4.4.1 Thay i viewpoint


Cch ph bin v quan trng thay i mt th 3-chiu l thay i viewpoint
ca n. iu ny c th c thc hin bng cch s dng lnh view hoc s dng ty
chn Rotate 3D trong figure window. Lnh view(2) chiu th xung mt phng Oxy
(bng cch nhn xung t trc z), v lnh view(3) cho php ta quan st th t hng mc
nh trong khng gian 3 chiu. Ta xt v d sau
>> close all
>> ezplot3('cos(8*t)','sin(8*t)','t','t',[-1 4]);axis equal;axis([-2.1 2.1 -2.1 2.1 -1
6])
Nu ta g tip (yu cu khng thot figure window)
>> view(2)
th kt qu nhn c l

Hnh 4-16
Nu ta g tip (yu cu khng thot figure window)
>> view(3)
th kt qu nhn c l

64
Hunh Hu Dinh Trng i hc Cng Nghip TP.HCM

Hnh 4-17

4.4.2 Thay i Plot Style


Ta c th thay i phong cch th (plot style) bng cch thay i mu sc (color)
hoc kiu ng (line). Trong lnh plot, ta c cc argument thay i mu sc ca
th hoc v th bng mt ng k t hoc chm, hoc nh du cc im v bng cc
k hiu c bit, n gin bng cch thm vo mt chui nh mt argument th ba cho
mi cp (x,y). Cc k hiu cho mu sc l y cho mu vng, m cho mu ti, c cho
mu lc lam, r cho mu , g cho mu xanh l cy, b cho mu xanh lam, w cho mu
trng v k cho mu en. Cc k hiu cho im v bao gm o cho mt vng trn, x
cho du X, + cho mt du cng, v * cho mt ngi sao. Biu tng cho cc kiu ng
bao gm - cho mt solid line, : cho mt dotted line v - - cho mt dashed line. Nu
mt phong cch im v (point style) c a ra nhng khng yu cu mt phong cch
ng (line style), th cc im c v nhng khng c ng cong no kt ni cc
im. Vi lnh plot3 v ng cong trong khng gian 3 chiu, mun thay i plot style ta
thc hin tng t nh plot. Sau y bng tng hp mu, k hiu cho im v v phong
cch ng v:

Ta xt v d sau (vit trn mt Script M-File c tn styleplot1)


65
Hunh Hu Dinh Trng i hc Cng Nghip TP.HCM

close all
clear all
X=(0:0.01:2)*pi;
Y1=sin(X);
Y2=cos(X);
a=plot(X,Y1,':r');
hold on
b=plot(X,Y2,'-b');
hold on
X1=[0 pi/2 pi 3*pi/2 2*pi];
Y1=[0 1 0 -1 0];
Y2=[1 0 -1 0 1]
plot(X1,Y1,'+b',X1,Y2,'*m')
xlabel('x axis','FontName','Bell MT','FontSize',11)
ylabel('y axis','FontName','Bell MT','FontSize',11)
axis([-0.1 7 -1.1 1.1])
title('sin curve and cos curve','FontName','Bell
MT','FontSize',15,'Color','b')
legend([a,b],'y=sin(x)','y=cos(x)','Location','SouthOut
side')
G plotstyle1 trn Command Window ta c

Hnh 4-18

66
Hunh Hu Dinh Trng i hc Cng Nghip TP.HCM

i khi chng ta mun nh du cc mc trn trc x l mt bi s ca / 2 . iu


ny c th thc hin vi lnh set. Lnh set c s dng thay i cc thuc tnh khc
nhau ca th. Trong Script M-File c tn styleplot1 ta g tip
set(gca,'XTick',(0:1/2:2)*pi,'XTicklabel','0|pi/2|pi|3pi/2|
2pi')
G plotstyle1 trn Command Window ta c

Hnh 4-19
Nu ta mun cc mc xut hin k hiu thay v pi th ta g
set(gca,'FontName','Symbol')
set(gca,'XTick',(0:1/2:2)*pi,'XTicklabel','0|pi/2|pi|3p
i/2|2pi')
4.4.3. Nhng ty chnh khc
Cc lnh hu ch nh get v set c th c s dng thu mt danh sch y
cc thuc tnh ca graphic window v sau l sa i chng. Cc thuc tnh ny c
sp xp theo cu trc c th bc, xc nh bi cc du hiu (cc du hiu ny thng c
i din bi cc s thc) m ta gi l handle. Nu bn g get(gcf), bn s thu c mt
danh sch cc thuc tnh ca thi va mi v. Chng hn, trn mt Script M-File c tn
l Plotstyle2 ta g

67
Hunh Hu Dinh Trng i hc Cng Nghip TP.HCM

clear all
close all
t=(0:0.001:100)*pi;
X=sin(t)+1/2*sin(5*t)+1/4*cos(2.3*t);
Y=cos(t)+1/2*cos(5*t)+1/4*sin(2.3*t);
plot(X,Y,'Color','b');
axis([-1.8 1.8 -1.8 1.8]);
axis square;
G Plotstyle2 trn Command Window v sau chp mn hnh, ta c hnh nh
sau y

Hnh 4-20
G tip get(gcf) trn Command Window th cc thuc tnh ca Hnh 4-20 s c
lit k y . Sau y l hai thuc tnh tiu biu
Color = [0.8 0.8 0.8]
PaperSize = [8.5 11]
Thuc tnh PaperSize cho ta bit kch thc ca figure window vi gi tr mc
nh [8.5 11]. Thuc tnh Color cho ta mu nn ca figure window trong ta RGB
(red-green-blue), y [0 0 0] l mu en v [1 1 1] l mu trng, [0.8 0.8 0.8] l mu
xm nht.
thay i thuc tnh ca Hnh 4-20, chng hn nh Color, ta g trong Command
Window nh sau (khng c tt figure window):
>> set(gcf,'Color',[0.1 0.4 0.5])
v c kt qu
68
Hunh Hu Dinh Trng i hc Cng Nghip TP.HCM

Hnh 4-21

Vic thay i PaperSize v Position ca figure window th phc tp hn so vi


thay i Color. Ta g nh sau (khng c tt figure window):
>> set(gcf,'Units','inches','Position',[0.25 0.03 10 9])
Kt qu l kch thc, v tr ca figure window b thay i.
Lnh fill. Lnh fill c dng t mu cho a gic khi bit ta nh ca a
gic . V d, t mu cho hnh ch nht c cc nh A(1;1), B(3;1), C(3;2), D(1;2)
ta g nh sau (trn mt Script M-File c tn l lenhfill1.m):
close all
A=[1 1];B=[3 1];C=[3 2];D=[1 2];
hv=[A;B;C;D];
figure;
hold on
axis([0 4 0 3])
fill(hv(:,1),hv(:,2),'r')
title('To mau cho hinh chu
nhat','Color','b','FontName','Bell MT','FontSize',16)
axis square
G lenhfill1 ln Command Window ta c

69
Hunh Hu Dinh Trng i hc Cng Nghip TP.HCM

Hnh 4-22
Ta c th t mu cc nh ca a gic bng lnh fill. Sau , bt k im no thuc
a gic s c mu l s phi hp ca cc mu nh. Ta xt v d sau (trn mt Script M-
File c tn l lenhfill2.m)
close all
A=[1 1];B=[3 1];C=[3 2];D=[1 2];
hv=[A;B;C;D];
M=[0 3 7 10];
figure;
hold on
axis([0 4 0 3])
fill(hv(:,1),hv(:,2),M)
title('To mau cho hinh chu
nhat','Color','b','FontName','Bell MT','FontSize',16)
axis square
G lenhfill2 ln Command Window ta c

Hnh 4-23

70
Hunh Hu Dinh Trng i hc Cng Nghip TP.HCM

Ta c th to ra chuyn ng mu mt cch ngu nhin trong hnh ch nht bng


cch g (trn mt Script M-File c tn l lenhfill3.m)
close all
clear all
A=[1 1];B=[3 1];C=[3 2];D=[1 2];
hv=[A;B;C;D];
figure;
hold on
axis([0 4 0 3])
axis square
title('To mau cho hinh chu
nhat','Color','b','FontName','Bell MT','FontSize',16)
for i=1:50
fill(hv(:,1),hv(:,2),[100*rand(1) 100*rand(1)
100*rand(1) 100*rand(1)])
M(i)=getframe;
end
movie(M)
Ta c th dng lnh fill to ra mt bn c vua kch thc 8 8 nh sau (trn
mt function M-File c tn l covua.m)
function chess=covua(m,n)
den=[0 0 0]; trang=[1 1 1]; node=zeros((m+1)*(n+1),3);
for i=1:(n+1)
for j=1:(m+1)
k=(i-1)*(m+1)+j;
node(k,:)=[k,(j-1),(i-1)];
end
end
node_elem=zeros(m*n,5);
for i=1:n
for j=1:m
k=(i-1)*m+j;
node_elem(k,:)=[k,(i-1)*(m+1)+j,(i-
1)*(m+1)+j+1,i*(m+1)+j+1,i*(m+1)+j];
end
end
figure;
axis([0 8 0 8]);
for j=1:n
for k=(n*(j-1)+1):(n*j)
if rem(fix((n*j)./(n+1)),2)==0
if rem(k,2)==1
a=node_elem(k,[2 3 4 5]);

71
Hunh Hu Dinh Trng i hc Cng Nghip TP.HCM

fill(node([a a(1)],2),node([a
a(1)],3),den)
hold on
else
a=node_elem(k,[2 3 4 5]);
fill(node([a a(1)],2),node([a
a(1)],3),trang)
hold on
end
else
if rem(k,2)==1
a=node_elem(k,[2 3 4 5]);
fill(node([a a(1)],2),node([a
a(1)],3),trang)
hold on
else
a=node_elem(k,[2 3 4 5]);
fill(node([a a(1)],2),node([a
a(1)],3),den)
hold on
end
end
end
end
set(gca,'XTick',[],'YTick',[]); axis square;
G covua(8,8) trn Command Window ta c

Hnh 4-24

72
Hunh Hu Dinh Trng i hc Cng Nghip TP.HCM

4.5. To video vi Matlab


MATLAB c nhiu nhm cu lnh to video lu cc hnh ng. Sau y l
cch c bn nht to video (g trn mt Scrip M-File c tn l videosong.m)
clear all
close all
syms x
t=0:0.1:10;
n=length(t);
obj=VideoWriter('E:\Bai giang\De tai\Huong dan su dung
Matlab\Video');
% To video ti a ch E:\Bai giang\Dinh Thesis\De
tai\Huong dan su dung Matlab\Video
obj.FrameRate=5; % S nh trong 1 giy ca video l 5
open(obj); % Bt u hoc m video
hold on;
dth=ezplot(sin(x+t(1)),[-2*pi 2*pi]);
writeVideo(obj,getframe(gcf)); % Ghi hnh hin hnh
vo video
for i=2:n
set(dth,'visible','off')
dth=ezplot(sin(x+t(i)),[-2*pi 2*pi]);
set(dth,'LineWidth',3,'LineStyle','--');
writeVideo(obj,getframe(gcf));
end
close(obj)
G videosong trn Command Window ta s c mt file video c phn m rng
l '.avi'. Sau y l mt nh chp t video

Hnh 4-25

73
Hunh Hu Dinh Trng i hc Cng Nghip TP.HCM

Mt v d khc, ta to video lu li qu trnh to ra ng Cordioid (g trn mt


Scrip M-File c tn l videoCordioid.m)
close all
clear all
syms x y;
v=0:0.001:2;
i=0;
obj=VideoWriter('E:\Bai giang\Dinh Thesis\De tai\Huong
dan su dung Matlab\Video3');
obj.FrameRate=6;
open(obj);
hold on;
a=ezplot('x^2+y^2=1',[-4 4],[-4 4]);
b=plot(0,0,'*m');
c=plot(2*cos(i/50*pi),2*sin(i/50*pi),'*b');
d=plot(2*cos(i/50*pi)+cos(v*pi),2*sin(i/50*pi)+sin(v*pi
e=plot(2*(1-cos(i/50*pi))*cos(i/50*pi)+1,2*(1-
cos(i/50*pi))*sin(i/50*pi),'ok');
axis square;
set(a,'Color','m');
xlabel('x axis','Fontname','Bell MT','FontSize',10);
ylabel('y axis','Fontname','Bell MT','FontSize',10);
title ('Cordioid curve')
writeVideo(obj,getframe(gcf));
for i=1:100
set(c,'visible','off');
c=plot(2*cos(i/50*pi),2*sin(i/50*pi),'*b');
set(d,'visible','off');

d=plot(2*cos(i/50*pi)+cos(v*pi),2*sin(i/50*pi)+sin(v*pi
));
e=plot(2*(1-cos(i/50*pi))*cos(i/50*pi)+1,2*(1-
cos(i/50*pi))*sin(i/50*pi),'ok');
writeVideo(obj,getframe(gcf));
end
close(obj)
G videoCordioid trn Command Window ta s c mt file video c phn m
rng l '.avi'. Sau y l mt nh chp t video

74
Hunh Hu Dinh Trng i hc Cng Nghip TP.HCM

Hnh 4-26

75
Hunh Hu Dinh Trng i hc Cng Nghip TP.HCM

MC LC

CHNG 1: TNG QUAN V MATLAB ....................................................................... 1


1.1. u vo v u ra (INPUT V OUTPUT)............................................................... 1
1.2. Cc php ton s hc (Arithmetic) ........................................................................... 2
1.3. i s (Algebra) ........................................................................................................ 3
1.4. Biu thc mang tnh biu tng (Symbolic Expressions), Variable Precision v
Exact Arithmetic (Php ton s hc chnh xc) ............................................................... 4
1.5. Variable and Assignments (Bin v php gn) ......................................................... 6
1.6. Gii phng trnh (Solving Equation) bng lnh solve ............................................ 7
1.7. Vector v Ma trn (Matrix) ....................................................................................... 9
1.7.1 Vector................................................................................................................... 9
1.7.2. Ma trn .............................................................................................................. 12
1.8. Hm ......................................................................................................................... 15
1.8.1 Hm c tnh hp ....................................................................................... 15
1.8.2. Cc hm do ngi dng nh ngha .................................................................. 16
1.9. th ....................................................................................................................... 18
1.9.1. V th vi ezplot........................................................................................... 18
1.9.2. Sa i th .................................................................................................... 19
1.9.3. V th vi plot .............................................................................................. 20
1.9.4. V nhiu th trong cng h trc ................................................................... 23
CHNG 2: TNG TC VI MATLAB ................................................................ 25
2.1. M-File ...................................................................................................................... 25
2.1.1 Script M-File ...................................................................................................... 25
2.1.2. Function M-File ................................................................................................ 28
2.2. Vng lp (Loop) ...................................................................................................... 29
CHNG 3: VT QUA NHNG IU C BN .................................................. 32
3.1. Ngt Output ............................................................................................................. 32
3.2. Cc lp d liu ........................................................................................................ 33
3.2.1. X l chui ........................................................................................................ 34

76
Hunh Hu Dinh Trng i hc Cng Nghip TP.HCM

3.2.2. Symbolic v Floating Point Number ................................................................ 35


3.3. Hm v biu thc .................................................................................................... 36
3.4. S phc .................................................................................................................... 37
3.5. B sung v ma trn .................................................................................................. 37
3.5.1. Gii h phng trnh tuyn tnh ........................................................................ 40
3.5.2. Gi tr ring v vector ring .............................................................................. 40
3.6. Lm ton Gii tch bng MATLAB ........................................................................ 41
3.6.1. o hm ............................................................................................................ 42
3.6.2. Tnh tch phn ................................................................................................... 43
3.6.3. Gii hn ............................................................................................................ 46
3.6.4. Tng v tch ...................................................................................................... 46
3.6.5. Khai trin Taylor ............................................................................................... 48
CHNG 4: V TH TRN MATLAB ................................................................ 48
4.1. th hai chiu ....................................................................................................... 49
4.1.1. th hm cho bi phng trnh tham s ........................................................ 50
4.1.2. th ng vin (contour plot) v th hm n (implicit plot) ................... 50
4.1.3. Trng vector ................................................................................................... 54
4.2. th ba chiu ........................................................................................................ 55
4.2.1. ng cong trong khng gian ba chiu............................................................ 55
4.2.2. Mt trong khng gian ba chiu ......................................................................... 55
4.3. Cc hiu ng c bit .............................................................................................. 59
4.3.1. Kt hp cc th trn cng mt ca s .......................................................... 59
4.3.2. Hnh ng ......................................................................................................... 60
4.4. Ty chnh v thao tc trn th............................................................................. 61
4.4.1 Thay i viewpoint ............................................................................................ 64
4.4.2 Thay i Plot Style ............................................................................................ 65
4.4.3. Nhng ty chnh khc ....................................................................................... 67
4.5. To video vi Matlab .............................................................................................. 73

77

You might also like