Sunteți pe pagina 1din 97

APLICAII MATLAB 1.

PREZENTARE GENERAL MATLAB = Limbaj de nalt performan pentru proiectarea asistat de calculator MATLAB este n acelai timp un limbaj de programare i un sistem de dezvoltare care integreaz calculul, izualizarea i programarea ntr!un mediu uor de utilizat "eas#!to!use$, problemele i soluiile acestor probleme fiind e%primate ntr!un limbaj matematic accesibil& Domenii de utilizare' Matematic i calcul numeric (ez oltarea algoritmilor Modelare, simulare i testarea prototipurilor Analiza i izualizarea datelor )rafica inginereasc i din tiinele aplicate (ez oltarea de aplicaii, inclusi )*+

MATLAB = sistem interacti care are ca element de baz tabloul, matricea, ceea ce permite rezol area problemelor de calcul numeric, n special cele care necesit prelucrarea de ectori sau matrici& ,umele MATLAB pro ine de la Matrix laboratory -irma productoare este The MathWorks, Inc., !A MATLAB!ul a e oluat' - n mediul uni ersitar unde este pac.etul standard pentru cursurile introducti e i a ansate de matematic, inginerie i tiine - n industrie, unde este utilizat pentru cercetarea de nalt randament, dez oltare i producie MATLAB permite dez oltarea unei familii de aplicaii sub forma toolbox!urilor& Aceste toolbox-uri permit n area i aplicarea te.nologiilor specializate din di erse domenii& /unt disponibile toolbo%!uri pentru domenii cum ar fi' procesarea numeric a semnalelor, sisteme de conducere automat, reele neurale, logic fuzz#, 0a elet, simulare " IM!LIN"$, identificare etc& Sistemul MATLAB const n cinci pri principale'

L#$%a&'( MATLAB Me)#'( )e ('cr' MATLAB *an)(e Gra+h#cs B#%(#oteca )e ,'nc-## $ate$at#ce a MATLAB.'('# Inter,a-a )e a+(#ca-## +ro/ra$ a MATLAB.'('# 0API1

Limbajul MATLAB: 1eprezint un limbaj de ni el nalt de tip matrice2tablou cu instruciuni de control al salturilor, funcii, structuri de date, intrri2ieiri i cu proprieti de programare orientat pe obiecte& -acilitile de programare sunt organizate pe 3 directoare' ops Lang 4perators and special c.aracters& 5rogramming language constructs& 6

Strfun Iofun Timefun Datatypes

7.aracter strings& -ile input2output& Time and dates& (ata t#pes and structures&

Mediul de lucru MATLAB: 1eprezint un set de faciliti care permit mane rarea ariabilelor n spaiul de lucru, importul i e%portul de date, dez oltarea, manipularea, editarea i depanarea fiierelor MATLAB "&m$ i a aplicaiilor MATLAB& Aceste faciliti sunt organizate n directorul' general )eneral purpose commands&

Handle Grap ics!: 1eprezint sistemul grafic al MATLAB!ului& 7uprinde comenzi de nalt ni el pentru izualizarea datelor bi i tri!dimensionale, procesarea imaginilor, animaie, prezentri de grafice& 5ermite de asemenea utilizarea unor comenzi de ni el sczut pentru crearea unor interfee grafice )*+& -unciile grafice sunt organizate n 8 directoare' graph2d T0o!dimensional grap.s& Graph3d T.ree!dimensional grap.s& Specgraph /pecialized grap.s& Graphics 9andle )rap.ics& Uitools )rap.ical user interface tools& Biblioteca de "unc#ii matematice a MATLAB$ului: 1eprezint o colecie comple% de algoritmi de calcul pornind de la funcii elementare "sinus, cosinus etc&$ p:n la funcii sofisticate "in ersarea de matrice, alori proprii, funcii Bessel, --T etc&$& -unciile matematice sunt organizate n ; directoare' elmat Elfun Specfun Matfun Datafun Polyfun Funfun Sparfun <lementar# matrices and matri% manipulation& <lementar# mat. functions& /pecialized mat. functions& Matri% functions = numerical linear algebra& (ata anal#sis and -ourier transforms& +nterpolation and pol#nomials& -unction functions and 4(< sol ers& /parse matrices&

%nter"a#a de aplica#ii program a MATLAB$ului &A'%( este o bibliotec care permite scrierea de programe n 7 sau -ortran care interacioneaz cu MATLAB!ul& +nclude faciliti pentru apelarea rutinelor din MATLAB, apelarea MATLAB!ului ca main de calcul, scrierea i citirea fiierelor de tip &MAT & Pachet'( IM!LIN" /+M*L+,>? este un pac.et soft0are ataat MATLAB!ului i reprezint un sistem interacti pentru simularea dinamicii sistemelor neliniare "bineneles i a celor liniare$& <ste conceput sub forma unei interfee grafice care permite crearea unui model prin @trasareaA sc.emei bloc a sistemului i apoi simularea dinamicii sistemului& /+M*L+,> poate lucra cu sisteme liniare, neliniare, continue, discrete, multi ariabile etc& B

/+M*L+,> bebeficiaz de aa!numitele Blockset!uri care sunt de fapt biblioteci suplimentare care conin aplicaii specializate din domenii cum ar fi' comunicaii, procesarea semnalelor etc& Real-time Workshop este un program foarte important care permite generarea unui cod 7 pentru sc.emele bloc create n /+M*L+,> i prin urmare permite rularea de aplicaii n timp real de o mare di ersitate& Too(%o2.'r#(e MATLAB Toolbo%!urile reprezint o familie de aplicaii care permit n area i aplicarea te.nologiilor specializate din di erse domenii& Aceste toolbo%!uri sunt colecii de funcii MATLAB "functions$ "M!files$ care e%tind mediul MATLAB pentru rezol area unor clase particulare de probleme& 7:te a din cele mai utilizate aplicaii sunt prezentate n figura urmtoare&

3. 4!N5AMENTELE PR6GRAMRII 7N MATLAB C

3.1. E2+res## ,'n)a$enta(e MATLAB!ul lucreaz cu e%presii matematice ca i celelalte limbaje de programare, dar spre deosebire de majoritatea acestor limbaje, aceste e%presii implic la scar larg lucrul cu matrici& <%presiile sunt alctuite cu ajutorul urmtoarelor tipuri' Dariabile ,umere 4peratori -uncii )ariabile MATLAB!ul nu necesit declararea dimensiunii ariabilelor, deoarece la nt:lnirea unui nou nume de ariabil genereaz automat ariabila respecti i aloc spaiul necesar de memorie& ,umele unei ariabile este o liter, urmat de un numr oric:t de mare de litere, cifre sau simboluri& (in acest numr @oric:t de mareA sunt oprite primele C6 de caractere& MATLAB!ul este case sensitive ! face distincie ntre literele mici i cele mari& <%emplu'
!a!"!3#

creeaz o matrice 6 % 6 cu numele a i stoc.eaz aloarea acesteia CE ntr!o singur locaie corespunztoare singurului element al matricei& *umere MATLAB!ul utilizeaz notaia zecimal, cu punct zecimal opional i cu semn F sau !& /e utilizeaz i notaia tiinific cu litera e pentru a specifica o putere a lui 6E& 1eprezentarea numerelor imaginare este realizat cu litera i sau $ ca sufi%& <%emple'
3!!!!!!!!!!!!!!%&&!!!!!!!!!!!!#'###( &')3&*23+!!!!!!(')#2(#e%2#!!!!)'#22,2e23 (i!!!!!!!!!!!!!%3'(-(,&$!!!!!!3e,i

Toate numerele sunt stocate intern utiliz:nd formatul long specificat de standardul +<<< n irgul mobil "precizie de 63 zecimale semnificati e n domeniul 6E!CE; la 6EFCE;$&

+peratori <%presiile utilizeaz operatori aritmetici uzuali'


. % 1 2 5 7 9 /dunare Sc0dere Multiplicare 3mp0r4ire 3mp0r4ire!la!st6nga 8idicarea!la!o!putere Transpusa!comple:!con$ugat0

;! =peratorul ! de ! specificare ! a! < ordinii!de!e>aluare

,unc#ii MATLAB!ul furnizeaz un mare numr de funcii matematice elementare standard ;a?s@!
sArt@!e:p@!sin!B<'

<%ist i funcii matematice a ansate "funcii Bessel, gama etc&$, multe dintre acestea accept:nd argumente comple%e& 5entru izualizarea funciilor elementare se poate tasta'
!help!elfun

5entru a edea lista funciilor a ansate se poate tasta'


!help!specfun !help!elmat

4 parte din funcii "cum ar fi sArt@ sin<sunt de tip! built-in, adic sunt o parte a nucleului MATLAB, au o mare eficien, dar detaliile constructi e nu sunt accesibile utilizatorului& Alte funcii sunt implementate ca fiiere MATLAB "M!files$ i pot fi c.iar modificate& 7:te a funcii furnizeaz alorile unor constante uni ersale'
pi

3'(-(,&2), Imaginary!unit@!%( Same!as!I Floating%point!relati>e!precision@!2%,2 Smallest!floating%point!num?er@!2%(#22 Largest!floating%point!num?er@!2(#23 Infinity Dot%a%num?er

I
C Eps 8ealmin 8ealma: Inf DaD

,umele funciilor nu sunt rezer ate i deci este posibil suprascrierea lor& <%emplu' eps!"!('e%) -uncia original este reconstituit prin comanda' !clear!eps E2+res## <%emple de e%presii i rezultatele corespunztoare ale e alurii acestor e%presii'
!rho!"!;(.sArt;,<<22 rho!" !!!!(')(+# !a!"!a?s;3.-i< a!" !!!!!, !E!"!sArt;?esselF;-23@rho%i<< E!" !!!#'3*3#.!#'32(-i !huge!"!e:p;log;realma:<< huge!" !!('*&**e.3#+

!too?ig!"!pi1huge 8

too?ig!" !!!Inf

3.3. *e(+ on.(#ne, ,or$at'( )ate(or, o+-#'n# )e sa(8are *e(+ on.(#ne 5entru rularea MATLAB pe un 57 trebuie pur i simplu e%ecutat un dublu clicH cu mouse!ul pe icon!ul MATLAB& (ac sistemul de operare nu este de tip Iindo0s "este de tip *,+J$ trebuie tastat matla? dup prompter!ul sistemului de operare&
o

Limbajul MATLAB este mult mai simplu de n at dac se renun la inspectarea arid a listelor cu ariabile, funcii i operatori i se utilizeaz n sc.imb comenzile help@! helpdesF@!demo tastate direct de la prompterul MATLAB& 5entru aflarea tuturor informaiilor utile despre o comand sau o funcie se tasteaz help!
urmat de numele comenzii sau funciei respecti e& tip &pdf&

o 5ac.etul MATLAB dispune de asemenea de informaii complete despre utilizare sub forma unei documentaii o Kn cazuri particulare se poate apela la +,T<1,<T, e%ist:nd o legtur la pagina Ieb a firmei productoare& o Alte comenzi utile pentru aflarea de informaii sunt' helpGin@ looFfor@!help!help& <%emple sugesti e de utilizare a comenzii .elp'
!help!sin !SID!!!!Sine' !!!!SID;H<!is!the!sine!of!the!elements!of!H' !=>erloaded!methods !!!!help!sym2sin'm !help!e:p !EHP!!!!E:ponential' !!!!EHP;H<!is!the!e:ponential!of!the!elements!of!H@!e !to!the!H' !!!!For!comple:!I"H.i1J@!EHP;I<!" !EHP;H<1;K=S;J<.i1SID;J<<' ! !!!!See!also!L=G@!L=G(#@!EHPM@!EHPIDT' !=>erloaded!methods !!!!help!sym2e:p'm !!!!help!demtseries2e:p'm !help!plot

!PL=T!!!Linear!plot'!
PL=T;H@J<!plots!>ector!J!>ersus!>ector!H'!If!H!or!J!is!a!matri:@!then!the! >ector!is!plotted!>ersus!the!roGs!or!columns!of!the!matri:@!Ghiche>er!line!up'! If!H!is!a!scalar!and!J!is!a!>ector@!length;J<!disconnected!points!are!plotted' PL=T;J<!plots!the!columns!of!J!>ersus!their!inde:'!If!J!is!comple:@!PL=T;J<! is!eAui>alent!to!PL=T;real;J<@imag;J<<'!In!all!other!uses!of!PL=T@!the!imaginary! part!is!ignored' Larious!line!types@!plot!sym?ols!and!colors!may!?e!o?tained!Gith!PL=T;H@J@S<! Ghere ! S ! is ! a ! character ! string ! made ! from ! one ! element ! from ! any ! or ! all ! the! folloGing!3!colunmsM

!y!!!!!yelloG!!!!!!!!'!!!!!point!!!!!!!!!!%!!!!solid

!m!!!!!magenta!!!!!!!o!!!!!circle!!!!!!!!!M!!!!dotted !c!!!!!cyan!!!!!!!!!!:!!!!!:%marF!!!!!!!!%'!!!!dashdot! !r!!!!!red!!!!!!!!!!!.!!!!!plus!!!!!!!!!!%%!!!!dashed!!! !g!!!!!green!!!!!!!!!1!!!!!star

!?!!!!!?lue!!!!!!!!!!s!!!!!sAuare !G!!!!!Ghite!!!!!!!!!d!!!!!diamond !F!!!!!?lacF!!!!!!!!!>!!!!!triangle!;doGn< !!!!!!!!!!!!!!!!!!!!!7!!!!!triangle!;up< !!!!!!!!!!!!!!!!!!!!!N!!!!!triangle!;left< !!!!!!!!!!!!!!!!!!!!!O!!!!!triangle!;right< !!!!!!!!!!!!!!!!!!!!!p!!!!!pentagram !!!!!!!!!!!!!!!!!!!!!h!!!!!he:agram !!!!!!!!!!!!!!!!!!!!!!!!!! For!e:ample@!PL=T;H@J@9c.M9<!plots!a!cyan!dotted!line!Gith!a!plus!at!each! data!pointP!PL=T;H@J@9?d9<!plots!?lue!diamond!at!each!data!point!?ut!does!not! draG!any!line' PL=T;H(@J(@S(@H2@J2@S2@H3@J3@S3@'''< ! com?ines ! the ! plots ! defined ! ?y ! the! ;H@J@S<!triples@!Ghere!the!H9s!and!J9s!are!>ectors!or!matrices!and!the!S9s!are! strings'!! For ! e:ample@ ! PL=T;H@J@9y%9@H@J@9go9< ! plots ! the ! data ! tGice@ ! Gith ! a ! solid! yelloG!line!interpolating!green!circles!at!the!data!points' The ! PL=T ! command@ ! if ! no ! color ! is ! specified@ ! maFes ! automatic ! use ! of ! the! colors ! specified ! ?y ! the ! a:es ! Kolor=rder ! property' ! The ! default ! Kolor=rder ! is! listed!in!the!ta?le!a?o>e!for!color!systems!Ghere!the!default!is!yelloG!for!one! line@ ! and ! for ! multiple ! lines@ ! to ! cycle ! through ! the ! first ! si: ! colors ! in ! the! ta?le' ! For ! monochrome ! systems@ ! PL=T ! cycles ! o>er ! the ! a:es ! LineStyle=rder! property' PL=T!returns!a!column!>ector!of!handles!to!LIDE!o?$ects@!one!handle!per!line'! The!H@J!pairs@!or!H@J@S!triples@!can!?e!folloGed!?y!parameter2>alue!pairs!to! specify!additional!properties!of!the!lines' See!also!SEMIL=GH@!SEMIL=GJ@!L=GL=G@!G8ID@!KLF@!KLK@!TITLE@!HL/QEL@!JL/QEL@! /HIS@!/HES@!R=LD@!K=L=8DEF@!LEGEDD@!and!SUQPL=T'

4or$at'( )ate(or MATLAB!ul afieaz numerele cu 8 zecimale "setare implicit$& Aceast setare se poate modifica cu ajutorul comenzii formatM
F=8M/T!Set!output!format' /ll!computations!in!M/TL/Q!are!done!in!dou?le!precision' !!!!F=8M/T!may!?e!used!to!sGitch!?etGeen!different!output !!!!display!formats!as!folloGsM !!!!F=8M/T!!!!!!!!!Default'!Same!as!SR=8T' !!!!F=8M/T!SR=8T!!!Scaled!fi:ed!point!format!Gith!,!digits' !!!!F=8M/T!L=DG!!!!Scaled!fi:ed!point!format!Gith!(,!digits' !!!!F=8M/T!SR=8T!E!Floating!point!format!Gith!,!digits' !!!!F=8M/T!L=DG!E!!Floating!point!format!Gith!(,!digits' !!!!F=8M/T!SR=8T!G!Qest!of!fi:ed!or!floating!point!format!Gith !,!digits' !!!!F=8M/T!L=DG!G!!Qest!of!fi:ed!or!floating!point!format!Gith !(,!digits' !!!!F=8M/T!REH!!!!!Re:adecimal!format' !!!!F=8M/T!.!!!!!!!The!sym?ols!.@!%!and!?lanF!are!printed! !!!!!!!!!!!!!!!!!!!!!for!positi>e@!negati>e!and!Eero!elements' !!!!!!!!!!!!!!!!!!!!!Imaginary!parts!are!ignored' !!!!F=8M/T!Q/DS!!!!Fi:ed!format!for!dollars!and!cents' !!!!F=8M/T!8/T!!!!!/ppro:imation!?y!ratio!of!small!integers' !!!!SpacingM !!!!F=8M/T!K=MP/KT!Suppress!e:tra!line%feeds' !!!!F=8M/T!L==SE!!!Puts!the!e:tra!line%feeds!?acF!in'

<%emple'
!c"('333-,)*+&233 c!" !!!!('333, !format!long !c

c!" !!!('333-,)*+&233## !format!short!e !c c!" !!('333,e.### !format!long!e !c c!" !!!!('333-,)*+&233###e.### !format !c c!" !!!!('333,

6+-#'n# )e sa(8are 5entru sal area ariabilelor curente cu care se lucreaz n MATLAB la nc.eierea unei sesiuni de lucru se poate utiliza comanda sa>e& Aceast comand a sal a toate ariabilele curente generate de ctre utilizator ntr!un fiier numit matlab.mat . (ac se dorete se poate da un nume fiierului de date n care se sal eaz ariabilele& <%emplu'
!sa>e!date!c!determ!/

realizeaz sal area datelor c, determ i A ntr!un fiier date.mat & 5entru restituirea ariabilelor ntr!o sesiune de lucru ulterioar se folosete comanda load' <%emplu'
!load!date

(ac se dorete aflarea ariabilelor curente se pot utiliza comenzile Gho@Ghos'

!Gho Jour!>aria?les!areM /!!!!!!!!!c!!!!!!!!!determ!!!! !Ghos !!Dame!!!!!!!!!SiEe!!!!!!!!!Qytes!!Klass !!/!!!!!!!!!!!!2:2!!!!!!!!!!!!!32!!dou?le!array !!c!!!!!!!!!!!!(:(!!!!!!!!!!!!!!+!!dou?le!array !!determ!!!!!!!(:(!!!!!!!!!!!!!!+!!dou?le!array Grand!total!is!)!elements!using!-+!?ytes

5entru tergerea tuturor comanda clear& 3.9.

ariabilelor curente din memoria de lucru se poate utiliza

Crearea ,#:#ere(or MATLAB 0.$ ,#(es1

(eoarece este mult mai comod i util dec:t introducerea comenzilor linie dup linie la prompterul MATLAB, se lucreaz cu fiiere te%t care conin aceste linii program cu comenzile necesare&

Aceste fiiere conin cod n limbajul MATLAB i sunt denumite &m files "sau M!files$& -iierele se creeaz utiliz:nd un editor de te%t i apoi se utilizeaz ca o comand MATLAB obinuit& /unt dou tipuri de fiiere &m'

-iiere /cript, care nu accept argumente de intrare i nu returneaz argumente de ieire& Aceste fiiere opereaz cu datele din spaiul de lucru& 1utine "funcii$, care accept argumente de intrare i returneaz argumente de ieire& Dariabilele utilizate sunt ariabile locale "interne$ ale funciei&

5entru a edea coninutul unui fiier MATLAB, de e%emplu evolutie_studii.m, se folosete comanda'
!type!e>olutieTstudii

,i-iere Script Atunci c:nd se apeleaz la un fiier script, MATLAB!ul e%ecut comenzile gsite n fiierul respecti & -iierele script pot lucra cu date din spaiul de lucru "0orHspace$ sau pot crea date noi cu care opereaz& /cript!urile nu furnizeaz argumente de ieire, iar ariabilele create rm:n n 0orHspace, pentru a fi e entual folosite n calculele ulterioare& -iierele script pot furniza ieiri grafice folosind funcii cum ar fi plot@?ar& <%emplu de fiier script' magicrank.m, cu!urmtoarele comenzi MATLAB'
U!In>estigate!the!ranF!of!magic!sAuares r!"!Eeros;(@32<P for!n!"!3M32 !!!r;n<!"!ranF;magic;n<<P end r ?ar;r<

La tastarea numelui fiierului script "fr e%tensia &m$'


!magicranF

MATLAB!ul e%ecut comenzile, calculeaz rangul unor matrici "matricile magice$, i traseaz graficul cu rezultatele calculului& (up ce se termin e%ecuia fiierului, ariabilele n i r rm:n n spaiul de lucru& )raficul rezultat este prezentat n continuare'

,unc#ii &rutine( Aceste fiiere accept argumente de intrare i furnizeaz argumente de ieire& ,umele fiierului MATLAB "M!file$ i cel al funciei "subrutinei$ respecti e trebuie s fie identice& -unciile "subrutinele$ lucreaz cu ariabile proprii separate de spaiul de lucru uzual al MATLAB!ului& <%emplu' funcia ranF& -iierul M!file ranF'm este disponibil n directorul tool?o:2matla?2matfun /e poate izualiza fiierul cu comanda'
!type!ranF function!r!"!ranF;/@tol< U!8/DS!Matri:!ranF' U!8/DS;/<!pro>ides!an!estimate!of!the!num?er!of! U!!linearly!independent!roGs!or!columns!of!a!matri:!/ U!8/DS;/@tol<!is!the!num?er!of!singular!>alues!of!/ U!!that!are!larger!than!tol' U!8/DS;/<!uses!the!default U!!tol!"!ma:;siEe;/<<!1!norm;/<!1!eps' s!"!s>d;/<P if!nargin""( !!!tol!"!ma:;siEe;/<<!1!ma:;s<!1!epsP end r!"!sum;s!O!tol<P

5rima linie a unei funcii M!file ncepe cu cu :ntul c.eie function& Aceast linie d numele funciei, ordinea i numrul argumentelor& Liniile urmtoare "care ncep cu caracterul N$ sunt linii de comentariu, care de fapt sunt i liniile afiate atunci c:nd se apeleaz la comanda
!help!ranF

1estul liniilor sunt e%ecutabile& Dariabila s@!ca i r, /@ tol!sunt ariabile locale ale funciei i sunt
separate de ariabilele din 0orHspace&

-uncia ranF poate fi utilizat n diferite moduri'


!ranF;/< !r!"!ranF;/< !r!"!ranF;/@('e%)<

)ariabile globale (ac se dorete ca mai multe astfel de subrutine s utilizeze o anume ariabil comun, se declar ariabila respecti ca global utiliz:nd comanda glo?al n toate funciile respecti e& <%emplu' fiierul falling'm'
function!h!"!falling;t< glo?al!G8/LITJ h!"!(221G8/LITJ1t'72P

/e introduc apoi n mod interacti liniile'


!glo?al!G8/LITJ !G8/LITJ!"!32P !y!"!falling;;#M'(M,<9<P

,unc#ia eval -uncia e>al lucreaz cu ariabil te%t pentru implementarea unei faciliti puternice de tip macro te%t& <%presia e>al;s< folosete interpreter!ul MATLAB pentru e aluarea e%presiei sau e%ecuia declaraiei din irul de caractere s& 6E

)ectorizarea 5entru a obine o itez de calcul mare, este foarte important aa!numita ectorizare a algoritmilor n fiierele MATLAB& Acolo unde alte limbaje folosesc bucle de tip for sau D=, MATLAB!ul poate utiliza operaii matriceale sau ectoriale& *n e%emplu simplu este urmtorul'
:!"!#P for!F!"!(M(##( !!!y;F<!"!log(#;:<P !!!:!"!:!.!'#(P end

Dersiunea ectorizat a aceluiai program este


:!"!#M'#(M(#P y!"!log(#;:<P

5rogramatorii MATLAB spun uneori' !ia"a este prea scurt# pentru a "i-o petrece scriind bucle$ Atunci c:nd nu se poate elimina complet folosirea unei bucle se utilizeaz procedura de prealocare& ,unc#ii de "unc#ii Kn MATLAB e%ist o clas de funcii care lucreaz cu funcii neliniare ca argument& -unciile de funcii includ'

)sirea zerourilor 4ptimizare +ntegrare numeric <cuaii difereniale ordinare

MATLAB!ul reprezint funcia neliniar ca o funcie M!file care poate fi ulterior utilizat ca argument de alte funcii MATLAB& <%emplu' *rmtorul fiier creeaz o funcie neliniar'
function!y!"!humps;:< y!"!('2;;:%'3<'72!.!'#(<!.!('2;;:%'&<'72!.!'#-<!%!)P

Aceast funcie poate fi e aluat pentru un set de puncte n inter alul E


:!"!#M'##2M(P y!"!humps;:<P

6 cu programul'

i apoi se poate reprezenta grafic funcia cu comanda


plot;:@y<

)raficul arat c funcia are un minim local la apro%imati x = E&3& (ac de e%emplu utilizm funcia fmins putem gsi imediat aloarea e%act a lui x & 5rimul argument al funciei fmins este c.iar numele funciei pentru care calculm minimul "al doilea parametru este o apro%imare grosier a localizrii minimului$&
!p!"!fmins;9humps9@',< p!" !!!!#')3*#

/e poate acum e alua aloarea funciei n punctul de minim local'


!humps;p< ans!"

66

!!!(('2,2+

3.;. Matr#c#, 8ector# :# +o(#noa$e 5entru a lucra uor i bine cu limbajul MATLAB trebuie n primul r:nd s se n ee manipularea matricilor& Kn MATLAB, o matrice este un tablou dreptung.iular de numere& /calarii de e%emplu sunt matrici 6 % 6, iar matricile cu o singur linie sau coloan sunt de fapt ectori& *n e%emplu celebru de matrice apare n gra ura renascentist Melanc olia realizat de marele artist i matematician amator Albrec.t (Orer& )ra ura este ncrcat de simbolism matematic i la o atent obser are a acesteia se poate distinge n colul din dreapta sus o matrice& Matricea respecti este cunoscut sub numele de ptrat magic i n timpul lui (Orer se considera c are proprieti magice&

6B

%ntroducerea matricilor Matricile se pot introduce n mai multe moduri&


+ntroducerea unei liste e%plicite cu elementele matricei& Kncrcarea unor date din fiere e%terne de date& )enerarea de matrici utiliz:nd funcii built!in& 7rearea de matrici n fiierele M!files&

Dom introduce matricea lui (Orer mai nt:i ca o list de elemente& Trebuie respectate c:te a con enii simple'

<lementele unei linii sunt separate prin irgule sau spaii& /f:ritul unei linii se marc.eaz cu punct i irgul& Lista de elemente care formeaz matricea se delimiteaz cu paranteze drepte' V!W

5entru introducerea matricii lui (Orer tastm'


!/!"!V()!3!2!(3P!,!(#!((!+P!&!)!*!(2P!-!(,!(-!(W

MATLAB!ul a afia matricea'


/!"! !!!!()!!!!!3!!!!!2!!!!(3 !!!!!,!!!!(#!!!!((!!!!!+ !!!!!&!!!!!)!!!!!*!!!!(2 !!!!!-!!!!(,!!!!(-!!!!!(

4 dat introdus, matricea este memorat n 0orHspace i poate fi apelat simplu, ca /& / edem acum' de ce este magicP sum. transpose. diag 7aracterul magic deri din faptul c prin efectuarea unor operaii asupra elementelor matrici rezult numere interesante i surprinztoare& (ac de e%emplu nsumm elementele pe orice linie sau coloan sau de pe cele dou diagonale, om obine acelai numr& / erificm acest lucru cu MATLAB!ul& /uma elementelor de pe cele G coloane se calculeaz rapid cu'
!sum;/< ans!" !!!!3-!!!!3-!!!!3-!!!!3-

5entru calcularea sumelor pe linii, efectum nt:i transpunerea matricii i apoi aplic din nou comanda sum& Transpusa se calculeaz cu'
!/9 ans!" !!!!()!!!!!,!!!!!&!!!!!!!!!!3!!!!(#!!!!!)!!!!(, !!!!!2!!!!((!!!!!*!!!!(!!!!(3!!!!!+!!!!(2!!!!!( !sum;/9<9 ans!" !!!!3-

i apoi

6C

!!!!3!!!!3!!!!3-

/uma elementelor de pe diagonal se calculeaz cu tot cu funcia sum, dar dup ce n prealabil om sorta cu funcia diag!elementele de pe diagonala principal'
!diag;/< ans!" !!!!() !!!!(# !!!!!* !!!!!( !sum;diag;/<< ans!" !!!!3-

*n anume element al matricii, de e%emplu elementul din linia i coloana $ se noteaz /;i@$<& 5rin urmare o alt cale "mai puin rapid$ de a calcula suma de pe patra coloan de e%emplu este urmtoarea'
!/;(@-<!.!/;2@-<!.!/;3@-<!.!/;-@-< ans!" !!!!!3-

(ac specificm un element care nu e%ist n matrice, primim un mesaj de eroare'


!t!"!/;-@,< Inde:!e:ceeds!matri:!dimensions'

+peratorul < 4peratorul M!este foarte important& (e e%emplu, e%presia !(M(# este un ector linie
ans!" (!!!!2!!!!3!!!!-!!!!,!!!!)!!!!*!!!!+!!!!&!!!(#

Alte e%emple'
!(##M%*M,# ans!" (##!!!!&3!!!!+)!!!!*&!!!!*2!!!!),!!!!,+!!!!,( !#Mpi2-Mpi ans!" #!!!!#'*+,-!!!!(',*#+!!!!2'3,)2!!!!3'(-()

<%presia
/;(MF@$<

/e refer la primele F elemente ale coloanei $ a lui /& (ac este utilizat n paranteze operatorul < atunci nseamn c ne referim la toate elementele unei linii sau coloane
!sum;/;M@3<<

calculeaz suma elementelor din coloana a treia a lui /'


ans!" !!!!!3-

4 alt proprietate interesant a ptratului magic este c suma magic CG este obinut i prin nsumarea elementelor matricii i prin mprirea la dimensiunea matricii "G$'
!sum;(M()<2ans!" !!!!!3-

6G

%bserva"ie' suma magic pentru orice ptrat magic n % n este " nC F n$2B "se poate calcula cu ajutorul &ymbolic 'ath (oolbox$& ,unc#ia magic MATLAB!ul are o funcie built!in care creeaz ptrate magice de orice dimensiune "funcie pe care deja am utilizat!o$'
!Q!"!magic;-< Q!"! !!!!()!!!!!2!!!!!3!!!!(3 !!!!!,!!!!((!!!!(#!!!!!+ !!!!!&!!!!!*!!!!!)!!!!(2 !!!!!-!!!!(-!!!!(,!!!!!(

Aceast matrice este aproape identic cu matricea lui (Orer singura diferen fiind c cele dou coloane din mijloc sunt sc.imbate ntre ele& 5entru obinerea din Q a matricii lui (Orer se poate utiliza urmtoarea comand MATLAB'
!/!"!Q;M@V(!3!2!-W< /!"! !!!!()!!!!!3!!!!!2!!!!(3 !!!!!,!!!!(#!!!!((!!!!!+ !!!!!&!!!!!)!!!!!*!!!!(2 !!!!!-!!!!(,!!!!(-!!!!!(

'olinoame 5olinoamele sunt descrise n MATLAB prin ectori linie ale cror elemente sunt de fapt coeficienii polinoamelor n ordinea descresctoare a puterilor& <%emplu' polinomul p"%$=%CF8%F3 este reprezentat n MATLAB astfel'
p!"!V(!#!,!)W

*n polinom poate fi e aluat pentru o aloare a lui % cu ajutorul funciei poly>al'


!poly>al;p@(< ans" (2

Kn e%emplul de mai sus este e aluat polinomul p n punctul % =6& /e pot afla cu uurin rdcinile polinomului folosind funcia roots'
!r"roots;p< r!" !!!#',###!.!2'3&*&i !!!#',###!%!2'3&*&i !!%('####

<%ist numeroase alte funcii i comenzi care se ocup cu operaii asupra polinoamelor, funcii care or fi abordate ntr!un capitol special& (intre acestea amintim comanda care permite nmulirea a dou polinoame, i anume con>'
!p("V(!3!,W p(!" !!!!!(!!!!!3!!!!!, !p2"V2!#!(!#!,W p2!" !!!!!2!!!!!#!!!!!(!!!!!#!!!!!, !p3"con>;p(@p2< p3!" !!!!!2!!!!!)!!!!((!!!!!3!!!!(#!!!!(,!!!!2,

68

3.=.

6+era-#'n# e(e$entare c' $atr#c# :# ,'nc-##

MATLAB!ul opereaz cu matricile cu aceeai uurin cu care lucreaz cu scalarii& 5entru adunarea a dou matrici de e%emplu se folosete pur i simplu semnul F ca la o adunare obinuit& Bineneles c matricile trebuie s aib aceleai dimensiuni pentru a putea fi adunate& <%emplu'
!/"V2!3P(,!%3W /!" !!!!!2!!!!!3 !!!!(,!!!!%3 !Q"V((!%2(P!(2!-W Q!" !!!!((!!!%2( !!!!(2!!!!!!K"/.Q K!" !!!!(3!!!%(+ 2*

5entru nmulirea a dou matrici se folosete operatorul Q , alabil de altfel i pentru operaiile cu scalari& <%emplu'
!D"/1Q D!" !!!!,+!!!%3# (2& %32*

(ac dimensiunile matricilor care se nmulesc nu sunt corespunztoare, atunci a fi furnizat un mesaj de eroare'
!E"V(!23P!%(2!2P(!2W E!" !!!!!(!!!!23 !!!%(2!!!!!2 !!!!!(!!!!!2 !F"/1E XXX!Error!using!""O!1 Inner!matri:!dimensions!must!agree'

5entru @depanareaA programului n cazul unor astfel de greeli se poate utiliza comanda siEe! care ne d informaii despre dimensiunile matricilor respecti e i permite corectarea erorilor'
!siEe;/< ans!" !!!!!2!!!!!2 !siEe;E< ans!" 3

MATLAB!ul include multe alte funcii care opereaz cu matrici i care or fi descrise i utilizate intensi n capitolele urmtoare& Amintim aici c:te a' det@!in>@!ranF@!eig etc& 4 facilitate interesant a MATLAB!ului este aceea c lucreaz cu matricile cu operatori logici i relaionali ntr!un mod asemntor acestor operaii efectuate cu scalari& (e e%emplu, pentru operaiunea scalar
!r"(*O,, r!" !!!!!#

MATLAB!ul rspunde cu r = E, adic )als& (ac dorim de e%emplu s comparm fiecare element al matricii A cu elementul corespunztor din matricea B, procedm asemntor' 63

!L"/N"Q L!" !!!!!(!!!!!# #

4peratorii logici, adic R pentru S+ "A,($, T pentru /A* "41$, U pentru ,* ",4T$, or returna aloarea 6 pentru A(<DV1AT i E pentru -AL/& <%emplu'
!/YQ ans!" !!!!!(!!!!!( !!!!!(!!!!!( !Z/ ans!" !!!!!!! #!!!!!# # #

9. ME5I!L 5E L!CR! MATLAB MATLAB este, dup cum s!a afirmat deja, at:t un limbaj c:t i un mediu de programare& 7a mediu de lucru, MATLAB include faciliti pentru manipularea ariabilelor n spaiul de lucru, pentru importul i e%portul datelor, precum i instrumente pentru dez oltarea i manipularea fiierelor "M!files$ i a aplicaiilor MATLAB& Mediul de programare este utilizat n mod diferit n funcie de platforma pe care ruleaz MATLAB!ul "este orba de sistemul de operare care poate fi de tip Iindo0s sau *ni%$& 9.1. tart'( :# ter$#narea ses#'n#(or )e ('cr'

5e platformele de tip Iindo0s, programul de instalare creeaz un @s.ortcutA la programul e%ecutabil, s.ortcut care poate fi plasat pe desHtop "pe displa#!ul de lucru al calculatorului$& 5rin efectuarea unui dublu clicH pe icon!ul care reprezint acest s.ortcut se starteaz MATLAB!ul& 5entru startarea MATLAB!ului pe un sistem *,+J trebuie tastat matla? la prompterul sistemului de operare& 4#:#ere )e +orn#re 0 tart'+ 4#(es1 La pornire, MATLAB!ul e%ecut automat fiierul master matla?rc'm i, dac e%ist, fiierul startup'm& -iierul matla?rc'm !este rezer at pentru administratorul de sistem "reea$, n timp ce fiierul startup'm este destinat utilizatorilor& (e aici se pot seta cile de acces, se pot defini setrile implicite pentru instrumentele *andle +raphics i se pot predefini ariabile n spaiul de lucru& (e e%emplu, dac n startup'm se introduce linia addpath!2home2me2mytools se adaug un director de instrumente proprii pentru calea implicit de cutare& 5e platformele Iindo0s, fiierul startup'm se plaseaz n directorul local din directorul tool?o:& 6+-#'n# )e +orn#re /e pot specifica opiuni de pornire, aceste opiuni fiind adugate pe calea s.ortcut!ului MATLAB& Kn continuare sunt prezentate c:te a posibile opiuni&

6L

6+-#'nea )e tart'+ Automation Logfile logfilename Minimize Dosplash r MWfile 1egser er *nregser er

5escr#ere /tarteaz MATLAB!ul ca un ser er automat, minimizat, fr @splas. screenA& /crie n mod automat ieirile din MATLAB ntr!un @log fileA specificat& /tarteaz MATLAB!ul minimizat i fr @splas. screenA!ul MATLAB& /tarteaz MATLAB!ul fr afiarea @splas. screenA!ului MATLAB& 1uleaz automat fiierul &m specificat imediat dup pornirea MATLAB&ului& Modific regitrii Iindo0s cu intrri adec ate tip Acti eJ pentru MATLAB& Modific regitrii Iindo0s pentru tergerea intrrilor Acti eJ pentru MATLAB& /e utilizeaz pentru resetarea regitrilor&

(e e%emplu, pentru a porni MATALB!ul i a rula imediat n mod automat un fiier cum ar fi de e%emplu reEultate'm, se poate utiliza urmtoarea cale pentru s.ortcut'
DM5?in5nt5matla?'e:e!2r!reEultate

Ter$#narea 'ne# ses#'n# )e ('cr' 5entru a prsi mediul MATLAB, se tasteaz Auit la prompterul MATLAB& Kn cazul platformelor Iindo0s, se poate termina sesiunea prin selectarea opiunii e:it din meniul -ile sau se poate utiliza butonul close izibil n colul din dreapta sus al ferestrei de comand MATLAB& 7omanda Auit ruleaz fiierul finish'm, dac acesta e%ist n cile de cutare ale MATLAB!ului& /e pot include comenzi de tipul sa>e n acest fiier, pentru a sal a automat ariabilele din spaiul de lucru la nc.eierea sesiunii& 4 alt opiune este de a cere afiarea unei casete de dialog pentru confirmarea terminrii sesiunii& Aceste dou tipuri de opiuni se pot gsi n directorul 2tool?o:2localM
finishsa>'mM finishdlg'mM

permite sal area ariabilelor curente afieaz o caset de dialog pentru confirmarea opririi

9.3. 4ereastra )e co$an)> 0,ereastra +r#nc#+a(>1 -ereastra de comand este fereastra principal prin intermediul creia se poate comunica cu MATLAB!ul& 5e platformele Iindo0s, MATLAB!ul furnizeaz o fereastr special, cu faciliti de tip Iindo0s& 5e sistemele *,+J, fereastra de comand este fereastra terminal din care este lansat MATLAB!ul& +nterpreterul MATLAB afieaz un prompter "OO$ indic:nd faptul c este gata s accepte comenzile utilizatorului& (e e%emplu, pentru introducerea unei matrici C % C se poate tasta'
!/!"!V(!2!3P!-!,!)P!*!+!(#W

i la apsarea tastelor Enter sau Ret'rn, MATLAB!ul rspunde cu'


/!" !!!!!(!!!!!2!!!!!3 !!!!!-!!!!!,!!!!!) !!!!!*!!!!!+!!!!(#

6;

9.3.1. E)#tarea (#n##(or )e co$an)> ?n ,ereastra +r#nc#+a(> Tastele de tip sgeat i tasta Ctr( permit apelarea, editarea i e entual reutilizarea comenzilor editate anterior& (e e%emplu'
!rho!"!;(.!sAt;,<<22 Undefined!function!or!>aria?le!9sAt9'

5entru eliminarea greelii de editare a numelui funciei radical " sArt$ nu se mai editeaz din nou toat linia, ci se folosete tasta , apare din nou linia de comand greit i apoi cu tasta se deplaseaz cursorul pe linie i se repar greeala& Lista complet a sgeilor i tastelor care permit controlul asupra operaiunilor cu linia de comand este prezentat n tabelul urmtor' Arro@ "eA Contro( "eA Ctr(.+ Ctr(.n Ctr(.% Ctr(., ctr(. ctr(. ho$e en) esc )e( %acks+ace Ctr(.r Ctr(.( Ctr(.a Ctr(.e Ctr(.' Ctr(.) Ctr(.h Ctr(.k 6+erat#on 1ecall pre ious line& 1ecall ne%t line& Mo e bacH one c.aracter& Mo e )or0ard one c.aracter& Mo e rig.t one 0ord& Mo e left one 0ord& Mo e to beginning of line& Mo e to end of line& 7lear line& (elete c.aracter at cursor& (elete c.aracter before cursor& (elete "kill$ to end of line&

/tergerea "erestrei de comand0 5entru tergerea coninutului "afiajul$ ferestrei principale se poate folosi comanda clc, care ns nu are ca efect tergerea ariabilelor curente din spaiul de lucru& 1ontrolul a"i-0rii paginilor ecran 2n "ereastra de comand0 5entru a controla afiarea paginilor n fereastra de comand se utilizeaz comanda more& /etarea implicit este more off& Atunci c:nd setm more on, o pagin ecran este afiat& Apoi se poate utiliza' Ret'rn +ace Bar B To ad ance to t.e ne%t line To ad ance to t.e ne%t page To stop displa#ing t.e output

3ntreruperea unui program care ruleaz0 /e poate ntrerupe un program care ruleaz prin apsarea pe tastele Ctr(.c& 5e sistemele Iindo0s se a atepta terminarea e%ecuiei funciilor de tip built!in sau a fiierelor de tip M<J!file& 5e sistemele *,+J, e%ecuia programului se a nc.eia imediat&

6M

1omanda "ormat 7omanda format controleaz formatul numeric al alorilor afiate pe ecran i a fost deja discutat ntr!un paragraf anterior& 7omanda are efect asupra afirii numerelor, i nu asupra modului intern de reprezentare a acestora& 5e sistemele Iindo0s, se poate sc.imba setarea implicit a formatului prin selectarea meniului Pre,erences din meniul 4#(e i selectarea formatului dorit din Genera(& Suprimarea a"i-0rii rezultatelor unei linii comand0 (eoarece la apsarea tastelor Ret'rn sau Enter MATLAB!ul afieaz automat rezultatele pe ecran, dac nc.eiem linia de comand cu punct i irgul, a fi realizat calculul, dar nu a mai fi afiat& Aceast facilitate este important atunci c:nd a em de lucrat cu matrici mari sau cu multe date& <%emplu'
/!"!magic;(##<P

Linii de comand0 lungi (ac o declaraie nu ncape ntr!o linie de comand, se pot utiliza trei puncte urmate de Ret'rn sau Enter pentru a indica faptul c e%presia continu pe linia urmtoare& <%emplu'
s!"!(!%!(22!.!(23!%!(2-!.!(2,!%!(2)!.!(2*!''' !!!!!!%!(2+!.!(2&!%!(2(#!.!(2((!%!(2(2P

/paiile albe din jurul semnelor ", ., % sunt opionale i pot mbunti citirea liniilor& Ma%imul numrului de caractere pe o singur linie este de GEM3& 9.3.3. 5escr#erea ,erestre# )e co$an)> -ereastra de comand permite rularea comenzilor MATLAB, lansarea unor instrumente cum ar fi <ditor2(ebugger i permite startarea toolbo%!urilor&

Toolbar &bara de instrumente( Toolbar!ul din fereastra de comand permite accesul la operaii simple'

BE

Meniuri Meniurile fereastrei de comand furnizeaz accesul la operaii care nu sunt accesibile din toolbar&

're"erin#e /unt utilizate pentru controlarea operaiilor i a modului de prezentare din fereastra de comand& 5entru aceasta se selecteaz Pre,erences din meniul 4#(e, iar dup apariia casetei de dialog Pre,erences se pot seta preferinele pentru Genera(, Co$$an) W#n)o@ 4ont i Co+A#n/ 6+t#ons.

B6

Genera( Pre,erences<

N'$er#c 4or$at = /pecific formatul numeric implicit& E)#tor Pre,erence = 5ermite folosirea editorului MATLAB sau specificarea altui editor& *e(+ 5#rectorA = /pecific directorul n care se afl fiierele de tip .elp& Echo 6n = /eteaz facilitatea de afiare a liniilor program n timp ce un program MATLAB este rulat& ho@ Too(%ar = Arat sau ascunde toolbar!ul& Ena%(e Gra+h#ca( 5e%'//#n/ = 5ermite depanarea "(ebugger$ n mod automat la fiecare breaHpoint&

Co$$an) W#n)o@ 4ont< /pecific caracteristicile fontului pentru te%tul afiat n fereastra de comand& Co+A#n/ 6+t#ons< /pecific opiunile utilizate la copierea unor obiecte din MATLAB n clipboard pentru rescrierea n alte aplicaii& 9.3.9. +a-#'( )e ('cr' a( MATLAB.'('# 0@orks+ace1

/paiul de lucru conine un set de ariabie "numite tablouri sau matrice$ care pot fi mane rate din linia de comand& /e pot folosi comenzile Gho i Ghos "deja prezentate$ pentru a edea care sunt ariabilele curente din 0orHspace& 5entru tergerea ariabilelor din 0orHspace se utilizeaz comanda clear& 3nc0rcarea -i salvarea din 4or5space 7omenzile sa e i load descrise ntr!un subcapitol anterior au rolul de a sal a ariabilele din spaiul de lucru i respecti de a le rencrca ntr!o sesiune ulterioar& Aceste comenzi se pot folosi i pentru a importa i e%porta date& 5e platformele Iindo0s, operaiile sa>e@ ! load sunt disponibile i prin selectarea opiunilor a8e Works+ace As, respecti Loa) Works+ace din meniul 4#(e& 7itirea sau scrierea unor fiiere &mat din programe e%terne n 7 sau -ortran se poate face cu +nterfaa de Aplicaii 5rogram "A5+$& -ormatul n care comanda sa>e stoc.eaz datele poate fi controlat prin adugarea unor flag!uri n lista de nume de fiiere sau ariabile'
%mat %ascii %ascii!%dou?le %ascii!%dou?le![ta?s %>%append

*tilizeaz formatul binar tip &MAT "implicit$& *tilizeaz formatul A/7++ pe ; digii& *tilizeaz formatul A/7++ pe 63 digii& (elimiteaz elementele tablourilor cu tab!uri& /al eaz ntr!un format pe care ersiunea G MATLAB l poate desc.ide& Adaug datele ntr!un fiier &MAT e%istent&

BB

%bserva"ie, atunci c:nd se sal eaz coninutul spaiului de lucru n format A/7++ trebuie sal at c:te o ariabil pentru a permite reconstituirea ulterioar a acesteia& 3nc0rcarea unor "i-iere cu date AS1%% 7omanda load permite importul de fiiere de date A/7++& <%emplu'
!load!di>erse'dat

creeaz o ariabil cu numele di>erse n 0orHspace& (ac datele A/7++ au m linii cu n alori pe fiecare linie, rezultatul a fi o matrice numeric m % n& *ume de "i-iere ca -iruri de caractere (ac numele fiierelor sau ariabilelor cu care se lucreaz sunt stocate n ariabile de tip ir de caractere, se poate folosi dualitatea comand2funcie pentru a apela load i sa>e ca funcii& (e e%emplu
!sa>e;9myfile9@9L/8(9@9L/829< !/!"!9myfile9P !load;/< !sa>e!myfile!L/8(!L/82 !load!myfile

au acelai efect ca 5entru ncrcarea sau sal area mai multor fiiere cu acelai prefi% i cu sufi%e numere ntregi succesi e se poate utiliza o bucl& <%emplu'
file!"!9data9P for!i!"!(M(# !!!!$!"!i'72P !!!!sa>e;Vfile!int2str;i<W@9$9<P end

6ildcards 7omenzile load i sa>e permit specificarea unui caracter special de tip 0ildcard "1$& <%emplu'
!sa>e!rundata!:1

sal eaz toate ariabilele din 0orHspace care ncep cu : n fiierul rundata'mat& Bro4ser$ul 6or5space Bro0ser!ul IorHspace permite izualizarea coninutului spaiului de lucru curent "este de fapt arianta grafic a comenzii Ghos$& 5entru a desc.ide acest instrument, se selecteaz ho@ Works+ace din meniul 4#(e i apoi se face clicH din mouse pe tasta Works+ace Bro@ser din toolbar&

9.3.;.

C># )e c>'tare BC

MATLAB!ul utilizeaz o cale de cutare "search path$ pentru a gsi fiierele &m & Aceste fiiere sunt organizate n directoare, din care unele sunt furnizate de MATLAB i altele sunt disponibile separat ca toolbo%!uri& (ac de e%emplu tastm numele fis la prompterul MATLAB, interpreterul MATLAB a face urmtoarea cutare'
6& B& C& G&

7aut pe fis ca pe o ariabil& Derific dac fis este o funcie tip buit!in& 7aut n directorul curent fiierul numit fis'm& 7aut n directoarele aflate n calea de cutare fiierul fis'm&

Sc imbarea c0ii de c0utare 7alea de cutare poate fi afiat sau sc.imbat folosind funciile path, addpath, rmpath'
Path!determin path;s<@

rentoarcerea la calea curent&

unde s este un ir de caractere, seteaz calea la s& adaug noi directoare la calea de

addpath ! 2home2li? ! \i! path;path@92home2li?9<

cutare&
rmpath!2home2li?

terge calea 2home2li?&

7alea de cutare implicit este definit n fiierul pathdef'm n directorul local' ,i-iere pe calea de c0utare 5entru a afia calea de cutare se poate folosi path& (ac dorim s edem ce fiiere MATLAB sunt ntr!un director se utilizeaz comanda Ghat& <%emplu' !Ghat!matla?2elfun 5entru a edea coninutul unui fiier se folosete comanda type "deja descris ntr!un paragraf anterior$& <%emplu' !type!ranF 5entru editarea unui fiier M!file se poate utiliza edit& <%emplu' !edit!ranF 'at Bro4ser MATLAB!ul furnizeaz i un bro0ser al cii de cutare " Path Bro@ser$ cu o interfa grafic pentru izualizarea i sc.imbarea cii de cutare& 5entru startarea acestui bro0ser se utilizeaz pathtool, sau se selecteaz et Path din meniul 4#(e, sau se face clicH pe butonul Path Bro@ser din toolbar&

BG

Meniurile din Path Bro@ser pot fi folosite pentru'


Adugarea unui director pe calea de cutare& Stergerea "ndeprtarea$ unui director din cale& /al area setrilor n fiierul pathdef'm& 1estabilirea setrilor implicite&

Directorul curent MATLAB!ul menine un director curent pentru lucrul cu fiiere de tip &m i &mat& 5e platformele Iindo0s, directorul curent iniial este specificat n s.ortcut!ul utilizat pentru pornirea MATLAB!ului& 5entru sc.imbarea setrilor implicite se poate face clicH cu butonul din dreapta al mouse!ului i se selecteaz meniul Pro+ert#es& 5esch#)erea ,#:#ere(or ?n MATLAB /e pot desc.ide fiiere n funcie de e%tensiile lor prin folosirea funciei open@ care este o funcie e%tensibil de ctre utilizator& /e pot include i alte tipuri de fiiere n afara fiierelor MATLAB standard' N'$e -igure file "1'fig$ M!file "name'm< Model "name'mdl$ 5!file "name'p$ Ac-#'ne (esc.ide o figur ntr!o fereastr tip figur& (esc.ide fiierul name de tip &m n <ditor& (esc.ide modelul name n /imulinH& (esc.ide fiierul corespunztor name'm, dac e%ist, n <ditor& B8

Dariable Alte e%tensii "name'custom$

(esc.ide tabloul name n Arra# <ditor "tabloul trebuie s fie numeric$X open apeleaz open>ar& (esc.ide name'custom prin apelarea funciei .elper opencustom, unde opencustom este o funcie definit de utilizator&

9.9. 4ereastra /ra,#c> 0,#/'re1 MATLAB!ul direcioneaz ieirile grafice spre o fereastr distinct de fereastra de comand& Aceast fereastr grafic este denumit )igur# ")igure$& -unciile grafice creeaz n mod automat o nou fereastr grafic dac nu e%ist una curent& (ac e%ist o astfel de fereastr, MATLAB!ul o a utiliza& (ac e%ist mai multe ferestre de tip figur, atunci una dintre ele este asignat ca fiind fereastra curent "n general este ultima fereastr figur utilizat$& -uncia figure genereaz ferestre grafice& (e e%emplu,
figure!

genereaz o nou fereastr i o face fereastra curent& 4 funcie grafic, cum ar fi funcia plot, genereaz un grafic n fereastra de tip figur& (e e%emplu,
t!"!#Mpi2(##M21piP y!"!sin;t<P plot;t@y<

traseaz graficul funciei sinus de la E la B iar dac nu ntr!una nou creat&

n fereastra curent de tip figur, dac aceasta e%ist,

'relucrarea gra"icelor cu 'lot 7ditor (up generarea unui grafic "plot$, se pot face sc.imbri i prelucrri ale graficului cu interfaa grafic P(ot E)#tor& -igura urmtoare ilustreaz principalele faciliti ale ferestrei grafice i ale interfeei P(ot E)#tor&

B3

5entru sal area unei figuri se selecteaz a8e din meniul 4#(e& 5entru sal area ntr!un format diferit, cum ar fi T+--, necesar utilizrii n alte aplicaii se selecteaz E2+ort din meniul 4#(e. I$+ort'( :# e2+ort'( )e )ate /unt multe posibiliti de a realiza importul i e%portul de date ntre MATLAB i alte aplicaii& Kn majoritatea cazurilor se pot utiliza facilitile MATLAB de a citi sau scrie fiiere "pentru aplicaii complicate trebuie scrise programe n 7 sau -ortran$&
C&G&

I$+ort'( )e )ate Kn tabelul urmtor sunt prezentate c:te a metode de import date' Meto)a +ntroducerea unei liste e%plicite de elemente 7rearea de date ntr! un fiier &m Kncrcarea datelor dintr!un fiier A/7++ CCn) tre%'#e 't#(#Dat> $eto)a. Mo) )e 't#(#Dare Atunci c:nd cantitatea de date este mic& /e tasteaz pur i simplu datele utiliz:nd parantezele drepte "V W$& /e utilizeaz un editor de te%t pentru generarea unui fiier &m& Metoda este util atunci c:nd datele nu sunt deja n form digital& <ste ntr!un fel similar cu prima metod& -iierele A/7++ stoc.eaz datele pe linii cu un numr egal de elemente spaiate prin blanc!uri, linii nc.eiate cu <nter& Aceste fiiere se pot edita cu un editor de te%te obinuit& (atele sunt introduse n MATLAB cu funcia load& /e poate utiliza dlmread dac este necesar specificarea altor delimitatori&

7itirea datelor cu Metoda este folosit c:nd se ncarc date de la alte aplicaii, date care au fopen, fread i cu propriul lor format& funciile de intrare2ieire Dlmread -uncii specializate 7itete fiiere de date A/7++& de citire a fiierelor Te:tread 7itete date de tip caracter sau numerice dintr!un fiier i ]F(read Imread /uread ]a>read 7rearea de fiiere tip M<J pentru citirea datelor (ez oltarea unor programe n -ortran sau 7 le con ertete n ariabile MATLAB& 7itete fiiere de tip "]S($ "tip foaie de lucru$ 7itete din fiiere grafice& 7itete fiiere de sunet tip "'au$& 7itete fiiere de sunet Microsoft IAD< "'Ga>$&

<ste metoda potri it dac sunt deja disponibile rutine 7 sau -ortran pentru citirea datelor din alte aplicaii& /e utilizeaz n cazuri comple%e pentru translatarea unor date n format &mat i apoi ncrcarea cu comanda load&

E2+ort'( )ate(or Kn tabelul urmtor sunt prezentate c:te a metode de e%port date' Meto)a CCn) tre%'#e 't#(#Dat> $eto)a. Mo) )e 't#(#Dare

BL

-olosirea comenzii 5entru tablouri de date de mic dimensiune se folosete comanda diary! diary pentru crearea unui fiier de tip jurnal i afiarea ariabilelor& +eirea diary! include comenzile MATLAB folosite ntr!o sesiune de lucru& /al area datelor n /e utilizeaz comanda sa>e cu opiunea %ascii& /e poate folosi format A/7++ dlmGrite dac este necesar specificarea altor delimitatori& /crierea datelor n formate speciale -uncii specializate de scriere a fiierelor /e folosesc fGrite i alte funcii +24 de ni el sczut& <ste util la scrierea datelor n formate cerute de alte aplicaii& DlmGrite /crie fiiere n format A/7++& GF(Grite /crie fiiere tip "]S($& ImGrite /crie imagini pentru fiiere grafice& /uGrite /crie fiiere de sunet tip "'au$& ]a>Grite /crie fiiere de sunet tip Microsoft IAD< "'Ga>$&

7rearea unor fiiere <ste metoda potri it dac sunt deja disponibile rutine 7 sau -ortran pentru tip M<J pentru scrierea datelor n formate cerute de alte aplicaii& scrierea datelor /crierea datelor n fiiere tip &MAT /e folosete comanda sa>e i apoi se scrie un program n -ortran sau 7 pentru translatarea fiierului &mat n formatul dorit&

4#:#ere )e t#+ te2t c' )e(#$#tator# -unciile dlmread i dlmGrite amintite mai sus permit citirea i scrierea unor alori separate prin delimitatori nt!un fiier de date A/7++& *n delimitator este orice caracter care separ alorile& <%emplu' considerm un fiier fiE'dat ale crui componente sunt separate prin punct i irgul'
*'2P+',P)'2P)') ,'-P&'2P+'(P*'2

7itirea i transcrierea componentelor ntr!un tablou "matrice$ / se face astfel'


/!"!dlmread;9fiE'dat9@!9P9<P

Kn mod similar se folosete dlmGrite pentru scrierea unui te%t cu delimitatori ntr!un fiier e%tern'
/!" !!!!!(!!!!!2!!!!!3 !!!!!-!!!!!,!!!!!)

dlmGrite;9myfile9@/@9P9<

myfile a conine'
(P2P3 -P,P)

C#t#rea ,#:#ere(or c' ,or$at 'n#,or$ -uncia te:tread citete date de tip caracter sau numerice dintr!un fiier i le transcrie n ariabile MATLAB folosind specificatorii de con ersie care definesc lungimea c:mpului de date i formatul acestora& -uncia te:tread este util pentru fiiere cu format uniform i cunoscut "de e%emplu cu delimitatori de tip irgul sau tab$& <%emplu' fie fiierul mydata'dat '
Sally!!!!Type(!(2'3-!-,!Jes

B;

5entru citirea fiierului mydata'dat ca fiier cu format liber se folosete formatul de con ersie UM
Vnames@types@:@y@ansGerW"te:tread;9mydata'dat9@9Us!Us!Uf!Ud!Us9@(<

unde Us citete un ir de caractere separat prin spaii albe, Uf citete o aloare tip floating point, i Ud citete un ntreg cu semn& MATLAB a rspunde'
names!"! !!!!9Sally9 types!"! !!!!9Type(9 :!" !!(2'3-############ y!" !!!!-, ansGer!"! !!!!9Jes9

ch#$%area )e )ate ?ntre +(at,or$e 0s#ste$e )e o+erare1 Kn unele situaii este necesar transferul de date i programe ntre utilizatori care lucreaz cu sisteme de operare diferite& Aplicaiile MATLAB constau n fiiere &m cu funcii i script!uri i fiiere tip &mat cu date binare& Ambele tipuri de fiiere pot fi transportate direct ntre diferite computere'

-iierele &m conin te%t simplu i sunt independente de @mainA& -iierele &mat sunt binare i dependente de @mainA dar pot fi transportate ntre computere deoarece conin semntura de @mainA n antetul fiierului&

5entru utilizarea i transportul aplicaiilor MATLAB pe di erse computere "sisteme de operare$ trebuie s ne asigurm c fiierele &mat se transmit n binary )ile mode i fiierele &m n -&.// )ile mode& Co$an)a )#arA 7omanda diary genereaz o copie a sesiunii de lucru MATLAB ntr!un fiier disc "fr grafice$& /e poate izauliza i edita te%tul rezultat cu orice procesor de te%te& (e e%emplu, pentru crearea unui fiier cu numele octom?2)'out care conine comenzile i ieirile "rspunsurile$ MATLAB corespunztoare, trebuie tastat'
diary!octom?2)'out

5entru oprirea nregistrrii sesiunii se folosete'


diary!off

9.=.

!t#(#Darea $e$or#e#

MATLAB!ul necesit o zon continu de memorie pentru stocarea datelor din fiecare matrice& (e asemenea, imaginile i filmele "animaia$ cer o mare cantitate de memorie& Kn plus, .arta de pi%eli "pi%map$ folosit pentru imagini cere o cantitate de memorie proporional cu suprafaa imaginii de pe ecran& 4 imagine color de 8EE%8EE pi%eli cere 6 Mb de memorie& 5entru limitarea memoriei necesare trebuie limitat dimensiunea imaginilor de pe ecran&

BM

8ezolvarea erorilor de memorie (ac nu e%ist memorie suficient, n cazul unor matrici de dimensiuni mari este posibil apariia unei erori de memorie de tip @out of memor#A& /e poate ncerca o defragmentare a memoriei cu comanda pacF& (ac astfel de erori @out of memor#A sunt dese se pot ncerca i alte metode' Kn cazul sistemelor Iindo0s se crete memoria irtual folosind Aste$ Pro+ert#es pentru Per,or$ance, instrument accesibil din Contro( Pane(& 5entru sisteme *,+J trebuie cerut administratorului de sistem s creasc spaiul s0ap& Administrarea memoriei MATLAB MATLAB!ul utilizeaz funciile 7 standard malloc i free pentru alocarea memoriei dinamice& Aceste rutine menin de regul o rat relati lent de utilizare a memoriei alocat de sistemul de operare& 5entru MATLAB, malloc i free aloc memoria ntr!un ritm mai rapid& 5e msur ce MATLAB!ul nu mai are ne oie de memorie, malloc i free nu returneaz memoria adiional sistemului de operare "rutinele presupun c dac a fost ne oie de o cantitate mare de memorie o dat, atunci este posibil s mai fie ne oie nc o dat$& (in acest moti este posibil ca alte aplicaii care ruleaz s nu poat dispune de memorie, c.iar dac MATLAB!ul nu mai are ne oie& 5entru a diponibiliza cantitatea de memorie trebuie terminat sesiunea MATLAB& ;. E5IT6R!LE5EB!GGER.!L FI PR64ILER.!L MATLAB ;.1. E)#tor'(E5e%'//er.'( MATLAB MATLAB!ul dispune de un editor propriu, editor care este asociat i cu un program de depanare "debugger$& <ditorul2debugger!ul ofer posibilitatea de a efectua operaiunile de editare de baz precum i accesul la instrumente de depanare a fiierelor &m & 5ac.etul <ditor2(ebugger ofer i o interfa grafic uor de utilizat& 5entru lansarea editorului se tasteaz la prompterul MATLAB comanda edit& /e pot folosi i butoanele2meniurile accesibile din
fereastra de comand&

CE

etarea #$+(#c#t> a E)#tor'('# -acilitile de editare i depanare sunt setate s fie acti e n mod implicit atunci c:nd MATLAB!ul este instalat& (ac se dorete instalarea altui editor sau nu se dorete apelarea la depanarea n regim grafic se pot dezacti a aceste faciliti prin setarea corespunztoare& (e e%emplu "n *,+J$ se modific Zhome2'Hdefaults file' matla?1?uiltInEditorM!=ff matla?1graphicalDe?uggerM!=ff Trebuie rulat :rd?!%merge!Zhome2'Hdefaults nainte de pornirea MATLAB!ului& 5e%'//er.'( MATLAB. E2e$+(e )e )e+anare a ,#:#ere(or MATLAB (ebugger!ul permite identificarea erorilor de programare& 5rin folosirea debugger!ului se poate izualiza coninutul 0orHspace!ului n orice moment n timpul e%ecuiei unei funcii i se poate e%ecuta programul "codul$ MATLAB linie cu linie& 5entru folosirea acestui instrument de depanare se poate utiliza interfaa grafic a debugger! ului sau se pot folosi linii de comand& (epanarea permite corectarea a dou tipuri de erori' <rori de sinta%, cum ar fi scrierea incorect a numelui unei funcii sau omiterea unor paranteze& MATLAB!ul detecteaz majoritatea acestor erori i afieaz un mesaj de eroare care descrie natura erorii i numrul liniei din programul &m n care a aprut eroarea respecti & <rori de rulare "de calcul$, care sunt mai mult de natur algoritmic& (e e%emplu este posibil s modificm o alt ariabil dec:t trebuie sau s efectum un calcul incorect& Aceste erori sunt obser ate atunci c:nd fiierul rulat furnizeaz rezultate necorespunztoare& Kn timp ce erorile de sinta% se corecteaz realti uor pe baza mesajelor de eroare, erorile de rulare sunt mai greu de depanat& /e pot utiliza n acest caz mai multe te.nici de depanare' /e ndeprteaz delimitatorii de tip punct i irgul de la sf:ritul liniilor program& Astfel la rularea programului or fi afiate i rezultatele intermediare corespunztoare fiecrei linii& /e adaug comanda Fey?oard n fiierele &m care sunt depanate& Aceast comand oprete e%ecuia programului respecti , d controlul la tastatur i d posibilitatea e%aminrii i sc.imbrii unor funcii sau ariabile& Acest mod de lucru este indicat printr!un prompter special' YSOO&Y 5entru a continua e%ecuia, se tasteaz return i se apas apoi tasta Ret'rn& /e folosete (ebugger!ul MATLAB& (ebugger!ul este util deoarece permite accesul la funciile din 0orHspace, e%aminarea i e entual modificarea coninutului acestora& (ebugger!ul permite setarea sau tergerea unor puncte de oprire' breakpoints, care sunt linii speciale n programul MATLAB la nt:lnirea crora e%ecuia se oprete i sunt posibile operaii de sc.imbare i de e%ecuie a liniilor de comand una c:te una& E2e$+(' )e )e+anare 5entru a ilustra procedurile de depanare disponibile "ndeosebi pentru cazul erorilor de rulare$ om folosi un e%emplu preluat din '-(0-B 1ser +uide& Dom scrie un fiier denumit >ariance'm care este o funcie a :nd ca intrare un ector i ca ieire un scalar& -iierul apeleaz la o alt funcie, numit sAsum, care calculeaz o sum medie ptratic a ectorului de intrare&
function!y!"!>ariance;:< mu!"!sum;:<2length;:<P

C6

tot!"!sAsum;:@mu<P y!"!tot2;length;:<%(<P

Kn fiierul sAsum'm se strecoar intenionat o eroare&


function!tot!"!sAsum;:@mu< tot!"!#P for!i!"!(Mlength;mu< !!!!tot!"!tot!.!;;:;i<%mu<'72<P end

5entru erificarea corectitudinii calculelor, folosim funcia MATLAB std "calculeaz de iaia standard$ care permite efectuarea unui calcul ec.i alent& /e introduce mai nt:i un ector de intrare de test'
!>!"!V(!2!3!-!,WP apoi se utilizeaz funcia std' !>ar(!"!std;><'72 >ar(!" !!!!2',###

Kncercm funcia >ariance care apeleaz funcia sAsum "scris eronat$'


!my>ar(!"!>ariance;>< my>ar(!" !!!!!(

1spunsul este greit& Dom ncerca cu debugger!ul s gsim i s corectm greeala& Depanarea cu ajutorul inter"e#ei gra"ice a Debugger$ului -. 2entru startarea procedurii de depanare' (ac fiierul &m "adic >ariance'm$ a fost creat cu editorul MATLAB i suntem n fereastra E)#torE5e%'//er, se continu din acest punct& (ac fiierul a fost creat cu un editor e%tern, se starteaz <ditor2(ebugger!ul i apoi se face clicH pe butonul 6+en M.,#(e din toolbar& Toolbar!ul <ditor2(ebugger conine o serie butoane descrise n continuare' co+ Too(%ar /eteaz2 Sterge BreaHpoint Sterge toate BreaHpoint! urile /tep +n "5as n$ /eteaz sau terge un breaHpoint pe linia pe care este D?stop2 D?clear poziionat cursorul& Sterge toate breaHpoint!urile care sunt setate n mod D?clear! all curent& <%ecut linia curent a fiierului &m i dac linia este D?step ! in o apelare la alt funcie sare "face un pas$ n funcia respecti & 5escr#ere Co$an)> Ech#8a(ent>

/ingle /tep D?step "*n singur <%ecut linia curent a fiierului &m & pas$ 7ontinu e%ecuia fiierului p:n la terminare sau D?cont 7ontinu p:n la alt breaHpoint& /f:rit +eirea din starea de depanare& d?Auit depanare CB

5rin apsarea butonului din dreapta al mouse!ului n fereastra editorului se poate obine un meniu cu toate aceste opiuni& B. &etarea Breakpoint-urilor 5unctele de oprire "breaHpoint!uri$ determin oprirea e%ecuiei fiierului la linia specificat i permit e aluarea i sc.imbarea ariabilelor din 0orHspace nainte de reluarea e%ecuiei& BreaHpoint! ul este indicat printr!un semn rou de stop " $ nainte de linia respecti & 5entru e%emplul considerat, la nceputul depanrii nu se tie unde ar putea fi eroarea, ns un loc logic de amplasare a unui breaHpoint pentru a face erificri este n linia G a funciei >ariance'mM
y!"!tot2;length;:<%(<P

5entru setarea breaHpointului se poziioneaz cursorul pe linia G i se face clicH pe butonul din toolbar sau se alege et Break+o#nt din meniul 5e%'/. .. 3xaminarea variabilelor 5entru erificarea ariabilelor, se e%ecut mai nt:i funcia din fereastra de comand' >ariance;>< Atunci c:nd e%ecuia programului ajunge la breaHpoint, o sgeat galben orizontal " $ arat urmtoarea linie care a fi e%ecutat& (ac sgeata galben este ertical " $ atunci aceasta indic o pauz la sf:ritul unui script sau a unei funcii i permite e%aminarea ariabilelor nainte de rentoarcerea la funcia principal&

Acum putem erifica alorile ariabilelor mu i tot& /e selecteaz te%tul care conine ariabilele i se face clicH din butonul drept al mouse!ului dup care se alege din meniu E8a('ate e(ect#on& Kn fereastra de comand a fi afiat at:t te%tul selectat c:t i rezultatul'
SOO!mu mu!"! !!!!!!3 SOO!tot tot!" !!!!!!-

(in analiza acestor alori se obser c eroarea se afl n sAsum& 4. &chimbarea contextului spa"iului de lucru /e poate folosi meniul tack pentru sc.imbarea conte%tului spaiului de lucru, adic pentru ieirea din funcia >ariance i izualizarea coninutului 0orHspace!ului, prin selectarea din meniu a opiunii Base Works+ace< CC

5rin utilizarea comenzii Ghos sau a Bro0serului IorHspace se or izualiza ariabilele > i my>ar(, ca de altfel i celelalte ariabile create& 5entru ntoarcerea la conte%tul spaiului de lucru local al funciei >ariance se selecteaz Gar#ance din meniu& 3. 3xecutarea pas cu pas a programului 5i continuarea execu"iei /e terge breaHpoint!ul din linia G din >ariance'm prin plasarea cursorului pe linie i selectarea opiunii C(ear Break+o#nt din meniul 5e%'/. /e continu e%ecuia programului cu Cont#n'e din meniul 5e%'/. /e desc.ide sAsum'm i se seteaz un breaHpoint la linia G pentru erificarea buclei i a calculelor& /e ruleaz din nou >ariance' <%ecuia se a opri acum la linia G din sAsum&

/e poate acum e alua indicele buclei iM


SOO!i i!" !!!!!!(

dup care prin selectarea opiunii #n/(e te+ din meniul 5e%'/ se e%ecut linia urmtoare& /e e alueaz ariabila totM
SOO!tot tot!" !!!!!!!-

/e selecteaz din nou #n/(e te+<


for!i!!"!(Mlength;mu<

/e obser c bucla este iterat numai p:n la lungimea lui mu, care este scalar, i nu p:n la lungimea lui :, ectorul de intrare "aceasta este de fapt greeala$& 4 dat eroarea gsit se selecteaz H'#t 5e%'//#n/ i se termin e%ecuia programului& /e terge breaHpoint din sAsum i se pune un breaHpoint la linia G din >ariance'm@ dup care rulm din nou'
>ariance;><

CG

La oprirea e%ecuiei se seteaz aloarea lui tot la aloarea corect "6E$'


SOO!tot!"!(# tot!"! !!!!!!!!(#

/electm Cont#n'e E2ec't#on i obinem rezultzatul corect& 6. (erminarea sesiunii de depanare /e selecteaz E2#t E)#torE5e%'//er din meniul 4#(e i se termin sesiunea de depanare& 5entru corectarea definiti a erorii se folosete editorul i se ruleaz din nou programul pentru o ultim erificare& Depanarea din linia de comand0 -olosirea facilitilor de depanare se poate realiza i direct din linia de comand, prin intermediul unui set de comenzi& Aceste comenzi sunt prezentate n forma lor general n tabelul urmtor& 5escr#ere #nta2>
/etarea unui breaHpoint& Stergerea unui breaHpoint&

/top la atenionare, eroare sau generarea de ,a,2+nf&

d?stop!at!lineTnum!in! fileTname d?clear!at!lineTnum!in! fileTname dstop!if!Garning


error! naninf! infnan

1eluarea e%ecuiei& Listarea apelrii de funcii& Listarea tuturor breaHpoint!urilor& <%ecutarea a una sau mai multe linii& Listarea fiierelor M!file cu liniile!numerotate' /c.imbarea conte%tului spaiului de lucru local "do0n$& /c.imbarea conte%tului spaiului de lucru local "up$& 5rsirea modului de depanare&

D?cont D?stacF d?status!fileTname d?step!nlines d?type!fileTname d?doGn d?up d?Auit

5entru informaii suplimentare pri ind utilizarea acestor funcii se poate apela la comanda help urmat de numele comenzii respecti e& <%emplul de depanare a unui fiier cu erori prezentat anterior poate fi reluat, utiliz:ndu!se n locul interfeei grafice a debugger!ului comenzi corespunztoare n linia de comand& ;.3. Pro,#(er.'( MATLAB 5entru mbuntirea performanelor fiierelor MATLAB se utilizeaz un instrument MATLAB numit 5rofiler& Acest instrument furnizeaz informaii utile pri itoare la timpul alocat calculelor efectuate de fiecare linie program&

7u ajutorul 5rofiler!ului se msoar modul n care programul consum timp, i o msur


este e ident mai bun dec:t g.icitul rutinelor sau funciilor care consum mult timp de calcul& C8

5rogramarea eficient presupune folosirea 5rofiler!ului pentru determinarea @strangulrilorA din programul creat i apoi modificarea programului pentru optimizarea timpului de calcul& 5rogramele MATLAB au n general o structur multistrat generat de faptul c funciile utilizate apeleaz deseori alte funcii i aa mai departe& (e aceea este important s fie identificate acele funcii consumatoare de timp i nlocuite dac este posibil& 5rofiler!ul permite' < itarea calculelor inutile& /c.imbarea algoritmilor pentru e itarea folosirii unor funcii consumatoare de timp& < itarea recalculrilor prin stocarea unor rezultate ce pot fi utilizate ulterior& Co$an)a profile 5entru a crea un profil al programului "fiierului$ MATLAB se folosete comanda profile!
pentru a genera i izualiza statisticile despre programul respecti & Kn tabelul urmtor sunt prezentate formele posibile ale acestei comenzi&

#nta2>
Profile!on

6+-#'n#

5escr#ere /tarteaz profiler!ul i terge statisticile nregistrate anterior&

%detail! le>el %history Profile! report Qasename Profile! plot Profile! resume Profile! clear Profile!off Profile! status stats ! "! profile;9in fo9<

/pecific ni elul funciei analizate& /pecific sec ena e%act a apelurilor fcute de funcia care a fi nregistrat& /uspend acti itatea profilerului dup care genereaz un raport n format 9TML pe care l afieaz n bro0serul Ieb& /al eaz raportul n fiierul ?asename din directorul curent& /uspend acti itatea profiler!ului dup care afieaz un grafic n fereastra figur cu funciile care consum majoritatea timpului de e%ecuie& 1estarteaz profiler!ul fr a terge statisticile nregistrate anterior& Sterge statisticile nregistrate& Termin acti itatea profiler!ului& Afieaz o structur care conine starea curent a profiler!ului& /uspend profiler!ul i afieaz o structur cu rezultatele acti itii de analiz&

E2e$+(' )e 't#(#Dare a Pro,#(er.'('# 6& /e starteaz profiler!ul'


profile!on!%detail!?uiltin!%history

4piunea %detail!?uiltin determin profilerul s ntocmeasc statistici i pentru funciile built!in& B& /e e%ecut un fiier &m & Kn e%emplu este preluat programul care ruleaz modelul LotHa! Dolterra pentru populaii tip prdtor!prad "lotFademo pentru demo$&
Vt@yW!"!ode23;9lotFa9@V#!2W@V2#P2#W<P

C& /e genereaz un raport i se sal eaz rezultatele n fiierul lotFaprof& C3

profile!report!lotFaprof

G& /e restarteaz profiler!ul fr tergerea statisticilor e%istente&


profile!resume profile!off

8& /e oprete profiler!ul& )izualizarea rezultatelor -. Rapoarte 5entru afiarea unui raport cu rezultatele statistice obinute se tasteaz profile!report 1aportul care rezult apare n fereastra bro0serului Ieb i ncepe cu un rezumat al raportului din care se pot accesa un raport detaliat i un raport al apelrilor de funcii "o cronic$& Ra+ort'( reD'$at. Kn figura urmtoare este prezentat raporul rezumat pentru e%emplul LotHa! Dolterra& Ra+ort'( )eta(#at. Acest raport furnizeaz detalii despre funciile de tip @printeA i @copilA ale unei funcii& <ste prezentat raportul detaliat pentru funcia lotFa din e%emplul considerat& Ra+ort'( a+e(>r#(or )e ,'nc-##. Acest raport afieaz sec ena e%act a funciilor apelate& 5entru a izualiza acest raport, trebuie startat profiler!ul cu opiunea %history&
profile!on!%history

<ste prezentat un e%emplu de astfel de raport&

CL

B. Reprezentarea gra)ic# a rezultatelor 2ro)iler-ului 5entru a obine o reprezentare grafic trebuie s tastm' profile!plot Kn fereastra grafic a apare un grafic de forma din figura urmtoare'

C;

=. MATRICI, ALGEBR LINIAR, P6LIN6AME, TE*NICI 5E INTERP6LARE =.1. Matr#c#(e ?n MATLAB 5rin matrice nelegem un tablou bi!dimensional de numere reale sau comple%e& Kn capitolul de -undamente ale programrii n MATLAB a fost prezentat modul de introducere a matricilor i au fost analizate c:te a operaii simple cu matrici& MATLAB!ul lucreaz direct cu multe operaii matriceale' aritmetica matricilor, ecuaii liniare, alori proprii, factorizri etc&
-unciile de algebr liniar sunt localizate prezentate c:te a din funciile care lucreaz cu matrici&

n directorul matfun& Kn continuare sunt

Cate/or#a Analiza matriceal

4'nc-#a
norm normest ranF det trace null orth su?space

5escr#ere ,orma unei matrice sau a unui ector& <stimeaz norma!B a matricei& 1angul matricei& (eterminant& /uma elementelor de pe diagonal& /paiul ,ul& 4rtogonalizare& *ng.iul dintre B subspaii& *tilizate la calculul soluiilor ecuaiilor liniare& +n ersa matricei& ,umrul de condiie pentru in ersare& CM

<cuaii liniare

5!\i!2 in> cond

chol lu Ar pin> lsco>

Dalori proprii i alori singulare

eig s>d poly hess AE schur

-actorizarea 7.olesH#& -actorizarea L*& (ecompoziia ortogonal!triung.iular& 5seudoin ersa& 7ele mai mici ptrate cu co arian cunoscut& Dalori proprii i ectori proprii& (ecompoziia n alori singulare& 5olinomul caracteristic& -orma 9essenberg& -actorizarea Z[& (ecompoziia /c.ur& <%poneniala de matrice& Logaritmul de matrice& 1dcina ptrat de matrice& < aluarea unei funcii generale de matrice&

-uncii de matrice

e:pm logm sArtm funm

4peraiunile elementare cu matrici au fost deja prezentate "adunarea matricilor, nmulirea acestora, transpusa unei matrice, funciile sum, diag etc&$& Kn continuare sunt prezentate c:te a matrici speciale utile n toate tipurile de reprezentri matematice'

- 'atricea identitate 7unitate8 <ste o matrice cu elementele de pe diagonala principal egale cu 6 iar restul elementelor sunt nule& ,otaia matematic / pro ine de la denumirea matricii i nu este folosit n MATLAB, pentru e itarea unor confuzii& /e utilizeaz sinta%a'
eye;m@n<

Aceast funcie returneaz o matrice identitate m%n. (ac se folosete'


eye;n<!

atunci este orba de o matrice identitate ptratic n%n& - 'atricea ones <ste o matrice care are toate elementele egale cu 6& -orme posibile' ones;n< este o matrice n%n cu elemente de 6 ones;m@n< sau ones;Vm@nW< sunt matrici m%n cu elemente de 6& ones;siEe;/<< are aceeai dimensiune cu o matrice A i are elemente de 6 - 'atricea zeros <ste o matrice care are toate elementele egale cu E& -orme posibile' !Eeros;n<!este o matrice n%n de zerouri !Eeros;m@n<!sau!Eeros;Vm@nW<!sunt matrici m%n de E !Eeros;siEe;/<<are aceeai dimensiune cu o matrice A i are elemente de E =.3. ReDo(8area ec'a-##(or (#n#are

GE

*na din cele mai importante probleme ale calculului din domeniul te.nic este soluionarea sistemelor de ecuaii liniare& (efinirea problemei este pe scurt urmtoarea' (ac se dau dou matrici - i B, e%ist o matrice unic 9 astfel nc:t -9 : B sau 9- : B P MATLAB utilizeaz notaia din cazul scalar i pentru descrierea soluiei unui sistem de ecuaii liniare& 7ele dou simboluri utilizate n cazul scalar al di iziunii "mpririi$ i anume slash, 2, i backslash, \, sunt folosite pentru definirea soluiei' !!!!H!"!/5Q este soluia ecuaiei matriceale -9 : B& !!!!H!"!Q2/ este soluia ecuaiei matriceale 9- : B& Kn practic, ecuaiile liniare de forma -9 : B sunt mai des nt:lnite& (eoarece matricea -, care conine de fapt coeficienii sistemului, poate s nu fie ptratic ci de tipul general m%n, e%ist trei cazuri posibile' m : n& m ; n& m < n& /istem ptratic& /e poate cuta o soluie e%act& /istem supradeterminat "incompatibil$& /e caut o soluie de tip cele mai mici ptrate& /istem nedeterminat& /e poate cuta o soluie cu cel mult m componente nenule&

Kn multe cazuri MATLAB!ul d un diagnostic "o soluie$ automat prin e%aminarea coeficienilor matricelor& 7:te a din aceste cazuri' 5ermutarea matricilor triung.iulare Matrici simetrice, poziti definite Matrici ptratice nesingulare /isteme rectangulare supradeterminate /isteme rectangulare nedeterminate #ste$e +>trat#ce 7el mai simplu caz este cel corespunztor unei matrice ptratice / i a unui ector coloan ?& /oluia :!"!/5? are aceeai dimensiune ca b& (ac / i Q sunt ptratice de aceleai dimensiuni atunci soluia H ! " ! /5Q are aceeai dimensiune ca - sau B& %bserva"ie, (ac matricea - este singular "determinant nul$ atunci soluia ecuaiei -9 : B nu e%ist sau nu este unic& #ste$e s'+ra)eter$#nate 0#nco$+at#%#(e1 Aceste tipuri de sisteme sunt des nt:lnite n di erse situaii, cum ar fi de e%emplu apro%imarea unor curbe din date e%perimentale& #ste$e ne)eter$#nate /istemele liniare nedeterminate au mai multe necunoscute dec:t ecuaii& (ac e%ist i constr:ngeri "restricii$ suplimentare, atunci este orba de o problem de programare liniar& 4peratorul backslash din MATLAB permite cutarea soluiei n cazul fr restricii& /oluia nu este niciodat unic& MATLAB!ul gsete o soluie de baz "care are cel mult m componente nenule$& )sirea soluiei particulare se bazeaz pe factorizarea Z1 "decompoziia ortogonal! triung.iular$& G6

Dom prezenta un e%emplu "care utilizeaz funcia matriceal random = rand$& !! !8!"!fi:;(#1rand;2@-<<
!!8!" !!!!!!!)!!!!!+!!!!!*!!!!!3 !!!!!!!3!!!!!,!!!!!-!!!!!( !! !?!"!fi:;(#1rand;2@(<< !!?!" !!!!!!!( !!!!!!!2

/istemul liniar Rx : b implic dou ecuaii cu G necunoscute& /oluia se poate afia n format raional "coeficienii sunt numere ntregi$& /oluia particular se obine astfel'
!format!rat !p!"!85? !!p!" !!!!!!#!!!!!! !!!!!,2*!!!!! !!!!!!#!!!!!! !!!%((2*

/oluia complet a sistemului nedeterminat se obine prin adugarea unui ector arbitrar din spaiul nul folosind funcia nullM ! !I!"!null;8@9r9<
!!!I!" !!!!!!%(22!!!!!!!!!%*2)!!!!! !!!!!!%(22!!!!!!!!!!(22!!!!! !!!!!!!!(!!!!!!!!!!!!#!!!!!! !!!!!!!!#!!!!!!!!!!!!( ector de forma !:"p.I1A!pentru ] ector arbitrar

4rice satisface 81:"?& =.9. In8erse :# )eter$#nan-# (ac matricea - este ptratic i nesingular, ecuaiile -9 : / i 9- : / au aceeai soluie 9& Aceast soluie este c.iar in ersa lui -, notat matematic prin -!6, i poate fi calculat cu funcia in>& (eterminantul unei matrice se poate calcula cu funcia det "trebuie acordat atenie problemelor de scalare i rotunjire care apar n calcule$& <%emple'
!/"V(!(!(P(!2!3P(!3!)WP !d!"!det;/< d!" !!!!!!!( !H!"!in>;/< H!"! !!!!!!!3!!!!%3!!!!!( !!!!!!%3!!!!!,!!!!%2 !!!!!!!(!!!!%2!!!!!(

Pse')o#n8erse Matricile dreptung.iulare "rectangulare$ nu au in erse sau determinani& Atunci cel puin una din ecuaiile -9 : / sau 9- : / nu are soluie& /e poate utiliza n acest caz o pseudoin ers care poate fi calculat cu funcia pin>M
!/("V/PV(!3!,WW /(!" !!!!!(!!!!!(!!!!!( !!!!!(!!!!!2!!!!!3

GB

!!!!!(!!!!!3!!!!!) !!!!!(!!!!!3!!!!!, !H"pin>;/(< H!" !!!!(',###!!!%#'####!!!!('####!!!%(',### !!!%#'+333!!!!#')))*!!!%2'####!!!!2'())* !!!!#'())*!!!%#'3333!!!!('####!!!%#'+333

=.;. 4'nc-## )e $atr#ce. Ga(or# +ro+r## 2uteri de matrice (ac / este o matrice ptratic i p este un numr ntreg poziti , atunci /7p multiplic pe / cu ea nsi de p ori&
!H!"!/72 H!" !!!!!3!!!!!)!!!!(# !!!!!)!!!!(-!!!!2, !!!!(#!!!!2,!!!!-)

(ac / este ptratic i nesingular, atunci /7;%p< multiplic pe in>;/< cu ea nsi de p! ori&
!!J"/7;%2< J!" !!!(&'####!!%2)'####!!!(#'#### !!%2)'####!!!3+'####!!%(,'#### !!!(#'####!!%(,'####!!!!)'####

1idicarea la putere element cu element se face utiliz:nd operatorul "funcia$ '7& (e e%emplu'
!H!"!/'72 /!" !!!!!(!!!!!(!!!!!( !!!!!(!!!!!-!!!!!& !!!!!(!!!!!&!!!!3)!!!!

R#d#cina p#trat# de matrice -uncia sArtm;/< permite calculul lui /7;(22< printr!un algoritm mai precis dec:t utilizarea puterii de matrice& 3xponen"iala de matrice *n sistem de ecuaii difereniale ordinare cu coeficieni constani poate fi scris' unde x : x7t8 este un ector de funcii de timp i - este o matrice independent de timp& /oluia sistemului poate fi scris prin intermediul e%ponenialei de matrice -uncia e:pm;/<permite calculul e%ponenialei de matrice& Ga(or# +ro+r## 4 aloare proprie i un ector propriu ale unei matrice ptratice - sunt un scalar v care satisfac egalitatea 7u alorile proprii pe diagonala unei matrice de tip diagonal i cu corespunztori care formeaz coloanele unei matrice ! om a ea i un ector

ectorii proprii

GC

(ac ! este nesingular obinem decompoziia "descompunerea$ pe baza alorilor proprii' <%emplu'
!/"V%(!%3!(P2!%2!%(P#!(!%3W /!" !!!!%(!!!!%3!!!!!( !!!!!2!!!!%2!!!!%( !!!!!#!!!!!(!!!!%3 !lam?da"eig;/< lam?da!" !!%('*,&3!.!2'-+-*i !!%('*,&3!%!2'-+-*i !!%2'-+(-!!!!!!!!!!

Lam?da! a fi un ector care conine alorile proprii ale matricei& (ac funcia eig este utilizat cu dou argumente de ieire om obine ectorii proprii i alorile proprii "acestea sub forma diagonal$'
!VL@DW"eig;/< L!" !!!#'2233!.!#')+3,i!!!#'2233!%!#')+3,i!!!#'3()#!!!!!!!!!! !!!#')-+(!%!#'#+)2i!!!#')-+(!.!#'#+)2i!!!#'-3)+!!!!!!!!!! !!!#'#*),!%!#'222*i!!!#'#*),!.!#'222*i!!!#'+-22!!!!!!!!!! D!" !!%('*,&3!.!2'-+-*i!!!!!!!!#!!!!!!!!!!!!!!!!!!#!!!!!!!!!! !!!!!!!!#!!!!!!!!!!!!%('*,&3!%!2'-+-*i!!!!!!!!#!!!!!!!!!! !!!!!!!!#!!!!!!!!!!!!!!!!!!#!!!!!!!!!!!!%2'-+(-!!!!!!!!!!

%bserva"ie, Toolbo%!ul /#mbolic Mat. e%tinde capacitatea MATLAB!ului prin conectarea la Maple, care este un sistem de calcul algebric performant& *na din funciile toolbo%!ului permite calculul formei canonice ^ordan&
!VH@CW"$ordan;/< H!" #'((2(!!!!!!!!!!!!!#'---#!.!#'()&(i!!!#'---#!%!#'()&(i #'(,-&!!!!!!!!!!!!%#'#**,!.!#'-2,#i!!%#'#**,!%!#'-2,#i #'2&+*!!!!!!!!!!!!%#'(-&-!.!#'#-3-i!!%#'(-&-!%!#'#-3-i C!" %2'-+(-!!!!!!!!!!!!!!!!!!#!!!!!!!!!!!!!!!!!!#!!!!!!!!!! !!!!!#!!!!!!!!!!!!%('*,&3!%!2'-+-*i!!!!!!!!#!!!!!!!!!! !!!!!#!!!!!!!!!!!!!!!!!!#!!!!!!!!!!!!%('*,&3!.!2'-+-*i

-orma canonic ^ordan este un concept teoretic important, dar nu este indicat folosirea n cazul matricilor mari sau pentru matricile cu elemente afectate de erori de rotunjire sau de alte incertitudini& MATLAB!ul poate folosi n astfel de cazuri descompunerea /c.ur "funcia schur$& =.=. Re+reDentarea +o(#noa$e(or. Inter+o(area Po(#noa$e MATLAB!ul furnizeaz funcii pentru operaii polinomiale standard cum ar fi calculul rdcinilor, e aluarea polinoamelor, deri area etc& 4 parte din aceste operaii precum i modul de reprezentare a polinoamelor ca ectori au fost descrise n capitolul de -undamente de programare& -unciile polinomiale se afl n directorul polyfunM 4'nc-#e
con> decon>

5escr#ere Multiplic polinoamele& Kmparte polinoamele& GG

poly polyder polyfit poly>al poly>alm residue roots

1eturneaz coeficienii dac se dau rdcinileX 5olinomul caracteristic& 7alcul deri atei unui polinom& )sirea coeficienilor unui polinom din apro%imarea unui set de date& < aluarea unui polinom& < aluarea unui polinom cu argument matriceal& (escompunere n fracii simple& )sirea rdcinilor unui polinom&

(up cum s!a precizat deja, MATLAB!ul reprezint polinoamele ca ectori linie care conin coeficienii polinoamelor n ordinea descresctoare a puterilor& -unciile uzuale care opereaz cu polinoame au fost prezentate "de e%emplu roots$& Kn
continuare sunt parcurse alte c:te a e%emple utile&

-uncia poly returneaz coeficienii unui polinom dac dispunem de rdcinile acestuia "este o funcie in ers fa de roots$'
!p"V(!%(!2!-!(WP !r"roots;p< r!" !!!('#,2&!.!('*2-+i !!!('#,2&!%!('*2-+i !!%#'*&&,!!!!!!!!!! !!%#'3#)3!!!!!!!!!! !coef"poly;r< coef!" !!!!('####!!!%('####!!!!2'####!!!!-'####!!!!('####

4 alt utilizare a funciei poly este aceea de calculare a coeficienilor polinomului caracteristic al unei matrice'
!/ /!" !!!!%(!!!!%3!!!!!( !!!!!2!!!!%2!!!!%( !!!!!#!!!!!(!!!!%3 !poly;/< ans!" !!!!!(!!!!!)!!!!(+!!!!23

1dcinile acestui polinom sunt c.iar alorile proprii ale matricii /&

-uncia poly>al e alueaz un polinom pentru o aloare specificat a argumentului&

-uncia poly>alm permite e aluarea unui polinom n sens matriceal& Kn acest caz polinomul p din e%emplul anterior' p"%$ = %G = %C F B%B F G% F 6 de ine p"J$ = J G = JC F BJB F GJ F +, unde J este o matrice ptratic i + matricea unitate& <%emplu'
!K"poly>alm;p@/< K!" !!!%*,!!!%)(!!!!+( !!!!,+!!%(3#!!!!*, !!!!,2!!!%23!!!!-&

G8

-unciile con> i decon> implementeaz operaiile de nmulire i mprire a polinoamelor&

<%emple' -ie a"%$ = %B F B% FC i b"%$ = G%B F 8% F 3&


!a!"!V(!2!3WP!?!"!V-!,!)WP !c!"!con>;a@?< c!" !!!!!-!!!!(3!!!!2+!!!!2*!!!!(+ !VA@rW!"!decon>;c@a< A!" !!!!!-!!!!!,!!!!!) r!" !!!!!#!!!!!#!!!!!#!!!!!#!!!!!#

-uncia polyder permite calculul deri atei unui polinom&


!p"V(!%(!2!-!(WP !pderi>at"polyder;p< pderi>at!" !!!!!-!!!!%3!!!!!-!!!!!-

<%emplu'

-uncia polyfit gsete coeficienii unui polinom "o curb$ care apro%imeaz un set de date n sensul algoritmului celor mai mici ptrate'
p!"!polyfit;:@y@n<

: i y sunt ectorii care conin setul de date iar n este ordinul polinomului ai crui coeficieni or fi furnizai la apelarea funciei& <%emplu'
!:!"!V(!2!3!-!,WP!y!"!V,',!-3'(!(2+!2&#'*!-&+'-WP !p!"!polyfit;:@y@3< p!" !!!%#'(&(*!!!3(',+2(!!%)#'32)2!!!3,'3-##

5entru plotarea rezultatului se utilizeaz mai nt:i funcia poly>al pentru o trasare c:t mai e%act a graficului polinomului i apoi se ploteaz estimarea ersus datele reale pentru comparaii&
!:2!"!(M'(M,P !y2!"!poly>al;p@:2<P !plot;:@y@9o9@:2@y2<

G3

-uncia residue se utilizeaz pentru descompunerea n fracii simple& /e aplic n cazul raportului a dou polinoame b i a,

unde r este un ector coloan, p tot un ector coloan care conine polii iar k un ector linie cu termenii direci& <%emplu'

!?!"!V%-!+WP !a!"!V(!)!+WP !!Vr@p@FW!"!residue;?@a< r!" !!!%(2 !!!!!+ p!" !!!!%!!!!%2 F!" !!!!!VW

(ac se folosesc trei argumente de intrare " r, p, i F$, funcia residue asigur con ersia napoi n forma polinomial'
!!V?2@a2W!"!residue;r@p@F< ?2!" !!!!%-!!!!!+ a2!" !!!!!(!!!!!)!!!!!+

Inter+o(area +nterpolarea este un proces de estimare a alorilor dintre date "puncte$ cunoscute& Aplicaiile interpolrii sunt numeroase n domenii cum ar fi procesarea numeric a semnalelor i imaginilor& MATLAB!ul dispune de mai multe te.nici de interpolare, alegerea unei metode sau alteia fc:ndu!se n funcie de acurateea necesar, de iteza de e%ecuie i de gradul de utilizare a memoriei& -unciile de interpolare se afl n directorul polyfun& GL

4'nc-#e griddata interp( interp2 interp3 interpft spline

5escr#ere +nterpolare pe suprafee& +nterpolare monodimensional& +nterpolare bi!dimensional& +nterpolare tri!dimensional& +nterpolare mono utiliz:nd metoda --T& +nterpolare spline "cubic$&

1ompararea unor metode de interpolare bi$dimensional0 Kn continuare este preluat i prezentat "informati $ un e%emplu de folosire a unor metode de interpolare bi!dimensional pentru o matrice de date L % L& 6& )enerarea funciei peaFs "cu rezoluie mic$'
V:@yW!"!meshgrid;%3M(M3<P E!"!peaFs;:@y<P surf;:@y@E<

B& )enerarea unei suprafee mesh fine pentru interpolare'


V:i@yiW!"!meshgrid;%3M#'2,M3<P

C& +nterpolarea cu metoda celei mai apropiate ecinti'


Ei(!"!interp2;:@y@E@:i@yi@9nearest9<P

G& +nterpolarea cu metoda biliniar'


Ei2!"!interp2;:@y@E@:i@yi@9?ilinear9<P

8& +nterpolarea cu metoda bicubic'


Ei3!"!interp2;:@y@E@:i@yi@9?icu?ic9<P

3& 7ompararea graficelor corespunztoare diferitelor metode de interpolare'

G;

L& 7ompararea contururilor suprafeelor n cazul diferitelor metode de interpolare'

/e obser c metoda bicubic produce cele mai netede contururi& 4 metod cum ar fi cea a celor mai apropiate ecinti este preferat ns n anumite aplicaii, cum ar fi cele medicale unde nu trebuie generate date noi& I. REPREZENTAREA 4!NCIIL6R. EC!AII 5I4ERENIALE I.1. Re+reDentarea :# +(otarea ,'nc-##(or $ate$at#ce Re+reDentarea ,'nc-##(or $ate$at#ce

-unciile matematice uzuale sunt furnizate de MATLAB ca funcii buit!in "cum ar fi


etc&$& 5entru reprezentarea altor funcii matematice se utilizeaz e%primarea n fiiere tip &m & (e e%emplu, o funcie cum este urmtoarea'
cos@!log(#@!log@!atan!

sin@!

poate fi creat ntr!un fiier MATLAB de tip function i poate fi utilizat ulterior ca intrare n alte funcii "aa!numitele funcii de funcii = a se edea paragraful B&C$& -iierul care descrie aceast funcie a mai fost prezentat n paragraful B&C'
function!y!"!humps;:< y!"!('2;;:%#'3<'72.#'#(<.('2;;:%#'&<'72.#'#-<%)P

4 alt posibilitate este crearea la ni elul liniei de comand a unui obiect inline prin folosirea unei e%presii tip ir de caractere'
!f"inline;^('2;;:%'3<'72.'#(<.('2;;:%'&<'72.'#-<%)9<P

5entru a e alua aceast funcie!f!n B&E tastm simplu'


!f;2'#<

GM

ans!" !!!%-'+,,2 /lt!e:empluM !f!"!inline;9y1sin;:<.:1cos;y<9@9:9@9y9< !f;pi@21pi< ans!" !!!!3'(-()

P(otarea ,'nc-##(or 5entru reprezentarea grafic a funciilor se poate utiliza funcia fplot' /e pot controla limitele a%elor de reprezentare grafic& <%emplu' trasarea graficului funciei humps pentru limitele _%,!,` ale a%ei %'
fplot;9humps9@V%,!,W<

(ac dorim i precizarea limitelor de reprezentare pe a%a # "realizarea unui zoom$ folosim comanda'
fplot;9humps9@V%,!,!%(#!2,W<

*n alt e%emplu de folosire direct a funciei fplotM 8E

fplot;921sin;:.3<9@V%(!(W<

/e poate realiza i reprezentarea mai multor funcii pe acelai grafic'


fplot;9V21sin;:.3<@!humps;:<W9@V%(!(W<

I.3. M#n#$#Darea ,'nc-##(or :# />s#rea Dero'r#(or MATLAB!ul furnizeaz o serie de funcii de ni el nalt care realizeaz sarcini de optimizare a funciilor& Aceste funcii sunt grupate n principal pe urmtoarele domenii' Minimizarea funciilor de o ariabil Minimizarea funciilor de mai multe ariabile /etarea opiunilor de minimizare )sirea zerourilor unor funcii 5entru e%emplificare om considera minimizarea unei funcii de o singur ariabil i gsirea zerourilor pentru aceast funcie& Minimizarea unei "unc#ii 5entru gsirea unui minim local al unei funcii scrise ntr!un fiier function, se utilizeaz funcia fmin?nd& 1elum aici e%emplul din paragraful B&C' pentru gsirea minimului funciei humps n inter alul "E&C, 6$ folosim instruciunea'
!:!"!fmin?nd;9humps9@#'3@(< :!" !!!!#')3*#

(ac dorim o afiare detaliat a pailor fcui de prodedura de minimizare se utilizeaz urmtoarea sinta%' !:!"!fmin?nd;9humps9@#'3@(@optimset;9Display9@9iter9<<
Func%count!!!!!!:!!!!!!!!!!!f;:<!!!!!!!!!Procedure !!!!(!!!!!!!#',)*3*)!!!!!!(2'&#&+!!!!!!!!initial !!!!2!!!!!!!#'*32)2-!!!!!!(3'**-)!!!!!!!!golden !!!!3!!!!!!!#'-),2-+!!!!!!2,'(*(-!!!!!!!!golden !!!!-!!!!!!!#')---()!!!!!!(('2)&3!!!!!!!!para?olic !!!!,!!!!!!!!!#')-(3!!!!!!(('2,+3!!!!!!!!para?olic !!!!)!!!!!!!#')3*)(+!!!!!!(('2,2&!!!!!!!!para?olic !!!*!!!!!!!#')3)&+,!!!!!!(('2,2+!!!!!!!!para?olic !!!!+!!!!!!!#')3*#(&!!!!!!(('2,2+!!!!!!!!para?olic

86

!!!!&!!!!!!!#')3*#,2!!!!!!(('2,2+!!!!!!!!para?olic :!" !!!!!#')3*#

G0sirea zerourilor -uncia fEero permite gsirea zerourilor unei funcii "este orba de fapt de o ecuaie cu o singur necunoscut$& (ac se d un punct de plecare xE pentru procedura de cutare, fEero a cuta un inter al n jurul acestui punct n care funcia sc.imb semnul& (ac un astfel de inter al este gsit, fEero! returneaz aloarea pentru care funcia sc.imb semnul "adic zeroul$, iar dac un astfel de inter al nu este gsit returneaz DaD& Alt ariant permite cutarea ntr!un inter al specificat de utilizator& <%emplu' gsirea unui zerou al funciei humps n apropiere de %#'2M
!a!"!fEero;9humps9@%#'2< a!" %#'(3()

5entru erificare e alum funcia n punctul !E&6C63 i gsim ntr!ade r o aloare foarte aproape de zero'
!humps;a< ans!" !!!+'++(+e!%()

/e poate folosi i arianta cu inter al de cutare precizat de utilizator& Kn continuare este prezentat aceast ariant plus folosirea unor opiuni suplimentare pentru afiarea detaliat a informaiilor despre procedur i a pailor'
!options!"!optimset;9Display9@9iter9<P !a!"!fEero;9humps9@V%(!(W@options< Func%count!!!!!!:!!!!!!!!!!f;:<!!!!!!!Procedure !!!!(!!!!!!!!!!!%(!!!!!!%,'(3**&!!!!!!!!initial !!!!2!!!!!!!!!!!!(!!!!!!!!!!!!()!!!!!!!!initial !!!!3!!!!%#',(3+*)!!!!!!%-'#223,!!!!!!!!interpolation !!!!-!!!!!#'2-3#)2!!!!!!!*(')3+2!!!!!!!!?isection !!!!,!!!!%#'-*3)3,!!!!!!%3'+3*)*!!!!!!!!interpolation !!!!)!!!!%#'((,2+*!!!!!!#'-(---(!!!!!!!!?isection !!!!*!!!!%#'(,#2(-!!!!!%#'-23--)!!!!!!!!interpolation !!!!+!!!!%#'(32,)2!!!!%#'#22)&#*!!!!!!!!interpolation !!!!&!!!!%#'(3()))!!!!%#'##((-&2!!!!!!!!interpolation !!!(#!!!!%#'(3()(+!!('++3*(e%##*!!!!!!!!interpolation !!!((!!!!%#'(3()(+!!%2'*&3,e%#((!!!!!!!!interpolation !!!(2!!!!%#'(3()(+!!+'++(*+e%#()!!!!!!!!interpolation !!!(3!!!!%#'(3()(+!%&'*)&&)e%#(,!!!!!!!!interpolation Iero!found!in!the!inter>alM!V%(@!(W' a!" !!!%#'(3()

I.9. Inte/rarea n'$er#c> Aria subgraficului unei funcii 6"x$ poate fi determinat prin integrarea numeric, proces care se numete ]uadratur "=uadrature8& 5entru rezol area integrrii numerice n cazul monodimensional e%ist dou funcii MATLAB' Auad@ care folosete un algoritm de tip /impson Auad+@ care utilizeaz un algoritm de tip ,e0ton <%emplu' pentru integrarea funciei humps ntre # i 6 folosim comanda 8B

!A!"!Auad;9humps9@#@(< A!" !!!!2&'+,+3

-unciile Auad sau Auad+ permit i alte argumente de intrare care specific eroarea tolerat pentru integrare i alte opiuni "a se edea cu help$& E2e$+(' )e #nte/rare n'$er#c>< ca(c'('( ('n/#$## 'ne# c'r%e Dom considera o curb dat de ecuaiile' cu

4 plotare tri!dimensional a acestei curbe poate fi obinut cu !t!"!#M#'(M31piP !plot3;sin;21t<@cos;t<@t<

10 8 6 4 2 0 1 0.5 0 -0.5 -1 -1 -0.5 0.5 0 1

Lungimea acestei curbe este dat de formula urmtoare'

5entru calculul lungimii trebuie integrat numeric integrala de mai sus& 5entru aceasta se creeaz mai nt:i o funcie MATLAB care descrie integrandul pe care o numim fcur?aM
function!f!"!fcur?a;t< f!"!sArt;-1cos;21t<'72!.!sin;t<'72!.!(<P

i apoi se integreaz cu ajutorul funciei AuadM


lungime!"!Auad;9fcur?a9@#@31pi< lungime!" !!!('*222e.#(

I.;. ReDo(8area ec'a-##(or )#,eren-#a(e 8C

MATLAB!ul dispune de metode i funcii care pot rezol a problema condiiilor iniiale "7auc.#$ ale sistemelor de ecuaii difereniale ordinare "4(< = 4rdinar# (ifferential <]uations$& Kn tabelul urmtor sunt prezentate succint c:te a din aceste funcii& Cate/or#e -uncii 4(< care 4'nc-#e rezol ode-,! ode23 ode((3 ode(,s ode23s ode23t ode23t? 4piuni 4(< odeset! odeget! -uncii de ieire 4(< odeplot odephas2 odephas3 odeprint 5escr#ere 1ezol ecuaii difereniale nonstiff, metod de ordin mediu& 1ezol ecuaii difereniale nonstiff, metod de ordin sczut& 1ezol ecuaii difereniale nonstiff, metod de ordin ariabil& 1ezol ecuaii difereniale stiff i ecuaii algebrice difereniale, metod de ordin ariabil& 1ezol ecuaii difereniale stiff, metod de ordin sczut& <cuaii difereniale stiff i ecuaii algebrice difereniale, metoda trapezelor& 1ezol ecuaii difereniale stiff, metod de ordin sczut& 7reeaz sau sc.imb opiuni de structur ale 4(<& 5ermite obinerea parametrilor din opiunile 4(<& 5lotarea soluiilor 4(< "n funcie de timp$& Trasarea planului fazelor& Trasarea spaiului fazelor "tri!dimensional$& 5ermite tiprirea soluiei 4(< n fereastra de comand&

%bserva"ie, La ecuaiile difereniale ordinare de tip stiff "rigide$ soluiile pot a ea ariaii foarte rapide n timp n raport cu inter alul de timp de integrare i este necesar folosirea unor pai de integrare foarte mici, ceea ce nu mai este indicat la ecuaiile nonstiff& E2e$+(' )e reDo(8are< ec'a-#a 8an )er Po( <cuaia an der 5ol este un e%emplu clasic de ecuaie diferenial'

unde a b E este un parametru scalar& 5entru implementarea algoritmului de rezol are este necesar rescrierea ecuaiei de ordinul B ca un sistem de dou ecuaii difereniale de ordinul 6& 5entru aceasta se introduce ariabila 9B care este deri ata n raport cu timpul a ariabilei y> & Dom a ea

8G

5entru a reprezenta n MATLAB acest sistem de 4(< n scopul gsirii soluiilor, trebuie scris n primul r:nd un fiier care descrie sistemul "un fiier de tip function$& *n fiier 4(< accept cel puin dou argumente, t i y& 5entru ecuaia an der 5ol cu a = 6, fiierul este urmtorul "y6 i yB de in y;(< i y;2<$'
function!dy!"!>dp(;t@y< dy!"!Vy;2<P!;(%y;(<72<1y;2<%y;(<WP

La pasul urmtor, dup ce sistemul de ecuaii a fost scris, se poate utiliza una din metodele de rezol are prezentate n tabelul anterior& Trebuie furnizat un inter al de timp pentru care se dorete calculul soluiilor i bineneles condiiile iniiale& 5entru e%emplul an der 5ol, se poate apela la ode45. (ac inter alul de timp este V0 20] iar condiiile iniiale y(1)=2 i y(2)=0 om a ea
Vt@yW!"!ode-,;9>dp(9@V#!2#W@V2P!#W<P

+eirea Vt@yW este un ector coloan care conine ectorul timp t i soluia de tip tablou y& -iecare linie din y corespunde unui element "moment$ din ectorul timp& 5entru trasarea graficului cu soluia se folosete comanda plotM
plot;t@y;M@(<@9%9@t@y;M@2<@9%!%9< title;9Solution!of!>an!der!Pol!EAuation@!mu!"!(9<P :la?el;9time!t9<P yla?el;9solution!y9<P legend;9y(9@9y29<

/e obine urmtorul grafic care conine e oluiile celor dou componente ale soluiei n timp'

(ac se dorete i trasarea planului fazelor se pot folosi liniile de comand'


options"odeset;9=utputFcn9@9odephas29<P Vt@yW!"!ode-,;9>dp(9@V#!2#W@V2P!#W@options<P

i obinem planul fazelor "este orba de trasarea componentei #"6$ ersus componenta #"B$$'

88

-1

-2

-3 -3

-2

-1

J. PR6GRAMAREA 7N LIMBAK!L MATLAB J.1. 4#:#ere MATLAB -iierele care conin cod MATLAB sunt numite '-)iles sau fiiere &m & (up cum s!a precizat n capitolul de -undamente ale programrii n MATLAB, aceste fiiere pot fi funcii " )unctions8 care accept argumente de intrare i furnizeaz ieiri, sau pot fi fiiere script care e%ecut o serie de instruciuni MATLAB& 5entru ca MATLAB!ul s recunoasc un fiier ca fiier M!file trebuie ca numele acestuia s se termine cu e%tensia 'm& -iierul &m poate fi creat cu un editor de te%t i apoi poate fi folosit ca orice funcie sau comand MATLAB'
6& 7rearea unui fiier cu un editor de te%t&

B& Apelarea fiierului &m de la linia de comand sau din alt fiier &m&

7aracteristicile celor dou tipuri de fiiere sunt prezentate n tabelul urmtor' 4#:#ere cr#+t 4#:#ere 4'nct#on ,u acccept argumente de intrare i nu Accept argumente de intrare i returneaz ieiri& returneaz ieiri& 4pereaz cu datele din 0orHspace& Dariabilele interne ale funciei sunt locale "implicit$& *tile pentru automatizarea unei serii de *tile pentru e%tinderea limbajului pai care trebuie e%ecutai de multe ori& MATLAB pentru di erse aplicaii& 83

cr#+t.'r# -iierele script sunt cele mai simple fiiere MATLAB, nu au argumente de intrare sau de ieire i sunt utile pentru e%ecutarea sec enial a unor calcule care altfel ar trebui e%ecutate n mod repetat de la linia de comand& /cript!urile opereaz cu datele din 0orHspace sau pot crea date noi& Aceste date sunt disponibile dup terminarea e%ecuiei fiierului& P>r-#(e co$+onente a(e 'n'# ,#:#er )e t#+ ,'nct#on 4 funcie &m are urmtoarele pri componente'

Linia de definire a funciei Linia de prim .elp 96 Te%tul 9elp!ului 7orpul funciei 7omentarii

Linia de de"inire Aceast linie informeaz MATLAB!ul c fiierul conine o funcie i specific argumentele& <%emplu'

Linia H: Linia 96 este o linie de comentariu care ncepe cu semnul Y UY i furnizeaz prima linie te%t atunci c:nd utilizatorul tasteaz help function_name la prompterul MATLAB& Textul Help$ului /e poate crea un .elp online prin introducerea uneia sau mai multor linii de comentariu dup linia 96, fiecare linie ncep:nd cu YUY& 1orpul "unc#iei 7orpul funciei conine toate instruciunile n cod MATLAB care permit efectuarea calculelor i asigneaz alori argumentelor de ieire& (eclaraiile din corp pot conine apelri de funcii, instruciuni de salt, intrri2ieiri interacti e, calcule etc& 1omentarii 4 linie de comentariu ncepe dup cum s!a precizat cu semnul Y UY i poate fi plasat oriunde ntr!un fiier& 5ot fi adugate linii albe oriunde n fiier, acestea fiind ignorate& J.3. T#+'r# )e )ate :# o+erator# T#+'r# )e )ate MATLAB!ul are ase tipuri fundamentale de date "sau clase$, fiecare put:nd fi considerat ca tablou multidimensional& 7ele ase clase sunt' dou?le@ !char@ !sparse@ !storage@ !cell i struct& Dersiunile bi!dimensionale ale acestor tablouri sunt numite matrici i de aici pro ine i numele de MATLAB&

8L

Kn tabelul urmtor sunt prezentate detaliat tipurile de date' C(asa


/rray Kell Khar Dou?le Dumeric sparse Speye;,< _(*9hello9eye;2<`! 9Rello9 V(!2P3!-W ,.)I

E2e$+(e

storage struct a'day!"!(2P a'color!"!98ed9P a'mat!"!magic;3<P Uint+;magic;3<< Inline;9sin;:<9<

5escr#ere Tip de date irtual& Tablou tip celul& <lementele celulei conin alte tablouri& Tablou de tip caracter "sau ir de caractere=string$X fiecare caracter are 63 bii lungime& Tablou numeric n dubl precizie "cel mai obinuit tip de ariabil MATLAB$& Tip de date irtual& Matrice de tip @sparseA n dubl precizie "doar B! ($& Tablourile de tip @sparseA stoc.eaz matrici cu doar c:te a elemente nenule ntr!o fraciune din spaiul necesar unei matrici normale ec.i alente& Tip de date irtual& Tablou tip structur, care conine nume de c:mpuri, c:mpuri care conin alte tablouri& Tablou de numere ntregi fr semn pe ; bii& Tip de date definit de utilizator&

uint+ User! =?$ect

6+erator# 4peratorii MATLAB pot fi clasificai n trei categorii'


4peratori aritmetici 4peratori relaionali care compar operanzii cantitati 4peratori logici

+peratori aritmetici . Adunare % '1 '2 '5 . % /cdere Knmulire Kmprire la dreapta Kmprire la st:nga 5lus unar Minus unar

M '7 '9 9 1 2 5 7

4peratorul dou puncte 5utere Transpusa Transpusa comple% conjugat Knmulire de matrici Kmprire matriceal la dreapta Kmprire matriceal la st:nga 5utere de matrice

7u e%cepia unor operatori matriceali, operatorii aritmetici lucreaz cu elementele corespondente ale unor tablouri de dimensiuni egale& 5entru ectori i tablouri dreptung.iulare ambii operanzi trebuie s aib aceeai dimensiune, cu e%cepia situaiei n care unul dintre ei este

8;

scalar& Kn acest caz MATLAB!ul aplic scalarul fiecrui element al celuilalt operand "proprietatea de e%pansiune scalar$& +peratori rela#ionali N Mai mic N" Mai mic sau egal O Mai mare O" Mai mare sau egal "" <gal cu Z" (iferit de 4peratorii relaionali compar elementele corespondente ale unor tablouri de dimensiune egal& 4peratorii relaionali lucreaz totdeauna element cu element& <%emplu'
!/!"!V2!*!)P&!#!,P3!#',!)WP !Q!"!V+!*!#P3!2!,P-!%(!*WP !/!""!Q ans!" !!!!!#!!!!!(!!!!!# !!!!!#!!!!!#!!!!!( !!!!!#!!!!!#!!!!!#

+peratori logici Y /DD!;aI< b =8!;S/U< Z D=T!;DU<

4 e%presie care utilizeaz operatorul Y este ade rat dac ambii operanzi sunt ade rai& Kn termeni numerici, e%presia este ade rat dac ambii operanzi sunt nenuli& <%emplu'
!u!"!V(!#!2!3!#!,WP !>!"!V,!)!(!#!#!*WP !u!Y!> ans!" !!!(!!!#!!!(!!!#!!!#!!!(

4 e%presie care utilizeaz operatorul b este ade rat dac unul dintre operanzi este logic ade rat sau dac ambii operanzi sunt ade rai& Kn termeni numerici, e%presia este fals dac ambii operanzi sunt nuli& <%emplu'
!u!b!> ans!" !!!(!!!(!!!(!!!(!!!#!!!(

4 e%presie care utilizeaz operatorul D=T, Z, neag operandul& Kn termeni numerici, orice operand nenul de ine nul i orice operand nul de ine unu& <%emplu'
!Zu ans!" !!!!#!!!!!(!!!!!#!!!!!#!!!!!(!!!!!#

4peratorii logici lucreaz cu elementele corespondente ale unor tablouri de dimensiuni egale& 5entru ectori i tablouri dreptung.iulare ambii operanzi trebuie s aib aceeai dimensiune, cu e%cepia situaiei n care unul dintre ei este scalar& Kn acest caz, ca i la operatorii aritmetici, MATLAB!ul aplic scalarul fiecrui element al celuilalt operand& 8M

,unc#ii logice Kn plus fa de operatorii logici MATLAB!ul furnizeaz i funcii logice' 4'nc-#e :or 5escr#ere E2e$+(e !a!"!(P 1ealizeaz sau e%clusi & 1eturneaz logic ade rat !?!"!(P dac unul din operanzi este ade rat i cellalt fals& !:or;a@?< Kn termeni numerici, returneaz ( dac un operand ans!" este nenul i cellalt este zero& !!!!!# 1eturneaz ( dac toate elementele unui ector sunt ade rate sau nenule& 4pereaz i cu matrici "pe coloane$&
!u!"!V#!(!2!#WP !all;u< ans!" !!!!!# !/!"!V#!(!2P3!,!#WP !all;/< ans!" !!!!!#!!!!!(!!!!!# !>!"!V,!#!+WP !any;>< ans!" !!!!!(

all

any

1eturneaz ( dac oricare din elementele argumentului sunt ade rate sau nenuleX n caz contrar returneaz #&

Alte funcii'!isnan@!isinf@!find!"a se folosi!help! pentru detalii$& 'rioritatea operatorilor (eoarece se pot construi e%presii cu di erse tipuri de operatori, ni elurile de prioritate determin ordinea n care sunt e aluate e%presiile& Kn cadrul fiecrui ni el, operatorii au prioritate egal i sunt e aluai de la st:nga la dreapta& 1egulile de prioritate sunt prezentate n continuare, de la ni elul de prioritate cel mai mare spre cel mai mic& 6+erator ;< U "negare$ '9 '7 9 7 . "plus unar$ % "minus unar$ '1 '2 '5 1 2 5 . "adunare$ % "scdere$ M N N" O O" "" Y b Z" 5rioritate minim N#8e( )e +r#or#tate 5rioritate ma%im

J.9. Instr'c-#'n# )e sa(t :# %'c(e Kn MATLAB e%ist mai multe tipuri de instruciuni de control al buclelor'

if, mpreun cu else !i elseif e%ecut un grup de instruciuni pe baza unei condiii logice& sGitch, case i otherGise e%ecut di erse grupuri de instruciuni n funcie de aloarea unei anumite condiii logice& Ghile!e%ecut un grup de instruciuni de un numr nedefinit de ori, pe baza unei condiii logice& for!e%ecut un grup de instruciuni de un numr fi%at de ori& 3E

?reaF!termin e%ecuia pentru o bucl for sau Ghile& try'''catch sc.imb controlul buclei dac o eroare este detectat n timpul e%ecuiei& return pro oac ntoarcerea la funcia care a apelat prcedura&

Toate instruciunile de salt folosesc comanda end pentru a indica sf:ritul blocului respecti & 7xemple de utilizare a unor instruc#iuni de salt:

+nstruciunile if i elseif< N (aca n este negati afiseaza un mesaj de eroare&

if!n!N!#

disp;9Intrarea!tre?uie!sa!fie!poEiti>a9<P elseif!rem;n@2<"!"# /!"!n22P else! /!"!;n.(<22P end

N(aca n este poziti si par, imparte!l la B&

N(aca n este poziti si impar incrementeaza si imparte la B

+nstruciunea forM
for!i!"!(Mm !!!!for!$!"!(Mn !!!!!!!!/;i@$<!"!(2;i!.!$!%!(<P !!!!end end

J.;. E8a('area )ate(or )e t#+ caracter < aluarea datelor de tip caracter asigur putere i fle%ibilitate limbajului MATLAB& 4'nc-#a e>al -uncia e>al e alueaz un ir de caractere care conine o e%presie, o declaraie sau un apel de funcie& Kn cea mai simpl form, sinta%a este urmtoarea'
e>al;9string9<

<%emplu' e aluarea unei e%presii folosite la generarea unei matrice 9ilbert de ordinul nM
t!"!9(2;i.$%(<9P for!i!"!(Mn !!!!for!$!"!(Mn !!!!!!!!a;i@$<!"!e>al;t<P !!!!end

end Alt e%emplu de utilizare a funciei e>al pentru o declaraie'


e>al;9t!"!clocF9<

4'nc-#a fe>al -uncia fe>al difer de e>al prin faptul c e%ecut o funcie a crui nume este ntr!un ir de caractere& /e poate folosi fe>al i funcia input pentru a alege din mai multe sarcini definite de fiiere &m & <%emplu'
fun!"!V9sin9P!9cos9P!9log9WP

36

F!"!input;9Khoose!function!num?erM!9<P :!"!input;9Enter!>alueM!9<P fe>al;fun;F@M<@:<

<ste indicat folosirea funciei fe>al n locul funciei e>al@ deoarece e%ecuia este mai rapid& Constr'#rea :#r'r#(or )e caractere +entr' e8a('are /e pot concatena irurile de caractere pentru a crea e%presii de intrare necesare funciei e>al& Kn continuare este prezentat un e%emplu n care funcia e>al creeaz 6E ariabile numite P(, P2, &&&P(#, i seteaz fiecare ariabil la o anumit aloare'
for!i"(M(# !!!!e>al;V9P9@int2str;i<@9"!i'729W< end

J.=. Re+reDentarea :# $an#+'(area #n,or$a-##(or )es+re )at> :# t#$+ MATLAB!ul furnizeaz funcii pentru manipularea informaiilor despre dat i timp, funcii grupate n directorul timefun& Cate/or#e (ata i timpul curent 4'nc-#e noG date clocF datenum datestr date>ec calendar GeeFday eomday dateticF cputime tic@!toc etime 5escr#ere (ata i timpul curent ca numr serial& (ata curent ca ir de caractere& (ata i timpul curent ca ector& 7on ersia la numr serial al datei& 7on ersia la reprezentare de tip caracter& 7omponentele datei& 7alendar& [iua din sptm:n& *ltima zi din lun& <tic.ete formatate de tip dat& Timpul 75* n secunde& /tart i oprire pentru timer& Timp scurs&

7on ersii

*tilitare

Timing

J.I. Intr>r# 't#(#Dator 5entru a obine o intrare de la utilizator n timpul e%ecuiei unui fiier e%ist urmtoarele posibiliti' Afiarea unui prompter prin intermediul unei funcii tip input i introducerea unor date de la tastatur& 4prirea e%ecuiei cu o comand pause "reluarea e%ecuiei la apsarea unei taste$& 7onstruirea unei interfee grafice )*+ complet& -uncia input asigur afiarea unui prompter i ateapt un rspuns de la utilizator& /inta%a este'
n!"!input;9prompt_string9<

-uncia determin afiarea irului de caractere prompt_string, ateapt o intrare de la tastatur i returneaz aloarea introdus de la tastatur& -uncia este util pentru implementarea aplicaiilor de tip meniu& Aceast funcie poate s returneze intrarea de la utilizator sub form de caracter& <%emplu'
name!"!input;9Enter!addressM!9@9s9<P

3B

7omanda pause, fr argumente, oprete e%ecuia p:n la apsarea unei taste& 5entru a a ea o pauz de n secunde se folosete comanda'
pause;n<

L. GRA4ICE FI INTER4EE GRA4ICE 7N MATLAB L.1. Tehn#c# )e +(otare Kn general, pentru a realiza o reprezentare grafic, trebuie parcurse etapele urmtoare' Eta+a 6&5regtirea datelor Instr'c-#'n#
:!"!#M#'2M(2P y(!"!?essel;(@:<P y2!"!?essel;2@:<P y3!"!?essel;3@:<P figure;(< su?plot;2@2@(< h!"!plot;:@y(@:@y2@:@y3<P

B& /electarea ferestrei grafice i pozionarea graficului n fereastr C& Apelarea unei funcii elementare de plotare G& /electarea caracteristicilor liniei i marHerului& 8& /etarea limitelor a%elor, gridare "caroiere$ 3& 7ompletarea graficului cu etic.ete pe a%e, legend, te%t

set;h@9Line]idth9@2@_9LineStyle9`@_9%%9P9M9P9%'9`< set;h@_9Kolor9`@_9r9P9g9P9?9`< a:is;V#!(2!%#',!(W< grid!on :la?el;9Time9< yla?el;9/mplitude9< legend;h@9First9@9Second9@9Third9< title;9Qessel!Functions9< Vy@i:W!"!min;y(<P te:t;:;i:<@y@9First ! Min ! 5rightarroG9@''' !!!!!!!!!!!9RoriEontal/lignment9@9right9< print!%depsc!%tiff!%r2##!myplot

L& <%port grafice

-unciile de baz folosite la plotare sunt prezentate n tabelul urmtor' 4'nc-#e !t#(#Dare Plot )enereaz grafice B!( cu scalare liniar a a%elor Plot3 )enereaz grafice C!( cu scalare liniar a a%elor loglog )enereaz grafice cu scalare logaritmic a a%elor semilog: )enereaz grafice cu scalare liniar a a%ei # i cu scalare logaritmic a a%ei % semilogy )enereaz grafice cu scalare liniar a a%ei % i cu scalare logaritmic a a%ei # plotyy )enereaz grafice cu dubl reprezentare a a%ei # "pe st:nga i pe dreapta$ L.1.1. P(ot>r# 3 5 e(e$entare Generarea /ra,#ce(or -uncia plot are diferite forme n funcie de argumentele de intrare& 3C

(ac de e%emplu y este un ector, plot;y< produce un grafic liniar al elementelor lui y ersus inde%ul elementelor sale& (ac se specific doi ectori ca argumente, plot;:@y< produce graficul lui y ersus :&
t!"!#Mpi2(##M21piP y!"!sin;t<P plot;t@y< grid!on

<%emplu'

/e pot realiza grafice multiple utiliz:nd un singur apel al funciei plot' !MATLAB!ul realizeaz automat o reprezentare cu culori diferite pentru a permite distingerea graficelor& <%emplu'
y2!"!sin;t%#'2,<P! y3!"!sin;t%#',<P plot;t@y@t@y2@t@y3<

+ec#,#carea st#('('# )e (#n#e /e pot crea diferite tipuri de linii pentru fiecare set de date prin folosirea unor identificatori de tip string n funcia plot& <%emplu'
t!"!#Mpi2(##M21piP y!"!sin;t<P y2!"!sin;t%#'2,<P! y3!"!sin;t%#',<P plot;t@y@9%9@t@y2@9%%9@t@y3@9M9<

3G

-unciile de plotare accept deci argumente de tip caracter care specific stilul liniei, simbolurile utilizate pentru marHer, culoarea etc& -orma general este'
plot;:@y@9linestyle_marker_color9<

unde linestyle_marker_color este un ir de caractere construit din' *n stil de linie "de e%emplu linie punctat, plin etc&$ *n tip de marHer "de e%emplu :, 1, o, etc&$ *n specificator de culoare "c, m, y, F, r, g, ?, G$ /e poate folosi un specificator sau mai muli, n orice ordine& (e e%emplu, 9go%%9 definete o linie ntrerupt, cu marHere circulare, ambele colorate n erde& +ec#,#carea c'(or## :# )#$ens#'n## (#n##(or 7aracteristicile liniilor se pot controla prin specificarea unor alori pentru proprietile linilor' Line]idth = specific limea unei linii& MarFerEdgeKolor = seteaz culoarea marHerului sau culoarea marginilor marHerului n cazul anumitor forme "cerc, ptrat etc&$ MarFerFaceKolor = seteaz culoarea interiorului marHerelor& MarFerSiEe = specific dimensiunea marHerului&

<%emplu'
:!"!%piMpi2(#MpiP y!"!tan;sin;:<<!%!sin;tan;:<<P plot;:@y@9%%rs9@9Line]idth9@2@''' !!!!!!!!!!!!!!!!9MarFerEdgeKolor9@9F9@''' !!!!!!!!!!!!!!!!9MarFerFaceKolor9@9g9@''' !!!!!!!!!!!!!!!!9MarFerSiEe9@(#<

38

'+ra+'nerea 'nor /ra,#ce +este 'n /ra,#c e2#stent /e pot aduga grafice peste unul e%istent cu comanda hold& (ac se seteaz hold on, MATLAB!ul nu nltur graficul e%istent, ci suprapune noul grafic n aceeai fereastr grafic& <%emplu'
semilog:;(M(##@9.9< hold!on plot;(M3M3##@(M(##@9%%9< hold!off

P(otarea s#$'(tan> a $arkere(or :# (#n##(or 5entru plotarea marHerelor "care indic punctele corespunztoare datelor$ i a liniilor "care unesc aceste date$ se specific at:t tipul marHerului c:t i stilul liniei& <%emplu'
:!"!#Mpi2(,M-1piP y!"!e:p;21cos;:<<P plot;:@y@9%r9@:@y@9oF9<!

33

P(otarea )ate(or )#n $atr#c# Atunci c:nd funcia plot este utilizat cu un singur argument de tip matrice' plot;J< a fi realizat un grafic pentru fiecare coloan a matricii, cu a%a x reprezent:nd inde%ul de linie (Mm, cu m numrul liniilor din J& <%emplu' cu instruciunea I!"!peaFsP!este creat o matrice GM%GM obinut printr!o e aluare de funcie& (ac plotm matricea cu plot;I< om a ea un grafic cu GM de linii&

P(otarea c' a2a M )'%(> 7omanda plotyy permite crearea unor grafice pentru dou seturi de date i cu reprezentare dubl a a%ei c, pe partea st:ng i pe partea dreapt& <%emplu'
t!"!#Mpi22#M21piP y!"!e:p;sin;t<<P plotyy;t@y@t@y@9plot9@9stem9<

3L

etarea +ara$etr#(or a2e(or MATLAB!ul seteaz automat limitele a%elor i gradarea acestora& /e pot ns folosi i setrile utilizatorului, cu comenzile'

a:is = seteaz a%ele pentru fereastra grafic curent& a:es = creeaz a%e noi cu caracteristici specificate& get i set = permit obinerea i setarea unor proprieti ale a%elor& gca = returneaz identificatorul a%elor curente&

/e pot parcurge n detaliu aceste comenzi prin apelarea la help' 4erestre )e t#+ ,#/'r> MATLAB!ul direcioneaz ieirile grafice spre o fereastr distinct de fereastra de comand& Aceast fereastr grafic este denumit )igur# ")igure$& "a se edea paragraful C&C$& -uncia figure genereaz ferestre grafice& (e e%emplu,
figure!

genereaz o nou fereastr i o face fereastra curent& A"i-area unor gra"ice multiple 2n aceea-i "ereastr0 gra"ic0 /e poate realiza o afiare a mai multor grafice n aceeai fereastr prin intermediul funciei su?plot& -uncia su?plot;m@n@i< desparte fereastra de tip figur ntr!o matrice m % n de mici subploturi "subgrafice$ i selecteaz subplotul i ca grafic curent& <%emplu'
t!"!#Mpi22#M21piP V:@yW!"!meshgrid;t<P su?plot;2@2@(< plot;sin;t<@cos;t<<! a:is!eAual su?plot;2@2@2< E!"!sin;:<.cos;y<P plot;t@E< a:is;V#!21pi!%2!2W< su?plot;2@2@3< E!"!sin;:<'1cos;y<P plot;t@E< a:is;V#!21pi!%(!(W< su?plot;2@2@-< E!"!;sin;:<'72<%;cos;y<'72<P plot;t@E< a:is;V#!21pi!%(!(W<

3;

Co$enD# )e $arcare, et#chetare :# /ra)are a /ra,#ce(or MATLAB!ul furnizeaz comenzi de etic.etare a fiecrei a%e i de plasare a unui te%t n orice loc din grafic& 7omenzile sunt prezentate n tabelul urmtor& Co$an)>
title :la?el yla?el Ela?el legend Te:t Gte:t

5escr#ere Adaug un titlu Adaug o etic.et pe a%a x Adaug o etic.et pe a%a y Adaug o etic.et pe a%a z Adaug o legend Afieaz un te%t la o locaie specificat 5laseaz te%tul pe grafic utiliz:nd mouse!ul

7tic etarea axelor /e pot aduga etic.ete pe a%e cu comenzile :la?el, yla?el, Ela?el& <%emplu'
:la?el;9t!"!#!to!25pi9@9FontSiEe9@()< yla?el;9sin;t<9@9FontSiEe9@()< title;95it_Lalue!of!the!Sine!from!Iero!to!TGo Pi`9@9FontSiEe9@()<

3M

MATLAB!ul interpreteaz caracterele care urmeaz dup bacHslas. Y\Y ca i comenzi TeJ& Aceste comenzi permit reprezentarea unor simboluri cum ar fi literele greceti sau sgeile& Ad0ugarea textelor 5rin utilizarea funciei te:t se poate plasa un te%t "ir de caractere$ oriunde pe grafic& <%emplu'
te:t;31pi2-@sin;31pi2-<@''' !!!!!95leftarroGsin;t<!"!'*#*9@''' !!!!!9FontSiEe9@()< te:t;pi@sin;pi<@95leftarroGsin;t<!"!#9@''' !!!!!9FontSiEe9@()< te:t;,1pi2-@sin;,1pi2-<@9sin;t<"%'*#*5rightarroG9@''' !!!!!9RoriEontal/lignment9@9right9@''' !!!!!9FontSiEe9@()<

'lasarea textului 2n mod interactiv (ac utilizm funcia gte:t se poate plasa un te%t n mod interacti , cu mouse!ul, oriunde pe grafic& Aceast funcie accept ca argument un ir de caractere i ateapt p:n c:nd utilizatorul selecteaz un loc pe grafic cu ajutorul mouse!ului& LE

/e poate utiliza i 5lot <ditor pentru plasarea te%tului "a se edea paragraful C&C$& L.1.3. Gra,#ce 3 5 s+ec#a(#Date MATLAB!ul permite lucrul cu o mare arietate de tipuri de grafice, astfel nc:t informaiile s poat fi prezentate eficient& Tipul de grafic selectat depinde n mod esenial de natura datelor prelucrate& )raficele de tip bare sau arie "?ar@!area$ sunt utile pentru izualizarea unor rezultate, compararea lor i afiarea unei contribuii indi iduale din total&

)raficele de tip statistic "pie!charts$ indic contribuiile indi iduale dintr!un total& 9istogramele "histogram$ sunt utile pentru a indica distribuia alorilor datelor& )raficele de tip stem i stairstep sunt utile pentru date discrete& )raficele compass@!feather@!Aui>er sunt utile pentru plotarea ectorilor de tip direcie i itez& )raficele de tip contur "contour$ sunt utile la reprezentarea unor regiuni de alori egale ale datelor& 5lotrile interacti e "interacti>e$ permit selectarea unor puncte de plotare n mod interacti & )raficele de tip animaie "animations$ adaug date la grafice consecuti e i creeaz o animaie&

Gra,#ce )e t#+ Bar :# Area 4'nc-#e 5escr#ere Afieaz coloanele unor matrici m%n ca m grupe de n bare erticale Afieaz coloanele unor matrici m%n ca m grupe de n bare orizontale Afieaz coloanele unor matrici m%n ca m grupe de n bare erticale C!( Afieaz coloanele unor matrici m%n ca m grupe de n bare orizontale tridimensionale C!( /rea Afieaz datele din vectori ca suprafee Gra"ice Bar grupate 7a setare implicit, un grafic cu bare reprezint fiecare element dintr!o matrice cu o singur bar& Kn cazul unui grafic B!(, barele create cu funcia ?ar sunt distribuite de!a lungul a%ei x, cu fiecare element dintr!o coloan desenat la alt locaie& Toate elementele dintr!o linie sunt reprezentate grupat la aceeai locaie pe a%a x& <%emplu'
J!"!V,!2!( !!!!!+!*!3 !!!!!&!+!) !!!!!,!,!, !!!!!-!3!2WP ?ar;J<

Qar Qarh ?ar3 ?ar3h

L6

)rupele de coloane reprezint linii din c&

Gra"ice Bar ;$D separate -uncia ?ar3, n cea mai simpl form, traseaz fiecare element ca un bloc separat de tip C!(, cu elementele fiecrei coloane distribuite de!a lungul a%ei y& Barele care reprezint elementele din prima coloan a unei matrice sunt centrate la 6 pe a%a x &a&m&d& Barele care reprezint elementele din ultima coloan sunt centrate la aloarea siEe;J@2< de pe a%a x& <%emplu' ?ar3;J<'

*ltimul grup de bare reprezint ultima linie din c

Gra"ice Bar ;$D grupate 5entru a realiza un grafic de bare grupate C ( se specific argumentul 9group9M ?ar3;J@9group9<

*ltimul grup de bare reprezint ultima linie

LB

Gra,#ce stat#st#ce . +#e charts )raficele pie afieaz procentul cu care fiecare element al unui ector sau matrice contribuie la suma tuturor elementelor& -unciile pie i pie3 creeaz grafice B!( i C!(& Kn continuare prezentm un e%emplu de izualizare a ponderii a trei produse din totalul :nzrilor& /e consider o matrice H@ pentru care fiecare coloan reprezint :nzrile anuale pentru c:te un
produs, pe o perioad de nregistrri de 8 ani' H!"!V(&'3!22'(!,(')P !!!!!3-'2!*#'3!+2'-P !!!!!)('-!+2'&!&#'+P !!!!!,#',!,-'&!,&'(P !!!!!2&'-!3)'3!-*'#WP

/e pot calcula :nzrile pentru fiecare produs n cei 8 ani cu ajutorul funciei'
:!"!sum;H<P

(ac utilizm argumentul de intrare e:plode putem reprezenta ntr!un mod e%plodat care dintre produse a a ut o contribuie mai mare la :nzri "de e%emplu$& 5rogramul are urmtoarea form'
e:plode!"!Eeros;siEe;:<<P Vc@offsetW!"!ma:;:<P e:plode;offset<!"!(P h!"!pie;:@e:plode<P!colormap!summer

Crearea )e /ra,#ce t#+ cont'r -unciile contour i contour3 afieaz contururi B!( i C!(& -unciile cer un singur argument, i anume o matrice, ale crei date sunt interpretate ca nlimi fa de un plan& 5entru a seta numrul de ni eluri de contur "implicit se realizeaz automat pe baza alorilor minime i ma%ime$ se folosete un argument suplimentar opional& (e e%emplu,
VH@J@IW!"!peaFsP contour;H@J@I@2#<

afieaz BE de contururi ale funciei peaFs ntr!o edere bidimensional&

LC

(ac dorim o reprezentare C ( putem folosi comenzile'


VH@J@IW!"!peaFsP contour3;H@J@I@2#< h!"!findo?$;^Type9@9patch9<P set;h@9Line]idth9@2< title;9TGenty!Kontours!of!the!peaFs!Function9<

An#$a-#e /e pot crea sec ene animate n MATLAB pe dou ci'


/al area unui numr de imagini i rularea lor ca pe un film& Stergerea continu i redesenarea unor obiecte pe ecran, fc:nd sc.imbri n mod incremental la fiecare redesenare&

,ilme /e parcurg trei etape' /e folosete mo>iein pentru iniializarea memoriei pentru o matrice suficient de mare& /e utilizeaz getframe pentru a genera fiecare cadru de film, care este returnat ca un ector coloan cu care se poate construi o matrice de tip film&

LG

/e folosete mo>ie pentru rularea @filmuluiA de un numr specificat de ori cu o itez specificat&

/tergere -i redesenare 5ot fi create diferite efecte prin selectarea unor moduri de tergere& 5entru crearea unei animaii sunt utile trei moduri de tergere' none ! MATLAB nu terge obiectele& ?acFground ! MATLAB terge obiectul i l redeseneaz n bacHground& Acest mod terge obiectul i tot ce este sub el "linii de grid etc&$& :or = Acest mod terge doar obiectul i este cel mai folosit la animaie& 5entru izualizarea unor efecte de animaie i construirea unor e%emple proprii este indicat utilizarea facilitii demo a MATLAB!ului& L.1.9. P(ot>r# tr#)#$ens#ona(e 09 51 5aii tipici care trebuie parcuri pentru trasarea unor grafice tridimensionale sunt prezentai n continuare& Eta+a 6&5regtirea datelor B& /electarea ferestrei grafice i poziionarea graficului n fereastr C& Apelarea unei funcii de plotare C!( Ga& /etarea unei .ri de culori i a unui algoritm de umbrire Gb& Adugarea unei iluminri Instr'c-#'n#
I!"!peaFs;2#<P figure;(< su?plot;2@(@2< h!"!surf;I<P colormap!hot shading!interp set;h@9EdgeKolor9@9F9< light;9Position9@V%2@2@2#W< lighting!phong material;V#'-@#')@#',@3#W< set;h@9FaceKolor9@V#'*!#'*!#W@''' !!!!!!9QacFFaceLighting9@9lit9< >ieG;V3#@2,W< set;gca@9KameraLieG/ngleMode9@9Manual9<

8& /etarea unui punct de izualizare

3& /etarea limitelor a%elor a:is;V,!(,!,!(,!%+!+W< set;gca9ITicFLa?el9@9Degati>ebbPositi>e9< i a marcajelor L& /etarea proporionalitii
set;gca@9PlotQo:/spect8atio9@''' !!!!!!!!!V2',!2',!(W<

;& 7ompletarea graficului :la?el;9H!/:is9< cu etic.ete, legend, te%t yla?el;9J!/:is9< Ela?el;9Function!Lalue9<


title;9PeaFs9<

M& 4peraiuni de tiprire

set;gcf@9PaperPositionMode9@9auto9< print!%dps2

L8

Re+reDentarea 'ne# $atr#ce ca o s'+ra,a-> MATLAB!ul definete o suprafa prin coordonatele z ale punctelor de deasupra unui caroiaj dreptung.iular n planul x!y& )raficul este format prin unirea punctelor adiacente cu linii drepte& 5lotrile de suprafee sunt utile pentru izualizarea matricilor care sunt prea mari pentru a fi afiate n form numeric i pentru trasarea graficelor funciilor de dou ariabile& MATLAB!ul poate crea diferite forme de trasare a suprafeelor' 4'nc-#e
mesh@!surf meshc@!surfc meshE pcolor surfl surface

!t#(#Dare Trasare a unei suprafee Trasarea suprafeei, inclusi conturul Trasarea suprafeei, inclusi planul de referin 5lotare plan a suprafeei " alorile sunt proporionale doar cu culoarea$ Trasarea suprafeei luminat din direcia specificat -uncie de ni el sczut pentru crearea unor obiecte tip grafice suprafa

Gra,#ce rea(#Date c' mesh :# surf 7omenzile mesh i surf genereaz suprafee C!( din datele pro enite de la matrici& (ac I este o matrice pentru elementele creia I;i@$< se definete nlimea unei suprafee peste un caroiaj ;i@$< atunci
mesh;I<

genereaz o imagine colorat, caroiat a suprafeei i o afieaz n edere C!(& /imilar,


surf;I<

genereaz o imagine colorat, continu a suprafeei i o afieaz n edere C!(& Kn cazul comenzii mesh se pot folosi comenzi de tipul shading pentru eliminarea liniilor de tip mes. "shading!flat$ sau pentru interpolarea umbririlor de!a lungul faetelor suprafeei " shading! interp$& G#D'a(#Darea ,'nc-##(or )e )o'> 8ar#a%#(e 5rimul pas care trebuie parcurs pentru trasarea graficului unei funcii de dou ariabile, z = )7x,y8, este de a genera matricile H i J care definesc domeniul n care a fi izualizat funcia& Apoi se utilizeaz aceste matrici pentru e aluare i trasarea graficului funciei& -uncia meshgrid transform domeniul specificat prin doi ectori, : i y, n matricile H i J& Liniile matricei H sunt copii ale ectorului : i coloanele matricei J sunt copii ale ectorului y& 5entru a edea cum se folosete meshgrid, om considera funcia sin7r8?r "numit funcia sinc$& 5entru a e alua funcia ntre !; i ; i pentru x i pentru y, este necesar doar un argument de tip ector pentru meshgrid, care a fi utilizat n ambele direcii'
VH@JW!"!meshgrid;%+M',M+<P 8!"!sArt;H'72!.!J'72<!.!epsP

Matricea 8 conine distanele de la centru "originea$, iar eps este adugat pentru a e ita mprirea la zero& L3

Acum se poate forma funcia sinc i se poate realiza plotarea cu mesh&


I!"!sin;8<'28P mesh;I<

/e poate realiza o mbuntire a reprezentrii grafice n condiiile utilizrii acelorai date, prin folosirea unor faciliti de iluminare i ajustare a imaginii " daspect@!a:is@!camlight@! >ieG$& <%emplu' !!surf;H@J@I@9FaceKolor9@9interp9@9EdgeKolor9@9none9@'''
!!!!9FaceLighting9@9phong9< !!daspect;V,!,!(W<Pa:is!tightP>ieG;%,#@3#<Pcamlight!left

*arta c'(or#(or -iecare fereastr grafic MATLAB are asociat o .art a culorilor "colormap$, care este o matrice cu trei coloane a cror lungime este egal cu numrul de culori definite& -iecare linie a matricii definete o culoare particular prin specificarea a trei alori n domeniul E = 6& Aceste alori definesc componentele 1)B "red, green, blue$ "adic intensitile componentelor ideo rou, erde i albastru$& -uncia colormap fr argumente returneaz .arta figurii curente& LL

-uncia color?ar afieaz n fereastra grafic .arta curent a culorilor, sub forma unei bare aezate l:ng grafic& <%emplu'
V:@yW!"!meshgrid;V%2M'2M2W<PI!"!:'1e:p;%:'72%y'72<P surf;:@y@I@gradient;I<<Pcolor?ar

L.3. Handle Grap ics :# Inter,e-e Gra,#ce ?n MATLAB 0G!I1 7rearea i manipularea graficelor n MATLAB se realizeaz cu ajutorul unui sistem de grafic orientat pe obiecte denumit Handle Grap ics& Acest sistem furnizeaz componentele necesare generrii unor grafice' comenzi de trasare a liniilor, te%telor, grafice C!(, poligoane etc& precum i instrumente interacti e de tipul meniurilor, butoanelor, ferestre de dialog etc& 7u Handle Grap ics se pot manipula direct elementele grafice "aa cum o fac funciile MATLAB de ni el nalt descrise n paragraful anterior$ pe dou ci' fie de la linia de comand MATLAB fie cu ajutorul unor fiiere MATLAB create special& L.3.1. Gra,#ce(e +r#8#te ca o%#ecte. Ierarh#a o%#ecte(or 4biectele grafice sunt de fapt elementele grafice de baz utilizate de MATLAB pentru afiarea datelor i pentru crearea +nterfeelor )rafice *tilizator ")rap.ical *ser +nterfaces ! )*+$& -iecare stare a unui obiect este asociat unui identificator unic numit handle, care poate fi folosit pentru manipularea caracteristicilor obiectului respecti "caracteristici care sunt numite propriet0#ile obiectului$& 4biectele grafice sunt structurate ntr!o ierar.ie pe trei ni ele'

+erar.ia este bazat pe interdependenele dintre diferitele obiecte grafice& (e e%emplu, pentru trasarea unui obiect linie, MATLAB utilizeaz un obiect de tip a%e pentru orientarea i furnizarea unui sistem de referin liniei& 4biectul de tip a%e are ne oie la r:ndul su de o fereastr grafic pentru afiarea liniei&

L;

4biectele grafice sunt interdependente i prin urmare un ecran grafic conine o mare arietate de obiecte care mpreun furnizeaz o imagine sau un grafic care are o semnificaie clar& 5entru e%emplificare se poate analiza urmtoarea fereastr grafic, fereastr care conine mai multe obiecte grafice&

-iecare tip de obiect grafic are o funcie generatoare corespunztoare, funcie care este utilizat pentru crearea unui obiect din clasa respecti de obiecte& -unciile de generare a obiectelor au aceleai nume ca i obiectele pe care le creeaz "funcia te:t pentru obiecte de tip te%t, funcia figure pentru obiecte de tip figur etc&$& Tipurile de obiecte grafice sunt descrise pe scurt n continuare& 80d0cina &8oot( Kn fruntea ierar.iei este obiectul rdcin, care corespunde cu ecranul calculatorului& Acest obiect nu trebuie creat, el e%ist, este unic i toate celelalte obiecte sunt descendenii acestuia& /e pot modifica anumite proprieti ale obiectului rdcin& +biectele "igur0 &,igure( 4biectele de tip figur sunt ferestre indi iduale pe ecranul rdcin pe care MATLAB!ul afieaz graficele& ,u e%ist limit pentru numrul de ferestre grafice "dec:t cele datorate limitelor calculatorului$& Toate obiectele figur sunt @copiiA ai rdcinii i celelalte obiecte grafice sunt descendeni ai figurilor& +biectele de tip <icontrol 4biectele Uicontrol sunt elemente de control ale interfeei utilizator care e%ecut subrutine de apel atunci c:nd utilizatorul acti eaz un obiect& <%ist mai multe stiluri de control cum ar fi butoane, liste etc& -iecare astfel de instrument este proiectat s accepte un anumit tip de informaie LM

de la utilizator& (e e%emplu, listele sunt de obicei folosite pentru pentru furnizarea unei liste de nume, din care utilizatorul poate selecta unul sau mai multe articole& Meniurile pop!up permit alegerea dintre 4biectele *icontrol pot fi utilizate n diferite combinaii pentru construirea unor ecrane de mai multe articole predefinite control i a unor ferestre de dialog& Kn e%emplul urmtor sunt prezentate astfel de combinaii' meniuri @pop!upA, ferestre de tip te%t editabile, ferestre de erificare "c.ecH bo%es$, butoane, te%t static, cadre etc&

*tilizatorul poate introduce alori numerice n astfel de ferestre de tip te%t editabile

4biectele *icontrol sunt copiii obiectelor de tip figur i de sunt erificare independente de bo%es$ obiectele de tip -erestrele "c.ecH a%e& indic alegerea fcut de utilizator +biectele de tip <imenu 4biectele Uimenu sunt meniuri @pull!do0nA care e%ecut rutine de apelare atunci c:nd utilizatorul selecteaz un articol indi idual dintr!un meniu& MATLAB!ul plaseaz obiectele *imenu 7adrele e%istente realizeaz grupri pe bara de meniuri a ferestrei grafice, la dreapta meniurilor definite de logice sistem& pentru +maginea urmtoare arat partea de sus a unei figuri M/!Iindo0s care are definite trei meniuri di erse tipuri de comenzi de top *imenu "intitulate IorHspace, -igure, i A%es$& (ou ni eluri de submeniuri sunt izibile n Te%tele statice permit etic.etarea meniul IorHspace&

di erselor tipuri de controale Butoanele indic o anumit aciune

4biectele *imenu sunt descendente directe ale obiectelor de tip figur i deci sunt independente de a%e& +biectele de tip axe &Axes( 4biectele de tip a%e definesc o regiune ntr!o fereastr de tip figur i orienteaz descendenii lor spre aceast regiune& 4biectele de tip a%e sunt copiii obiectelor de tip figur i sunt prinii obiectelor de tip imagine, luminozitate, linie, patc., suprafa i te%t& Toate funciile care traseaz grafice "plot@!surf@!mesh@!?ar etc&$ creeaz un obiect de tip a%e dac nu e%ist deja unul& *icontrol i *imenu nu sunt descendeni ai obiectelor de tip a%e& +biectele de tip %magine &%mage( 4 imagine n MATLAB const ntr!o matrice de date i o .art a culorilor& <%ist trei tipuri de baz de imagini care difer n funcie de modul n care elementele matricii de date sunt interpretate ca pi%eli color = inde%ai, intensitate i @truecolorA& +biectele de tip lumin0 &luminozitate( &Lig t( Aceste obiecte definesc surse de lumin care influeneaz toate obiectele de tip patc. i suprafa dintre a%e& /e pot seta proprietile care determin tipul sursei de lumin, culoarea, localizarea i altele&

;E

+biectele de tip linie &Line( 4biectele de tip linie sunt elemente grafice de baz care sunt folosite pentru a genera cele mai multe plotri B!( i unele C!(& -unciile de ni el nalt!plot@!plot3@!loglog etc& genereaz obiecte de tip linie& /istemul de coordonate al obiectului printe = obiectul de tip a%e = poziioneaz i orienteaz linia& +biectele de tip 'atc Aceste obiecte sunt contururi poligonale cu muc.ii "laturi$, umplute& *n singur obiect patc. poate conine mai multe fee, fiecare colorat independent& -unciile fill@ fill3@ contour3! creeaz obiecte patc.& 7a i n cazul liniei, sistemul de coordonate al obiectului printe "a%ele$ poziioneaz i orienteaz obiectul patc.& +biectele de tip dreptung i &8ectangle( Aceste obiecte sunt arii B!( umplute, cu o form care poate aria de la un dreptung.i la o elips& +biectele de tip supra"a#0 &Sur"ace( 4biectele de tip /urface sunt reprezentri C!( ale matricilor de date create prin plotarea fiecrui element al matricii ca o nlime deasupra planului x!y& MATLAB!ul poate trasa suprafee pline, colorate sau doar o reea de linii "mes.$ care conecteaz punctele respecti e& /istemul de coordonate al a%elor poziioneaz i orienteaz obiectul de tip suprafa& -unciile de ni el nalt pcolor@!surf@!mesh!genereaz obiecte de tip suprafa& +biectele de tip Text 4biectele de tip te%t sunt de fapt iruri de caractere& /istemul de coordonate al a%elor poziioneaz te%tul& -unciile de ni el nalt title@!:la?el@!yla?el@!Ela?el@!gte:t! genereaz obiecte de tip te%t& L.3.3. Pro+r#et>-#(e o%#ecte(or /ra,#ce 5roprietile obiectelor grafice determin aspectul i comportamentul acestora& 5roprietile includ informaii generale "tipul obiectului, printe, copii, dac obiectul este izibil etc&$ i informaii specifice unei anumite clase particulare de obiecte& MATLAB!ul organizeaz informaiile ntr!o ierar.ie i sal eaz aceste informaii n proprieti ale obiectelor& (e e%emplu, proprietile rdcinii conin identificatorul ".andle$ figurii curente i locaia curent a pointerului "cursorului$, proprietile figurii conin liste cu descendenii i e enimentele din fereastr, proprietile a%elor conin informaii despre cum fiecare din obiectele copil folosete .arta culorilor etc& Daloarea curent a oricrei proprieti poate fi aflat, iar unele alori pot fi modificate& Daloarea unei proprieti este aplicat numai unui obiect particular i nu ntregii clase de obiecte& /e pot seta alori implicite care s fie alabile pentru toate obiectele create ulterior& Anumite proprieti sunt comune tuturor obiectelor grafice' Pro+r#etate
Qusy/ction QuttonDoGnFcn Khildren Klipping KreateFcn DeleteFcn RandleLisi?ility

In,or$a-## con-#n'te 7ontroleaz modul n care MATLAB!ul apeleaz rutinele de ntreruperi definite pentru un anumit obiect& 1utin e%ecutat la apsarea unui buton& Manipuleaz toate obiectele copil ale obiectului& Acti are2dezacti are mod tiere& 1utin e%ecutat atunci c:nd acest tip de obiect este creat& 1utin e%ecutat atunci c:nd se d o comand de distrugere "tergere$ a obiectului& 5ermite controlul obiectului de la linia de comand sau din rutine de apelare& ;6

Interrupti?le Parent Selected SelectionRighlight Tag Type UserData Lisi?le

(etermin c:nd o rutin poate fi ntrerupt printr!o rutin in ocat ulterior& 5rintele obiectului& +ndic dac obiectul este selectat& /pecific dac este indicat starea de selectare& <tic.et a unui obiect specificat de utilizator& Tipul obiectului "figur, linie, te%t etc&$ 4rice dat care se dorete a fi asociat obiectului& (etermin dac obiectul este izibil sau nu&

L.3.9. 4'nc-## )e /enerare a o%#ecte(or /ra,#ce -iecare obiect grafic, mai puin rdcina, are o funcie de generare corespondent' 4'nc-#e
a:es

5escr#ere o%#ect /istem de coordonate carteziene care scaleaz i orienteaz obiectele copil' imagine, lumin, linie, patc., suprafa i te%t& figure -ereastr pentru afiare grafic& image +magine B!( definit prin indicarea .rii culorilor sau alori 1)B& (atele pot fi pe ; bii sau dubl precizie& light /urs direcionat de lumin, localizat ntre a%e, care influeneaz suprafeele i obiectele patc.& line Linie format prin conectarea coordonatelor prin segmente drepte ntr!o sec en specificat& patch -orm poligonal creat prin interpretarea fiecrei coloane din matricile de coordonate ca un poligon separat& rectangle Arie B!( umplut "plin$, cu form de la dreptung.i la elips& surface /uprafa cu fee dreptung.iulare, definite prin interpretarea elementelor matricei ca nlimi deasupra planului& te:t Sir de caractere localizat n sistemul de coordonate al a%elor& uiconte:tmenu Meniu conte%t ce poate fi asociat cu alt obiect grafic& uicontrol +nterfa utilizator programabil "butoane, liste etc&$& uimenu Meniu programabil care apare n partea superioar a figurii& Toate funciile de generare a obiectelor au un format similar '
handle"function;9propertyname9@propertyvalue@'''<

7xemplu de generare a obiectelor gra"ice Kn e%emplul urmtor este e aluat o funcie matematic i sunt create trei obiecte grafice folosind alorile proprietilor specificate ca argumente ale comenzilor figure, a:es i surface, celelalte proprieti a :nd alori implicite&
V:@yW!"!meshgrid;V%2M'-M2W<P I!"!:'1e:p;%:'72%y'72<P fh"figure;9Position9@V3,#!2*,!-##!3##W@9Kolor9@9G9<P ah"a:es;9Kolor9@V'+!'+!'+W@9HTicF9@V%2!%(!#!(!2W@''' !!!!!!!!!!9JTicF9@V%2!%(!#!(!2W<P sh!"!surface;9HData9@:@9JData9@y@9IData9@I@''' !!!!!!!!!!!!!9FaceKolor9@get;ah@9Kolor9<.'(@''' !!!!!!!!!!!!!9EdgeKolor9@9F9@9MarFer9@9o9@''' !!!!!!!!!!!!!9MarFerFaceKolor9@V',!(!'+,W<P

;B

-uncia surface! nu folosete o edere C!( ca funcia de ni el nalt surf& /e poate sc.imba ederea ntr!una C!( cu camera!commands sau cu comanda >ieG'
>ieG;3<

N. PREZENTAREA T66LB6O.!RIL6R MATLAB MATLAB permite dez oltarea unei familii de aplicaii sub forma toolbox!urilor& Aceste toolbox-uri permit n area i aplicarea te.nologiilor specializate din di erse domenii& /unt disponibile toolbo%!uri pentru domenii cum ar fi' procesarea numeric a semnalelor, sisteme de conducere automat, reele neurale, logic fuzz#, 0a elet, simulare " IM!LIN"$, identificare, statistic, crearea de .ri, procesarea imaginilor, etc& Kn continuare sunt prezentate pe scurt facilitile oferite de c:te a din aceste toolbo%!uri& N.1. Too(%o2.'( Co$'n#ca-## 0Co$$'n#cat#ons Too(%o21 7ommunications Toolbo% este o colecie de funcii de calcul i blocuri de simulare pentru cercetare, dez oltare, proiectarea de sisteme i simulare n domeniul comunicaiilor& Toolbo%ul este proiectat at:t pentru e%peri c:t i pentru nceptori n domeniu, i se bazeaz pe MATLAB i /imulinH& -uncii disponibile' d /urse de date d /urse codare2decodare d 7ontrolul erorilor de codificare ;C

d Modulare2demodulare d -iltre transmisie2recepie d 7anale de transmisie d Acces multiplu d /incronizare d *tilitare N.3. Too(%o2.'( +entr' #ste$e )e Con)'cere A'to$at> 0Contro( Aste$1 MATLAB!ul dispune de o colecie bogat de funcii utile at:t inginerului automatist practician c:t i teoreticianului din domeniul teoriei sistemelor& 5rintre facilitile oferite enumerm' aritmetic comple%, alori proprii, gsirea rdcinilor, in ersri de matrici, Transformarea -ourier 1apid etc& Toolbo%!ul 7ontrol /#stem folosete structurile matriceale ale MATLAB i reprezint fundaia MATLAB& Toolbo%!ul este o colecie de algoritmi "n principal sub forma fiierelor &m$, care implementeaz proiectarea sistemelor de conducere, precum i te.nici de analiz i modelare& /istemele pot fi modelate n MATLAB ca funcii de transfer, sub forma poli!zerouri sau prin reprezentarea de stare, ceea ce permite aplicarea te.nicilor clasice i a celor moderne& /e poate lucra cu sisteme continue i cu sisteme discrete i pot fi efectuate con ersii ntre di ersele tipuri de modele& Toolbo%!ul permite calculul i trasarea rspunsurilor n domeniul timp i domeniul frec en, precum i a locului rdcinilor& (e asemenea, se pot realiza alocri de poli, se pot implementa conducerea optimal i estimatoare etc& N.9. Too(%o2.'( +entr' BaDe )e 5ate 05ata%ase Too(%o21 Toolbo%!ul Baze de (ate permite importul i e%portul de date ntre MATLAB i cele mai rsp:ndite programe de baze de date& 7u acest toolbo% se pot importa date din e%terior, se utilizeaz capacitile mari de calcul i prelucrare analitic ale MATLAB, i se e%port rezultatele napoi n baza de date sau n alt baz de date& 1ealizarea acestor operaiuni se face astfel' toolbo%!ul (atabase conecteaz MATLAB la o baz de date utiliz:nd funciile MATLABX datele sunt preluate de la baza de date ca i caractere, sunt transformate n tipuri de date corespunztoare i sunt stocate n tablouri de tip celul& Kn acest moment se pot folosi instrumentele MATLAB de lucru cu date& /e pot include funciile toolbo%! ului n fiiere M!files& 5entru e%portul datelor se utilizeaz n final funciile specializate MATLAB& Toolbo%!ul (atabase este furnizat mpreun cu interfaa grafic Disual Zuer# Builder "DZB$& N.;. Too(%o2.'( )e Procesare a e$na(e(or 0 #/na( Process#n/ Too(%o21 Toolbo%!ul de 5rocesare a /emnalelor este o colecie de instrumente construit n mediul de calcul numeric MATLAB& Toolbo%!ul permite o mare arietate de operaii de prelucrare a semnalelor, de la forme de und la proiectarea filtrelor, modelare parametric i la analiza spectral& Toolbo%!ul furnizeaz dou categorii de instrumente' P -uncii de prelucrare a semnalelor de la linia de comand P +ntefee grafice utilizator pentru' ! 5roiectarea interacti a filtrelor ! Trasarea i analiza semnalelor ! Analiz spectral ! Aplicarea de filtre semnalelor ! Analiza filtrelor N.=. Too(%o2.'( 5 P B(ockset /etul de blocuri de procesare numeric a semnalelor "(/5 BlocHset$ este o colecie de biblioteci de blocuri care se utilizeaz cu pac.etul /imulinH& Bibliotecile (/5 BlocHset sunt proiectate special pentru prelucrarea numeric a semnalelor i includ faciliti cum ar fi filtrarea clasic, adapti , manipulri de matrici, algebr liniar, statistic, etc& (/5 BlocHset e%tinde mediul /imulinH prin furnizarea de componente i algoritmi pentru sistemele (/5& -aciliti' d 4peraiuni bazate pe cadre d /uport matriceal ;G

d -iltrare adapti i cu eantionare multipl d 4peraiuni statistice d Algebr liniar d <stimarea parametrilor d -aciliti de timp real N.I. Too(%o2.'( 4#nan-e 04#nanc#a( Too(%o21 MATLAB!ul mpreun cu toolbo%!ul de -inane furnizeaz un mediu de calcul integrat i complet pentru analiz i inginerie financiar& Toolbo%!ul dispune de instrumente de analiz matematic i statistic a datelor financiare i instrumente de prezentare grafic a rezultatelor obinute& -aciliti' d 7alcul i analiz de pre i de producie d 1ealizeaz analize enituri, preuri etc& compatibile /+A "/ecurities +ndustr# Association$ d Analiza i managementul portofoliilor d 5roiectarea i e aluarea de strategii financiare d +dentificarea, msurarea i controlul riscului d Analiza i calculul flu%ului de cas. d Analiza i predicia acti itii economice d 7rearea de instrumente financiare structurate d 7ercetare academic N.J. Too(%o2.'( )e Procesare a I$a/#n#(or 0I$a/e Process#n/ Too(%o21 Toolbo%!ul +mage 5rocessing este o colecie de funcii care e%tind posibilitile MATLAB din domeniul prelucrrii imaginilor& Toolbo%!ul dispune de o mare arietate de operaiuni de prelucrare a imaginilor, cum ar fi' d 4peraii geometrice d 4peraii de tip ecintate d -iltrare liniar i proiectarea filtrelor d Transformate d Analiza i mbuntirea imaginilor d 4peraii binare d 4peraii asupra regiunii de interes Multe dintre funciile toolbo%!ului sunt fiiere M!files care constau n instruciuni MATLAB care implementeaz algoritmi specializai de prelucrare a imaginilor& Aceste instruciuni pot fi izualizate cu comanda cunoscut' type!function_name 5osibilitile toolbo%!ului pot fi e%tinse prin crearea de fiiere proprii prin utilizarea funciilor disponibile n combinaie cu alte toolbo%!uri cum ar fi /ignal 5rocessing Toolbo% i Ia elet Toolbo%& N.L. Too(%o2.'( 6+t#$#Dare 06+t#$#Dat#on Too(%o21 Acest toolbo% este o colecie de funcii care includ rutine pentru o mare di ersitate de optimizri' d Minimizare neliniar fr constr:ngeri d Minimizare neliniar cu constr:ngeri, inclusi probleme de tip minima% i probleme de minimizare semi!infinit d 5rogramare liniar i ptratic d Algoritmi neliniari de tipul celor mai mici ptrate d 1ezol area de sisteme de ecuaii neliniare /unt disponibili i algoritmi specializai pentru sisteme mari "large!scale problems$& -unciile toolbo%!ului pot fi utilizate n combinaie cu alte toolbo%!uri sau cu /imulinH& N.N. Too(%o2.'( +entr' #ste$e )e P'tere 0Po@er Aste$ B(ockset1 /istemele electrice de putere sunt combinaii de circuite electrice i de aparate electro!mecanice cum ar fi motoarele i generatoarele& +nginerii care lucreaz n acest domeniu trebuie s ;8

mbunteasc performanele sistemelor de putere& 7erinele de cretere drastic a eficienei au determinat proiectanii s foloseasc aparatur electronic i sisteme sofisticate de conducere care necesit instrumente de analiz i proiectare corespunztoare, fiind absolut necesar nelegerea fenomenelor "neliniare$ prin simulare& 5o0er /#stem BlocHset a fost proiectat pentru furnizarea unor instrumente de proiectare care permit inginerilor s construiasc rapid i uor modele care simuleaz sistemele de putere& Blocurile utilizeaz mediul /imulinH i permit construirea unui model cu proceduri simple de tip click and drag& /e poate trasa rapid topologia circuitelor electrice i de asemenea se poate face o analiz a circuitelor care include interaciunile cu sistemele mecanice, termice, de control& Bibliotecile conin modele ale aparaturii tipice pentru sistemele de putere, cum ar fi transformatoare, linii electrice, motoare, electronic de putere etc& 5osibilitile toolbo%!ului pot fi testate prin rularea fiierelor demonstrati e& N.1Q. Too(%o2.'( tate,(o@ 05#a/ra$e )e stare1 /tateflo0 este un produs multiplatform, care poate rula pe sisteme Microsoft Iindo0s M8, Iindo0s ,T i *,+J, i care necesit MATLAB F /imulinH& /tateflo0 este un instrument grafic de proiectare i dez oltare pentru sisteme de conducere comple%e i pentru sisteme logice de super izare& 7u ajutorul acestui toolbo% se pot genera modele sub forma unor diagrame de stare dinamice ale unui sistem& )enerarea de cod pentru elementele /imulinH ale unui model /tateflo0 necesit pac.etul suplimentar al /imulinH!ului 1eal!Time IorHs.op&

N.11. Too(%o2.'( )e tat#st#c> 0 tat#st#cs Too(%o21 Toolbo%!ul de /tatistic dispune de instrumente care permit e%ecutarea de sarcini statistice uzuale, de la generarea de numere aleatoare p:n la proiectarea de e%perimente statistice i controlul proceselor statistice& <%ist dou categorii de instrumente' d 7onstrucia de funcii statistice i probabilistice d +nstrumente grafice interacti e 5rima categorie const n funcii care pot fi apelate din linia de comand sau din aplicaii proprii& A doua categorie const n instrumente interacti e care permit accesul la funcii prin intermediul unei interfee grafice utilizator ")*+$, care furnizeaz un mediu adec at pentru funcii de predicie, interpolare, probabilistice etc& N.13. Too(%o2.'( +entr' Ca(c'( #$%o(#c 0 A$%o(#c Math Too(%o21 Acest toolbo% completeaz facilitile grafice i numerice ale MATLAB!ului cu di erse alte tipuri de faciliti matematice, care permit efectuarea de calcule simbolice& Maina de calcul utilizat este nucleul de la Maple& <%ist de fapt dou toolbo%!uri' unul de baz, care este o colecie de peste o sut de funcii MATLAB care permit accesul la Maple, i un toolbo% e%tins care permite accesul e%tins la multiple pac.ete Maple "non!grafice, faciliti de programare, proceduri utilizator etc&$ ;3

-aciliti' o 7alcul matematic' o Algebr liniar' o /implificri' o /oluionarea ecuaiilor' o Aritmetic cu precizie ariabil' o Transformri' o -uncii matematice speciale' (iferenieri, integrri, limite, sume, serii Ta#lor +n erse, determinani, alori proprii, forme canonice ale matricilor Metode de simplificare a e%presiilor algebrice /oluii simbolice i numerice ale ecuaiilor algebrice i difereniale < aluarea numeric a e%presiilor matematice cu precizie specificat -ourier, Laplace, Transformarea z i in ersele lor -uncii speciale ale matematicilor aplicate clasice

1Q. PAC*ET!L 5E M65ELARE FI IM!LARE IM!LIN" IM!LIN" este un pac.et soft0are pentru modelarea. simularea -i analiza sistemelor dinamice& 5ot fi modelate sisteme liniare i neliniare, continue, discrete, .ibride, cu mai multe perioade de eantionare& /+M*L+,> furnizeaz o interfa grafic utilizator ")*+$ pentru crearea modelelor sub forma unor diagrame construite din blocuri, pe baza unor te.nici de tip click-and-drag realizate cu mouse!ul& Astfel, trasarea diagramelor este simpl i intuiti , aproape la fel de simpl ca trasarea acestor diagrame direct pe .:rtie& Kn plus, se e it formularea matematic laborioas "sistemele dinamice sunt de regul descrise de ecuaii difereniale sau cu diferene$&

/+M*L+,> dispune de o bibliotec ast de surse, receptoare, componente liniare i neliniare, conectori etc& pe baza crora se pot trasa diagrame i construi blocuri proprii&

Modelele realizate n /+M*L+,> sunt ierar.ice& /e poate izualiza modelul de ni el nalt, iar la efectuarea unui dublu clicH pe blocul respecti se coboar ni el dup ni el astfel nc:t se pot obser a toate detaliile de construcie i de organizare ale modelului&

(up crearea unui model se pot realiza simulri apel:nd la di erse metode de integrare din meniurile /+M*L+,> i2sau utiliz:nd comenzi MATLAB& 5rin utilizarea unor blocuri de tip osciloscop sau di erse dispoziti e de afiare se pot obser a rezultatele c.iar n timpul simulrii& (e asemenea se pot sc.imba alorile unor parametri i se poate obser a imediat efectul acestor modificri& 1ezultatele obinute se pot transporta n 0orHspace!ul MATLAB pentru prelucrri i izualizri ulterioare&

1Q.1. R'(area 'n'# $o)e( IM!LIN" )e$onstrat#8 R'(area $o)e('('# 5entru a analiza modul de lucru cu /+M*L+,> se poate apela la rularea unor programe "modele$ demonstrati e& *nul din programele demo este modelul termodinamic al unei case& 5entru rularea programului, trebuie parcuri urmtorii pai' 6& /e starteaz MATLAB&

;L

B& /e ruleaz demonstraia tast:nd thermo n fereastra de comand MATLAB sau se tasteaz comanda demo i se alege programul demonstrati din meniul care apare& Aceste comenzi starteaz /+M*L+,> i creeaz o fereastr model care conine modelul respecti &

La desc.iderea modelului "e%tensiile fiierelor /+M*L+,> sunt &mdl$ /+M*L+,>!ul desc.ide un bloc de tip osciloscop cu dou ecrane "temperatur interioar2e%terioar ! +ndoor s& 4utdoor Temp& i costul nclzirii ! 9eat 7ost "e$$& C& 5entru startarea simulrii se acti eaz meniul #$'(at#on i se alege comanda tart command "sau se acti eaz direct butonul tart din bara de instrumente$& 4 dat cu startarea simulrii sunt plotate e oluiile temperaturii interioare i e%terioare, ca i costul cumulat al nclzirii& G& 5entru oprirea simulrii se alege comanda to+ din meniul #$'(at#on "sau butonul Pa'se din bara de instrumente$& 8& Atunci c:nd se dorete terminarea rulrii programului se nc.ide modelul aleg:nd C(ose din meniul 4#(e& 5escr#erea $o)e('('# 5rogramul modeleaz sistemul termodinamic al unei case folosind o reprezentare simpl& Temperatura de referin este setat la LE grade -a.ren.eit "apro%& B6 grade 7elsius$& Temperatura din cas este influenat de temperatura e%terioar, care poate fi ariat sub form sinusoidal "amplitudine 68 grade -, temperatura de baz 8E grade -$, ariaie care simuleaz fluctuaiile temperaturii din e%terior din timpul zilei& /unt utilizate subsisteme care fac modelul simplu i configurabil "un subsistem este un bloc alctuit dintr!un grup de blocuri conectate$& Modelul conine 8 subsisteme' T.ermostat, 9ouse i trei 7on ertoare de temperatur "Temp 7on ert$, din care B con ertesc -a.ren.eit n 7elsius i unul 7elsius n -a.ren.eit& <fectuarea unui dublu clicH pe blocul 9ouse permite izualizarea blocurilor componente ale subsistemului&

;;

/ubsistemul T.ermostat este de tip releu i determin pornirea sau oprirea sistemului de nclzire& /e pot edea blocurile componente la efectuarea unui dublu clicH pe subsistem&

/ubsistemele de con ersie a temperaturii au o structur asemntoare'

A(te )e$onstra-## (in fereastra bibliotecilor /+M*L+,> pot fi rulate i alte demonstraii care pun n e iden di erse concepte i te.nici de modelare din di erse domenii& 5entru rularea din fereastra bibliotecilor /+M*L+,> se procedeaz astfel' 6& /e tasteaz simulinF3 n fereastra de comand MATLABX a apare fereastra bibliotecilor /+M*L+,>& B& /e e%ecut dublu clicH pe icon!ul (emos& Da apare fereastra demo a MATLAB!ului, care conine c:te a modele /+M*L+,> interesante& 1Q.3. Crearea $o)e(e(or IM!LIN" Te.nica de creare a unor modele /+M*L+,> poate fi ilustrat cel mai bine prin e%emple& Modelul prezentat n continuare integreaz un sinus i afieaz at:t rezultatul c:t i unda sinusoidal de la intrare& /c.ema bloc a modelului este urmtoarea'

5entru a genera modelul se tasteaz mai nt:i simulinF n fereastra de comand MATLAB& 5e sistemele de operare de tip Iindo0s a apare Bro4ser$ul bibliotecilor /+M*L+,>&

;M

5e sistemele *,+J, a apare "ereastra bibliotecilor /+M*L+,>&

5entru a genera un model nou pe sisteme *,+J se selecteaz Mo)e( din submeniul Ne@ al meniului 4#(e& 5e sisteme Iindo0s se selecteaz butonul Ne@ Mo)e( din bara de instrumente a Bro0ser!ului de Biblioteci&

/imulinH a desc.ide o fereastr pentru un model nou&

ME

5entru construcia modelului or fi necesare blocuri din urmtoarele biblioteci /imulinH'


Biblioteca de surse "blocul /ine Ia e$ Biblioteca de receptoare "blocul /cope$ Biblioteca de sisteme continue "blocul +ntegrator$ Biblioteca /ignals R /#stems "blocul Mu%$

5entru copierea blocului /ine Ia e se utilizeaz Bro0ser!ul de bibiloteci' nt:i se e%pandeaz arborele de biblioteci "prin clicH pe nodul /imulinH i apoi clicH pe nodul surse$ astfel nc:t s fie afiate blocurile din biblioteca de surse& Apoi se selecteaz blocul /ine Ia e "clicH$& -ereastra Bro0ser!ului de biblioteci a arta astfel'

La pasul urmtor se trage "in:nd apsat butonul din st:nga al mouse!ului$ blocul /ine Ia e din bro0ser i i se d drumul n fereastra modelului& /imulinH a face o copie a blocului /ine Ia e n punctul indicat& /e poate proceda asemntor pentru copierea blocului /ine Ia e din biblioteca de surse desc.is din "ereastra de biblioteci /imulinH "pe sisteme Iindo0s se poate desc.ide fereastra de biblioteci din Bro0ser prin clicH din butonul drept al mouse!ului i apoi clicH pe 6+en L#%rarA$&

M6

7a i n cazul utilizrii bro0ser!ului se trage blocul /ine Ia e din biblioteca de surse n fereastra modelului "drag and drop$'

/e procedeaz n mod asemntor i cu copierea celorlalte blocuri din bibliotecile corespunztoare n fereastra modelului& /e poate deplasa cu uurin orice bloc prin tragerea cu mouse!ul sau prin selectare i deplasare cu tastele sgei& (up copierea tuturor blocurilor necesare n fereastra de lucru, modelul trebuie s arate ca n figura urmtoare'

La o e%aminare atent a simbolurilor de reprezentare a blocurilor se or obser a sgei care indic intrrile sau ieirile din blocuri' dac simbolul b este orientat spre ieirea blocului atunci este un port de ieire "output port$ iar dac simbolul este ndreptat spre bloc este un port de intrare "input port$& *n semnal circul de la un port de ieire al unui bloc spre un port de intrare al altui bloc printr!o linie de conectare, Atunci c:nd blocurile sunt conectate, simbolurile porturilor dispar&

MB

5entru conectarea blocurilor se trece nt:i la conectarea blocului /ine Ia e la prima intrare "de sus$ a blocului Mu%& 5entru aceasta se poziioneaz pointerul mouse!ului deasupra portului de ieire al blocului /ine Ia e& Kn acest moment forma pointerului se sc.imb i de ine de tip cruce "cursor$&

/e ine apsat butonul st:nga al mouse!ului i se deplaseaz cursorul p:n la intrarea de sus a blocului Mu%&

*rmeaz eliberarea butonului mouse!ului i se obser cum blocurile au fost conectate&

Kn afara liniilor care conecteaz ieirile unor blocuri la intrrile altora e%ist i linii de branare a unor linii la intrrile unor blocuri "se poate obser a n modelul prezentat iniial$& 4 astfel de linie este utilizat pentru conectarea ieirii din blocul /ine Ia e i la blocul +ntegrator "e%ist deja cone%iunea la blocul Mu%$& 5entru a efectua aceast cone%iune se procedeaz astfel' 6& /e poziioneaz pointerul pe linia dintre blocurile /ine Ia e i Mu%&

B& /e apas i se ine apsat tasta Ctr(& /e apas butonul mouse!ului i apoi se trage p:n la intrarea n blocul +ntegrator sau p:n deasupra acestui bloc&

MC

C& /e elibereaz butonul mouse!ului i se obser cum apare o linie de branare p:n la portul de intrare n blocul +ntegrator&

/e procedeaz conform indicaiilor i se efectueaz toate conectrile necesare& Modelul a trebui s arate n final astfel'

1Q.9. R'(area s#$'(>r#(or ?n IM!LIN" (up nc.eierea procedurii de construcie a modelului, trebuie rulat o simulare pentru aprecierea corectitudinii modelului i pentru obinerea rezultatelor cerute& 5entru aceasta se desc.ide mai nt:i blocul osciloscopului "/cope$, pentru a izualiza e oluia mrimilor modelului& 5str:nd fereastra osciloscopului desc.is se a seta /imulinH pentru rularea unei simulri timp de 6E secunde& 5entru aceasta, parcurgem urmtorii pai' 6& /etm parametrii simulrii prin alegerea submeniului Para$eters din meniul #$'(at#on& Kn fereastra de dialog care apare om seta parametrul to+ t#$e la 6E&E " aloare implicit$& B& Knc.idem fereastra de dialog #$'(at#on Para$eters prin clicH pe butonul 6k& /imulinH a aplica parametrii i a nc.ide fereastra de dialog&

MG

C& /e selecteaz osciloscopului&

tart din meniul

#$'(at#on i se obser curbele afiate n fereastra

G& /imularea se a opri atunci c:nd se ajunge la finalul timpului de rulare indicat n fereastra de dialog #$'(at#on Para$eters sau la selectarea opiunii to+ din meniul #$'(at#on "sau din bara de instrumente$& 5entru sal area modelului se alege a8e din meniul 4#(e i se introduce un nume de fiier i se alege directorul unde dorim s sal m modelul "fiierul a a ea automat e%tensia &mdl$& 5entru nc.eierea lucrului se selecteaz E2#t MATLAB sau se tasteaz Auit n fereastra de comand a MATLAB!ului& 1Q.;. Mo)'( )e ('cr' a( 'n'# +ro/ra$ IM!LIN" -iecare bloc dintr!un model /imulinH are urmtoarele caracteristici generale' un ector de intrare, u, un ector de ieire, y, i un ector de stare, x'

Dectorul de stare poate consta din stri continue, stri discrete sau combinaii ale acestora& 1elaiile matematice dintre aceste mrimi "intrri, ieiri, stri$ sunt e%primate prin ecuaii de tipul'
y = ) E 7 t , x ,u 8 xd k +6 = ) u 7 t , x ,u 8 = ) d 7 t , x ,u 8 xc xc unde x = xdk iesirea actualizare derivata

/imularea const n dou faze' iniializare i simulare propriu!zis& -aza de iniializare nseamn parcurgerea urmtoarelor etape' 6& Blocul parametrilor este trecut n MATLAB pentru e aluare& Dalorile numerice rezultate sunt folosite ca parametri actuali "cureni$& B& <ste parcurs ierar.ia modelului& -iecare subsistem care nu este un subsistem e%ecutat condiionat este nlocuit prin blocurile componente& C& Blocurile sunt sortate n ordinea n care este necesar actualizarea lor& Algoritmul de sortare ntocmete o list astfel nc:t orice bloc nu este actualizat p:n c:nd blocurile care furnizeaz intrrile acestuia nu sunt actualizate& Kn timpul derulrii acestei etape sunt detectate buclele algebrice& G& 7one%iunile dintre blocuri sunt erificate pentru asigurarea compatibilitii ieire!intrare& M8

*rmeaz faza de simulare propriu!zis& Modelul este simulat prin integrare numeric& 7alculul deri atelor se face n doi pai& 5rima dat ieirea fiecrui bloc este calculat n ordinea determinat de algoritmul de sortare& La al doilea pas, pentru fiecare bloc se calculeaz deri atele n funcie de timp, intrri i stri& Dectorul deri atelor rezultat este returnat algoritmului de rezol are de tip 4(<, care l utilizeaz pentru calculul noului ector de stare pentru momentul de timp urmtor& 4 dat ce noul ector de stare este calculat, blocurile sunt actualizate& BIBLI6GRA4IE 6& +onete 7&, /eliteanu (&, 5etrior A& = 2roiectarea sistemic# asistat# de calculator @n '-(0-B, 1eprografia *ni ersitii din 7raio a, 6MM8& B& Leonard ,&<&, Le ine I&/ = 1sing '-(0-B to analyze and design .ontrol &ystems , Addison!Iesle# 5ubl&, /*A, 6MM8& C& Marc.and 5& = +raphics and +1/s Aith '-(0-B, 717 5ress, /*A, 6MMM& G& QQQ = '-(0-B 1serBs +uide, T.e Mat.0orHs +nc&, /*A, BEEE& C!PRIN CAP. 1. PREZENTARE GENERAL CAP. 3. 4!N5AMENTELE PR6GRAMRII 7N MATLAB B&6& <%presii fundamentale B&B& 9elp on!line, formatul datelor, opiuni de sal are B&C& 7rearea fiierelor MATLAB "&m files$ B&G& Matrici, ectori i polinoame B&8& 4peraiuni elementare cu matrici i funcii CAP. 9. ME5I!L 5E L!CR! MATLAB C&6& /tartul i terminarea sesiunilor de lucru C&B& -ereastra de comand "fereastra principal$ C&B&6& <ditarea liniilor de comand n fereastra principal C&B&B& (escrierea ferestrei de comand C&B&C& /paiul de lucru al MATLAB!ului "0orHspace$ C&B&G& 7i de cutare C&C& -ereastra grafic "figure$ C&G& +mportul :# e2+ort'( )e )ate C&8& *tilizarea memoriei CAP. ;. E5IT6R!LE5EB!GGER.!L FI PR64ILER.!L MATLAB G&6& <ditorul2(ebugger!ul MATLAB G&B& 5rofiler!ul MATLAB CAP. =. MATRICI, ALGEBR LINIAR, P6LIN6AME, TE*NICI 5E INTERP6LARE 8&6& Matricile n MATLAB 8&B& 1ezol area ecuaiilor liniare 8&C& +n erse i determinani 8&G& -uncii de matrice& Dalori proprii M3 6 8 8 ; 6B 6L BC B8 B8 BL BL BM CB CG C3 9L GB GC GC 86 83 83 8; 3E 36

8&8& 1eprezentarea polinoamelor& +nterpolarea CAP. I. REPREZENTAREA 4!NCIIL6R. EC!AII 5I4ERENIALE 3&6& 1eprezentarea i plotarea funciilor matematice 3&B& Minimizarea funciilor i gsirea zerourilor 3&C& +ntegrarea numeric 3&G& 1ezol area ecuaiilor difereniale CAP. J. PR6GRAMAREA 7N LIMBAK!L MATLAB L&6& -iiere MATLAB L&B& Tipuri de date i operatori L&C& +nstruciuni de salt i bucle L&G& < aluarea datelor de tip caracter L&8& 1eprezentarea i manipularea informaiilor despre dat i timp L&3& +ntrri utilizator CAP. L. GRA4ICE FI INTER4EE GRA4ICE 7N MATLAB ;&6& Te.nici de plotare ;&6&6& 5lotri B ( elementare ;&6&B& )rafice B ( specializate ;&6&C& 5lotri tridimensionale "C ($ ;&B& 9andle )rap.ics i +nterfee )rafice n MATLAB ")*+$ ;&B&6& )raficele pri ite ca obiecte& +erar.ia obiectelor ;&B&B& 5roprietile obiectelor grafice ;&B&C& -uncii de generare a obiectelor grafice CAP. N. PREZENTAREA T66LB6O.!RIL6R MATLAB M&6& Toolbo%!ul 7omunicaii "7ommunications Toolbo%$ M&B& Toolbo%!ul pentru /isteme de 7onducere Automat "7ontrol /#stem$ M&C& Toolbo%!ul pentru Baze de (ate "(atabase Toolbo%$ M&G& Toolbo%!ul de 5rocesare a /emnalelor "/ignal 5rocessing Toolbo%$ M&8& Toolbo%!ul (/5 BlocHset M&3& Toolbo%!ul -inane "-inancial Toolbo%$ M&L& Toolbo%!ul de 5rocesare a +maginilor "+mage 5rocessing Toolbo%$ M&;& Toolbo%!ul 4ptimizare "4ptimization Toolbo%$ M&M& Toolbo%!ul pentru /isteme de 5utere "5o0er /#stem BlocHset$ M&6E& Toolbo%!ul /tateflo0 "(iagrame de stare$ M&66& Toolbo%!ul de /tatistic "/tatistics Toolbo%$ M&6B& Toolbo%!ul pentru 7alcul /imbolic "/#mbolic Mat. Toolbo%$ CAP. 1Q. PAC*ET!L 5E M65ELARE FI IM!LARE IM!LIN" 6E&6& 1ularea unui model /+M*L+,> demonstrati 6E&B& 7rearea modelelor /+M*L+,> 6E&C& 1ularea simulrilor n /+M*L+,> 6E&G& Modul de lucru al unui program /+M*L+,> BIBLI6GRA4IE ML

3C 3M 3M L6 LC L8 L; L; ;E ;G ;8 ;3 ;3 ;L ;L ;; M3 6E6 6E8 6E8 6EM 66E 66B 66B 66B 66C 66C 66C 66G 66G 66G 668 668 663 663 66L 66L 6BE 6B8 6BL ML

S-ar putea să vă placă și