= 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 (ezoltarea algoritmilor Modelare, simulare i testarea prototipurilor Analiza i izualizarea datelor )rafica inginereasc i din tiinele aplicate (ezoltarea de aplicaii, inclusi )*+ MATLAB = sistem interacti care are ca element de baz tabloul, ceea ce permite rezolarea problemelor de calcul numeric, n special cele care necesit prelucrarea de ectori sau matrici& ,umele MATLAB proine de la Matrix Laboratory -irma productoare este The MathWorks, In., !"A MATLAB!ul a eoluat' - n mediul uniersitar unde este pac.etul standard pentru cursurile introductie i aansate de matematic, inginerie i tiine - n industrie, unde este utilizat pentru cercetarea de nalt randament, dezoltare i producie MATLAB permite dezoltarea unei familii de aplicaii sub forma toolbox!urilor& Aceste toolbox-uri permit narea i aplicarea te.nologiilor specializate din dierse domenii& /unt disponibile toolbo%!uri pentru domenii cum ar fi' procesarea numeric a semnalelor, sisteme de conducere automat, reele neurale, logic fuzz#, 0aelet, simulare "!IM"LIN#$, identificare etc& Sistemul MATLAB const n cinci pri principale' Lim$a%&' MATLAB Me(i&' (e '&r& MATLAB )an('e Gra*his
Bi$'iotea (e +&n,ii matematie a MATLAB-&'&i
Inter+a,a (e a*'ia,ii *rogram a MATLAB-&'&i .API/ Limbajul MATLAB: 1eprezint un limbaj de niel 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' 4 ops 5perators and special c.aracters& Lang 6rogramming language constructs& /trfun 7.aracter strings& +ofun -ile input2output& Timefun Time and dates& (atat#pes (ata t#pes and structures& Mediul de lucru MATLAB: 1eprezint un set de faciliti care permit manerarea ariabilelor n spaiul de lucru, importul i e%portul de date, dezoltarea, manipularea, editarea i depanarea fiierelor MATLAB "&m$ i a aplicaiilor MATLAB& Aceste faciliti sunt organizate n directorul' general )eneral purpose commands& Handle Grapics ! : 1eprezint sistemul grafic al MATLAB!ului& 7uprinde comenzi de nalt niel pentru izualizarea datelor bi i tri!dimensionale, procesarea imaginilor, animaie, prezentri de grafice& 6ermite de asemenea utilizarea unor comenzi de niel sczut pentru crearea unor interfee grafice )*+& -unciile grafice sunt organizate n 8 directoare' grap.9d T0o!dimensional grap.s& )rap.:d T.ree!dimensional grap.s& /pecgrap. /pecialized grap.s& )rap.ics ;andle )rap.ics& *itools )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 "inersarea de matrice, alori proprii, funcii Bessel, --T etc&$& -unciile matematice sunt organizate n = directoare' elmat >lementar# matrices and matri% manipulation& >lfun >lementar# mat. functions& /pecfun /pecialized mat. functions& Matfun Matri% functions ? numerical linear algebra& (atafun (ata anal#sis and -ourier transforms& 6ol#fun +nterpolation and pol#nomials& -unfun -unction functions and 5(> solers& /parfun /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 9 pentru apelarea rutinelor din MATLAB, apelarea MATLAB!ului ca main de calcul, scrierea i citirea fiierelor de tip &MAT & Pahet&' !IM"LIN# /+M*L+,@ A 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 BtrasareaC sc.emei bloc a sistemului i apoi simularea dinamicii sistemului& /+M*L+,@ poate lucra cu sisteme liniare, neliniare, continue, discrete, multiariabile etc& /+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 diersitate& Too'$o0-&ri'e MATLAB Toolbo%!urile reprezint o familie de aplicaii care permit narea i aplicarea te.nologiilor specializate din dierse domenii& Aceste toolbo%!uri sunt colecii de funcii MATLAB "functions$ "M!files$ care e%tind mediul MATLAB pentru rezolarea unor clase particulare de probleme& 7<tea din cele mai utilizate aplicaii sunt prezentate n figura urmtoare& 1. 2"N3AMENTELE PR4GRAMRII 5N MATLAB 1.1. E0*resii +&n(amenta'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 5peratori -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 Boric<t de mareC sunt oprite primele :4 de caractere& MATLAB!ul este case sensitive ! face distincie ntre literele mici i cele mari& : >%emplu' E a = :F creeaz o matrice 4 % 4 cu numele a i stoc.eaz aloarea acesteia :F ntr!o singur locaie corespunztoare singurului element al matricei& *umere MATLAB!ul utilizeaz notaia zecimal, cu punct zecimal opional i cu semn G sau !& /e utilizeaz i notaia tiinific cu litera e pentru a specifica o putere a lui 4F& 1eprezentarea numerelor imaginare este realizat cu litera i sau j ca sufi%& >%emple' : !HH F&FFF4 H&3:HI9:= 4&3F94Fe!9F 3&F9989e9: 4i !:&4J48Hj :e8i Toate numerele sunt stocate intern utiliz<nd formatul long specificat de standardul +>>> n irgul mobil "precizie de 43 zecimale semnificatie n domeniul 4F !:F= la 4F G:F= $& +peratori >%presiile utilizeaz operatori aritmetici uzuali'
G Adunare ! /cdere K Multiplicare 2 Lmprire M Lmprire la st<nga N 1idicarea la o putere O Transpusa comple% conjugat " $ 5peratorul de specificare a ordinii de ealuare ,unc#ii MATLAB!ul furnizeaz un mare numr de funcii matematice elementare standard "abs, sPrt, e%p, sin Q$& >%ist i funcii matematice aansate "funcii Bessel, gama etc&$, multe dintre acestea accept<nd argumente comple%e& 6entru izualizarea funciilor elementare se poate tasta' E .elp elfun 6entru a edea lista funciilor aansate se poate tasta' J E .elp specfun E .elp elmat 5 parte din funcii "cum ar fi sPrt, sin$sunt de tip built-in, adic sunt o parte a nucleului MATLAB, au o mare eficien, dar detaliile constructie nu sunt accesibile utilizatorului& Alte funcii sunt implementate ca fiiere MATLAB "M!files$ i pot fi c.iar modificate& 7<tea funcii furnizeaz alorile unor constante uniersale' pi :&4J48H938 + +maginar# unit, -1 R /ame as + >ps -loating-point relative precision, 2 -52 1ealmin /mallest floating!point number, 9 -1022 1ealma% Largest floating!point number, 2 1023 +nf +nfinit# ,a, ,ot!a!number ,umele funciilor nu sunt rezerate i deci este posibil suprascrierea lor& >%emplu' eps = 4&e!3 -uncia original este reconstituit prin comanda' E clear eps E0*resii >%emple de e%presii i rezultatele corespunztoare ale ealurii acestor e%presii' E r.o = "4GsPrt"8$$29 r.o = 4&34=F E a = abs":GJi$ a = 8 E z = sPrt"besselS"J2:,r.o!i$$ z = F&:I:FG F&:94Ji E .uge = e%p"log"realma%$$ .uge = 4&IHIIeG:F= 8 E toobig = piK.uge toobig = +nf 1.1. )e'* on-'ine, +ormat&' (ate'or, o*,i&ni (e sa'6are )e'* on-'ine 6entru rularea MATLAB pe un 67 trebuie pur i simplu e%ecutat un dublu clicS cu mouse!ul pe icon!ul MATLAB& (ac sistemul de operare nu este de tip Tindo0s "este de tip *,+U$ trebuie tastat matlab dup prompter!ul sistemului de operare& o Limbajul MATLAB este mult mai simplu de nat dac se renun la inspectarea arid a listelor cu ariabile, funcii i operatori i se utilizeaz n sc.imb comenzile .elp, .elpdesS, demo tastate direct de la prompterul MATLAB& o 6entru aflarea tuturor informaiilor utile despre o comand sau o funcie se tasteaz .elp urmat de numele comenzii sau funciei respectie& o 6ac.etul MATLAB dispune de asemenea de informaii complete despre utilizare sub forma unei documentaii tip &pdf& o Ln cazuri particulare se poate apela la +,T>1,>T, e%ist<nd o legtur la pagina Teb a firmei productoare& o Alte comenzi utile pentru aflarea de informaii sunt' .elp0in, looSfor, .elp .elp& >%emple sugestie de utilizare a comenzii .elp' E .elp sin /+, /ine& /+,"U$ is t.e sine of t.e elements of U& 5erloaded met.ods .elp s#m2sin&m E .elp e%p >U6 >%ponential& >U6"U$ is t.e e%ponential of t.e elements of U, e to t.e U& -or comple% V=UGiKW, >U6"V$ = >U6"U$K"75/"W$GiK/+,"W$$&
/ee also L5), L5)4F, >U6M, >U6+,T& 5erloaded met.ods .elp s#m2e%p&m .elp demtseries2e%p&m E .elp plot 6L5T Linear plot& 3 6L5T"U,W$ plots ector W ersus ector U& +f U or W is a matri%, t.en t.e ector is plotted ersus t.e ro0s or columns of t.e matri%, 0.ic.eer line up& +f U is a scalar and W is a ector, lengt."W$ disconnected points are plotted& 6L5T"W$ plots t.e columns of W ersus t.eir inde%& +f W is comple%, 6L5T"W$ is ePuialent to 6L5T"real"W$,imag"W$$& +n all ot.er uses of 6L5T, t.e imaginar# part is ignored& Darious line t#pes, plot s#mbols and colors ma# be obtained 0it. 6L5T"U,W,/$ 0.ere / is a c.aracter string made from one element from an# or all t.e follo0ing : colunms'
# #ello0 & point ! solid m magenta o circle ' dotted c c#an % %!marS !& das.dot r red G plus !! das.ed g green K star b blue s sPuare 0 0.ite d diamond S blacS triangle "do0n$ N triangle "up$ X triangle "left$ Y triangle "rig.t$ p pentagram . .e%agram
-or e%ample, 6L5T"U,W,OcG'O$ plots a c#an dotted line 0it. a plus at eac. data pointZ 6L5T"U,W,ObdO$ plots blue diamond at eac. data point but does not dra0 an# line& 6L5T"U4,W4,/4,U9,W9,/9,U:,W:,/:,&&&$ combines t.e plots defined b# t.e "U,W,/$ triples, 0.ere t.e UOs and WOs are ectors or matrices and t.e /Os are strings& -or e%ample, 6L5T"U,W,O#!O,U,W,OgoO$ plots t.e data t0ice, 0it. a solid #ello0 line interpolating green circles at t.e data points& T.e 6L5T command, if no color is specified, maSes automatic use of t.e colors specified b# t.e a%es 7olor5rder propert#& T.e default 7olor5rder is listed in t.e table aboe for color s#stems 0.ere t.e default is #ello0 for one line, and for multiple lines, to c#cle t.roug. t.e first si% colors in t.e table& -or monoc.rome s#stems, 6L5T c#cles oer t.e a%es Line/t#le5rder propert#& 6L5T returns a column ector of .andles to L+,> objects, one .andle per line& T.e U,W pairs, or U,W,/ triples, can be follo0ed b# parameter2alue pairs to specif# additional properties of t.e lines& /ee also />M+L5)U, />M+L5)W, L5)L5), )1+(, 7L-, 7L7, T+TL>, ULAB>L, WLAB>L, AU+/, AU>/, ;5L(, 75L51(>-, L>)>,(, and /*B6L5T& 2ormat&' (ate'or MATLAB!ul afieaz numerele cu 8 zecimale "setare implicit$& Aceast setare se poate modifica cu ajutorul comenzii format' -51MAT /et output format& All computations in MATLAB are done in double precision& -51MAT ma# be used to s0itc. bet0een different output displa# formats as follo0s' -51MAT (efault& /ame as /;51T& -51MAT /;51T /caled fi%ed point format 0it. 8 digits& -51MAT L5,) /caled fi%ed point format 0it. 48 digits& -51MAT /;51T > -loating point format 0it. 8 digits& I -51MAT L5,) > -loating point format 0it. 48 digits& -51MAT /;51T ) Best of fi%ed or floating point format 0it. 8 digits& -51MAT L5,) ) Best of fi%ed or floating point format 0it. 48 digits& -51MAT ;>U ;e%adecimal format& -51MAT G T.e s#mbols G, ! and blanS are printed for positie, negatie and zero elements& +maginar# parts are ignored& -51MAT BA,@ -i%ed format for dollars and cents& -51MAT 1AT Appro%imation b# ratio of small integers& /pacing' -51MAT 75M6A7T /uppress e%tra line!feeds& -51MAT L55/> 6uts t.e e%tra line!feeds bacS in& >%emple' E c=4&:::J83I=H9:: c = 4&:::8 E format long E c c = 4&:::J83I=H9::FF E format s.ort e E c c = 4&:::8eGFFF E format long e E c c = 4&:::J83I=H9::FFFeGFFF E format E c c = 4&:::8 4*,i&ni (e sa'6are 6entru salarea ariabilelor curente cu care se lucreaz n MATLAB la nc.eierea unei sesiuni de lucru se poate utiliza comanda sae& Aceast comand a sala 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 saleaz ariabilele& >%emplu' E sae date c determ A realizeaz salarea datelor c, determ i A ntr!un fiier date.mat & = 6entru restituirea ariabilelor ntr!o sesiune de lucru ulterioar se folosete comanda load& >%emplu' E load date (ac se dorete aflarea ariabilelor curente se pot utiliza comenzile 0.o,0.os' E 0.o Wour ariables are' A c determ E 0.os ,ame /ize B#tes 7lass A 9%9 :9 double arra# c 4%4 = double arra# determ 4%4 = double arra# )rand total is 3 elements using J= b#tes 6entru tergerea tuturor ariabilelor curente din memoria de lucru se poate utiliza comanda clear& 1.7. 8rearea +i9iere'or MATLAB ..m +i'es/ (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& 6entru a edea coninutul unui fiier MATLAB, de e%emplu evolutie_studii.m, se folosete comanda' E t#pe eolutie[studii ,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 "0orSspace$ sau pot crea date noi cu care opereaz& /cript!urile nu furnizeaz argumente de ieire, iar ariabilele create rm<n n 0orSspace, pentru a fi eentual folosite n calculele ulterioare& -iierele script pot furniza ieiri grafice folosind funcii cum ar fi plot,bar& H >%emplu de fiier script' magicrank.m, cu urmtoarele comenzi MATLAB' \ +nestigate t.e ranS of magic sPuares r = zeros"4,:9$Z for n = :':9 r"n$ = ranS"magic"n$$Z end r bar"r$ La tastarea numelui fiierului script "fr e%tensia &m$' E magicranS 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$ respectie trebuie s fie identice& -unciile "subrutinele$ lucreaz cu ariabile proprii separate de spaiul de lucru uzual al MATLAB!ului& >%emplu' funcia ranS& -iierul M!file ranS&m este disponibil n directorul toolbo%2matlab2matfun /e poate izualiza fiierul cu comanda' E t#pe ranS function r = ranS"A,tol$ \ 1A,@ Matri% ranS& 4F \ 1A,@"A$ proides an estimate of t.e number of \ linearl# independent ro0s or columns of a matri% A \ 1A,@"A,tol$ is t.e number of singular alues of A \ t.at are larger t.an tol& \ 1A,@"A$ uses t.e default \ tol = ma%"size"A$$ K norm"A$ K eps& s = sd"A$Z if nargin==4 tol = ma%"size"A$$ K ma%"s$ K epsZ end r = sum"s Y tol$Z 6rima 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 \$ sunt linii de comentariu, care de fapt sunt i liniile afiate atunci c<nd se apeleaz la comanda E .elp ranS 1estul liniilor sunt e%ecutabile& Dariabila s, ca i r, A, tol sunt ariabile locale ale funciei i sunt separate de ariabilele din 0orSspace& -uncia ranS poate fi utilizat n diferite moduri' E ranS"A$ E r = ranS"A$ E r = ranS"A,4&e!3$ )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 global n toate funciile respectie& >%emplu' fiierul falling&m' function . = falling"t$ global )1AD+TW . = 429K)1AD+TWKt&N9Z /e introduc apoi n mod interacti liniile' E global )1AD+TW E )1AD+TW = :9Z E # = falling""F'&4'8$O$Z ,unc#ia eval -uncia eal lucreaz cu ariabil te%t pentru implementarea unei faciliti puternice de tip macro te%t& >%presia eal"s$ folosete interpreter!ul MATLAB pentru ealuarea e%presiei sau e%ecuia declaraiei din irul de caractere s& )ectorizarea 44 6entru 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 (5, MATLAB!ul poate utiliza operaii matriceale sau ectoriale& *n e%emplu simplu este urmtorul' % = FZ for S = 4'4FF4 #"S$ = log4F"%$Z % = % G &F4Z end Dersiunea ectorizat a aceluiai program este % = F'&F4'4FZ # = log4F"%$Z ,unc#ii de "unc#ii Ln MATLAB e%ist o clas de funcii care lucreaz cu funcii neliniare ca argument& -unciile de funcii includ' )sirea zerourilor 5ptimizare +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 # = .umps"%$ # = 4&2""%!&:$&N9 G &F4$ G 4&2""%!&H$&N9 G &FJ$ ! 3Z Aceast funcie poate fi ealuat pentru un set de puncte n interalul F % 4 cu programul' % = F'&FF9'4Z # = .umps"%$Z i apoi se poate reprezenta grafic funcia cu comanda plot"%,#$ )raficul arat c funcia are un minim local la apro%imati x = F&3& (ac de e%emplu utilizm funcia fmins putem gsi imediat aloarea e%act a lui x & 6rimul argument al funciei fmins este 49 c.iar numele funciei pentru care calculm minimul "al doilea parametru este o apro%imare grosier a localizrii minimului$& E p = fmins"O.umpsO,&8$ p = F&3:IF /e poate acum ealua aloarea funciei n punctul de minim local' E .umps"p$ ans = 44&989= 1.:. Matrii, 6etori 9i *o'inoame 6entru a lucra uor i bine cu limbajul MATLAB trebuie n primul r<nd s se nee manipularea matricilor& Ln MATLAB, o matrice este un tablou dreptung.iular de numere& /calarii de e%emplu sunt matrici 4 % 4, iar matricile cu o singur linie sau coloan sunt de fapt ectori& %ntroducerea matricilor Matricile se pot introduce n mai multe moduri& +ntroducerea unei liste e%plicite cu elementele matricei& Lncrcarea 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 (]rer mai nt<i ca o list de elemente& Trebuie respectate c<tea conenii 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' ^ _ 6entru introducerea matricii lui (]rer tastm'
E A = ^43 : 9 4:Z 8 4F 44 =Z H 3 I 49Z J 48 4J 4_ MATLAB!ul a afia matricea' A = 43 : 9 4: 8 4F 44 = H 6 7 12 4 15 14 1 4: 5 dat introdus, matricea este memorat n 0orSspace i poate fi apelat simplu, ca A& / edem acum' de ce este magic` 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 J coloane se calculeaz rapid cu' E sum"A$ ans = :J :J :J :J 6entru calcularea sumelor pe linii, efectum nt<i transpunerea matricii i apoi aplic din nou comanda sum& Transpusa se calculeaz cu' E AO ans = 43 8 H J : 4F 3 48 9 44 I 4J 4: = 49 4 i apoi E sum"AO$O ans = :J :J :J :J /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' E diag"A$ ans = 43 4F I 4 E sum"diag"A$$ ans = :J *n anume element al matricii, de e%emplu elementul din linia i coloana j se noteaz A"i,j$& 6rin urmare o alt cale "mai puin rapid$ de a calcula suma de pe patra coloan de e%emplu este urmtoarea' E A(1,4) + A(2,4) + A(3,4) + A(4,4) ans = :J 4J (ac specificm un element care nu e%ist n matrice, primim un mesaj de eroare' E t = A"J,8$ +nde% e%ceeds matri% dimensions& +peratorul ; 5peratorul ' este foarte important& (e e%emplu, e%presia E 4'4F este un ector linie ans = 4 9 : J 8 3 I = H 4F Alte e%emple' E 4FF'!I'8F ans = 4FF H: =3 IH I9 38 8= 84 E F'pi2J'pi ans = F F&I=8J 4&8IF= 9&:839 :&4J43 >%presia A"4'S,j$ /e refer la primele S elemente ale coloanei j a lui A& (ac este utilizat n paranteze operatorul ; atunci nseamn c ne referim la toate elementele unei linii sau coloane E sum"A"',:$$ calculeaz suma elementelor din coloana a treia a lui A' ans = :J 5 alt proprietate interesant a ptratului magic este c suma magic :J este obinut i prin nsumarea elementelor matricii i prin mprirea la dimensiunea matricii "J$' E sum"4'43$2J ans = :J bserva!ie' suma magic pentru orice ptrat magic n % n este "n : G n$29 "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$' E B = magic"J$ B = 43 9 : 4: 48 8 44 4F = H I 3 49 J 4J 48 4 Aceast matrice este aproape identic cu matricea lui (]rer singura diferen fiind c cele dou coloane din mijloc sunt sc.imbate ntre ele& 6entru obinerea din B a matricii lui (]rer se poate utiliza urmtoarea comand MATLAB' E A = B"',^4 : 9 J_$ A = 43 : 9 4: 8 4F 44 = H 3 I 49 J 48 4J 4 'olinoame 6olinoamele sunt descrise n MATLAB prin ectori linie ale cror elemente sunt de fapt coeficienii polinoamelor n ordinea descresctoare a puterilor& >%emplu' polinomul p"%$=% : G8%G3 este reprezentat n MATLAB astfel' p = ^4 F 8 3_ *n polinom poate fi ealuat pentru o aloare a lui % cu ajutorul funciei pol#al' E pol#al"p,4$ ans= 49 Ln e%emplul de mai sus este ealuat polinomul p n punctul % =4& /e pot afla cu uurin rdcinile polinomului folosind funcia roots' E r=roots"p$ r = F&8FFF G 9&:HIHi F&8FFF ! 9&:HIHi !4&FFFF >%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' E p4=^4 : 8_ p4 = 4 : 8 E p9=^9 F 4 F 8_ p9 = 9 F 4 F 8 43 E p:=con"p4,p9$ p: = 9 3 44 : 4F 48 98 1.<. 4*era,i&ni e'ementare & matrii 9i +&n,ii MATLAB!ul opereaz cu matricile cu aceeai uurin cu care lucreaz cu scalarii& 6entru adunarea a dou matrici de e%emplu se folosete pur i simplu semnul G ca la o adunare obinuit& Bineneles c matricile trebuie s aib aceleai dimensiuni pentru a putea fi adunate& >%emplu' E A=^9 :Z48 !:_ A = 9 : 48 !: E B=^44 !94Z 49 J_ B = 44 !94 49 J E 7=AGB 7 = 4: !4= 9I 4 6entru nmulirea a dou matrici se folosete operatorul K , alabil de altfel i pentru operaiile cu scalari& >%emplu' E (=AKB ( = 8= !:F 49H !:9I (ac dimensiunile matricilor care se nmulesc nu sunt corespunztoare, atunci a fi furnizat un mesaj de eroare' E >=^4 9:Z !49 9Z4 9_ > = 4 9: !49 9 4 9 E -=AK> ``` >rror using ==Y K +nner matri% dimensions must agree& 6entru BdepanareaC programului n cazul unor astfel de greeli se poate utiliza comanda size care ne d informaii despre dimensiunile matricilor respectie i permite corectarea erorilor' 4I E size"A$ ans = 9 9 E size">$ ans = : 9 MATLAB!ul include multe alte funcii care opereaz cu matrici i care or fi descrise i utilizate intensi n capitolele urmtoare& Amintim aici c<tea' det, in, ranS, eig etc& 5 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 E r=4IY88 r = F MATLAB!ul rspunde cu r = F, adic %als& (ac dorim de e%emplu s comparm fiecare element al matricii A cu elementul corespunztor din matricea B, procedm asemntor' E L=AX=B L = 4 F F 4 5peratorii logici, adic a pentru b+ "A,($, c pentru /A* "51$, d pentru ,* ",5T$, or returna aloarea 4 pentru A(>De1AT i F pentru -AL/& >%emplu' E AaB ans = 4 4 4 4 E dA ans = F F F F 4= 7. MATRI8I, ALGEBR LINIAR, P4LIN4AME, TE)NI8I 3E INTERP4LARE 7.1. Matrii'e =n MATLAB 6rin matrice nelegem un tablou bi!dimensional de numere reale sau comple%e& Ln capitolul de -undamente ale programrii n MATLAB a fost prezentat modul de introducere a matricilor i au fost analizate c<tea 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 n directorul matfun& Ln continuare sunt prezentate c<tea din funciile care lucreaz cu matrici& 8ategoria 2&n,ia 3esriere Analiza matriceal norm ,orma unei matrice sau a unui ector& normest >stimeaz norma!9 a matricei& ranS 1angul matricei& det (eterminant& trace /uma elementelor de pe diagonal& null /paiul ,ul& ort. 5rtogonalizare& subspace *ng.iul dintre 9 subspaii& >cuaii liniare M i *tilizate la calculul soluiilor ecuaiilor liniare& in +nersa matricei& cond ,umrul de condiie pentru inersare& c.ol -actorizarea 7.olesS#& lu -actorizarea L*& Pr (ecompoziia ortogonal!triung.iular& pin 6seudoinersa& lsco 7ele mai mici ptrate cu coarian cunoscut& Dalori proprii i alori singulare eig Dalori proprii i ectori proprii& sd (ecompoziia n alori singulare& pol# 6olinomul caracteristic& .ess -orma ;essenberg& Pz -actorizarea fV& 4H sc.ur (ecompoziia /c.ur& -uncii de matrice e%pm >%poneniala de matrice& logm Logaritmul de matrice& sPrtm 1dcina ptrat de matrice& funm >aluarea unei funcii generale de matrice& 5peraiunile elementare cu matrici au fost deja prezentate "adunarea matricilor, nmulirea acestora, transpusa unei matrice, funciile sum, diag etc&$& Ln continuare sunt prezentate c<tea matrici speciale utile n toate tipurile de reprezentri matematice' - #atricea identitate &unitate' >ste o matrice cu elementele de pe diagonala principal egale cu 4 iar restul elementelor sunt nule& ,otaia matematic ( proine de la denumirea matricii i nu este folosit n MATLAB, pentru eitarea unor confuzii& /e utilizeaz sinta%a' e#e"m,n$ Aceast funcie returneaz o matrice identitate m%n. (ac se folosete' e#e"n$ atunci este orba de o matrice identitate ptratic n%n& - #atricea ones >ste o matrice care are toate elementele egale cu 4& -orme posibile' ones"n$ este o matrice n%n cu elemente de 4 ones"m,n$ sau ones"^m,n_$ sunt matrici m%n cu elemente de 4& ones"size"A$$ are aceeai dimensiune cu o matrice A i are elemente de 4 - #atricea zeros >ste o matrice care are toate elementele egale cu F& -orme posibile' zeros"n$ este o matrice n%n de zerouri zeros"m,n$ sau zeros"^m,n_$ sunt matrici m%n de F zeros"size"A$$are aceeai dimensiune cu o matrice A i are elemente de F 7.1. Re>o'6area e&a,ii'or 'iniare *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 * astfel nc<t )* + B sau *) + B ` MATLAB utilizeaz notaia din cazul scalar i pentru descrierea soluiei unui sistem de ecuaii liniare& 7ele dou simboluri utilizate n cazul scalar al diiziunii "mpririi$ i anume slash, 2, i backslash, M, sunt folosite pentru definirea soluiei' U = AMB este soluia ecuaiei matriceale )* + B& U = B2A este soluia ecuaiei matriceale *) + B& Ln practic, ecuaiile liniare de forma )* + B sunt mai des nt<lnite& 9F (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& /istem ptratic& /e poate cuta o soluie e%act& m , n& /istem supradeterminat "incompatibil$& /e caut o soluie de tip cele mai mici ptrate& m - n& /istem nedeterminat& /e poate cuta o soluie cu cel mult m componente nenule& Ln multe cazuri MATLAB!ul d un diagnostic "o soluie$ automat prin e%aminarea coeficienilor matricelor& 7<tea din aceste cazuri' 6ermutarea matricilor triung.iulare Matrici simetrice, poziti definite Matrici ptratice nesingulare /isteme rectangulare supradeterminate /isteme rectangulare nedeterminate !isteme *?tratie 7el mai simplu caz este cel corespunztor unei matrice ptratice A i a unui ector coloan b& /oluia % = AMb are aceeai dimensiune ca b& (ac A i B sunt ptratice de aceleai dimensiuni atunci soluia U = AMB are aceeai dimensiune ca ) sau B& bserva!ie. (ac matricea ) este singular "determinant nul$ atunci soluia ecuaiei )* + B nu e%ist sau nu este unic& !isteme s&*ra(eterminate .inom*ati$i'e/ Aceste tipuri de sisteme sunt des nt<lnite n dierse situaii, cum ar fi de e%emplu apro%imarea unor curbe din date e%perimentale& !isteme ne(eterminate /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& 5peratorul 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 f1 "decompoziia ortogonal! triung.iular$& Dom prezenta un e%emplu "care utilizeaz funcia matriceal random ? rand$& E 1 = fi%"4FKrand"9,J$$ 1 = 3 = I : : 8 J 4 E b = fi%"4FKrand"9,4$$ b = 4 94 9 /istemul liniar Rx + b implic dou ecuaii cu J necunoscute& /oluia se poate afia n format raional "coeficienii sunt numere ntregi$& /oluia particular se obine astfel' E format rat E p = 1Mb p = F 82I F !442I /oluia complet a sistemului nedeterminat se obine prin adugarea unui ector arbitrar din spaiul nul folosind funcia null' E V = null"1,OrO$ V = !429 !I23 !429 429 4 F F 4 5rice ector de forma %=pGVKP pentru P ector arbitrar satisface 1K%=b& 7.7. In6erse 9i (eterminan,i (ac matricea ) este ptratic i nesingular, ecuaiile )* + ( i *) + ( au aceeai soluie *& Aceast soluie este c.iar inersa lui ), notat matematic prin ) !4 , 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' E A=^4 4 4Z4 9 :Z4 : 3_Z E d = det"A$ d = 4 E U = in"A$ U = : !: 4 !: 8 !9 4 !9 4 Pse&(oin6erse Matricile dreptung.iulare "rectangulare$ nu au inerse sau determinani& Atunci cel puin una din ecuaiile )* + ( sau *) + ( nu are soluie& /e poate utiliza n acest caz o pseudoiners care poate fi calculat cu funcia pin' E A4=^AZ^4 : 8__ A4 = 99 4 4 4 4 9 : 4 : 3 4 : 8 E U=pin"A4$ U = 4&8FFF !F&FFFF 4&FFFF !4&8FFF !F&=::: F&333I !9&FFFF 9&433I F&433I !F&:::: 4&FFFF !F&=::: 7.:. 2&n,ii (e matrie. @a'ori *ro*rii
/uteri de matrice (ac A este o matrice ptratic i p este un numr ntreg poziti, atunci ANp multiplic pe A cu ea nsi de p ori& E U = AN9 U = : 3 4F 3 4J 98 4F 98 J3 (ac A este ptratic i nesingular, atunci AN"!p$ multiplic pe in"A$ cu ea nsi de p ori& E W=AN"!9$ W = 4H&FFFF !93&FFFF 4F&FFFF !93&FFFF :=&FFFF !48&FFFF 4F&FFFF !48&FFFF 3&FFFF 1idicarea la putere element cu element se face utiliz<nd operatorul "funcia$ &N& (e e%emplu' E U = A&N9 A = 4 4 4 4 J H 4 H :3 R0d0cina p0trat0 de matrice -uncia sPrtm"A$ permite calculul lui AN"429$ printr!un algoritm mai precis dec<t utilizarea puterii de matrice& 1xponen!iala de matrice *n sistem de ecuaii difereniale ordinare cu coeficieni constani poate fi scris' unde x + x&t' 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 9: -uncia e%pm"A$permite calculul e%ponenialei de matrice& @a'ori *ro*rii 5 aloare proprie i un ector propriu ale unei matrice ptratice ) sunt un scalar i un ector v care satisfac egalitatea 7u alorile proprii pe diagonala unei matrice de tip diagonal i cu ectorii proprii corespunztori care formeaz coloanele unei matrice 2 om aea (ac 2 este nesingular obinem decompoziia "descompunerea$ pe baza alorilor proprii' >%emplu' E A=^!4 !: 4Z9 !9 !4ZF 4 !:_ A = !4 !: 4 9 !9 !4 F 4 !: E lambda=eig"A$ lambda = !4&I8H: G 9&J=JIi !4&I8H: ! 9&J=JIi !9&J=4J Lambda 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$' E ^D,(_=eig"A$ D = F&99:: G F&3=:8i F&99:: ! F&3=:8i F&:43F F&3J=4 ! F&F=39i F&3J=4 G F&F=39i F&J:3= F&FI38 ! F&999Ii F&FI38 G F&999Ii F&=J99 ( = !4&I8H: G 9&J=JIi F F F !4&I8H: ! 9&J=JIi F F F !9&J=4J 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 Rordan& E ^U,R_=jordan"A$ 9J U = F&4494 F&JJJF G F&43H4i F&JJJF ! F&43H4i F&48JH !F&FII8 G F&J98Fi !F&FII8 ! F&J98Fi F&9H=I !F&4JHJ G F&FJ:Ji !F&4JHJ ! F&FJ:Ji R = !9&J=4J F F F !4&I8H: ! 9&J=JIi F F F !4&I8H: G 9&J=JIi -orma canonic Rordan 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 sc.ur$& 7.<. Re*re>entarea *o'inoame'or. Inter*o'area Po'inoame MATLAB!ul furnizeaz funcii pentru operaii polinomiale standard cum ar fi calculul rdcinilor, ealuarea polinoamelor, deriarea etc& 5 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 pol#fun' 2&n,ie 3esriere con Multiplic polinoamele& decon Lmparte polinoamele& pol# 1eturneaz coeficienii dac se dau rdcinileZ 6olinomul caracteristic& pol#der 7alcul deriatei unui polinom& pol#fit )sirea coeficienilor unui polinom din apro%imarea unui set de date& pol#al >aluarea unui polinom& pol#alm >aluarea unui polinom cu argument matriceal& residue (escompunere n fracii simple& roots )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$& !n continuare sunt parcurse alte c"teva e#e$ple utile% -uncia pol# returneaz coeficienii unui polinom dac dispunem de rdcinile acestuia "este o funcie iners fa de roots$' E p=^4 !4 9 J 4_Z E r=roots"p$ r = 4&F89H G 4&I9J=i 4&F89H ! 4&I9J=i 98 !F&IHH8 !F&:F3: E coef=pol#"r$ coef = 4&FFFF !4&FFFF 9&FFFF J&FFFF 4&FFFF 5 alt utilizare a funciei pol# este aceea de calculare a coeficienilor polinomului caracteristic al unei matrice' E A A = !4 !: 4 9 !9 !4 F 4 !: E pol#"A$ ans = 4 3 4= 9: 1dcinile acestui polinom sunt c.iar alorile proprii ale matricii A& -uncia pol#al ealueaz un polinom pentru o aloare specificat a argumentului& -uncia pol#alm permite ealuarea unui polinom n sens matriceal& Ln acest caz polinomul p din e%emplul anterior' p"%$ = % J ? % : G 9% 9 G J% G 4 deine p"U$ = U J ? U : G 9U 9 G JU G +, unde U este o matrice ptratic i + matricea unitate& >%emplu' E 7=pol#alm"p,A$ 7 = !I8 !34 =4 8= !4:F I8 89 !9: JH -unciile con i decon implementeaz operaiile de nmulire i mprire a polinoamelor& >%emple' -ie a"%$ = % 9 G 9% G: i b"%$ = J% 9 G 8% G 3& E a = ^4 9 :_Z b = ^J 8 3_Z E c = con"a,b$ c = J 4: 9= 9I 4= E ^P,r_ = decon"c,a$ P = J 8 3 r = F F F F F -uncia *o'A(er permite calculul deriatei unui polinom& >%emplu' E p=^4 !4 9 J 4_Z E pderiat=pol#der"p$ pderiat = 93 J !: J J -uncia *o'A+it gsete coeficienii unui polinom "o curb$ care apro%imeaz un set de date n sensul algoritmului celor mai mici ptrate' p = pol#fit"%,#,n$ % i # sunt ectorii care conin setul de date iar n este ordinul polinomului ai crui coeficieni or fi furnizai la apelarea funciei& >%emplu' E % = ^4 9 : J 8_Z # = ^8&8 J:&4 49= 9HF&I JH=&J_Z E p = pol#fit"%,#,:$ p = !F&4H4I :4&8=94 !3F&:939 :8&:JFF 6entru plotarea rezultatului se utilizeaz mai nt<i funcia pol#al pentru o trasare c<t mai e%act a graficului polinomului i apoi se ploteaz estimarea ersus datele reale pentru comparaii& E %9 = 4'&4'8Z E #9 = pol#al"p,%9$Z E plot"%,#,OoO,%9,#9$ -uncia resi(&e 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' E b = ^!J =_Z E a = ^4 3 =_Z E ^r,p,S_ = residue"b,a$ 9I r = !49 = p = !J !9 S = ^_ (ac se folosesc trei argumente de intrare "r, p, i S$, funcia residue asigur conersia napoi n forma polinomial' E ^b9,a9_ = residue"r,p,S$ b9 = !J = a9 = 4 3 = 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 pol#fun& 2&n,ie 3esriere griddata +nterpolare pe suprafee& interp4 +nterpolare monodimensional& interp9 +nterpolare bi!dimensional& interp: +nterpolare tri!dimensional& interpft +nterpolare mono utiliz<nd metoda --T& spline +nterpolare spline "cubic$& /ompararea unor metode de interpolare bi$dimensional0 Ln continuare este preluat i prezentat "informati$ un e%emplu de folosire a unor metode de interpolare bi!dimensional pentru o matrice de date I % I& 4& )enerarea funciei peaSs "cu rezoluie mic$' ^%,#_ = mes.grid"!:'4':$Z z = peaSs"%,#$Z 9= surf"%,#,z$ 9& )enerarea unei suprafee mes. fine pentru interpolare' ^%i,#i_ = mes.grid"!:'F&98':$Z :& +nterpolarea cu metoda celei mai apropiate ecinti' zi4 = interp9"%,#,z,%i,#i,OnearestO$Z J& +nterpolarea cu metoda biliniar' zi9 = interp9"%,#,z,%i,#i,ObilinearO$Z 8& +nterpolarea cu metoda bicubic' zi: = interp9"%,#,z,%i,#i,ObicubicO$Z 3& 7ompararea graficelor corespunztoare diferitelor metode de interpolare' 9H I& 7ompararea contururilor suprafeelor n cazul diferitelor metode de interpolare' /e obser c metoda bicubic produce cele mai netede contururi& 5 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& :. REPREZENTAREA 2"N8BIIL4R. E8"ABII 3I2ERENBIALE :.1. Re*re>entarea 9i *'otarea +&n,ii'or matematie Re*re>entarea +&n,ii'or matematie -unciile matematice uzuale sunt furnizate de MATLAB ca funcii buit!in "cum ar fi sin, cos, log4F, log, atan etc&$& 6entru reprezentarea altor funcii matematice se utilizeaz e%primarea n fiiere tip &m & (e e%emplu, o funcie cum este urmtoarea' 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 9&:$& -iierul care descrie aceast funcie a mai fost prezentat n paragraful 9&:' function # = .umps"%$ # = 4&2""%!F&:$&N9GF&F4$G4&2""%!F&H$&N9GF&FJ$!3Z 5 alt posibilitate este crearea la nielul liniei de comand a unui obiect inline prin folosirea unei e%presii tip ir de caractere' E f=inline"g4&2""%!&:$&N9G&F4$G4&2""%!&H$&N9G&FJ$!3O$Z 6entru a ealua aceast funcie f n 9&F tastm simplu' E f"9&F$ ans = !J&=889 :F Alt e%emplu' E f = inline"O#Ksin"%$G%Kcos"#$O,O%O,O#O$ E f"pi,9Kpi$ ans = :&4J43 P'otarea +&n,ii'or 6entru reprezentarea grafic a funciilor se poate utiliza funcia fplot& /e pot controla limitele a%elor de reprezentare grafic& >%emplu' trasarea graficului funciei .umps pentru limitele ^!8 8_ ale a%ei %'
fplot"O.umpsO,^!8 8_$ (ac dorim i precizarea limitelor de reprezentare pe a%a # "realizarea unui zoom$ folosim comanda'
fplot"O.umpsO,^!8 8 !4F 98_$ :4 *n alt e%emplu de folosire direct a funciei fplot' fplot"O9Ksin"%G:$O,^!4 4_$ /e poate realiza i reprezentarea mai multor funcii pe acelai grafic' fplot"O^9Ksin"%G:$, .umps"%$_O,^!4 4_$ :.1. Re>o'6area e&a,ii'or (i+eren,ia'e MATLAB!ul dispune de metode i funcii care pot rezola problema condiiilor iniiale "7auc.#$ ale sistemelor de ecuaii difereniale ordinare "5(> ? 5rdinar# (ifferential >Puations$& Ln tabelul urmtor sunt prezentate succint c<tea din aceste funcii& :9 8ategorie 2&n,ie 3esriere -uncii care rezol 5(> odeJ8 1ezol ecuaii difereniale nonstiff, metod de ordin mediu& ode9: 1ezol ecuaii difereniale nonstiff, metod de ordin sczut& ode44: 1ezol ecuaii difereniale nonstiff, metod de ordin ariabil& ode48s 1ezol ecuaii difereniale stiff i ecuaii algebrice difereniale, metod de ordin ariabil& ode9:s 1ezol ecuaii difereniale stiff, metod de ordin sczut& ode9:t >cuaii difereniale stiff i ecuaii algebrice difereniale, metoda trapezelor& ode9:tb 1ezol ecuaii difereniale stiff, metod de ordin sczut& 5piuni 5(> odeset 7reeaz sau sc.imb opiuni de structur ale 5(>& odeget 6ermite obinerea parametrilor din opiunile 5(>& -uncii de ieire 5(> odeplot 6lotarea soluiilor 5(> "n funcie de timp$& odep.as9 Trasarea planului fazelor& odep.as: Trasarea spaiului fazelor "tri!dimensional$& odeprint 6ermite tiprirea soluiei 5(> n fereastra de comand& bserva!ie. La ecuaiile difereniale ordinare de tip stiff "rigide$ soluiile pot aea ariaii foarte rapide n timp n raport cu interalul de timp de integrare i este necesar folosirea unor pai de integrare foarte mici, ceea ce nu mai este indicat la ecuaiile nonstiff& E0em*'& (e re>o'6are; e&a,ia 6an (er Po' >cuaia an der 6ol este un e%emplu clasic de ecuaie diferenial'
unde h Y F este un parametru scalar& 6entru implementarea algoritmului de rezolare este necesar rescrierea ecuaiei de ordinul 9 ca un sistem de dou ecuaii difereniale de ordinul 4& 6entru aceasta se introduce ariabila 1 9 care este deriata n raport cu timpul a ariabilei y 3 & Dom aea :: 6entru a reprezenta n MATLAB acest sistem de 5(> n scopul gsirii soluiilor, trebuie scris n primul r<nd un fiier care descrie sistemul "un fiier de tip function$& *n fiier 5(> accept cel puin dou argumente, t i #& 6entru ecuaia an der 6ol cu h = 4, fiierul este urmtorul "y 4 i y 9 dein #"4$ i #"9$$' function d# = dp4"t,#$ d# = ^#"9$Z "4!#"4$N9$K#"9$!#"4$_Z La pasul urmtor, dup ce sistemul de ecuaii a fost scris, se poate utiliza una din metodele de rezolare prezentate n tabelul anterior& Trebuie furnizat un interal de timp pentru care se dorete calculul soluiilor i bineneles condiiile iniiale& 6entru e%emplul an der 6ol, se poate apela la o(e:<. (ac interalul de timp este ^C 1CD iar condiiile iniiale A.1/E1 i A.1/EC om aea ^t,#_ = odeJ8"Odp4O,^F 9F_,^9Z F_$Z +eirea ^t,#_ este un ector coloan care conine ectorul timp t i soluia de tip tablou #& -iecare linie din # corespunde unui element "moment$ din ectorul timp& 6entru trasarea graficului cu soluia se folosete comanda plot' plot"t,#"',4$,O!O,t,#"',9$,O! !O$ title"O/olution of an der 6ol >Puation, mu = 4O$Z %label"Otime tO$Z #label"Osolution #O$Z legend"O#4O,O#9O$ /e obine urmtorul grafic care conine eoluiile celor dou componente ale soluiei n timp' (ac se dorete i trasarea planului fazelor se pot folosi liniile de comand' options=odeset"O5utput-cnO,Oodep.as9O$Z ^t,#_ = odeJ8"Odp4O,^F 9F_,^9Z F_,options$Z i obinem planul fazelor "este orba de trasarea componentei #"4$ ersus componenta #"9$$' :J -3 -2 -1 0 1 2 3 -3 -2 -1 0 1 2 3 <. GRA2I8E FI INTER2EBE GRA2I8E 5N MATLAB <.1. P'ot?ri 1 3 e'ementare Generarea gra+ie'or -uncia plot are diferite forme n funcie de argumentele de intrare& (ac de e%emplu # este un ector, plot"#$ produce un grafic liniar al elementelor lui # ersus inde%ul elementelor sale& (ac se specific doi ectori ca argumente, plot"%,#$ produce graficul lui # ersus %& >%emplu' t = F'pi24FF'9KpiZ # = sin"t$Z plot"t,#$ grid on :8 /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' #9 = sin"t!F&98$Z #: = sin"t!F&8$Z plot"t,#,t,#9,t,#:$ !*ei+iarea sti'&'&i (e 'inie /e pot crea diferite tipuri de linii pentru fiecare set de date prin folosirea unor identificatori de tip string n funcia plot& >%emplu' t = F'pi24FF'9KpiZ # = sin"t$Z #9 = sin"t!F&98$Z #: = sin"t!F&8$Z plot"t,#,O!&,t,'2,&--&,t,'3,&(&) -unciile de plotare accept deci argumente de tip caracter care specific stilul liniei, simbolurile utilizate pentru marSer, culoarea etc& -orma general este' :3 plot"%,#,Olinestyle_marker_colorO$ 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 marSer "de e%emplu %, K, o, etc&$ *n specificator de culoare "c, m, #, S, r, g, b, 0$ /e poate folosi un specificator sau mai muli, n orice ordine& (e e%emplu, Ogo!!O definete o linie ntrerupt, cu marSere circulare, ambele colorate n erde& !*ei+iarea &'orii 9i (imensi&nii 'inii'or 7aracteristicile liniilor se pot controla prin specificarea unor alori pentru proprietile linilor' LineTidt. ? specific limea unei linii& MarSer>dge7olor ? seteaz culoarea marSerului sau culoarea marginilor marSerului n cazul anumitor forme "cerc, ptrat etc&$ MarSer-ace7olor ? seteaz culoarea interiorului marSerelor& MarSer/ize ? specific dimensiunea marSerului& >%emplu'
/e pot aduga grafice peste unul e%istent cu comanda .old& (ac se seteaz .old on, MATLAB!ul nu nltur graficul e%istent, ci suprapune noul grafic n aceeai fereastr grafic& >%emplu' semilog%"4'4FF,OGO$ .old on :I plot"4':':FF,4'4FF,O!!O$ .old off P'otarea sim&'tan? a markere'or 9i 'inii'or 6entru plotarea marSerelor "care indic punctele corespunztoare datelor$ i a liniilor "care unesc aceste date$ se specific at<t tipul marSerului c<t i stilul liniei& >%emplu' % = F'pi248'JKpiZ # = e%p"9Kcos"%$$Z plot"%,#,O!rO,%,#,OoSO$ P'otarea (ate'or (in matrii
Atunci c<nd funcia plot este utilizat cu un singur argument de tip matrice' plot"W$ a fi realizat un grafic pentru fiecare coloan a matricii, cu a%a x reprezent<nd inde%ul de linie 4'm, cu m numrul liniilor din W& >%emplu' cu instruciunea V = peaSsZ este creat o matrice JH%JH obinut printr!o ealuare de funcie& (ac plotm matricea cu plot"V$om aea un grafic cu JH de linii& := P'otarea & a0a G (&$'? 7omanda plot## permite crearea unor grafice pentru dou seturi de date i cu reprezentare dubl a a%ei W, pe partea st<ng i pe partea dreapt& >%emplu' t = F'pi29F'9KpiZ # = e%p"sin"t$$Z plot##"t,#,t,#,OplotO,OstemO$ !etarea *arametri'or a0e'or :H 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 .elp& 2erestre (e ti* +ig&r? MATLAB!ul direcioneaz ieirile grafice spre o fereastr distinct de fereastra de comand& Aceast fereastr grafic este denumit %igur0 "%igure$& "a se edea paragraful :&:$& -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 subplot& -uncia subplot"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 = F'pi29F'9KpiZ ^%,#_ = mes.grid"t$Z subplot"9,9,4$ plot"sin"t$,cos"t$$ a%is ePual subplot"9,9,9$ z = sin"%$Gcos"#$Z plot"t,z$ a%is"^F 9Kpi !9 9_$ subplot"9,9,:$ z = sin"%$&Kcos"#$Z plot"t,z$ a%is"^F 9Kpi !4 4_$ subplot"9,9,J$ z = "sin"%$&N9$!"cos"#$&N9$Z plot"t,z$ a%is"^F 9Kpi !4 4_$ JF 8omen>i (e marare, etihetare 9i gra(are a gra+ie'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& 8oman(? 3esriere title Adaug un titlu %label Adaug o etic.et pe a%a x #label Adaug o etic.et pe a%a y zlabel Adaug o etic.et pe a%a z legend Adaug o legend Te%t Afieaz un te%t la o locaie specificat )te%t 6laseaz te%tul pe grafic utiliz<nd mouse!ul 3ticetarea axelor /e pot aduga etic.ete pe a%e cu comenzile %label, #label, zlabel& >%emplu' %label"Ot = F to 9MpiO,O-ont/izeO,43$ #label"Osin"t$O,O-ont/izeO,43$ title"OMitiDalue of t.e /ine from Vero to T0o 6ijO,O-ont/izeO,43$ J4 MATLAB!ul interpreteaz caracterele care urmeaz dup bacSslas. kMk ca i comenzi TeU& Aceste comenzi permit reprezentarea unor simboluri cum ar fi literele greceti sau sgeile& Ad0ugarea textelor 6rin utilizarea funciei te%t se poate plasa un te%t "ir de caractere$ oriunde pe grafic& >%emplu' te%t":Kpi2J,sin":Kpi2J$,&&& OMleftarro0sin"t$ = &IFIO,&&& O-ont/izeO,43$ te%t"pi,sin"pi$,OMleftarro0sin"t$ = FO,&&& O-ont/izeO,43$ te%t"8Kpi2J,sin"8Kpi2J$,Osin"t$=!&IFIMrig.tarro0O,&&& O;orizontalAlignmentO,Orig.tO,&&& O-ont/izeO,43$ '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& J9 /e poate utiliza i 6lot >ditor pentru plasarea te%tului "a se edea paragraful :&:$& <.1. P'ot?ri tri(imensiona'e .7-3/ 6aii tipici care trebuie parcuri pentru trasarea unor grafice tridimensionale sunt prezentai n continuare& Eta*a Instr&,i&ni 4&6regtirea datelor V = peaSs"9F$Z 9& /electarea ferestrei grafice i poziionarea graficului n fereastr figure"4$ subplot"9,4,9$ :& Apelarea unei funcii de plotare :!( . = surf"V$Z Ja& /etarea unei .ri de culori i a unui algoritm de umbrire colormap .ot s.ading interp set".,O>dge7olorO,OSO$ Jb& Adugarea unei iluminri lig.t"O6ositionO,^!9,9,9F_$ lig.ting p.ong material"^F&J,F&3,F&8,:F_$ set".,O-ace7olorO,^F&I F&I F_,&&& OBacS-aceLig.tingO,OlitO$ 8& /etarea unui punct de izualizare ie0"^:F,98_$ set"gca,O7ameraDie0AngleModeO,OManualO$ 3& /etarea limitelor a%elor i a marcajelor a%is"^8 48 8 48 != =_$ set"gcaOVTicSLabelO,O,egatiecc6ositieO$ I& /etarea proporionalitii set"gca,O6lotBo%Aspect1atioO,&&& ^9&8 9&8 4_$ =& 7ompletarea graficului cu etic.ete, legend, te%t %label"OU A%isO$ #label"OW A%isO$ zlabel"O-unction DalueO$ title"O6eaSsO$ H& 5peraiuni de tiprire set"gcf,O6aper6ositionModeO,OautoO$ print !dps9 Re*re>entarea &nei matrie a o s&*ra+a,? J: 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& 6lotrile 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' 2&n,ie "ti'i>are mes., surf Trasare a unei suprafee mes.c, surfc Trasarea suprafeei, inclusi conturul mes.z Trasarea suprafeei, inclusi planul de referin pcolor 6lotare plan a suprafeei "alorile sunt proporionale doar cu culoarea$ surfl Trasarea suprafeei luminat din direcia specificat surface -uncie de niel sczut pentru crearea unor obiecte tip grafice suprafa Gra+ie rea'i>ate & mes. 9i surf 7omenzile mes. i surf genereaz suprafee :!( din datele proenite de la matrici& (ac V este o matrice pentru elementele creia V"i,j$ se definete nlimea unei suprafee peste un caroiaj "i,j$ atunci mes."V$ genereaz o imagine colorat, caroiat a suprafeei i o afieaz n edere :!(& /imilar,
surf"V$ genereaz o imagine colorat, continu a suprafeei i o afieaz n edere :!(& Ln cazul comenzii mes. se pot folosi comenzi de tipul s.ading pentru eliminarea liniilor de tip mes. "s.ading flat$ sau pentru interpolarea umbririlor de!a lungul faetelor suprafeei "s.ading interp$& @i>&a'i>area +&n,ii'or (e (o&? 6aria$i'e 6rimul pas care trebuie parcurs pentru trasarea graficului unei funcii de dou ariabile, z = %&x,y', este de a genera matricile U i W care definesc domeniul n care a fi izualizat funcia& Apoi se utilizeaz aceste matrici pentru ealuare i trasarea graficului funciei& -uncia mes.grid transform domeniul specificat prin doi ectori, % i #, n matricile U i W& Liniile matricei U sunt copii ale ectorului % i coloanele matricei W sunt copii ale ectorului #& 6entru a edea cum se folosete mes.grid, om considera funcia sin&r'4r "numit funcia sinc$& 6entru a ealua funcia ntre != i = i pentru x i pentru y, este necesar doar un argument de tip ector pentru mes.grid, care a fi utilizat n ambele direcii' ^U,W_ = mes.grid"!='&8'=$Z JJ 1 = sPrt"U&N9 G W&N9$ G epsZ Matricea 1 conine distanele de la centru "originea$, iar eps este adugat pentru a eita mprirea la zero& Acum se poate forma funcia sinc i se poate realiza plotarea cu mes.& V = sin"1$&21Z mes."V$ /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, camlig.t, ie0$& >%emplu' surf"U,W,V,O-ace7olorO,OinterpO,O>dge7olorO,OnoneO,&&& O-aceLig.tingO,Op.ongO$ daspect"^8 8 4_$Za%is tig.tZie0"!8F,:F$Zcamlig.t left J8
)arta &'ori'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 F ? 4& 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& -uncia colorbar afieaz n fereastra grafic .arta curent a culorilor, sub forma unei bare aezate l<ng grafic& >%emplu' ^%,#_ = mes.grid"^!9'&9'9_$ZV = %&Ke%p"!%&N9!#&N9$Z surf"%,#,V,gradient"V$$Zcolorbar J3 JI