Cßn víi m«i tr−íng Unix, Dos th«ng qua dßng lÖnh : Matab Giao diÎn cða MATLAB sø dòng 2 cøa sô: cøa sô thö nhÊt Ơõìc sø dòng Ờ Ơõa cŸc lÎnh v¡ dù liÎu v¡o Ơêng thĩi Ờ in kƯt qu¨; cøa sô
Trang 1Ch−¬ng 1
C¸c kh¸i niÖm c¬ b¶n
1.1 Kh¨ n¯ng cða Matlab
Matlab l¡ gÖ ? Matlab hot Åæng ra sao ?
Matlab cÜ thÌ l¡m Åõìc nhùng gÖ v¡ ai cÜ thÌ hàc v¡ sø dòng Matlab ?
SÁ cÜ rÃt nhiËu bn Åàc sÁ b¯n kho¯n vèi cŸc c¿u hÞi trÅn V¡ ê chõçng n¡y chîng ta sÁ cïng tÖm ra léi gi¨i ÅŸp
Matlab l¡ chõçng trÖnh phÀn mËm trì giîp cho viÎc tÏnh toŸn v¡ hiÌn thÙ Matlab cÜ thÌ chy trÅn hÀu hÆt cŸc hÎ mŸy tÏnh t÷ mŸy tÏnh cŸ nh¿n ÅÆn cŸc hÎ mŸy tÏnh lèn super computer
Matlab Åõìc ÅiËu khiÌn bêi tºp cŸc bæ lÎnh, tõçng tŸc b±ng b¡n phÏm trÅn cøa
sä ÅiËu khiÌn, Åãng théi Matlab cÝn cho phÉp kh¨ n¯ng lºp trÖnh vèi cî phŸp tháng dÙch lÎnh hay cÝn gài l¡ script file CŸc lÎnh, bæ lÎnh cða Matlab lÅn ÅÆn con sâ h¡ng tr¯m v¡ ng¡y c¡ng Åõìc mê ræng bêi cŸc phÀn Tools box trì giîp, hay cŸc h¡m öng dòng to ra bêi ngõéi sø dòng
CŸc lÎnh cða Matlab rÃt mnh v¡ hiÎu qu¨ cho phÉp gi¨i cŸc loi hÖnh toŸn khŸc nhau v¡ Å»c biÎt hiÎu qu¨ cho cŸc hÎ phõçng trÖnh tuyÆn tÏnh cñng nhõ thao tŸc trÅn cŸc b¡i toŸn ma trºn Khánng nhùng thÆ Matlab cÝn rÃt hùu hiÎu trong viÎc trì giîp thao tŸc v¡ truy xuÃt Åã ho trong kháng gian 2D cñng nhõ 3D cñng kh¨ n¯ng to hot c¨nh cho viÎc má t¨ b¡i toŸn mæt cŸch sinh Åæng
Cïng vèi trÅn 25 Tools box (thõ viÎn trì giîp) khŸc nhau Matlab Åõa ÅÆn cho cŸc bn sú lúa chàn ho¡n ch×nh v¡ phong phî vË cŸc cáng cò trì giîp źc lúc cho nhùng lØnh vúc khŸc nhau trÅn con Åõéng nghiÅn cöu m¡ cŸc bn Ŭ lúa chàn
Dõèi Å¿y chîng tái xin liÎt kÅ mæt sâ lØnh vúc m¡ Matlab Ŭ v¡ Åang gi¨i quyÆt mæt cŸnh hiÎu qu¨
Trang 2• NghiÅn cửu vĂ phŸt trièn trong lỉnh vỳc cỏng nghiẻp
• Giăng dưy, nghiÅn cửu lºp cŸc chừỗng trệnh ửng dũng trong giăng dưy cho cŸc mỏn kỵ thuºt nhừ toŸn, lỷ, hoŸ trong cŸc trừộng phọ thỏng nh±m n¿ng cao khă n¯ng tiặp thu củng nhừ ỷ sŸng tưo trong hàc sinh
• Giăng dưy vĂ lºp cŸc chừỗng trệnh giăng dưy vậ toŸn Åằc biẻt lĂ cŸc loưi hệnh nguyÅn lỷ cỗ băn vĂ cŸc phừỗng trệnh tuyặn tẽnh cho sinh viÅn củng nhừ hàc sinh cŸc trừộng kỵ thuºt
• Giăng dưy vĂ nghiÅn cửu trong lỉnh vỳc kỵ thuºt vĂ khoa hàc bao góm nhừ: Åiẻn tứ, lỷ thuyặt Åiậu khièn, vºt lỷ , Åó hoư , xứ lỷ ănh, vºt liẻu
• Giăng dưy vĂ nghiÅn cửu trÅn mài lỉnh vỳc cĩ xuÃt hiẻn tẽnh toŸn bao góm toŸn kinh tặ, hoŸ, cỗ hàc, sinh hàc
1.2 Hoưt Åổng cða Matlab
Muõn sứ dũng Åừỡc phÀn mậm MATLAB, trừốc tiÅn bưn phăi cĂi Åằt nĩ Vệ viẻc cĂi Åằt MatLab cỳc kỹ dÍ dĂng nÅn ờ Å¿y chợng ta khỏng Åậ cºp Åặn Tuy nhiÅn cŸc bưn nÅn chợ ỷ khi cĂi Åằt nặu cŸc bưn muõn sứ dũng thÅm cŸc ToolBox cða MatLab nhừ Simulink, Fuzzy ToolBox, DSP (digital signal processing) v.v hay muõn tẽch hỡp vối MatLab mổt sõ ngỏn ngự lºp trệnh quen thuổc mĂ bưn khỏng muõn xa cŸch nhừ C, C++, Fortran
Chương trình ứng dụng ở đây thường có ở các phiên bản sau:
MatLab 3.5 trở xuống với môi trường hoạt động lμ MS-Dos
MatLab 4.0, 4.2, 5.1, 5.2 hoạt động trong môI trường Windows
Hệnh 1.1 Giao diẻn mμn hệnh khi khời tưo Matlab 4.2
Trang 3(ị ®©y chóng ta sÏ cê ngay lÖnh c¬ b¶n dμnh cho viÖc giíi thiÖu ch−¬ng tr×nh
lμ : intro, demo, help help )
Vμ c¸c version MatLab kh¸c cho m«i tr−íng t−¬ng t¸c Unix
ViÖc khịi ®ĩng Matlab trªn mìi hÖ thỉng mìi kh¸c Trong m«i tr−íng Window hay Macintosh ch−¬ng tr×nh th−íng ®−îc khịi ®ĩng th«ng qua viÖc click chuĩt trªn c¸c icon hay cßn gôi lμ c¸c biªu t−îng Cßn víi m«i tr−íng Unix, Dos th«ng qua dßng lÖnh
: Matab
Giao diÎn cða MATLAB sø dòng 2 cøa sô: cøa sô thö nhÊt Ơõìc sø dòng Ờ Ơõa cŸc lÎnh v¡ dù liÎu v¡o Ơêng thĩi Ờ in kƯt qu¨; cøa sô thö hai trì giîp cho viÎc truy xuÊt Ơê ho dïng Ờ thÌ hiÎn nhùng lÎnh hay kƯt qu¨ ƠĂu ra dõỉi dng graphics
ViÎc ngºt chõìng trÖnh Ơang thúc hiÎn ho»c cŸc chõìng trÖnh thúc hiÎn khâng Ơîng theo yƠu cĂu thâng qua phÏm nÜng Ctrl + C
ŠÌ thoŸt ra khÞi mâi trõĩng l¡m viÎc Matlab, chîng ta cÜ thÌ sø dòng lÎnh cða Matlab l¡ :
>> quit %ho»c
>> exit
HÖnh v 1.2 Hai cøa sô giao diÎn cða Matlab
Trang 41.2.1.CŸ phÏm ch yƠn dòn v¡ c c Înh hâ g dò g hÎ hđng
↑ ho»c Ctrl + p Găi li lÎnh v÷a thúc hiÎn trõỉc Ợ
↓ ho»c Ctrl + n Găi li lÎnh Ơ¬ ƠŸnh v¡o rÊt l¿u trõỉc Ợ
→ ho»c Ctrl + f ChuyÌn con trÞ sang ph¨i 1 kû tú
← ho»c Ctrl + b ChuyÌn con trÞ sang trŸi 1 kû tú
Ctrl + l ho»c Ctrl + ← ChuyÌn con trÞ tú sang trŸi 1 t÷
Ctrl + r ho»c Ctrl + → ChuyÌn con trÞ tú sang ph¨i 1 t÷
Ctrl + a hay Home ChuyÌn con trÞ vỊ ƠĂu dÝng
Ctrl + k XoŸ cho ƠƯn cuđi dÝng
CŸ Înh hÎ hđn
casesen off -BÞ thuưc tÏnh ph¿n biÎt chù hoa v¡ chù thõĩng
casesen on - Sø dòng thuưc tÏnh ph¿n biÎt chù hoa v¡ chù thõĩng
computer - LÎnh in ra mưt x¿u kÏ tú cho biƯt loi mŸy tÏnh
demo - LÎnh cho phĨp xem cŸc chõìng trÖnh m¹u (minh ho kh¨
n¯ng cða Matlab )
exit, quit - ThoŸt khÞi MATLAB
Ctr-c - D÷ng chõìng trÖnh khi nÜ bÙ rìi v¡o tÖnh trng l»p khâng
kƯt thîc
help - LÎnh cho xem phĂn trì giîp mưt sđ cŸc lÎnh Ơõìc sø dòng
trong Matlab
input - Nhºp dù liÎu t÷ b¡n phÏm
load - T¨i cŸc biƯn Ơ¬ Ơõìc lõu trong 1 file Ơõa v¡o vïng l¡m viÎc
pause - Ng÷ng tm thĩi chõìng trÖnh
save - Lõu giù cŸc biƯn v¡o file cÜ tƠn l¡ matlab.mat
1.3 BiƯn v¡ thao tŸc cða cŸc biƯn
1.3.1 BiƯn rong Matab
Trang 5TƠn cŸc biƯn trong Matlab cÜ thÌ d¡i 19 kû tú bao gêm cŸc chù cŸi A-Z hay a-z cïng cŸc chù sđ cñng nhõ 1 v¡i cŸc kû tú Ơ»c biÎt khŸc nhõng luân ph¨i bºt ƠĂu b±ng chù cŸi TƠn cða cŸc h¡m Ơ¬ Ơõìc cñng cÜ thÌ Ơõìc sø dòng l¡m tƠn cða biƯn vỉi ƠiỊu kiÎn h¡m s khâng Ơõìc sø dòng trong suđt quŸ trÖnh tên ti cða biƯn cho ƠƯn khi cÜ lÎnh clear xoŸ cŸc biƯn trong bư nhỉ hay clear + tƠn cða biƯn
clear - XoŸ cøa sô Ơang sø dòng, xoŸ vïng nhỉ d¡nh cho cŸc
biƯn Trong trõĩng hìp n¡y tÊt c¨ cŸc biƯnƠõìc ƠÙnh nghØa trõỉc Ợ ƠỊu bÙ xoŸ
clear name - Ch× xoŸ biƯn cÜ tƠn l¡ name
clear name1, name2, - Ch× xoŸ biƯn cÜ tƠn Ơõìc liÎt kƠ sau lÎnh clear ( name1,
name2 )
clear value - XoŸ biƯn theo giŸ trÙ cho trõỉc
pack LÎnh Ơõìc thúc hiÎn nh±m mòc Ớch sºp xƯp li cŸc biƯn
cñng nhõ vïng chöa biƯn cða bư nhỉ Khi bư nhỉ cða mŸy tÏnh ƠĂy lÎnh pack cho phĨp to ra thƠm vïng bư nhỉ cho biƯn m¡ khâng ph¨i xoŸ Ơi cŸc biƯn Ơ¬ tên ti Câng viÎc Ơõìc thúc hiƠn nhõ sau:
1 TÊt c¨ cŸc biƯn trong bư nhỉ Ơõìc lõỉi li trƠn ƠØa dõỉi file pack.tmp
2 Vïng bư nhỉ cì sí s Ơõìc gi¨i phÜng
3 CŸc biƯn s Ơõìc np (load) v¡o bư nhỉ t÷ file pack.tmp
4 File pack.tmp bÙ huý bÞ
pack filename Sºp xƯp li bư nhỉ vỉi file trung gian cÜ tƠn l¡: filename
BÖnh thõĩng Matlab ph¿n biÎt khŸc nhau cŸc biƯn to bíi chù cŸi thõĩng v¡ chù cŸi hoa CŸc lÎnh cða Matlab nÜi chung thõĩng sø dòng chù cŸi thõĩng ViÎc ph¿n biÎt Ợ cÜ thÌ Ơõìc bÞ qua nƯu chîng ta thúc hiÎn lÎnh
>> casensen
KiÌm tra sú tên ti cða cŸc biƯn trong bư nhỉ thâng qua bư lÎnh
who HiÌn thÙ danh sŸch cŸc biƯn Ơ¬ Ơõìc ƠÙnh nghØa
whos HiÌn thÙ cŸc biƯn Ơ¬ Ơõìc ƠÙnh nghØa cïng kÏch thõỉc cða
Trang 6chîng v¡ tháng bŸo chîng cÜ ph¨i l¡ sâ phöc kháng
who global HiÌn thÙ cŸc biÆn còc bæ
exist( namestr ) HiÌn thÙ cŸc biÆn phò thuæc v¡o cŸch cŸc biÆn Åõìc ÅÙnh
nghØa trong chuåi namestr H¡m sÁ tr¨ li giŸ trÙ sau:
NÆu namestr l¡ tÅn cða 1 biÆn NÆu namestr l¡ tÅn cða 1 file.m NÆu namestr l¡ tÅn cða 1 MEX file NÆu namestr l¡ tÅn cða h¡m dÙch bêi SIMULINK NÆu namestr l¡ tÅn cða h¡m Åõìc ÅÙnh nghØa trõèc bèi Matlab
1.3.2 Šæ èn cða biÆn
Šæ lèn hay chiËu d¡i cða biÆn vector cñng nhõ ma trºn cÜ thÌ Åõìc xŸc ÅÙnh tháng qua 1 sâ h¡m cÜ s³n cða Matlab
size ( A ) Cho ra 1 vector chöa kÏch thõèc ma trºn A PhÀn tø ÅÀu
tiÅn cða vector l¡ sâ h¡ng cða ma trºn, phÀn tø thö 2 l¡ sâ cæt cða ma trºn
[ m n ] = size( A ) Tr¨ giŸ trÙ Åæ lèn cða ma trºn A v¡o vector xŸc ÅÙnh bêi 2
biÆn m v¡ n
size (A, p) Šõa ra giŸ trÙ sâ h¡ng cða ma trºn A nÆu p <1 v¡ sâ cæt
cða A nÆu p >= 2
size(x) Šõa ra vector má t¨ Åælèn cða vector x NÆu x l¡ vector
h¡ng m phÀn tø thÖ giŸ trÙ ÅÀu cða vector l¡ m v¡ giŸ trÙ thö 2 l¡ 1 Tõéng hìp x l¡ vector n cæt thÖ giŸ trÙ thö nhÃt sÁ l¡ 1 v¡ thö 2 l¡ n
lengh(x) Tr¨ giŸ trÙ chiËu d¡i cða vector x
lengh(x) Tr¨ giŸ trÙ chiËu d¡i cða ma trºn A GiŸ trÙ thu Åõìc sÁ l¡
m nÆu m>n v¡ ngõìc li sÁ l¡ n nÉu n>m
1.3.3 Mætsâ biÆn Åõ c ÅÙnh nghØa rõèc
ans BiÆn cho trõèc Åõìc gŸn cho phÉp tÏnh cuâi cïng cða
Trang 7câng viÎc tÏnh toŸn khâng biƯn gŸn
esp Tr¨ ra Ơư chÏnh xŸc cða mŸy xŸc ƠÙnh bíi kho¨ng t÷ 1 ƠƯn
1 biƯn dÊu phÂy Ơưng tiƯp Ợ BiƯn esp Ơõìc sø dòng nhõ l¡ sai sđ trong 1 v¡i cŸc phĨp toŸn Ngõĩi sø dòng cÜ thÌ gŸn giŸ trÙ mỉi cho esp nhõng giŸ trÙ Ợ s khâng bÙ xoŸ Ơi bíi h¡m clear
realmax Šõa ra giŸ trÙ cða sđ lỉn nhÊt m¡ mŸy tÏnh (chõìng trÖnh)
cÜ thÌ tÏnh toŸn Ơõìc
realmin Šõa ra giŸ trÙ cða sđ nhÞ nhÊt m¡ mŸy tÏnh (chõìng trÖnh)
cÜ thÌ tÏnh toŸn Ơõìc
1.3.4 Sđ phöc
a) CŸ phĨp oŸn Ơđivỉisđ phöc:
PhĨp toŸn KƯt qu¨
c1+ c2 (a1 + a2) + i(b1 + b2)
c1- c2 (a1 - a2) + i(b1 - b2)
c1 c2 (a1 a2 - b1 b2) + i(a1 a2 + b1 b2) c1
c2
(a1 a2 - b1 b2) + i (a1 a2 - b1 b2) a21+b22a21+b22
(Šư lỉn hay trÙ tuyÎt Ơđi cða c1)
b) Mưtsđ h¡m Ơ» biÎtcða sđ phöc
real(x) H¡m cho giŸ trÙ phĂn thúc cða sđ phöc x NƯu x=a+ib thÖ
real(x)=a
imag(x) H¡m tr¨ li giŸ trÙ phĂn ¨o cða sđ phöc x NƯu x=a+ib thÖ
imag(x)=b
Trang 8conj(x) TÏnh sđ liƠn hìp cða sđ phöc NƯu x=a+ib thÖ conj(x)=a-ib
abs(x) TÏnh Ơư lỉn, giŸ trÙ tuyÎt Ơđi cða sđ phöc
angle(x) TÏnh gÜc cÜ giŸ trÙ l¡ atan2(imag(x), real(x)), giŸ trÙ gÜc
n±m trong kho¨ng -π ƠƯn π
c) To Ơư biÌu diÍn sÜ p öc
Chîng ta cÜ thÌ biÌu diÍn sđ phöc a+ib trƠn hÎ tròc to Ơư Šđi vỉi hÎ tròc to
Ơư ƠỊ cŸc phĂn thúc Ơõìc biÌu diÍn trƠn tròc x: x=a, phĂn ¨o Ơõìc biÌu diÍn trƠn tròc y: y=b Šđi vỉi hÎ to Ơưi cúc sđ phöc Ơõìc biÌu diÍn bíi r, θ
Trong Ợ:
r = √ a2
1+ b2
2
θ = tan-1 b
a Ngõìc li :
a = rcos θ
b = rsin θ
HÖnh v biÌu diÍn to Ơư sđ phöc Trong hÎ to Ơư cúc: Ơư lỉn (magnitude), v¡ pha (phase) cða sđ phöc s Ơõìc tÏnh toŸn nhõ sau:
>> r = abs(x);
>> theta = angle(x);
BiÌu diÍn sđ phöc theo Ơư lỉn v¡ pha nhõ sau:
>> y = r*exp(i*theta);
Trong hÎ to Ơư ƠỊ cŸc, phĂn thúc (real) v¡ phĂn ¨o (imaginary) s Ơõìc tÏnh toŸn nhõ sau:
>> a = real(x);
>> b = imag(x);
BiÌu diÍn sđ phöc: y = a + ib;
Trang 91.4 Sì lõìc vỊ Ơê ho trong MatLab
MATLAB sø dòng lÎnh X-Y Plots Ờ v Ơê thÙ, biÌu Ơê cho cŸc thâng tin mưt cŸc dÍ d¡ng Trong phĂn n¡y, v Ơê thÙ tông quŸt theo dù liÎu Ơõìc lõu trong hai vector x,y Trong trõĩng hìp cŸc biÌu Ơê hay Ơê thÙ mong muđn Ơõìc biÌu diÍn dõỉi dng m¹u 3D thÖ Ơìn gi¨n vỉi Matlab chîng ta ch× cĂn Ơôi sang dïng lÎnh X-Y-Z Pots
Ờ vÂ
1.4.1 VÂ rong cøa sô Ơ ho cða Mat ab
plot(x,y) VÂ Ơê thÙ theo to Ơư x-y
pot3(x,y,z) VÂ Ơê thÙ theo to Ơư x-y-z
title Šõa cŸc title v¡ trong hÖnh vÂ
xlabel Šõa cŸc nh¬n theo chiỊu x cða Ơê thÙ
ylabel Šõa cŸc nh¬n theo chiỊu y cða Ơê thÙ
zlabel Šõa cŸc nh¬n theo chiỊu z cða Ơê thÙ
grid VÂ cŸc Ơõĩng giÜng grid line trƠn Ơê thÙ
plot(y) VÂ Ơê thÙ theo y bÞ qua ch× sđ theo y
NƯu y l¡ sđ ¨o thÖ Ơê thÙ Ơõìc v s l¡ phĂn thúc v¡ phĂn ¨o cða
y
>> plot( real ( y ), image ( y ) )
plot(x,y,S)
plot(x,y,z,S)
plot ( x, y, s ) v theo x,y plot ( X, Y, Z, S ) v theo x, y, z vỉi
s l¡ cŸc ch× sđ s liÎt kƠ í chõìng sau
VÏ dò:
>> plot ( x, y, 'b+' )
VÂ Ơê thÙ theo x v¡ y vÜi mĂu cða Ơõĩng l¡ mĂu xanh dõìng v¡
kû tú to nƠn Ơõĩng l¡ dÊu +
Trang 10Vẽdũ hệnh helx:
Hệnh 1.3 Hệnh Helix
>> t = 0:pi/50:10*pi;
>> plot3(sin(t),cos(t),t);
>> Title(' Vẽ du ve plot3() trong Matlab ')
Matlab rÃt mưnh trong viẻc xứ lỷ Åó hoư Ta sÁ Åậ cºp vÃn Åậ nĂy rò hỗn ờ chừỗng sau
1.4.2 In Ãn rÅn mĂn hệnh Åó hoư
Việc in các ảnh trên mμn đồ hoạ có thể đ−ợc thực hiện thông qua các menu lệnh may các lệnh của Matlab
- In mμn hình của cửa sổ đồ hoạ hiện thời ra máy in
>> print filename
- In mμn hình đồ hoạ ra file
>> print esp filename
- copy mμn đồ hoạ theo khuôn dạng eps File thu đ−ợc có thể đ−a vμo các trang văn bản
-1
0
1 -1
0 1
0 10 20 30 40
Vi du ve plot3() trong Matlab
Trang 111.4.3 Mætsâ vÏdò má ¨ Åã ho
HÖnh 1.4 H¡m sin2x, cos(x)^2 v¡ cos(x^2) a) VÏ dò má t¨ kh¨ n¯ng vÁ h¡m Åã ho trong kháng gian 2D Gi¨ sø vèi h¡m sin2x, cos(x)^2 v¡ (cosx)^2 trong kho¨ng 0 < x < 10 ViÎc thao tŸc dÍ d¡ng trÅn tºp cŸc lÎnh sau
>> hold on
>> x = lÏnspace(0,10);
>> y1 = sin(2*x);
>> y2 = sin(x.^2);
>> y3 = (sin(x)).^2;
>> plot ( x,y1 ); plot ( x,y2 ); plot( x,y3 );
H¡m plot ( x,y ) sÁ cho ra trÅn m¡n hÖnh Åã ho h¡m y theo vector x
b) H¡m má t¨ Åõéng cong tham biÆn trong kháng gian 2D v¡ 3D
Šõéng cong tham biÆn theo t vèi t trong kh¨ng t÷ [ 0 2*pi ] cho kÆt qu¨ HÖnh vÁ 1.5
-1
-0.5
0 0.5