You are on page 1of 152
Marin Ghinea Virgiliu Fireteanu MATLAB CALCUL NUMERIC GRAFICA APLICATII Teora Titlul: MATLAB Calcul numeric. Grafica. Aplicat Copyright @ 2003, 1997 Teora “Toate dreptule asupra acestel cri aparin Editi Teora, Reproducerea integrala sau partial a textului sau a lustraillor din aceasta carte esto interzisd ra acordul prealabl srs al Editi Tora, Teora Calea Mosilor nt. 211, sector 2, Bucuresti, Romania fax: 021/210.38.28 email offce@teora.r0 Teora ~ Cartea prin post CP 73-30, cod 72450 Bucurestl, Romania tol: 021/252.14.91 e-mail: cpp@teora.r0 Copertii: Gheorghe Popescu Director Editorial; Diana Rotary Pregedinte: Teodor Raducanu NOT 5784 CAL MATLAB-CALCUL NUMERIC, AR ISBN 973-601-275-1 Printed in Romania CUPRINS CUPRINS Partea |. INTRODUCERE IN MATLAB 1. CE ESTE MATLAB? 16 2. MATLAB SUB WINDOWS: 20 2.4. instalerea 20 2.2. Lansatea in execute 20 2.3, Ferestele de lucru i 24 2.3.1. Fereastra de comenzi .... a4 2.3.1.1. Gestionarea figerelor 24 2.3.1.2. Editarea programelor 22 2.8.1.8. Alegerea opfiunilor 23 23.1.4, Selectarea ferestrelor 24 2.3.1.5. Documentalia de ajutor - Help 24 2.8.2. Fereastra de reprezenti gras... 25 2.3.2.4. Gestionarea ferestrolor grafice 25 2.3.22. Editarea grafioolor 25 8. FUNCTII MATLAB DE INTERES GENERAL a 8.1. Functi pentru lansarea gi legitea din MATLAB 27 3.2. Funofi de control gene! 27 8.2.1. Holp-ul ,ondin® 2B 3.2.2. formalii despre figierele unui director 28 8.2.3, Afigarea conjinutulul unui figier 20 3.2.4, Ctile de cdutare . 29 3.2.5. Informatii despre variabllele unui figior| : 30 ‘8.3. Funeti pentru controlul directoarelor, figieralar gi ala victoria’ 0 OPTI rn 8.3.1. Control directoareior 9 igiarelor 3.3.2. Ruiarea programelor externe ‘3.4. Funofii de control al marimar de timp 3.5. Funotl asooiate ferestrei de comenzi_. 3.5.1, Controlulferestrei de comenzi 93.5.2. Formatele de afigare a numerelor 3.6.3. Controlul execuiel unui program... 8.6. Funoti de control ale variablelor din memoria +" 8.6.1 Aigarea unui text 3.6.2. Stergerea variabilelor 3.6.3. Compactarea memoriei 8.6.4. Dimensiunea variabillor 8.7, Variabile speciale gi constante in MATLAB 8.8, Importul gi exportulfigiereior de date 4. INTRODUGERE IN PROGRAMAREA MATLAB 4.1. Matrice, vector gl ecalar, Notatil 4.2. Introducerea matricelor simple 4.8, Elementele matricelor 4.4, Deciarati gi variable. 45. Numere si expresii artmetice 4.6. Structura unui program th MATLAB. 4.6.1. Figierole script 4.6.2. Figlerele functie = 4.7. Comentarile gi help-ul int-un program 4.8. Un exemplu simplu de program complet 5, INSTRUCTIUNI $1 FUNCT DE CONTROL. 5.1, Instrucfiunl de control iogie : 5.1.1. Instructiunea conditional 5.1.1.4. Operatori relational 5.1.1.2. Operatoril logic! 1.1.3. Instructiunea i simpid 5.1.1.4. Clauza else" e 5.1.1.5. Clauza ‘elsoit 5.1.2. Inetructiunea repetiva for”. a 5.1.3, Instructiunea repetitvs “while” 5.4.4. instructiunea break .. . 5.1.5. Instructiunea ratum 5.1.6, Instructiunea error = ‘5.2, Functii de contro! logic 5.2.1, Testarea conditilorfogio8 wn -ncrnneegeove : 5.2.2. Determinarea Indiclor elemenieior cara verificd 6 condi. 5.2.8. Determinarea poziici elementelor finite, infinite sau NaN ~ 5.2.4, Testarea matricelor goale : ae 5.2.5. Testarea existenfel unel variabila 5.8, Vectorizarea Calculer rnnrnnen “6. OPERAREA CU SIRURI DE CARACTERE 6.1. Funotii generale .. f * 6.2, Compatarea girurlor de caractere 6.3, Conversia gir-numér si numérgir ~ 6.4. Conversia girurior in formate numerice fe Partea a Il-a. CALCUL NUMERIC CU MATLAB <> 7. OPERATI ARITMETICE . 7.4. Operati aritmetice cu scalari 7.1.1. Ordinea operatilor artmatice Limitele calculeor .... = 7.2. Operati aritmetice cu tablouri 7.2.4, Adunarea gi scderoa MATLAB, Calcul numeric gi grafic. Aplicafi mn a 2 73 B Cuprins 7.2.2. Inmuttrea-tablourior 723, Imparjrea la dreapta.. 72.4, Impaiiea la stanga 7.2.5. Riicarea la putere 7.2.6. Transpunerea tablourilor 7.3. Operati aritmetice cu vector... 7.3.4, Produsul scalar 7.3.2, Produsul vectorial” 7.4, Operatitaritmetice cu matrice 7.4.1. Adunarea gi sc&derea 7.4.2. Inmuttrea matricelor 7.4.3, Imparjrea la dreapta 7.4.4, Impartrea la stnga 7.4.5, Riicarea la puters 7.4.86. Transpunerea mattiesior 8. GENERAREA VECTORILOR $1 A MATRICELOR UZUALE 8.1. Genetarea vectotlor ve. 8.1.1. Generarea vectoriir cu pas linia 8.1.2. Generarea vectoriior cu pas logaritmis 8.2. Generarea matricelor . 8.21. Matricea goal 8.2.2. Matricoa unitate 8.28, Matricea zer0 8.2.4, Matricoa identitate 8.25, Matricea aleatoare 8.8. Generarea unel rejele (mesh) 9. FUNCTII MATEMATICE UZUALE 9.1. Aproximarea numerelor 9.1.4. Aproximarea cu numere inivagi 9.4.2, Aproximarea cu numere rajionala 8.1.3, Aproximarea cu fracti continue 9.1.4. Funetia rest 8.1.5, Funefia eamn . 9.2. Divizori si multip comuni 92.1. Cal mai mare divizor comun 9.2.2. Cel mai mic multiplu comun 9.3, Numere complexe a 9.3.". Definirea numereior compiexe th MATLAB 9.32. Medutul gi argument numerelor complexe... 9.8.5, Parte real gi imaginars si conjugatul nurnerelor ‘complexe a 9.4, Functile putere, radical, logartm 31 exponential 8.4.4, Funofia puter annem 9.4.2. Funotia radical 9.4.3, Funcfia logaritm”. 9.4.4, Functia exponential a MATLAB. Caloul numeri gi grafic, Aplicati 8.8. Funotile trigonometrioe e 99 1.5.4. Functiletrigonometrice directo 89 9.5.2. Funcliletrigonometice inverse. +400 8.6, Functile hipetboiice 10% 9.6.1. Fundtile hiperbolce directe jot 916.2. Func{ile hiperbolice verse tot 40. MATRICE SPECIALE . t02 10. 1. Companionul matriceal 102 40. 2, Matricea diagonal 403 10. 9, Matricea Hadamard 104 10. 4, Matricea Hankel 105 10. 5, Matricea Hilbert 108 10. 6. Inversa matricei Hibert 406 40. 7. Tensorul Kroneker 107 10. 8. P&tratul magic 107 10. 9, Matricea Pascal 108 40.10, Matricea Toeplitz 109 10.11, Matricea Vandermonde 110 10.12: Matrices Wikinson att 14. CALCULE CU MATRICE 11.1. Manipularea matricelor 14.1.1. Extragerea submatricelor pin indici a 11.1.2. Extragerea submatricelor prin vectori cu elemento 0 git... 115 14.1.8, Asamblarea matricelor mari ve 11.1.4, Redimensionarea unei matics : 11.1.5, Rotirea matical in jurul unei coloane sau ini 14.1.6. Rotirea matricei cu mutipl de 80 de grade in jurul unt element : cs 117 11.4.7, Matrioe diagonale gi tiunghiulare 117 11.2, Anaiizi matriceala .... ve 118 44.2.1, Determinantul unei matrioe 118 14.2.2. Inversa unei matrice 41.2.8. Rangul unei matiice 14.2.4, Uma unel mative. 41.2.5. Calcuiul nomnelor vectoror gi maticeior 11.2.6, Conditionarea unei mattice — : 44.3, Descompunerea gi factorizarea matroalor nee, 123 11.3.1. Valoti si vectori propril 11.3.2, Calcuiulvalorior singuiare 11.3.3, Factorizarea Cholesky... 11.9.4, Factorizarea LU (lower-upper) 44.3.5, Factorizarea QR enn 11.3.6, Psoudoinversa unei mairice 12, PRELUCRAREA DATELOR $I CALCULE STATISTICE wiwccsnnnnnnn 129 12.4. Maximul gi minimul : Cuprins 8 412.2, Media gl mediana .. 190 i 12.3 Stane i produse . 130 \ 124, Sortareaetamensior una rnalice 132 | 12.5. Variarta $i cispersia datelor 439 | 12.8, Coofizentl de coreaje a dato 194 | 12.7. Valor n6M6hAA2 occ 135 128, Eliminereadatolor eronaio 195 | 129. Histogame oe 135 18, MINIMIZAREA FUNCTILOR eso 137 48,4. Cale minimal function doo vaiabig 187 i 18.2. Cale minimuii finer de mal mute varabia 138 183, Calcul zerourorfncjior do o variable real 139 14, REZOLVAREA SISTEMELOR DE ECUATII LINIARE 140 14.4. Descrierea matriosal a siatomolor de ecuafi 140 14.2; Rezoharea sistomelor pin impairoa maticloy +40 14.3. Rezoivarea siatemelor prin folosirea maticel inverse. 141 | 15. CALCULE NUMERICE CU POLINOAME 143 15.1. Evalua’ea polnoarnolor 143 15.2. Adunaa gi sofderea 144 15.3. Inmutioa si imparfea : 145 15.4, Descompunerea in fracfi snp 148 ! 15.5. Calcul dervatoi 147 45.6, Calcul radacinior : 148 16. INTERPOLAREA $1 APROXIMAREA DATELOR 149 46.1. Cautarea dateior in tabele ca 149 18.1.4, Cdutarea dateior in taboie nimnansionaia 149 16.1.2, CAutaroa datelrintabele bidimonsionale 450 16.2. Interpolarea functor deo singuré vatabli 154 18.2.4, Inorpolarea Inia ea. 152 Interpolarea spline cubicd - : 16.2.3, interpolarea prin meloda transtormatel Fourior 184 16.2.4, Interpolarea multipla : 16.3, Interpoiarea funofilor de dou variable 16.3.1. trterpolarea dup o lage biarmonic 16.3.2. Interpolarea dupa o lege biiniard 16.3.3. Interpolarea dup o lage bicubic” 16.3.4, Iterpolarea prin metoda distanji inverse 16.3.5. Irterpolarea muttipla 7 16.4. Aproximarea prin metoda colar mai mii patrate.. 16.4.1. Regresia iniard 16.4.2. Regresia polinomialé 17. INTEGRAREA $I DERIVAREA NUMERICA A FUNCTILOR ovens 166 Y7-1, Integrarea numeticl omens sinnnennencns 164 17.4.1. Metoda trapezeior gi metoda lui Simpson oe 164 10 MATLAB. Caleul numeric gi grafick, Apli 47.1.2. Catculul numeric al integralelor pe intervale infinite 17.4.3, Caloulul numeric al integralelor funcfitor cu singulartayi 17.1.4. Funofii MATLAB pentru integrarea numeric& 17.2. Derivarea numeric’ ... 17.2.1. Aproximarea derivatelor cu difere 17.2.2. Aproximarea numeric’ a derivatelor... 17.2. Darvaren numer baa pe pono deepak Newton 17.2.4, Aproximarea numericd & Laplaceani 17.25. Aproximarea numeric a gradientulul 18. INTEGRAREA NUMERICK A ECUATILOR DIFERENTIALE 18.1. Ecuati diferentiale de ordinul intl 18.2. Functiile MATLAB pentru integrarea numeric a ecualfior diferentiale 18.3. Integrarea ecuatil de ecuati dferentiale 19. FUNCTII SPECIALE 19.1. Ecualia gl funofiia Bessel 19.2. Funcjia Gamma 19.8. Funct Beta 494, Functia eroare 195. Funciia de reparie Laplace. Partea a Ill-a, GRAFICA IN MATLAB 20, REPREZENTARI GRAFICE 2D 20.1. Reprezentiri grafice elementare 20.1.1. Reprezentarea grafic tn coordonate liniare 20:12, Repezentare graf Tn cordonate logartrice i ‘semilogaritmice .. 20.1.8, Reprezentarea graficd a poligoanelor 20.2. Reprezentiri grafice speciale X-Y : 20.2.1. Reprezentarea graficd tn coordonate polare 20.2.2. Reprezentarea graficalor cu bare... 20.2.3. Reprezentarea discret a datolor 20.2.4. Reprezentarea graficelor In trepte 20.2.5. Reprezentarea grafict a erarlior 20.2.6. Reprezentarea grafic’ a histogramelor 20.2.7. Reprezentarea grafic’ a vectorlor 20.2.8, Reprezentiri grafioe cu parametrl impusi 20.2.9. Reprezentari grafice dinamice 20 21, REPREZENTARI GRAFICE aD . 21.1, Reprezentarea linilor de contur . 24:4.1. Calculul matricai tinlor de contur . 21.1.2. Reprezentarea grafic& tn plan a inillor de contur 24.1.8, Etichetarea cotetor inilor de contur io ordin superior gia sistomelor qt i al 174 174 175 17 192 182 185, 185 408 187 189 Cuprins : _ it 21.1.4, Repfezentarea graficé fn spefiu a lnllor de contr... 203 211.5, Reprezertarea graf a cimpurtr de veto! rena 204 21.2, Reprezentir spatiale cu lnil ere : E 208 21.2.1. Reprezentarea linilor in epafiu 205 21.2.2. Reprezentarea grafic& spatial a poliedrelor 208 21.2.3, Reprezenta gratice spatiale dinamice ... 208 21.3, Reprezentarea 3D a suprafelelor gi inilor de contur 207 21.3.4. Reprezentarea suprafojelor cu ,mesh’ 208 21.3.2, Reprezentarea grafica a suprafetelor netede 200 at 21.4, Reprezentarea obiectelor spalialo 21.4.1. Reprezentarea grafic a oblectului ciindru 21.4.2, Reprezentarea grafic’ a obiectului sferd 21.5, Pozitionarea observatorului fafa de obiect ‘25:1, Defnirea poziiel observatoruli fala de obiect 212 24.5.2, Vizualizarea gi ascunderea suprafefelor suprapuse, 213 22, PERSONALIZAREA GRAFICELOR ata 22.1, Precizarea tilulul graficului 216 22.2, Precizarea etichetolor axelor .. 214 22.3, Plasarea unui text pe grafic 214 22.4, Trasarea unei refele (,grid”) po grafic 215 28, CREAREA $1 CONTROLUL AXELOR 216 28.1, Divizarea ferestrel grafice 216 28.2. Schimbarea limitelor axelor f 216 28.3, Suprapunerea succesivi a graficelor 218 23.4, Stergorea axelor curente .. — 218 23.5, Determinarea identicatoriui axelor Curente nn. 218 23.6, Crearea unui oblect grafic axe... 218 23.6.1, Propristile generale ale abisctulul grafic axe 220 23.6.2, Proprietaiile de control ale axelor (X, Y siZ) 228 24, CREAREA $1 CONTROLUL FIGURILOR 225 24.1. Crearea unui object figura 225 24.2, Determinarea Identificatorului une’ figui 225 24.3. Proprietijie oblectulu figura. 228, 24.4, Stergerea une figur 230 24'5. inchiderea unel figur 230 25, CREAREA UNOR OBIECTE GRAFICE 231 25.1. Crearea unui obiect grafic text zat 25.1.1. Proprietitie oblectulul grafic text 231 25.2. Crearea unui object gratic line 233 25.2.1, Proprietile obiectulul grafic nia 234 25.3, Crearea unul obiect grafic suprafat on 235 25.8.1. Proprictajiie obiectulul grafic suprafata 236 25.4, Orearea unui obiect grafic imagine... 237 25.4.1. Proprietaile obiectului grafic imagine 238 12 MATLAB, Calcul numeric si grafic. Aplicati Cuprins 26, CONTROLUL CARACTERISTICILOR GRAFICE 299 | Partea a IV-a. APLICATII 26.1. Stabilrea proprietaitlor obiectolor 239 | 5 26.2. Citirea proprietajior obiectelor 240 BYE Sermate ou e00U sn 26.3. Inliatzaren proptajior cbloctlcg 22 | 31.2. Sermale aleatoare cu distribulia uniforma 284 Astinlenree al Petes succes aaa 81.3, Semnale aleatoare cu distrbufie normala 31.4. Rapcrtul somnal - zgomot ... 27. CONTROLUL CULORILOR REPREZENTARILOR GRAFICE 243 81.5, Curent nt-un circuit electric 27.1, Controlul culorior reprezentiilor grafice ... 27.1.1. Spectticarea culorii in MATLAB. 27.4.2. Stabila matricel de culoare 27.1.3. Scalarea matricel de culoare 27.4.4, Stabiliea modului de colorare 27.1.5, Matricea de pseudoculoare ........... 27.1.6. Conversia culorior RGB-HSV gi HSV-AGB 27.4.7. Controlul contrastului gi luminoziti 27.1.8. Rotirea culori reprezentairi grafice et 27.1.9, Reprezentarea graficd a ponderil culorlor fundamentals 27.2. Controlul iumindti reprezentarior grafice ..... 27.2.1. Reprezentarea grafic a normalel la suprataja 27.2.2. Controlul nuanjelor de culoare prin surse de lumind 27.2.3. Reprezentarea suprafeelor cu reflex Modele de culoare folosite tn reprezentrle grafice 27.3.1. Modelul,bone" a : 27.3.2 Modelul ,coor 27.3.3. Modelul copper" 27.2.4. Modolul flag". 27.3.5. Modelul gray" 27.3.6, Modelul -hot" 27.8.7, Modell “hev" 27.3.8, Modelul et" 81.8, Circut electric in regim tranzitor 31.7. Simuarea numeri a fabiltii 81.8. Evaluarea prin interpolare a tempera 31.9. Temperatura de echilibra a unel plici 31.10. Patrunderea cldutii In semispatiul omogen 81.44. Timpul de topire al unui fr UzIbH res 31.12, Campul magnetic armonie intr-un conductor clindiie 31.13, Interfaé grafic’ interactiv : | ANEXA. Indexul functilor MATLAB BIBLIOGRAFIE a7: 254 27.3.9. Modelul,pinie 254 27.3.10. Modelui ,prism . 284 28. MISCAREA $I ANIMATIA IMAGINILOR 7 25 29, INREGISTRAREA REPREZENTARILOR GRAFICE 257 80, CREAREA INTERFETELOR GRAFICE INTERACTIVE ... 259 20.1. Crearea elementeior de control pentru interfofele grafice IMCFBCHVE error a = 90.1.1, Proprisiie elementelor de control ale intorfajelorgrafice| interactive Spee part 2600 80.2, Crearea meniurilor pentru interiejele gralice 264 30.2.1, Propritajile obiectului meniu zs 90.8, Citi interactiv’ a datelor de pe grafice 268 30.4, Selectarea interactiva a figierelorcitito 267 20.5, Stabilrea interactiva a figierelor salvate 268 80.6. Selectarea interactvi a fontutior one 289 30.7. Selectarea interactivd a culorior 270. Partea| INTRODUCERE IN MATLAB 1. CE ESTE MATLAB ? MATLAB este un pachet de programe de tnaltt performanté, dedicat caleululul ‘numeric si reprezentérilor grafice tn domeniul gtinfei si ingineriei, Integreaz& analiza numeric, calculul matriceal, procesarea semnalulul gt Yeprezentirile graflce, tntr-un mediu ugor de invafat gi folosit, In oare enunturile problemelor si rezolvarle acestora sunt exprimate In modul cel mai natural posibil, aga. ‘cum sunt sorise matematio, fard a fl necesard programarea traditional. Elementul de ‘baz cu care operoeazk MATLAB-ul este matricea. Cu aesta so pot rezolva probleme fr a finecesara scrierea unui program int-un imbaj de programare. Dezvcttat de-a lungul mai multor ani, acum MATLAB-ul este un standard tn medille universitare, precum si in domeniile cercatari gi rezolvaril practice a problemelor legate de prcesarea semnalelor, identificarea — sistomelor, controlul_statistio, prelucrarea datelor experimental etc, Dintre resursele de calcul si reprezentare grafic ale MATLAB-ulul se ‘menfioneaza urméitoarele: 1. Operatit matematice tundamentaie calcule cumatrice gi tablour, ‘operatoriralational si logil; functi triganometrice gi hiperbotice, exponentiala, logaritmul ete; {uncle speciale: Gamma, Bessel, Euler, ellptic etc. calcule cupotinoame; aritmetic’ in virqulk mobilé IEEE (15 clfre zecimale tn rezutat) Algebré liniard gi functii matriceate analiza matricealt ecu descompunerea in valor propril gi valori singulare; factorizares QR; generarea matricelor, algoritmi pentru matrice rare, Analiza detelor gi transformatele Fourier corelatia, covarianta, diferente finite; transformata Fourier rapid (FFT) ; media statistics, mediana gl deviajia standard; interpolarea datelor, 16 4 ° ° ° ° 5 ° ° ° ° 6. ° ° ca ° ° ° ° ° ° 8, ° ° ° 9. ° ° Introducere In MATLAB Analizé numeric’ nel ‘ecuati diferentiale; integrarea numeric; aproximarea trecerllor prin zero; minimizarea, Programare structuri de control; citirea/scrierea dinvin figlere format ASCII eau binar, depanarea figierelor program; crearea de interfefe gralice interactive (GUN). Reprezentarea graficelor 2D gi 30 folosirea pixeilor, tinilor, poligoanelor pine, Inilor de contur, utiizarea.diagramolor polare, do bare eau a histogramelor, reprezentarea In coortonale iiniare, semilogaritmice gi logaritmice; reprezentarea suprafetelor. Vizualizarea graficelor Ccontrolul culorilor gi a pozitfel sursel de luring; vizualiziri volumetrice; afigarea imaginilor, animati Proprietiii gi resurse gratice crearea gi manipularea figurilor, desenarea, scalarea, etichetarea gl colorarea axelor, aribii foiostd pentru ‘reprezentarea tui Nota-Number (NaN), in aritmetica IEEE, rezultat al impartii nedefinite 0.0/0 35 Introducore In MATLAB. = variabiia permanent pentru testarea numérulu argumentelor de intrare ce Trabuie introduse pent apelarea unel func; - variab permanent peniru testarea numéruluiargumentelr de iogire ale tne! funeti = feureazi numaul do operat in virgulé mobi fectate de calla. ‘Adunaio gi sciderio. sunt conttizate fecare cite 0 operate, dac8 vo Gfectuear inte numere rena, si doUk operai daca so efectuaaza inte valor Complexe. inmuatiie 91 mpéiie sunt fsca o operat dacd rezutatl esta ‘eal $16 opera dack rezuatl este complex. Aducerea la 2er0 a contri se realizeaza cu mstructianea fleps(Ot < varia folostd pentru -obfinerea_infornaliior refertoare ta tipul Calcuatoruvi gi numarul maxim do eloments po care le poate gestiona \ersunoa respectiva de MATLAB, Cu istructiunea Tealculator, elenente) = computer 0 objne Calcuator'= PCWIN blemente = 268435455 reprozinl'cea mai mare valoare pozitva in virgulé mobili care poate fi folosita in call, respectv 1.79776+308; reprezini& cea mai mick valoare poztvé in vrgu& mobili care poate fi folosté in calcul, respectv 2.22516-908; -functie care retueazi 1 daci caleuiatorlluereaza cu arimeticd IEEE gi 0 incaz contra vorsion, vor: functhpenttu determinarea versiunt MATLAB gia toolbox-utlorinstalate pe calculator. nnargin nargout flops computer realmax roalmin isieee 3.8. Importul gi exportul figierelor de date Funofilo foad si save sunt comenzi MATLAB de inclrcare gl ealvare a figlrelor do pe (pe) disc curent Toad Incarc& variablole dint-un tiger de date de pe disc; save _—_Salveaz& variabllele int-un figler de date pe dise. Incdrcaroa unui igor do date so face cu funcfia lad 6 ape cu sntaca Toad numer format. dato undo ,nume fj” este numele fie care se dorete incrat iar Jormat date" este formaiul datelor (ASCII sau BINAR) dn ace gir. Funcja bad se utizenz’ pent + incércarea datelor din figierul matlab,mat load + incitearea daelor din fore Tn formal bina, cu exensio “mat ‘oad nume- fier crearea datelor din gee in format binar, ‘ond rime Tir extensie at + incircarea datelo din foro in format asc, fra extenso: foad ume fier asc 1 extensie 3, Funclii MATLAB de interes general a ‘+ Incarearea daielor din figiore tn format ascil, cu extensie: ‘ac nume_figiorextonsie -ascll Ins toate cazuite, dato tncircate trebuie si tablouri complete. Dupa inceare dalle 2e reise in memoria calculator cu nuele po care a avtt finde data a extonse), indferent de forma in care fuseserd stocate anterior. Spre exompll, Poni ‘nclcarea fijerub de date in format ASCII cu numele tomp.dat se foleagte ntrucjuwou Tosd temp. dae ares Daca figirul nu are extonsie, 2 flosesteinstrucjunea: Toad temp -ascit In ambete cazur dateleconjnute de feu! inesreat se tegisesc In memorie cu numela- temp. Savon raaoor dn spa do hu fou fuji eave; ee apaoash aod i sagt i ye; 82 ape ou ve an geet rath a uno sure. fier ets rrr gary care se sea vrbioesaune_ vale fea sora sata ASCH ca NA). nares n Funciia save se utlizeazi pentru ‘+ salvarea in fornat binar a tuturor variabilelor din spafil de cru, in fgioral matiab.mat: + saNvarea in format binar a tuturor variabi 4 fe Wucru, spans bi olor din spajul de lucra, in fisierul save nue figior + salvarea In format binar a a variablielor fin spatiu in figin satvren nm lelor AB C din spatiul de lucru, in fisirul ‘save nume_igier ABC ‘+ salvarea in format ascii (cu 8 digi) a variabilelor A B C din spatiul de lucru, in figiorul nume_figier.ext: ‘save nume_fgierext AB C-asci ‘+ salvarea in format ascii (cu 16 dig) a variabllor A B-C din spatial de lucry, in figerul ‘nume_figier.ext: ‘sare nume.figier. ext A B C -asci double + salvarea in fermat ascii (cu 16 digi) a variabllelor A BC din spaljul de luc, cu ‘sopararea dataor prin TAB-uri, tn figierul nume-_figier.ext: ‘save nume_tsier.ext A'B C -ascli-double abs he 4, INTRODUCERE IN PROGRAMAREA MATLAB 4.1, Matrice, vector! si scalari. Notatii MATLAB-ul este un pachet de programe care luoreazi numal ou un singur tip de Obiecte, matrice numerice rectangulare, cu elemente reale sau complexe, In acest sens, ‘scalar sunt asimial! matricelor cu o tnie gio coloand (1x1), lar vector sunt asimtal imatricolor cu o linie (1xn) sau 0 coloand (nxt). Operatila gi comenzile tn MATLAB sunt ‘proape naturale, n sens matriceal, aseméndtor modulul de calcul obignut. Astel entitle: i al! 7) ol?) old [es : .| _ a2is Ina) Paz 0 2 2 4 5707 357) ‘Sunt toate mattice In acceptiunea MATLAB. A este o matrice 2x2, B este 2x3, C este Sxt, Deste 3x4 gi Extx4, Elementcle unci matrice, fle aceasta A, pot fi identiicate prin una dintre notatiie: Ay Ali, Al) eto. gi semnificx elementul de la intersect lini cu coloana Utima notatie, A(i), este cea care a fost adoptatt gi in MATLAB gi va fi folosit2 th ‘aceasta lucrare. Dimensiunea unei matrice este precizati de o pereche de numere care frat numarul de nil gi coloane al matricel respective. (D este o mattioa 3x4), © ‘matrice cu © singurd fnia sau © singurd coloand se numeste vector linia (E) sau vector coloana (C), elementele acesteia puténd fi identificate cu un singur indice, O matties eu © singura tinie gio singuré coloand este un scalar. Frntru a face referire fa un element (ij) al.unei mattice A, sunt necesari doi Indic, indicele de finie $1 ndicele de coloand, tn aceasti ordine. Referitea unui element «al unul vector poate fi facuté numai cu un singur indice, Astiel, A@1)=3; B(1,3)=5, C2)=2; D@A)=7: Eld)=7. 4.2. Definirea matricelor simple Dafinirea matricelor se face prin una dntre urmétoarele metode: ~ introducerea explict a Istei de elements; + generarea prin instrucyini gi functi, + crearea de fisiere Mi ttebule respectate umatoarele regult ~ elementele une! Ini trebuie separate prin blanc-uri sau ving; = tnile 80 separ prin somnul punct-virgulé "; ~elementele matice! sunt cuprinse trie paranteze drepte J", 4, Introducere in programarea MATLAB. 30 Astfl, matrioea A din §4.1 poate fi Introdus& cu seoventa: Ae(L 2; 3 4) care retumeaz’ rezuitatu 1 2 3 4 Mativee A. asf defint, poate ftizaté th calele sau pont salva nts fier de date eins ofolosi uteroai a Pentru rratricele mari, la care datele de intrare nu Incap pe singura lini, se poate proceda la Inbeutea semnuid, "ou Enter’ ca in exemplul unr caren ieeir! Speer al Un at mod de dfiite a unel mates const in apelarea nmol unl fier de date allt pe dis. Acestfgler tebuie s& fe Tnvegaial in format ASCI (ex), organioat cao matioe rectangular (complet) gs aii extonsia “mm, Astol, dack po dee 96 gcoste un fsler cu numele datezm cave conjine umitoarela dou ni'de txt 1 2 34 Instructiunea care citeste fisioru si genereazA matricea A este: aedate Posiiitatea de a importa date de la ate programe este prezentat fn §3.8, 4.3, Elementele matricelor Elementels matricelr pot fi numere reale sau complexe, precum gl orice expresie MATLAB, De exemplu, pent: we(-1.3 sqrt (3) (223) +475) rezultis “1.9000 1.7821 4.8000 J Elementele unel matiice pot fi referte cu indici cupring! ine paranteze rotunde ,( )', ca th exemplut: @ care rotumeazi: a=1.7321 De romareat cf dac se asignoazi o valoare unui element care ocupai o pozitie In lara dimensiunii maxime a matrcei sau vectorulu rfert, dimensiunoa acestuia este mari ‘automat pan la veloarea indicelui noulul element, iar elementele nedefinte sunt setae la valoarea zero. In acest sens, instructimea: 2(5)= aba ((1)) ‘etumeazi rezuitatu x=[ 1.9000 1.7921 4.8000 0 4.9000 } larinstructiunea: A(2,4)= 6 retumeaz’ rezulatu 40 Introducere in MATLAB, A 1200 3406 (© modaiitate de a construi matrico marl const in folosirea matrcelor mici ca ‘elomente, Spre exemplu, din doui marice 2x3 se poate construi o matrce 4x3; dimensiunile ‘maticelor uiilzate trebuie sa fie astfel alese Inca s& realizeze tablour reclangulare complet. Fle At gi A2 cele dou matrice ulzale, Cu secvenja urmatoare: AL = (1 2; 3 4) 22 = (5 6 7 8) A = (Al: A] se objine rezutatut As 1 3 5 7 (© matrice mai mica poate fi extrasd din malice mai maui utlizand sernul De exempl: (doua puncte), B= A(2:3,3) cextrage nile doi si tro g toate coloanele din matrcea curenta A, objinandu-se matricea B: as 4.4, Declaratii si variabile MATLAB-Ul este un limba} do. oxpresi Expresilotpate de utizator sunt inerpretate evaluate Inerufurie MATLAB sunt, de cle mai mute or, de forma: alla = expresie au, mai simpki Expr sn eompuna dln para state caractre special, dn func gramme do variable, Evaluarea expresici produce o mace, care esle aligaté po evtan stn tunel valle, Dao numolevarabie gl eernnul egal (variila=) sunt omise, MATLAB- creazi automa ovariabla cu numele ans” cath exemple 7 care retuneazi ‘ans = 0.7500 Otieinstuejune este in mod normal tenrinaté cu Ente’. Dac umulcaacter al aoostoia este punctvirgu ,:",istucjunon osteexeculai, dar tipaitea este supra Utizaroa acest caracer a slg uel instruc In igee-M este necesara Insti in care ne dorogteafigarea datlrirtermedare. De exempt Rel 2 3; 45 677 8 8]7 introduce mations A, dar nu 0 algeazi, Tastarea numeli unel variable uma de Enter atlgeaza valoarea aoesteia act expresia este aga de mare incdt decaraja nu incape po o singu Ini, se 4, Introducere in programarea MATLAB a uilizeazi semnul ..." (rei puncte), umat de ,Enter, pentru a preciza cdi instucfiunea continu pe lnis umtoare, Aste, Intructiunea: +2454 44546 cevalucazii suma celor sase numero gio altbuie variabiei S. Spajile dintre semnele y=" 17" ginumere sunt opfionaie. Numele de variable si func au ca prim caracter 0 iter’, urmati de litte, cifre sau caracterul niu de sublinire” (adica , _"). Desi se pot folos|oricéte caractere, MATLAB -ul refine ca nume de variabiét nual primele 19 caractere. MATLAB-ul face deosebirea intro Horele mari gi mic, asfel incdt ,a" gi .A* sunt dou variable dinstinte, Funofia ,caseser!" permite treceree MATLAB-uiui in modul senzlivinesenzity, in vederea separa ltsrelor mati de cele mick, Nurnelo de functi este obligatoriu sa fie redate cu ltere mic. MATLAB-ul este fa lansare in modul senzitv, adic& face dinstinlia Inte iterele mari gi cele mic, dar cu comanda: casesen off luece in modul nssenzit; revenirea se face cu comanda: 4.5. Numere gi expresii aritmetice MATLAB-Ul_ utiizeazi pentru reprezentarea numerelor notalia_zecimalt ‘conventional, cu punct zecimal, Pulerea este un factor de scald inclus ca sux, ca $i in otala gtinfficd. Exemple de reprezentiri de numera in MATLAB, sunt: 3 99 0.0001 9.6997238 4.602106-20 6.02252003 Calculatsarole care utizeaza aritmetica In virgula mobil IEEE au precizia rolativl a ‘humerelor .eps", aproximata cu 16 digit semnificatv, Limitele numerelorfoloste in MATLAB sunt: 10°51 10%, MATLAB-Ulutiizeaza urmsitorl operator aritmetick + adunarea = salderoa * tte (——impirirea ta dreapta \ impair ia sing % —_siicarea fa putere xis dout simbok penirimpétie,utizate in mod special pentru operate cu ‘atize, Pent expresile scalro 1/4 gi 4\ 80 objne acelag ezutat (0.25). Into expresia, Parantezele sunt itizato penru a procia orinea execu operator 4.6. Siructura programelor MATLAB MATLAG-ul lucreaza fie in modul nia de comands, situajia in care fiscaretnie este Prelucratd media! gi rezuttatele sunt agate, fe cu programe con{iute in figere. Aceste douk ‘moduri fonneaza impreund un ,mediu de programare. Figietele 26 confininstructiuni MATLAB se numesc figiere-M (deoarece au extensia ve) gi sunt programe MATLAB, Un figie-M consti dio succesiune de instrucjun MATLAB, cu posilitatea apeli aor fisiore-M precum si a apeli recursive fo Introducere in MATLAB inpresram MATLAB poate fi scris ub forma fiorelor,scpt sau a figlerelor ‘aton’, Ambele tur de tele sunt scree n format ASCII la algornel cart et Mari anetl Nol care le pot completa pe cole deja existonte, Prin ascent facittate, se raid Beate fextins la apical speciice ullztcruu, care aie eeeet 8a serie noi proceduri. 46.1. Fisierele script STAT Oh este un flr exter care confine © secveniA do. comenzi MATLAB. Prin apelarea numa fieruh, 90 exoouté seevenis. Mate Confinuté tn Ir aon oe zee Compe a ni fiaer sr, variable cu care aoesta scoot reanent, 42 memoria apleatil. Aces fgore'nu permit nisarees 8 programe mari, 4.6.2. Fisierele functie Car’ Prima Inie a fkoruli-MA conthe cwéntul Junction" ler respectiv soto Seat ca filer functie. © funcie dferd de un yserok pil fortar ce poate lucra cu ‘aman decat variabiele de lepire ala acestela, ech mane Sunt utizate pent extnderea MATLAB. adc pent erearon ‘mernolfuncti MATLAS, Forma generalé a prime inl a unui fglerfunet es function (param_tesire}= nume_funcfs(param.inrare) unde: fanetion Eee atin choie care deciard figirut oa figior functio. (obiigatoriu); ‘numefunctie - numele functel, adc numele sub care se salveazi figiorul, [irk jextonsio. Nu poate fl identic ctv celal unui fer ad preoxistent, Param-legke parame de legire tabu separa ou vrgul gf cupring! inte Paranfeze drepte. Dact funclia nu are parametii do legit, Parantezele drepte si semnul egal nu mai au sens, Param Intrare - parametrl do inrare trebule separa cu vrgula 1 cupring| inte Paranteze fotunde. Daca functia nu are parameti de Inttare, arantezele rotunde nu mai au sens, Zonet felore pot fi addugate ca func noi in atc MATLAB, Comenzite si Aigctle care sunt utitzate de nou functio sunt Inogicbate tal figior cu extensia.., fanaa a aru trebuie s& contin detntiasactea a nod turcle ‘exemplu, us figer ‘inet nuit medie.m’, care calculeazX media arimetch, roc arty Uurmétoarea form’ 4. Introdvcore In programarea MATLAB 43, function m fength (2) 7 medic (:e) m= suis) ny Yr Media numerelor este:*, num2ste (m)}; dispty) Fromplul 4.8.1. SX se serie un filer functon* care a calouleze transformata Ferran somal si 8 retumezo vector freoventa 91 empleo Reprezentati grafic ampltudinea funcfie de freoventa, Seselectonzd suocosivFile/Now/li-tle Ise sc umatoarele Instruction function (£,xl= test4 i f=0:.001:.039; fe=i/(e(2)=t(1)) we 24sin(2*pi*50*t) 41.5¢s4n(2#pis1004t) +... sin(2*pi*200%t) +. 5+sin(2épieaeorn) Rowefe (x); xmeabs (xt) 7 Nelength (x) :X=2m(1:N/241) 3 f=(02N/2]*f6/H; aubptot(211)7 plot (t, 31; subplot (212); “stem(£,x) cg Mreglstreaza acest fisier cu numele test4_1-m, solestind succesiv Elle/Save si completénd numele mentionat In casote ide dialog. Apeland Meat teeta 1” (fdr extensis), se lansoazs tn exacufie figierul funetie cata gee aligeaz’ semnalul temporal In’ somieccannt ‘superior gi spectrul de frecventa tn seml-ecranul inferior, figura 4.7, Sor Gai an ons OM aoe Inogratint-un program moduiarzar 44. Introduoare tn MATLAB 4.7. Comentariile gi help-ul intr-un program Un comentariu se introduce Int-un program MATLAB prin caracterul procent, (9), plasat la inceputul linial. Dac semnul procent (%) apare pe prima poziie intr-o linle, aceasta va fi omis& de compilator, iar dacd apare into linie de program, partea de linie care urmeazé va fl omisé, intr-un program, un comentariu poate apérea in orice pozitie; este recomandata ins prezenja unui comentariu dupa prima linie care dectara © funcjie. In acest caz, comentariul, care apare imediat dupa linia de declarare a funcfie, constituie help-ul figierulul respectiv (cunoscut sub numele de ,grupul de tinit HY; daca se apeleazi help nume_functie se afigeaza finile care Incep cu semnul procent gi sunt situate Intre prima linia dupa deciararea functiel gi prima linie liberd sau prima instructiune ce urmeaza acestui grup compact de lini Prin urmare, pentru a ataga un HELP unui program MATLAB, se scriu linile ‘acestuia incepand cu semnul procent ,%6". Dupa ultima lnie a help-ului se lasa o linie liberd sau se trace direct a o instructiune MATLAB, ca in exemplut function nume_functie (aceasta lnie lipsegte la ligierele script) % Prima tinie Help 1% A doua linie Help Yarns % Ultima linie Help linie Uber’ (este oligatorie dack ‘umeazé un alt comentariu care nu se doragie a fi line Help si op{fonala in caz contra) Instructiuni MATLAB, acd un figier "xm are structura prezentaté mai sus gi se apeleaza help nume_funclio se va afiga mesajut Prima tine Help ‘A doua linie Help Ura tinie Helo Exemplul 4.7.1. S8 se sorie un program previzut ou help. Se selecteazi succesiv File/New/l-file gi se scriu urmatoarele instrucfiuni: function test 2 wAceat fieiey reprezinta. un semnal_ discret. t20:0.001: .059; xmsin(2*pi*100*e) stem(t, x) So inregistreaza acest fisier cu numele test4_2.m, selectind succesiv File/Save si ‘completand numele menfjonat in caseta de dialog. Daca se apeleaza: help tretd_2 se obtine pe eoran mesajut ‘Acest fisier reprezinta un semmal discret 4. Introducere In programarea MATLAB 45 4.8. Un exemplu simplu de program complet Exemplil 4.8.1, St se completze prograrulprezentaln 4.5 os ec etalonare in amplitudne, help si comentarii. a " a ee ‘Se selecteazi succesiv File/New/N-fi function {ir¥i= sents @ acest program realizeara analiza specteela CAN eg ee “Od1s, 088; 8 tonentele de eoancionace fen1000; 4 teecventa de esantionare ein (2épivsore) s2tsin(aspisiooee) Grain(2epie950¢e] secmnalun temporal kenese ini @ transformta Fourler engti(x)) # lunginea seeventes Tmeabs xt); $ deteonina modulel Hoven, L/201)/ 8/27 s/2/*f0/M; 8 Eecuventele positive Subpioe (211), tselectense ferestea sup- Plot(ty4) § xopresinte semmaiul continu Geia 8 trascase reven guid Habel 'elay") setichetenza axa x labed("x(e) (¥)") 8 ecicketeare aga y Eele(‘Semalul temporal") € pane eleLel Subploe (212) teclecteaza fereatra int. Stom(e,#); srepresints valori discrete label ua) ) Yael XU) (71) gaa Shele(‘Analiza spectrela a unut sema") ise scriu umdtoarele instructiuni So Inragistreazé acest figier cu numele test4_3im, solectind succesiv EilefSave si completénd numele mentionat in caseta de dialog. Rezultatala vor fi afigate Gtafic, sub forma prezantata in figura 4.2. Se observa o& au fost determinate toate cele {rei componente spectrale continute de semnalul temporal x. De fapt, acesta canstituie lun modul de analizor spectral, care poate fi uilizat ori de cdte ori un semnal temporal, simulat sau achizijonat cu ajutorul unor mijoace specializate, trebule descompus in componentele sale armonice Introducer ty MATLAB Senna poral 0 00 2g gg aR Fig. 4.2. Reprezentarea grafic a analizel spectrale a unui a} semnal * else olsoit for while break retum end a 5. INSTRUCTIUNI $I FUNCTII DE CONTROL 5.1. Instructiuni de control logic Inst uctiunile de control logic in MATLAB sunt: Instructiune pentru executia concitionata: Instruciiune asociata cu Instructiune asociaté ou Ji" inattuelune pentru crearea cictutlor cu numar specifica de past; Instructiane pentru crearea ciclutlor cu conditie logic’: Iretructiune pentru terminarea forfat intr-un cilus Fistumeaza executia la functia precizat; Irstructiune pentru afisarea unui mesal de eroare; Instructiune pentru incheiarea clelunlor for", -whiio* i caoe condiia nu mal este reallzats. Alton, ote necossrd repelerce uy sropramarneutiunt de un anumit numar de orl. MATLAB pun ke dispoziia FUR corped deka etn, fo i wil, cu ajutruledtora un grup de hstreche ‘Rumi corpul cclulul, se poate rapeta de mai multe er, anumit Hnatiuunea for este folos pentru repetarea un grup de instruction de un este orl. cunoscut inal. Un contor da cial fine evidenta, nernaruor ae apetke ale istructnior din compul cicluut gl opreste cil edna eotront alunge ta valoare: instruct a precizata, inetralunea whio este flosi atunolcénd caloulele efectuate cu un grup do uni trebuie repetate pénd cénd o anumité conde este Indep: Nomar oo all nu este cunoscut ini, Iesitea din cic se realizeazd In tracresin conditist Impuse, care exte testatd a Inceputul fecdre trait, 5.1.1. Instructiunea conditionala if” in cadul unui algoritm este deseori necesari o selectie a grupulul de Saturn ce urmeazl af executate, condijoneta de vase te date a unel S*PFeSH, Instrugiunile conditional utzoaza operatri relational operate loge, 5.4.1.1, Operatorii relationali 48 Introducere in MATLAB compar, cu elementele + find relat este ADEVARATA gi cu elomentole 2er0 cfnd relia este FALSA. Primii patru operatori (< .. -, >=) compara numai partea reali a operanzilor (Pastea maginar este ignore), do operator tratoaz tat parton real cal ea magia’. ‘abelul 5.1. Operatori relational ‘mai mic éau ogal Forma general do ulizare a operatoriorrelajjonal este rezullat = expresie_1 op_relajional expresie_2 unde rezullat- este o matrice de elemente 0 gi 1, In care sunt retumate rezultatele et eee eee = “ + ,dac& expresia (A(i,j) op_relaonel B(i,j)) este ADEVARATA. CH= tg daca expresia (A(i,j) 0p_rela/#ional B(i,j)) este FALSA Se ee ee Ee eee Exemplul 5.1.1. Unndtoarele doua instiuctiuné XeSoa[1 2.374 5 6;7 8 10) HeStones (3, 3)>{1 2 374 5 677 8 10] sunt echivalente, objinéndur-se acelagi rezutat toa 4 1 408 0 0 Exemplu 5:2. Fe matioee rd fuaoq 8 2-1 0 14 Li 2 esi] $84 aizoz0 compari Conc j 5, Instructiunigifunctii de control : 49 (Cu seovenja MATLAB: RET] ~£ 072-4 014i); De(1 4 S724 2 1-9¥iy “A>: JRe=B ‘Se objn rezutatele: c vid 1 00g 1 8.1.1.2, Operatoril logic! Pentru combinarea a doud sau mai multe expres logice se utlizeaz operator logici din tabotut 5.2. ‘Tabelul 5.2. Operator logici Operatorifogici_| Simbol MATLAB | Prioritatea NU) 5 7 $i & z SAU t a Operatori & gi | compari doi scalari sau dou matrice de dimensiuni egale. Pentru ‘matrice opereazi element cu element. Operatori ogici returneaza 1" (ADEVARAT) pentru orice valoare diferti de zero. Se va retuma ,{” pentru ADEVARAT gi," pentru FALS, Operatorul logic NU (sau complementul logic), este operator unar. Expresia ~A ‘etureaza ,0" daca A e diferit de zero gi,1" daca A este ,0" Operator logic! au priortate mai mick decat operator relational giartmetick. Aste, se evaluieazi intl expresile care contin operator relajionaii gi artmetic, i apol cole cu operator logic. Operatord logici se utiizeaza intotdeauna pentru compararea matricelor cu elemente 0 gi 1, calculate cu operatori relalionali, Spre exemplu, exprosia logica: fA daca (A(l)) b este 1 (ADEVARAT), atuncl -(a>b) este 0 (FALS). Expresille logice pot conjine mai mul operatori logici, ca in exemplu nbs =¢ le = = 5) Ordinea d2 prioritate a operatorlor logici, de la superior la inferior, este: NU, $I, SAU, Dac b= 3sic = 5, in exemplul anterior, prima exprasie este 0 gi a doua 1. Se evalueaz’ apoi expresia 01 1 a ciel valoare logic’ este 1, Aplicarea operalorului NU e | Introducere In MATLAB introduce in MATLAB 5. Instruclun!g functi de controt st face ca rezultatul si fie 0. Sintaxa MATLAB asociata exemplului este: end ed be sree 5: = dn oe tem 5) Ce Linsa parantezelor In expresia de mal sus nu last nemodificatf.valoarea Extlet*Finatta modul*} acestela, Astiel: eee food Exemplul 5.1.5. 82 se descrie gs se reprezinte GrAfie functia defiité de relat: retumeaz& valoarea logica d = 0 (FALS), In timp ce: Yada (il, deck fasteblulested) een lcos(st), dack bst~a) 6 (e ) 4)=0 51 081=0. | Exemplul 5.1.4, Sa se descrie gi si se reprazinte grafic functia modu, defintt do 25 (4, daok -42t<0 | | t ach o=) &(t (4) cab) yu 52 Introducere tn MATLAB Daca expresia_logica este adevéiratd, se executi grupul de instructiuni dintre instructiunea if gi Instruc{iunea end, Daca expresia logicd este faled, se trece la prima instructiune care urmeaza dupa instructiunea end. Pentru o cllite mai ugoara, eat gi pentru o urmarire a grupurilor de instructiuni care ee execut8, se procedeaza la indentarea (deplasarea) acestora, Fie urmitoarea secvents MATLAB: if a < 50 end Daca a este un scalar gi dack ax 60, k 80 incrementeazi cu 1 gi apol a este adunat cu s; altfel, cele doua instructiuni sunt omise, 8 rimandnd cu valoarea cu care a fost iniijaizet inainte de @ ajunge fa instructiunea if. Dac a este un Vector sau o matrice, atunei k este ineremantat cu 1 gia este insumat cu s, numai dacé flecare element al lui a este mai mic decat 50. - iInstructiunea if poate fi inclusa In interiorul unei alte instrucfiuni if, ca in coxemplul urmator: if expresia_logict_1 ‘grupul_de_instructiuni_A it exprosia_logic&_2 ‘grupul_de_instructiuni_B end grupul_de_Insteuctiuni_C end grupul_de_instrucfiuni_D Dacd expresia_logic’_1 este 1 (ADEVARATA), se executi intotdeauna grupurile de inettueliuni A gi C. Dacd gi expresia_logicd_2 este 1 (ADEVARATA), Se execuld grupul de insirucfuni 8, tnaintea execularit grupulul de instructiuni C. Daci expresia logicd_1 este 0 (FALSA), se treco la grupul de instrucliuni D. indentarea este 0 operalie nocesard la utilzarea inetrucfunilor i, daoarece pune tn viden{® grupurle de instrucjiuni care se executa funciie de condijile pe care le indepiinese. Fie unndiuiul exemply de succesive: sare @ inatruc{iunilor conditjonalo if” if a< 50 koe ken end Daca a gi b sunt scalari gi dacd a < 50, se Incrementeazi k cu 1 gi se aduni ala 8. In achimb, daca b > a, se seleaza b la zero. Dac& a nu este mai mic decat 50, se trece la grupul de instructiuni care urmeaz& dupa a doua instruc{iune end, Daca a este un vector sau o matrice, condijia a < 50 este adevarata numai 5. Instructiuni gi ‘uncfil da control 53 dacd scare elament al lu d este mal mie decal 60, Dacd ie de agi b sunt vector sau mai, ature b> anual decd ear proce 5 varia awa conf, ac a sau beste scalar, comperatia se faco Thre flecae srt a matricei cu scalarul extins la o matrice. sate dll tement al 5.1.1.4, Clauza else Clauza sise este utlizat pentru a executa un set do: instructiuni, dacd expresia logiea este ADEVARATA gi un alt set de instructiun, dacd expresia logicd este FALSA. Forma general a instructiunii if este combinatd cu colauza else (out uneor instructiunea i-else) ca in exemplul urmator: expresio_logic& arupul_de instructiuni_A else 7 rupul_de_instructiuni_B ond Dacii exprosia logiod este adavaratd se exeoutd grupul de instruc{iuni A, iar dac& este falsd se executa grupul de instructiuni B. " " : Exemplul 5.1.6. Pentru urmitoarea functie: 2x48 , dacd xs 2 Mata | dock x > 2 descrierea MATLAB este: iixse2 end 5.1.5, Clauza , Decl funda do eat are mal mute nWvele de int foto, st die determinarea. exoresiel ogiie adsvirate, cars ‘eloeteek eects instructiuni ce urmeaza a fi executat. in acest caz, se utilizeaz’ olauza elself ‘ifexpresia_logica_1 7 Gril destruc elseif expresia_logica_2 tuna rupul-densruun|_8 tbe exprosia-logiea 3 arupl-e.nsviuni_C ond + daci expresia_jogicd_1 este adevi fratruchenn RA toGick 4 este adeviralé, este executat numai grupul de + dacd expresia_logicd_1 este {alsa gi expresia_logi executd numiai grupul_de_instructuniB: ai + dacii expresile logice 1 gi2 sunt false, iar exprosia fogicd 3 este adevaraté, sd _2 este adeviirata, se Introducere In MATLAB ——___________Infredueere in MATLAB exeoutii numai grupul de instructiuni C; + dacd mai multe expresii logice sunt adevarate, prima instruc{iune togica adevarata determina care grup de instructiuni este executat prima daté * daca nici o expresie logic nu este adevaraté, nu se executa nil un grup de 'structiuni din structura if Clauza elseif poate fi combinatt cu clauza else Intr-o structurd general de forma: ‘iexpresia_logiok-1 grupul_de_instructiunl_A elseif exprosia_logicd_2 grupul_de_instrucfiuni_B elseif expresia_logic&_3 arupul_de_instrutiunl_c else grupul_de_instructiun_D end Daca nici o expresie logic’ dintre primele trei nu este adeviratd, so va ‘executa grupul_de_instructiunl_D. Exemplul 5.1.7. Sa se genereze 0 matrice A, cu n tnli gi n41 coloane, ale rel slemente sunt: P + act A=f-l , dact Alt, 3)=2 elseif abs(i-3) AU Se; else Ald, 9)-07 end end end n se obtine rezultatul: A 24 oo 42 0 0 o4 4100 0 0 24 fet. de contro . Instructiunea repetitiva , for’ Inst-uetiunea for permite repetarea unui grup de instrue{iuni din corpul buctel, de un anumit numar de ori; are urmatoarea structurli general forindex = expresio grupul_de_instructiunt end unde: index este numola contort ~ exprosie este 0 matrce, un vector sau un scalar; - grup.do_inetrucin ste orice expresie MATLAB, Inaplicti, ,expresie” este de cele mal multe a de forma: k= injatpas:final unde: initia’ este prima valoare a tl k, as - pasul (daci este omis, aste considerat 1), final cea mai mare valoare pe care o poate lua k. 8 de calcul index" are valoarea unuia dintre elementele expresiet Dac -expresic" es'e o matrice, viclaroa ge face pe coloane. Pent un cictu for cu pasul negativ sau neintrag se genereaz& mai tntdl un vector cu pasul gi limitele dorite si apoi se citesc valorile acestuia in cadrul buctel for. La foosirea buclel fortrebuie respectate unmstoarele regult: 4. indexul buciai fortrebuie ef fi 0 variabilk; 2. daca expresia este o matrice goala, bucla nu se execut. Se va trece la urmatoarea instructiune dupa instructiunea end! 3, dac expresia este un scalar, bucia se executi o singuré dat, cu Indexul dat de valoarea scalaruli, 4. dac expresia este un vector tnie, bucla se executd de atétea ori edte elemente are vectorul, de fiscare data indexul avénd valoarea egal cu urmatorul element din vector; 5. daci expresia este o matric, indexul va avea la fiacare iteratle valorla continute tn Urmatoarea coloang a matrice 'a terminarea ciclurior for, indexul aro utima valoare ulillzatd; + deci ae utzeaz% uperaiorul dou’ puncte (:") pentru a’ defini expresi exermplut cain for| fl, daca n este pozitv, si nu se executt dact n este negati. (Prin [] ¢-a notat valoarea Intreaga a nurérului) Astfel, instructiunea: fork'= 5:4:83 et=i9s1=20 I Ua Prin aceasta, valorle lui k sunt: 5, 9, 19, ., 81. Bucla nu se va executa pentru valor 55 8 56 Introducere in MATLAB, mai mari decat 83, Exemplul 5.1.8, Si se calouleze funclia: 2x43, dacd x [-10, 2} ax? -1, dacd x € (2, 20] pentru toate valorileintregi pentru care este definité gi s& se reprezinte grafic. ‘Secven{a MATLAB corespunzatoare este: ~10:20 (x) -| length (x) if x(k) ECR) = 24K) +3 else E(k) = 24x (K)*2 -2 end end phot (x, £) Exemplul 5.1.9. S& se geneteze 0 malice Hibert de ordinul n=4, ale cdrei elements sunt date de expresia: HOD= Tit (Cu seoventa MATLAB: : for imin, for jeLin, HG, J)=1/ G52) 7 end : end H se objine rezultalul: He 4,000 0.5000 0.9333 0.2500 05000 0.3333 uzs0U u.2000 0.3333 0.2500 0.2000 0.1687: 0.2500 0.2000 0.1687 0.1429 Exemplul 5.1.10. S& se calculeze ji 6% se reprezinte grafic funotia: (9) = sin(a), pe interval [-2x, 2n], cu pasul Ot, Programmul MATLAB esto: a=-2*pi erby emnax {size (n) )¢ for i=ltk x(A)=5in(n(L)) be2tpi; c=0.1; plot (n,x)+ gzid 5. Instructing fun de contrat 5 5.1.3. Instructiunea repetitiva ,,while” Instrucjnea while este o structurd care se utlizeaz& pentru epetarea unui set de instruciun, aida timp c&t o condiie specicalé este adevérald. Format general al acestelinstructiunide control este urmatoru: while expresie ‘gTup_de_instructiuni end Grupul de instructuni se execu cat timp yexpresie" are toate elamentele nenule. ,expresia” ‘este de obical sub ferma: expresie_1 conditie expresio. 2 unde ,condije" este unui dintre operator ralaionali: ==, <,>, <=, >=, =. Cand condijja este verificatt (expresia este adevaratA logic), se execuld grupul de instructiuni, Dupa ce se exscuta grupul de instructiuni, condija este retestala. Cand condita este din nou adevarata, grupul de instructiuni se execu iar. CAnd condiia este falsi, Se treco la urmitoarea instruofiune de dupa instruciiunea end. Daca expresia este toldeauna adevarati logic (valoarea acestela este diferita de zoro), bucla devine infin “dintr-o buclé infin’ se iese fonat prin apisarea concomitenté a tastelor (Curso), Exemplul 5.1.11. S& se serie un program, utllzénd 0 bucli while, care calouleaza suma elementelor vectorulut x=[5 2 -9 10 -1 9 -1] pand cand intélneste lun numa mai mare.ca 8, © varianta de program este urétoarea: xe(5 2-9 10-1 9-1]; sum=07 an while (x(k) <= 8)4(k <= Length(x)) sux = sum (ke) kext end Se objine rezuttatul: sums -2 lesirea din bucid realizandu'se dupa ce au fost Insumate primele tel element, al Patrulea element neindeplinind condijia impusd. 5.1.4, Instructiunea break Instructiunes break se utiizeazk pentru a iegl dintr-o bucid inainte ca aceasta ‘8 se fi trminat, Se recomanda a f uizatd daca o conditio de eroare este detectata in HMteriorul unei bucle, insiruotiunea break inceteazé executia ciclurlor for si while, in azul unor cioluri imbricate, break comand& iesirea din ciclul cel mai interior. So apeleazai cu sintaxa: break 58 Introducere in MATLAB 5.1.5. Instructiunea return Instructiunea retum comand& 0 iegire normal& ‘din fislerulM catre-functia ‘caro I-a apelat sau catre tastaturd, Se apeleazé cu sintaxa: retwm 5.1.6. Instructiunea error Instructiunes error permite afigarea unor mesale la tntdlnirea unei erorl, So apeleazii cu sintaxa: ‘error(mesal) Bupa afigarea textului mesa" controlul este redat claviatur Exemplul 5.1.12. Procedura umatoare verifo’ dact func test a fost apelati cu dou argumente de intrare gi sermnaleaz% eroare dac& nu este indeplinta aceastil condiie: function test(x,y) itnargin~=2 ‘error Numarul argumentelor de intrare gregi’) end 5.2. Funetii de contro! logic Funetile de control logic in MATLAB sunt: exist Verificd daca variabiiele sau functile argument sunt definite; any Testeaz dac& cel putin in element al unei matrice verticd © céndiie logics; alr ‘Testeaza dact toate elementele unel matrice vertic’ 0 conde logic; find Retumeaza indiciielementelor dferte de zero; isnan ‘Testeaza daca elementele unei matrice sunt NaN; isin Testeaza daca elementele unel matrice sunt infinite; nite Testoaz’ daci elementele unei mattloe sunt finite, MATLAB-ul contine funofl pentru testarea unor condi relaionale i logice tn {ablouri de date sau matrice. Acestea sunt des utilzate asociate cu instructiunen -1) se obfin rezultatele: A= 104) B=[0 0 4] tie 5.2.2. Determinarea indicilor elementelor care veriticd 0 conditie Funciie find retumeaza nicl elementelordiferte de zero sau care vertficd 0 conde ‘mous de ullzator. Se apeleazé cu una dint sintaxcle: a=finalX) fe}=fina x) fc, Viefinetx) Dacdi argumentul X este un vector, prima forma retumeaz4 indici elementelor lui care sunt dferice zero, Daca argumentul este o matrce, functia find analizeazi coloand cu coloand, indi ‘etumatj ca rezuitat avénd vaiorle cuprinse in intervalul 4... man (pentru o matrice cu rm ini sincoloane). ‘A doua forméi de apelare retumeaz numrul ine! (vectorul f) $l coloanei (vectorul ©) matricel argument X care contin elements dferte de zero. A trela forma de apolare retumeaz§ in plus sl vectorul V al elementelor diferte de 2e10 (elimina elementole egale cu 2670), ln unele stusti este necesaril determinarea pozielindiclor unor elemente dint-o 'matrice care indepiinesc o condiie, de exemplu sunt mai mari sau mai miei decat o valoare 60 Inteeducere in MATLAB data, Astfl structura MATLAB: fin >= a) retumeaza indici elementelor X mai mari sau egali cu a [-7 0 04] L3 -5 -25} i se giiseascit slementele a cirorvaloare este mal mica sau egali cu 2.5, precum gi inc acestora, Cu seoventa MATLAB: M= [-7 00.4; 3-5 -2.51 imfind(M <= “2.517 disp(' Indice toils disp (a) 0 objine rezultatut Indice Valoarea 4.0000. 7.0000 4.0000 “6.0000 6.0000 -2.5000 Exemplul 5.2.2. Find dat matricea M valoarea’) 5.2.3, Determinarea pozitiei elementelor finite, infinite sau NaN Determinarea pozitiei elamentelor finite se face cu functia finite, se apeleaza cu sintaxa: YefiniteX) care retumeazi o matrice Y de aceleasi dimensiuni cu matricea argument X,.cu elementele 1 pe pozifia in care elementele matricel X sunt numere finite gi zero in’ caz contrat. ; Determinarea poziiel elementelor NaN (Nota-Number) se face cu functia isnan; se apeleaza cu sintaxa: nant) care retumeazé o matrice Y de aceleasi dimensiuni cu matricea argument X, cu elamentele 1 pe posifia in care elementele matricel X sunt NaN gi zero in eax contrar. NaN (Not-a-Number) este rezulatul imparji 00, Deierminarea pozifiei elementelor infinite se face cu functia isinf; se apeleaz cu sintaxa’ in) ccare retumeazi 0 matrices Y de accleasi dimensiuni cu maticea argument X, cu lomentale 1 pe poz in care elementele matricel X sunt inf si zero in caz contar Exomplul 5.2.3, S& se sctio 0 secvenjé de program care inlocuiogte elomentelo NaN cu elemente zero in vectorul x={0 2 NaN -89 Inf NaN Cu umatoarea seovent: ze (0 2 Na ~89 Inf NaN} A= find (isnan (x)) (i) = zeros (size(i)) 5, Instructiuni gi functiide control et se objine rezultatut x=[0 2 0-89 inf 0} Exemplul 5.2.4. Aplcalifuncfile isnan, iin gift, Cu secvenfa MATLAB: x= [o/0 oft 21/0) yt 1 ax = dsnan(X) bx = finite (x) teint (x) rezuiti: 5.2.4, Testarea matricelor goale Testarea unel matrce daca este goal se face cu funciia isemply; se apeleazd cusintaxa: vsisempty(X) : care retumoazi 1 dacd matricea X este goal gi zero in caz contrat. 5.2.5. Testarea existenfei unei variabile Testarea existenjel unel variablle sau a unui figer se ia exist ence ui filer se face cu functia exist; so ‘veexis((nume_variabll’) ‘care returneaz urmatoarele valor: 0 = dacd nu exist; 1. daci exist ca 0 variabitt in spatiul de lara; 2 = dacd exist ca un figior-M pe diac; 3. + dacd exist ca un fisier-MEX pe disc; 4 = Gacd exist ca funciia SIMULINK; 5 dacd existd ca functie MATLAB intemnd, "Numele variabiltrebuie sé fie sctisinire apostrofur, find gir de caractere, Funciia exist s0 poate introduce int-un program pentru a testa dacd anumie figiere exist pe disc, atunci cénd se lanseazi un program, De exemplu seoventa: nist ('test! if hoo , exror('Lipseste fisierul tes sm) end Vvoriicd esistenfafislerulu test.m gi retumeazdi un mesaj de avertizare daca acesta nu exist, 1 62 Introducere in MATLAB. 5.3, Vectorizarea calculelor Decarace operatilo cu vectors! matrice sunt executate in MATLAB mai repede cu lun ordi de mérime decat operafile complatefnterpretate, se obtine o Vtezs de hes mal ‘mare deck algorimil inci! i fgirole-M sunt vectorial, Oriunde este posi elie for 3 ‘hie trebuie convertte In operafi cu vectori sau matrce. ‘Spre exempiu, programul care calculeaz8 sinusul in 1000 de puncte (de la 4 la 10, (cu pasul 01), utizind buck for t=O: 01:10; Nelength(t) for 7 yWlesin(t(inyy end plot (t, y) are versiunea vactorizaté: 1:20; Yasin(t) 7 plot(t, Yb Primul exemplu necesita un timp 10-15 ori mal mare decat cel de-al doilea, | cazurite In care nu se poate vectoriza 0 parte din program, pentni a face ca clus si fle executate mai repede, se procedeazi la prealocarea unor Vector tn care vor fl ‘otinute rezutatele, De exemplu, incluzand o prima instruciune de prealocare folosind functia 20r08, cick forumtor se execut semniicallv mal repede: yezeros (1, 100); for i=1:100 VEL) det tx); end Explicatia consti tn faptul c& dacd nu se face preslocarea, interpretorul MATLAB trebuio #8 redimensioneze vactorul y fa. dimensiune mal mare, de flecare daté ond trece print heratle @ cieluul, Dac’ vectorul este preaiocat, acest pas este ellmiat si executia este mal rapid. Pentru ucrul cu matrice mari pe computere cu memories lmitaté, prealocarea are un al colle avanta. ubizarea memoriel mult mai efiient si lansarea programelor fara a depssh memoria. Proalocarea ajuti inclus la reducerea fragmentirll maria; 0 morons {ragmentata in cursul sesiunii MATLAB poate devent insuficlentk ca spatlu continu necovar ‘memorii variablelor mari. 63 6. OPERAREA CU SIRURI_ DE CARACTERE Constanta gir se reprezintd print-un sir de octet! th care ee paistreaz codurile ASCI! ale caracterelor siului respectiv. Codurle ASCII 0-31 sunt caractore nogtalie, lar codurlle 82-127 sunt caractere grafice. Un sir de caractere este constitut uin unui satel mute caractore delimtate prin apostrofurl. Apostrofurile nu fac parte din girul decaractere |r acest aptol se prezintt dectararea siruior de caractere, compararea Rare Govwersia giturlor th numere gi a numerelor tn giruf, evaluarea exprestior MATLAB din girl concatenate etc, 6.1. Functii generale Funciile MATLAB folosite pentru operarea cu siruti de caractere sunt: abs Converteste girurile de caractere tn valorile numerice ale codului ASCII ‘sotstr Converteste valorie numerice ale codului ASCII in caractore: strings Declard o variabilé ca gir da caractere: Isstr' Detecteazi daca o variablli este gir de caractere; str2mat Formeaza mattice text din sirur de caractere; blanks Creeaza spali ntre girurie de caractore: Geblank Elmina spat libere dintre sirurle de caractere; oval EvalueazA sirurle de caractere cu expresii MATLAB; feval Evalueaza functile MATLAB, Funct abs converteste sirurle de caractere la valorile numerice ale codulul ASCII; se apeloaz4 cu sintaxa’ abs(‘sir_de_caractere') Exemplul 6.1.1. S& se determine codurle ASCII ale siruli de caractere eMATLAB Cuseeventa yeabs ( MATLAB") seobtne: y=177 65 04 76 65 68) Functie sets etoaz& indicator sr do caractere; se apeloaz& cu sintaxa: str) Rlzutatul s este un gir de caractere ASCII“care corespund valotior numeric Gargctorele ASCI caro se pot tipi sunt Intregi In intervalul 32.. 127 sau in hntonalel O.cA55 dact se folosesc 8 bt. In afara acestul interval, numerele Sunt rotunjte la intieg ‘modulo 256 Exemplu 6.1.2. S& se atigeze caracterele ASCII gratice (codurle ASCII 92- 127), int-0 mattice 3x32, Cu secventa MATLAB: aa Introducere in MATLAB asciimsetstr (reshape (32:127,32,3)") ‘80 objine rezuitatul : ascil IMS%8'*+,- 0123456780;;<=>? @ ABCDEFGHIUKLMNOPQRSTUVWXYZI_ *abedefghiimnoparstuvwxyz(}~O) Exemplul 6.1.3. $8 se sctie o bucld infiniti care determind un apel sonor (foloseste caracterul ASCII cu codul 7). Cu secvenja : while 1 disp(setstr(7)) pause (2) end se obtine efectul dori. Funolia strings retumeaza un identificator al girurlor de caractere. Instrucfiunea : MATLAB’ ereeazi un vector ale cdirui componente sunt codurile ASCII ale sirului caracterelor MATLAB, Pentru a afiga codul numeric ASCII se foloseste instructiunea: ibstt) jar pentru a revent in formatul text, se foloseste instructiunea : etstr(n) Detectarea sirurlor de caractere se face cu functia isstr, care se apeleazd cu sintaxa : a isst(t) Retumeazii 1 pentru modul toxt gO pentru modul cod numeric ASCII Introducerea unui apostrof intr-un text s2 face folosind doud apostrofuri succesive, Un gir compus din subsiruri este realizat prin concatenarea acestora, dupa structura : gir= ['subgir’,‘subgir, ..,‘subsir n'] Funciia str2mat formeazd matrice gir de caractere din giruri individuale; se apelaa cu sintaxa: Sesir2mal(st, 62, Numarul de lini! al matricel $ este egal cu numarul de siur individuale, iar rnumarul de coloane este egal cu dimensiunea celul mai mare sir component. Prin acest procedeu se pot construi matrice cu pana la 11 sirurl. De asemenea, flecare argument de intrare, poate fi fa randul lui o mattice gir, find posibilé operarea cu matrice gir de dimensiuni mari Exemplul 6.1.4. Creaji o matrice gir cu subgirurle: ‘Pachetul de programe’, MATLAB, ‘este performant.. Cu seoventa: tr2mat (*Pachetul de prograne',.., UMATLAB''', ‘este pezformant,') ‘80 obine rezultatut S. Operarea cu gurl de caractore 65 Se Pachetul de programa "MATLAB este performant. Funcja bianks se foloseste pentru afigarea girur la anumite poziti eau pentru crarea unr spall ite puree apeloazd cu star i blanks(n) care deplaseaai cursorul cu n caractere spre dreapta (n numa Intreg pozhiv). De cele mal mult ori se folosegte asociatd cu funcja disp i permite contol lniel $1 coloanel in care se face affgarea unui gr Exemplul 6.1.5. S& se scrie sirufle din exemplul anterior formatate astiel: al doilea depiasat la dreapta cu 10 caractore fai de primul, iar al treilea cu 0 tinie Iibord fala de al dollea gicu 20 caractere deplacare spre dreapta fata de primul Cu secventa: . disp('Pachetul de disp ( {blanks (10) ,* isp (blanks (1) '} disp({blanks (20), ‘este performant.'}) ‘80 obfine razultat Pachetul de programe “MATLAB ‘ogzame' } MATLAB") ) ‘este perforant. Funct deblnk elivind opatie there $1 rice caracter nul (colo ou valoarea bolt 0} do la ital unt gr de caractere ee apoiast ca stan deblank(S) Funcia oval inorpreteazi ute de caractere conjinindexpreai MATLAB; ‘apeleaza cu una dintre sintaxele > ame oa x=eval'sir_de_caractere’) evak'sit_de.caractere’) _do_caractor'esto © exprooie MATLAB, acaaala eos netpre‘atl, De cole mal mista er 'gh- le earactor!conostonearA inal mule aa! # Wahab tea hn Parantoze dept, consrundure axproel MATLAB ta programe corplone, Exemplul 6.1.6, S& se evaluezs expresia: y=2x" +3, folosind functia eval (Cu secventa MATLA EE, et 24H "243" val (2) se objine rezuttatul: y= 24 Exemplul 6. numele testi, test2, test, Seovenja corespunaitoare este: for n= 1:3 fal ([ "test" int2ete(n) ‘Sa se genereze 3 matrice cu elemente numere aleatoare cu Nerand (4,4) 7) 66 Introducere tn MATLAB eo introdtucere tn MATLAB end | Exemplul 6.1.8, SA se scrie 0 secvent de program care Incarcd gi prelucreazi | datele din toate fisrele test! dat, tost2.dat,... existente pe disc. Cu secvanta : Eestke[ "test! snt2strik)); nume=(testk *.dat'}; Af ~exist (nume), break, end eval({*load + nume}}; Xreval (testk) ; #Secventa de prelucrare date end 80 realizeazi scopul propus. Functia feval permite evaluarea functor, se apeleazA cu una dintre sintaxele : feval{ nume_functie’ x... xn) V1,..ym}sfevalnume_funotie' x1, xn) unde: ‘ume. functie este un argument gr, care specific numele functiel de evaluat; x1... sunt argumentele de intrare; yi..ym ——__ sunt argumentele de iegira, ‘Spre exemplu, functia teat.m cu doud argumente de intrare gl un argument de iegire, se apeleazé cu sintaxa: ysfevalttest, x1, x2) 6.2. Compararea sirurilor de caractere Functile MATLAB folosite pentrii compararea girurlor de caractere sunt: ‘stremp Compara siruri de caractere; indstr aut un gir de caractere int-un alt sir de caractere; upper Converteste lterele unul sir de caractere la itere mart; lower Convorteste lterele unui gir de caractere la itere mic Islettor Verifct! daca elementele unui vector sunt sau nu iterate alfabetulul, Compararea. a dout giruri de caractere se face cu functia stromp, care se apeleaziicu sintaxa ! azstromp(S1,S2) Retumeazii 1 daca acestea sunt identice gt 0 tn caz contrar. Funcfia lucreaz4 in modul senzitiv, incluzand tn procasul de comparare spatile dintre caractere 4 tipul caracterolor. mari sau mici- folosite la scriere. Exemplul 6.2.1, Comparati sirurile ,test” gl Test" i afigati rezuttatu, Cu seoventa MATLAB: arstremp(‘test!, "Test!) 8. Operarea cu giruride caractore rT ‘se obfine rezuttatul: a= 0 CAwatea unui sir de caractere, S2, int-un alt gir de caractere, S1, se face cu functia findsir, care se apeleazA cu sintaxa: Msfindstr(S1, $2) Rezultatul M contine pozitila de fa care Incepe girul $2 tn siul $1 Exemplul 6.2.2. SH se gseascd poziiagiruul de caractere S2='teat In srul de Caractere S1='Aces! test este interesant, Cu seeventa: Sis'Acest test este interesant'; S22" test!; Andstr isi, $2) 80 obtine rspunsul M = 7 Corversia Iterelor ici dnt-un gi de caractere, tn Mere mar, se face cu functia “pper, care se apsleaza cu sintaxa: teupper(s) lar conversia inversé, a iterelor marl tn ftere mio! 8e face cu functia lower, care se apeleaza cu sintaxa: tslower(s) Qatemninarea Werelor alfabetuul dintr-un sir de caractere se face cu functia isletter, care se apeleaz cu sintaxa: Asisiottet) Rezitatul Cortine + tn poze tn care elementole gil sunt tere si On collate pozitii(numere, blank-urt etc). Gxomplul 6.2.3, Determinati pozitile tn care se giseso iterele din sirul ‘Azi este 15.09.1995" Cu seoventa: Se'Azi este 15.09.1995 Asisletter(s) ‘ind (A ‘8 obtine razukatul: A=[11104 444 90000000000) B=[1 23567 a) 6.3. Conversia sir-numar gi numar-sir Functile MATLAB foloste pentru conversia numerelor tn sirur! de caractere sunt: pum2str —_Convertegte un numar intr-un sir de caractere: intastr Converteste un numa intreg tnt-un gir de caractere; ‘tr2num Converteste un sir de caractere tnt numar, sprintt Convertegte un numa intr-un sir sub controlul formatulul, 68 Introducere in MATLAB. Conversia numerelor in giruri de caractere este utlizalé la introducerea valorilor umerico tn tur, la etichetarea axelor otc. Se face cu funclia num2sir care oe apeleaza cu sintaxa: 1umestrix) . Funclia int2str converteste numerele Intregi in giruri de caractere; se apeleazi cou sintaxa Funda ‘stonum convetosa gine cre au crairele ASCH alo. valor numeri, in numere; se apeleazi cu sintaxa iranumms) Sinitle pot conjine: numorele zecimale 0..9, semnale + s-, punctul zocimel, caracterul @ urmat de un numér (pulerea lui 10), precum gi caracterele | gi j pentru numerole Corr nia sprintf soto dalle din maticea (sau vector) A sub control formatulu; se apeleaza cu sintaxa: printf format’, A Parametrul de control, girul format forma Confine specificatia de conversie gi poate fi de S-d.p tip_format unde : - ‘= semnul minus este optional gi specticd alinierea la stanga (daca lipseste, alinieroa se face la dreapta); deste numarul minim de cdmpuri (ce) afectate datel respective; © peste numarul de cAmpur folosite pentru partea zecimala; ‘+ tip_format poate fi unul dintre caracterele : © = notafia exponential; f= notafia in. vieguid fe 9 = formatele scurte ale lui e sau f (tira zerourle nesemniticative). Caracterele de control admise de MATLAB sunt \n- line nous; \- form teed \- tab orizontal, \\- backslash tb backspace; V- aprostio. \- carriage retum (la cap de rand); Exemplul 6.3.1. Conversia numarului x th gir de caractere se face cu secvenja: senundstr (pi) objinéndu-se rezutatul: 5=3.142 Exemplul 6.3.2. S4 se introduc tn titlul unui grafic © valoare numericd rezultaté dintr-un calcul Cusecventa an2; b or title(['Viteza este ', intgstr(s),' m/s']) se objine till graficului:, Viteza este 10 iis 6. Operatea cu girur de caractere 69. Exemplul 6.3.3. Conversia girului de caractere s=129.25e-2 tn numar se realizeazii cu urmatoarea secventa: e2num("123.25e-2") Exemplul 6.3.4, S& se tipdreasci elementele vectorului 1.12846578 5.123) in formatele exponential gi cu virgud fix, folosind 6 digit dintre care 5 penvru partea zecimald. Cu seovenja MA-LAB: pon. 12345678 5,123 yissprint£('$6.5e\t 86.56", x) yorsprint£('86.5q\t 96.59", x) yoesprinté('86.5£\n $6.5£",x) ‘50 objin rezutatee yl = [1.12346e+000 _5.12300e+000 } yes [1.1235 5.123] y= 4.12348, 5.12300 6.4, Conversia sirurilor in formate numerice Functile MATLAB folosite pentru conversia giruilor in formate numerice sunt: dec2hex _Convertegte un tntreg zecimal int-un gir hexa; hex2dec —“Converteste un gir hexa Intr-un intreg zecimal Functia decahex converteste numerele zecimale intragi hexazecimalo, memorate in siruri MATLAB; sa apeleazA cu sintaxa : s=dec2hex(n) Functia hexZdee converteste numerele hexazecimale in numere intregi, ‘memorate In giruri MATLAB, ca numere zecimale; se apeleaza cu sintaxa : fa numere dshexéden's') Exemplul 6.4.1. SJ se convarlaased tn numer hoxazecknale numerele zocimale: 15 si 256, Cu secventa MATLAB: xedec2hex(15) yodec2hex (256) se obtine rezultatu: x= F y= 100 Exempiul 6.4.2, S& hexazecimale F 91100, Cu socvenja MATLAB: amaexzdec('F") be hex2dec(*100") 80 objine rezutatul: 5 b= 256 5@ converteasci in numere zacimale numerele m Partea a Il-a CALCUL NUMERIC CU MATLAB 7. OPERATII ARITMETICE Caleulele aritmetice asupra tablourior de date in MATLAB pot fi: ‘+ operat dupa requite calcululul matriceal - operatiicu matrice; + eperatii dupa reguile calculuil eoalar - opera cu tablourl Creratori folosi in calcuele aritmetice cu tablouri gi matrice sunt prezentali in tabetul 7.1: Tabolul 7.1. Operator aritmetici MATLAB [operat Sealari_[ Mairice | Tabloud Adina * * + Sciderea = = 7 [Tomales = = = [fem T i x impaijirea la dreapta T 7 af [Rica puter | —* = 2 Tranepinerea : : = 7.1. Operatiile aritmetice cu scalari Operate artmetic tre doi scalari sunt prezentate In tabelul 7.2. Tabelul 7.2. Forma MATLAB a operatiilor cu scalari Operatia Forma algebricé | Forma MATLAB ‘durare ab aa Solidare. ab on Jnmugire ab. ab Tmpaiire fa dreapta ab ale impair fa stinga ia ab Ridicare fe putere @ a Expresillé aritmetice pot fl evaluate gi rezutatul memorat in variabile spectticato. Astfel, instructianea: xeatb atribuie variable x, suma dintre variabilele a gi. | Instructiunea: keke jiibule variable k o noua vatoare, egalé cu suma dintre vechea valoare gi constanta 1 \ | urma instructiunilor succesive: 2 Calcul numeric cu MATLAB 22.5 tn variabla a se afl valoarea 2.5, (© valoare introdusa fara nominalizare este asignata variabilei ans (answer). In variabila ans este memoralé tn permanen|é valoarea utimel variabile cfrola nu | 8-2 atribuit un nume, 7.1.1, Ordinea operatillor aritmetice Ordinea operatilor in MATLAB, tabelul 7.3, este aceeagi cu cea a operatilor aritmetice standard, cunoscuta in matematica elementard, Tabelul 7. 3. Ordinea operatilor aritmetice Ordinea ‘Operatia 1 jarantezele z ridicarea la putore 3 Tnmuljirea gi imparjiea 4 "adunarea gi scAderea ‘Sa se evalueze funclia x= 2x? +x-63, Exemplut 7.1, fo) x? +05x. pent xe O variant de program MATLAB, eat : ae na-26x*2%-6.3 sao. Sem i dar este posibilé gio forma mai compacta: Ge (493-2426. 3)/ [x"240,5%H-1) 7.1.2. Limitele caiculelor Deg] varabilele memorate au un interval foarte mare, co! mal adeses find intre limitele 10% si 10 (vezi funcile MATLAB roaimax gi realm), totusi, uneori este posibl ca rezullatul unei exprosi si depigeascX aceste limite, aga cum 86 Intémpl In exemplu: x=2.5-10 y=10™ zex-y=25-10 Deoarece z este tn afara limielor de mai sus, valoarea calculati 2 nu poate fi memoratié, MATLAB-ul integistreazi 0, Se verified acest lucru ou secventa: -5*10"200 y=10"200 7. Operatit artmetice 73 zexty care rotumeazé: z= Inf Rezultatul unui calcul este mai mio = i vara ul cul este mai mic decat 10 calculatorul inregistreaza valoarea In MATLAB rezuttatul impijiti cu zero este oo. iri ou zero este «In acest caz se afigeazé mesajul de stenonare Warning Dvd by zoo, dar alee continu oporana 7. 2. Operatiile aritmetice cu tablouri ovate eae sut opera arimstie Gomule, inpi, t dca a utr, Gt) ine lament outa in acecaglpoajo'a ican, opera cloment eu eben “agi pozijie @ tabi , Cunoscute sub numele de Pent a procza cd Tomulion so electueazdotament ectueazi oloment cu element inte componerisle a dou malice de aceleasdimensimt se anes 2 inmultire precedat de punet (.*), adic&: ° se Cperatorl de cna Pent sec.area opera cu about se losose . abl efloouc aco! opera ca tn opeaia zc coca de sonal pat, ear ce shane, cpanor See erent, Daod unl dinto operanzi esto un scalar, asec see nate fiecare element al tabloului, - eer cee ee 7. |. Adunarea si scdderea Exemplul 7.21. Fie: ‘88 se calculeze: C= Gu secventa MATLAB: ASE eo [2 5 6], Bo[4 9 2), pa2. D=A-p gi E=p-A E=p-A ‘8¢ objin rezultatole: 7.2.2. Inmultirea tablourilor Exemplul 7.22. Fie: Asl2 5 6], B=[4 3 2), pa2. Si se calouleze : C=A*B, D=A.‘p gl E=p.'A Cu secvenja MATLAB: Am(2 5 6); BeL4 3 2):pea; Caleul numeric cu MATLAB 7. Operatil aritmetice 5 74 80 obtin rezutatele: C=18 18 12] Del 4 10 12] E=[4 10 12) 7.2.3. Impartirea la dreapta Operatia de Impaite ta dreapta, element cu element, tntre dou tabloiri este ‘simbolizatS cu operatorul punct-slash (J). Instruciinea: Z=X¥ ‘eprezint’ impifrea element cu element a tablouror X gi, rezuténd elementele: ZOD = XDD) Exemplul 7.2.3. Fie: A=[2_5 6], B=[4 3 2], p=2, ‘S880 calouleze : C=A./B, D=A/p $i E=p/A. Cu secventa MATLAB: As[2 5 61) Be[4 3 21; peas cma wr Bep./A 8 obfine rezutatul: 0.5000 1.6867 3.0000) 1.0000 2:5000 93,0000] 1.0000 0.4000 0.333] 7.2.4, Impartirea la stanga Cperatia de Imparfire la stinga, element cu element, tntre dou tablour este ‘simbolizatd cu operatorul punct-bakslash (.\). Instructiunea: Z=Xiv prez Tmpartivea element cu element a tabloutior X st Y, cur aceleagi dimension rezuitind un tablou ou elementele: 20) = XaDU = VODKA) Prin urmare: Z= XW = Wx Exemplul7.2.4.Fie: As|25 6] Be[4. 3.2] pad. ‘88 se calculeze : C=A.\8 , D=A.\p si E=p.\A Cu seoventa MATLAB: Aw(2 5 61; B=I4 3 21; pee, “8. \p Eep.\A se obtin rezutatele: C=[2.0000 0.6000 0.8993 } D [1.0000 0.4000 0.2333) 1.0000 2.5000 3,009) 7.2.5. Ridicarea la putere Gpemfa de rear a putore clement cu clament In-untablou este simboteat cu peratorulpunct- (.*), Unnétoarea instritiune ZXAY Tice fiaroa fecinu element dn tabioulX la puterea inca de valorea element din acceasi porte a tablouki Y, adicd: Zi) = xarvony pon sl un scab, 8 las un blane Inte scalar l operator de edcare la putee , = secimat, "! Sierteta punctl caro inefot operon ou tablet de element ce paiaul Exemplul 7.2.5, Fie: A={2 5 6), Bal4 3 2), poo, SB se calculeze : CAMB, DaA."p gl Ep.” Cu secverra MATLAB: Aw[2 5 61; Be(4 32); ped; CoA. "B DeA.*p Bap. ‘8 obfin rezultatole: C=[16 125 36} Dal 4 25 a6) Esl 4 92 64) 7.26, Transpunerea tablourllor parla de ranspunero a uni tabiow este sinbofzat de opeatond punctaposto Cu instructiunea: ZY cieableuti Y devin coloanel tabloutul tanspus Z. Acest ery face ca un tblou Y eu cimensiuneam x1 88 deving un tablou Z cu dimenshinea n xen Exemplul 7.2.6, Si se determine transpusa tabloulut -{ 1+i ] 251) 3-261] (Cu secventa MATLAB: [1 atts & 3-288; ‘80 obtn rezutatoe: Zi 4.0000 0+ 1.00001 41.0000 + 1.00001 3,000 - 2.00001 7 Calcul numeric eu MATLAB 7.3. Operatiile aritmetice cu vectori 7.3.1. Produsul scalar Produsul scalar a doi vectori de aceeagi dimensiune este un scalar, egal cu ‘suma produselor corespunzitoare aceloragi poztt CHR B= Yat.) Produsul scalar a doi vector, A si B, se calculeazd cu instruciunea: Gzsum(A."B) Daca A este de dimensiunea 1xN gi 8 de dimensiunea. Nxt, alunci sunt posibile utmatoarele expresil pentru caloulul produsuiui scalar ‘=sum(A’°B) Feoum(A.*B) Cosinusul unghiulul vectorior: es Aza itay j+a,k a eS x itby J +b, k se calculeaz’ cu relatia: aby + ayby +a;c, 3 +a} +a3 bz + bp +03 unde |A] gi [B| sunt lungimile, norma sau modulul, Dac produsul scalar este nul, coi doi vector sunt ortogonal ae RE cos A.B) gj Exemplul 7.3.1. Si se calculeze produsul scalar gi unghiul dintre vector Pest-ap gi a Vs27-28 Cu seovenja MATLAB: er(3-4 0); belt 2-2); abesumia.*h)7 mod_a=norm(a) mod_b=nozm|(b) a1 £a=acos (ab/ (mod_a*mod_b} }*160/pi ‘52 objine rezuttatut abs -5 alfa = 109.4712 grade ‘produsul scalar 7. Operatiiartmotice 7.3.2. Produsul vectorial Produsul vectorial adol vector si 8: ie aoofiik oats un vector perpendicular pe planul celor doi vector, Modulul produsulul vectorial i 32 Il=lal-[Bl-sincA, 8) De gxemplu, dact & gi B descriy vector cu ajutorul coordonatelor (proiecile axle Ox, Oy $i Oz), cu secventa MATLAB: ares Aslax ay az]; Betbx by bz}; ce ANB 0 objine ca rezultat matricea C, cu dimensiunea 3x3, a > AB TF ZF 5 > p}x € 2 >] o> ic i K Componentele Ci) au ur + Pontru is] reprezirt& un vector ori ‘a matricel C; * Pentru isj reprezinté 0 componenta a produsul ez ‘scalar (marcat& cu x in matricea C) Vectorul rezuitant Cara componentele: “E12, 3)-C(3,2) ey=C(3,1)-c(1, 3) (2,2)-c(2,4) cK cy cz]; 8Produeul vectorial Surna clementelor dagonalel principale conetiuio produsul scalar al vectoriior > A. si B, sie calculeaza cu instructiunea MATLAB: Peeoun(diagiC)); *Predusul scalar Prin urmare, produsul « dol vectori este: ‘+ un scalar, daca operat este un produs scalar; * © mattice, dacé operaiia este un produs vectorial Exemplul 7.3.2 Si se calculeze produsul vectorial gl scalar al vectorior i : ‘ Calcul numeric cu MATLAB 7a 7. Opera artmetice 7 Pestapl? gy Petey? ma fa wast-3j-k gi Ba-T-2 7 . na 5 6 Cu sooventa MATLAB: Exemplul 7.4.1. Fie: A : foal os a(S -3 -1]7 bef-a -1 -2)5 34 7g] + P=? Gua"; Si.se calioze: A¥B, AD, Agp 2/3)-C(3,2)5 Cusecvenja MATLAB: ey=C(3,1)-C(2,3) 7 Belt 203417 BeLS 627 8}, pao) ezeC(1,2)-C(2,1)5 . cu Ev-lex'cy 2)" produsul vectorial 2 wum(a.*b) { produsul. scalar nateda 1 ; co=nep nun (diag (C)} Xprodusil scalar metoda 2 £0 obtn rezutatea 80 obtin rezuttatele: cue Cas Pv=[S 11-8] 6 8 a4 a4 PSt= 0 10 12 Aa a PS2= 0 2 care reprezinth vectorul produs vectorial: 2 =57i-+11 7-8; produsul scalar nul evidentiaza faptul c& cei dol vector! sunt perpendicular 7.4. Operatiile aritmetice cu matrice CPeratile uzuale de algebr’ niari cu matice sunt simbolizate cu somnele graice: "WN. 1) *.% 980 efectueaz’ dup’ requlle cunoscite din calculul matricoal, 7.4.1. Adunarea $1 scdderea Operatia de adinare a doud matice este simbotizatt cu operstorul pis (+). Instrucfunea: 5 Z=xy ‘eprezint& adunarea matrcelor X glY, rezulind elementele: ZU) = Xd. Matricele X si Y trobuie si alba aceleas! dimeneluni, in afara cazulul cénd X sau Y ‘este un scalar. Un scalar a poate fi adunat cu orlce matrice, rezuénd elementete: Zl) = aexey Operatia de scidere a dou matrice este simbotzat cu operator minus ( =). Zaxy ‘eprezintd sctiderea matricalY din X, rezultind elementele: Z0D= XDD Matricele X si ¥ trebuie of alba aceleasi dimensiun, n afara cazului cind X sau Y ‘este un scalar. Un scalar a poate opera cu orlee matrce, rezulténd elemontele: 2id= Xia Z0)=axi) sau 7.4.2. Inmuttirea matricelor Operatia de tnmuitio a Unitoare naa eat? & dour mation esto sinbokath peratorul steluts ( +), : Zexy ‘eprezité maticea produs a avind elemento: 20) = Dxasovey Prodlusut matreeal este posi acd nema Postindma Amit coloaelr mate X eete epee coerce met 2) tn ima peer 9 eo pe Soca ar ul matce-vector esto un caz special al eens ‘general resi matonmatin, etal a . : rate, relate Inmioncufecareolament sine? Pome amt ct ore ZU) = arX(i). fat fs a ab ML gf + pa Exemplul 7.4.2. Fie: A. Siise calculeze: A'R, Arp, Cu secventa MATLAB: + RSIS 6/7 a); pea, ca. Calcul numeric eu MATLAB 74. COperajia de Imparfre la dreapta a dovd matrice este simbolizati cu oporatorul siash (/), Unmatoarea instructiune: | Z=XN reprezint& impartirea la dreapta a matricolor X gi Y, gi este identicé cu X*Y" (Y" este inversa | tate). ; 2 56 Jeet] . impartirea la dreapta fi Exemplul 743. Fe: A=! 5 se calculeze A/B, Cu secvenja MATLAB: Ae(L 2:3 4]7 BE[S 6:7 8); c=a/B ‘80 objine rezulatu: c: ‘3,000. -2,0000 2.0000. 1.0000 7.4.4, impartirea la stanga Operaja do impirfre la stinga @ dou mative este simbolzald cu operator backslash (\)- Unndtoarea nstrufune Z=xW reprezint impajirea la sténga a matricalor X gi Y gi este identicd cu X"*Y (Y" este inversa matricai Y). Daci A este 0 matice nxn, ia 6 este un vector colana cu n componente, atunc X=A\B este solutia sistemului de ecuafii AX=B, objinuta prin eliminarea Gauss. Daca unul dintre operanzi este scalar, operafja riu este posibiki, aape:a-|! ’] of’ ¢] Bxompia744.Fie:A=|* {] . Bel? ise cakuleze AD. Cu secvenja MATLAB: Re[L 2:3 41sDe(5 6:7 O17 cone 20 objne rezutatut Ce 7.4.5. Ridicarea la putere Operafia de rdicare la pulere a unei matrice este simbolizalé cu operatorul (* ). Unmiitoarea instruc|iune: Z=X"p 7. Operatilaritmatica at teprezinté rdioarea plat pp sec © Perea Pa matical X. Expresia X*p are sone doar pentu X matics acd p esteun integ pozty, rkicarea I putrs este obs prin inmulfriepotate: lard pent wreck a Xt X hot XWp>0 Port P O8 un intey negalv, X este maint invesali si apoi se nmulosc inverse de Z = X* = inv(X) * inv(X) *...Ainv(X) vp <0 _ Cuseovenja MATLAB: Bel 253 4); peas Zisirp 180 objine rezuitatut Zs 7 10 15 2 7.4.6, Transpunerea matricelor Operatia de trans t soup ea Punere a unei matrive este simbolzaté cu operatorul apostrol, Cu zy Ile mati ev olan acres ranspuse Z. Acastheru face ca pono mation ¥ Imatiol Yount nme reat, para datanepuorfoscent ns D8 eben Zier Gi) Daca elemento matree ¥ sunt ‘conjugata transpusel, aticd: 26) = conj (Li) = realy i)- magcy Gp) ‘numere complexe, operalia de transpunere retumeaz comets imines) Cusecvenja MATLAB: wUtid 3-241; 1.0009 0- 1.00001 41,0009 - 1.00001 3,000 + 2.00003 82 8. GENERAREA VECTORILOR SI A MATRICELOR UZUALE Funofil folosite pentru generarea vectorlor gia matrlelor uzuale sunt: 20108, Genereaz& matricea nul&; ones Genereazé matricea unitate; eve Genereazi matricea identic: - rand Genereazi numere aleatoare cu distribute uniforms; randy Genereaz numere aleatoare cu distribute normale; finspace Genereazi un vector cu pas linia, Fogo Ganareaz in vector eu pe oar meshgrid —_ Genereazii o matrice a retelel In planul X-Y; : Genereazii un vector cu pas constant. 8.1. Generarea vectorilor 8.1.1. Generarea vectorilor cu pas liniar Generarea vectorlior cu pas Tniar Implic8 cunoasterea fimtelor Intervalutul (amin gi max) gi a pasuiui dintre dou elemente (pas), sau numérul de elemante ale vectorult, Metoda de generare a vectorului se aloge funci de datele de intrare, +) Daca se cunose limitele intervalului (amin gi amax) si pasul (pas) dntre dou elemente, 80 genereaz4 vectorul cu instrucflunea: x= amin: pas : amax . nde: amin, amax si pas sunt scalar si pot avea orice Valoare reali, Numarul de elements ale vectoruli rezutant x este: unde .{ 7 semnifck partea tntreag’ a rmzuitatuiil axprasiel dintro paranteze. Inetrucfinca! presupune c&: ~ daca pas > 0, atunci este necesar ca amin < amax, + dacii pas < 0, atunci este necesar ca amin > amax. ‘Spre exemplu 15 sunt corecte, tn timp ce urmatoarele instructiunt eS Qed -5:2:-10 8. Genoraten vectorilor sia matricelor uzuale 83 cart here, Dac pass mt, valaen acs et consider inl eg cu unatn * Dace nose nie ona an amen) rnd de cesses nao Vector generate pas iar, nln oboe eave x= spain ames 9 Pasul die col meri esa ool cimarty mee Dace vores Neste omnis tine aceasta esto cane inp egal eu 100. Vato Is tena, an 9 ama, mst sipse nal Wake) Se hee Ne ordi (cd cmn> ama vat generat in forerateeeey Exemplul 8.1.1. S& se generaze un vactor cu pas fini, cu lintel ‘amin =2.5, amax = 7 si pasul egal cu 1.25, Seovenja: R225 1.2517 conduce la rezutatut 2.5000 3.7500 5.0000 6.2500) Exemplul 8.1.2, Si so genereze un vector cupas lnar, cu liitela amin = 25, arax = 7 g1N= 4 elomente, Seoventa x= Linspace(2.5, 7, 4) conduce la reauitatult x=[25000 4.0000 5.5000 7.0000] . Des! genereazi aoelasi nui de elemente, prima seevents contoleaz& pasul st poate modifica eventual ita supercar, lar a coun controleazi num de elamenta $i ‘mentine lniteleimpuse, 8.1.2. Generarea vectorilor cu pas logaritmie Functia eggpace genereaza vector cu pas logartmic; se apeleaz® cu sinnxa: x= fogspacetamin, amax, N) Vectorul x contine N elemente distribuite logaritmic Intre decadele fo", 10°). Dacd Tumérul de elenente N este omis, se genereazi un vector cu 60 elemente distribute logarimic inte docadele [10% , 10°). ack amax=x, elementele veotorul. sunt astro intro 10°" gn. Valorie lintlor terval, amin gi ama, nu aula roti Pot date in orice ordine, Dacd amin > amax, vectorul generat va fi ordonat descrescdtor Exemplul 8.1.3, S&\se genoreze un vector cu N§ elemente distribute logariimie pe bntervalul (10° 10%), Seoventa: x = logspace|-2, 2, 5) determin’ rezuttut *=[0.0100 0.1000 1.0000. 10,0000 100.0000 } co Calcul numeric cu MATLAB Exemplul 8.1.4, Sa se genereze un vector cu N=6 elemente distrbuite agarimmic pe intervalul [10° , x}. Seovenja: x = logspace(-2, pl, 6) determind rezultatul x=[0.0100 0.0316 0.0997 0.3150 0.9948 3.1416] 8.2. Generarea matricelor 8.2.1. Matricea goala Degi in MATLAB nu existé instrucfiuni pentru declararea tipurllor de variable, jar matricele se autodimensioneaz in timpul utiiziri, pentru a creste vileza de lion se procedeaz’ la crearea une matice goale, Acost lucru se face la Inceputul sesiunli de lucra ‘sau la apelarea unui program, Declararea unei matvice goale ee face cu inetructiunea: X=(] ‘care asigneazi iui X matricea de dimensiuni 0x0. rice malice goala trebuie sa alba col pujin una da dimensiuni zero. Pentru a testa daci o matrice X este goal, se foloseste funciia MATLAB fsemply, care so apeleaza cts sintaxa: = lsempt4X) slretumeaza in variablar valoarea 1 daca X este matrie goal gl 0 in caz contrar. 8.2.2. Matricea unitate Matiicea unitate este o matrice cu toate element 1 fig 1] c | jlo. 7 “eae tol ae sosifigeni cs hn oro aplnz nade huss: Urea) Conatnn) Uta undom gn sin sot, kr A ele ai, Dac uc nero apol un sg sige! lar, nein gre oie aie. pa en sincanon Spar gat doulas ware fm) mattoe gent are 1h coloane. Dacdi functia ones are ca argument o matrica A, matricea generaté este o ‘matrice unitate de aceleagi dimensiuni cu matricea A, Exemplul 8.2.1. S& se genereze o matrice unitate ou dimensiunea 2x2 si 0 ‘matrice unitate cu dimensiunea 2x3, Cu secventa: Alzones (21 ‘Adsones (2,3) 8, Gonerarea vectorilor gl a matricelor uzualo 58 obtine rezultatut Als ne faa 1 44 1 : 13 Exomplul 822. Fe matioa: A=| ¢ 7 85 ‘Si se gonereze 0 matiice unitate de aceleasi dimensiunl cu matricea A, Cu secvenja: Ae 309) 5 7 ay; Usones (size (A) ) ‘80 obtine rezuitatul: Us 8.2.3. Matricea zero Matricea zero este o matrice cu toate elementele zero: 0 0 0] o e oof lo o al $i poate fi genoratécu funcia zeros, care 80 apeloaz O= zeres{n) = zeros{m.n) cu una dintre sintaxele: (O= zoros{size(A)) unm gin unt sel, lr A este maton, Dac rch r . 6, Dac funcia ore ete apolatt cu un ‘argument sca, matcea ganerné esto © mation patel cei ae argumentulul Apelata cu doul argumento sealare (i sir goloane, Dacd unojia zeros are ca argument o matrco A, matroea generat ‘matrice zero de acoleagi dimensiuni-cu matricea A. 8.2.4. Matricea identitate nein, attiee@ Mentitate este 0 matrice care are elementele Principal egale cu unu, iar toate celelate egale cu zero: [; 0 oa I! | 1), Matricea generat are tni de pe diagonala i 86 Calcul numeric cu MATLAB Se genereazé cu funclia eve, care se apeleaz cu una dint sintaxele: le evetn) I= eye(mn) eye(size(A)) Lunde m gin sunt scalar, jar A este matrice, Dac functia eye este apelatd cu un singur argument scalar, matricea generati este o matrice pitrat avand dimensiunea argumentului, Apelat& cu dou argumente scalare (m,n), matricea generat are m lini gin coloane, Daca funcfia eye are ca argument o matrice A, matricea generata este’o matrice identitate de aceleasi dimensiuni cu matricea A. Exemplul 8.2.3. S& se: genereze o matrice Identitate cu dimensiunea 2x2 gio ‘matrice identiate cu dimensiunea 2x3, Cu secventa: 100 otto fi 3 97 Exemplul 224, Fle mations: A=] 5 5 | ‘SA se genereze 0 matrice identitate de aceleasi dimensiuni cu matricea A. Cu secventa: Ae(L 3097507 Ireye (size (Al) se obtine rezutatut: au 10 0 010 8.2.5. Matricea aleatoare Generarea matricelor cu numere aleatoare se poate face cu: ‘+ functia randpentru numere aleatoare cu distribute uniforma tn intervalul (0.0, 1.0); ‘+ functia randh pentru numere aleatoare cu distrioufie normal (Gaussiand), de medie ero gi variant unu, ‘Sintaxele pentru generarea matricelor cu numere aleatoare sunt: usrandin) nerandn(o) usranctmm.n) Rnsrandn(m,n) Fusrandtsize(A)) Rnsrandn(size(A)) unde m gin sunt scalar, lar A este matrice. Dacdi funciile rand gi rand sunt apelate cu lun singur argument scalar, matricea generati este o matriee patratd avand dimensiunea argumentului. Apelati cu dou argumente scalare (m,n), matticea ‘generat are_m lini sin coloane. Daca functile rand gi randn au ea argument o matrice ‘A, matrioea generat este o matrice aleatoare de aceleasi dimensiuni cu matrioea A. 8. Generarea vectotior gi a matricolor uzuale 87 Pentru simularea experientelor care comporta aceleagi condi se genereazi seri de ‘numore aleatoare la care se controleazi un parametru de inializare al generatonuhi, soodt raneR'seed) sau randhseed) -retumeaza Valoarea curentd a numaruiui seed ranei'seedr) sau randn‘seedn) - seteazs numarul,seed!" la valoarea n Exemplul 8.2.5. Si se genereze o matrce aleatoare cu dimonsiunea 2x2 gl 0 mmatrice alealoare cu dimensiunea 2x3 cu elementele distrbuite uniform gi normal (Cu seoventar Rlusrand (2) Rinsrand(2) R2uerand(2,3) R2n=randn (2, 3) 80 obtin rezutatele rave Oster Ssaer agess Exemplul 8.2.6. Fi tr A [eel vere Aals 3 3) Si se genetoze cite © matrice aleatoare de aceleasi dimensiuni cu matricea A, cu ‘numerele distibuite uniform gi normal, Cu seoventa: Ail 39; 5 7 Rusrand(size(A) ) Rn=rancin (size (A) } 80 obtine rezutatul Rus 0.96"! 0.1998 0.6293 0.1260 0.3192 0.1267 aa Rn= 0.2001 0.5621 “1.0689 1.1990 0.3516 0.1500 8.3. Generarea unei retele (mesh) Funcia mashorid transfor domonil specicat ph vector x giy th taboutle X g Y care pot fi foloste atét pent evaluarea functor de dous variable, cat si pent reprezentri SD de tipul mesh sau surtace, Se epeloazd cuuna dinte sintaxele: DX Ylemeshgrids, y) __[X, YIemeshari) $i relumeazX dele in tabiourie X si, care sunt sunt cop ale vectors x gi ale voor ¥, Cu ake cwine, funcia meshridretureazi tn tabloule X gi Y perechle da coordonate Calcul nueris cu MATLAB 89 ea Al tuturor punciolor da domeniu deft de vector x gi y. Pent exempliicare vez figura a4 a 8. FUNCT MATEMATICE UZUALE x(1) x(2) aa 9.1. Aproximarea numerelor 3} ay I Functilie MATLAB folosite Pentru aproximarea numerelor sunt: coi Int Zt ur Rumi ntog roti eco mal aproplt ine spre plus int (40); yn) tr paeiTeAZa un nur intteg, rotunft la cat mai apopiat intreg epra Ax| zero; ay il floor Retumeazi un num intreg, rolunjt la cal mai apropiat intreg spro Fig. 81. Mest ezutat prin dvizarea domeniviui xy Goren aul omeniat, round Fatwa un num neg, rtunt a ol mal apropat nrg, Exemplul 8.3.1. S& se gonereze tablourile X si Y pentru domer rem retumeaza restulimpairjil argumentelor, i 2sys3 rat Folumeaz4 aproximarea unui nunc faci ralonale continue; 2x2, 25y tay 5 rats Retureazi aproximarea unui rumar cu numer reforaler Cl UnEaroc yee 1 pe axa Oy. sign ‘Retuneaz’ semnul argumentului, Cuinstrucjunea: [X, Yismeshgrid (~ 0 objine rezutatu Ye 02 222 aa a4 4 fale) 000 o2 144 02 222 9.1.1. Aproximarea cu numere intregi ‘nume.funcjio(argument) unde: 1 fume funcje este numele uneia dnt functile de mal sus, lar a roe 2? 80a, tn vector sau o mate, ale cor elements se dorese ta, Gee lementele di argumentulfuncii sunt nunere complexe, functile de mai sus oPoreazd independent asuprafeedrel pi (reall gl maginara), Exemplul 9.1.1. 8890 rotunjeasck elementole vectoru =[02 23.47 52-78] 18! mal apropatintrog, ~la.cel mal apropiat intrag spre 0; = la.col mai aprcpat intreg spre + = kcal mal prepa nttog spre a Si se determine semnulelemenislor vecoru V, Cu seovenia de inatrucfini: Velo 2 23 47 -5.2 -7.0) Freund (Vv) B= fx(v) C= ceil iy) D= floor (v) z aa Calcul numeric cu MATLAB 9. Funct matematioe uzuale ot 90 obj rarfateke Yel 5M 1/4 355/113 820/654 } As[0 2 2 5 5 8] B=[02 2 4 5 7} 9.1.3, Aproximarea cu fractli continue Csl0 2 3.5 5 7] D=[0 2 2 4 6 8} Funofa MATLAB raf aproximeazi un numis cu frail continue; e apeleaza cu tna EslO1 1 14 4] dint sintaxele vera) fa, bleraty Exemplul 8.1.2. Acelagi enun} ca mal sus, pentru o matrice cu elemente numere Etc [ecb top complexe: unde: [ees 13-531 X___;este numrul care trebuie aproitmat cu racti continue; ‘ol = este tolranfa care 6 accept inte numanul x si nur y (yxcxto); cotghtt te 26a inp elas Cu seoventa de instructun: Y | ~ exprimarea hi x ea fractis continu, va[2.2542,5944 7,3-5.3¥6; agi ~ numdedtoral gi nr jo care aprox x utoleranta Cyrgerzosera Joas.anes sib = numérator i numitoru facil care aproximeaza pe x ou tlerana tol A Founaiv) Funct rat aproximeaza fecare eloment al vectorull x eu un numa de forma: = ceil (vy D= floor(v) E = sign(v) 2 obfh rezutatoe: ‘A= 41,0000 + 3.00001. 7.0000 - 5.00001 4.0000 + 2.00004 -8.0000 - 1.0000! 41,0000 + 2.00001 7,000 - 5.00001 4.0000 + 1.00004 -2.0000 - 1.00001 2.0000 + 3.00001 8.0000 - 5.00001 =4.0000 + 2.00001 2.0000 - 1.00001 D= 41,0000 + 2.00004 7.0000 -6,00001 8.0000 +- 1.000% -3.0000 - 2.00004, 9.1.2. Aproximarea cu numere rationale Funcjia MATLAB rats reaizeaz& aproximarea cu numere rationale; se apeleszi cu na dine sintaxete: . vyrats(x) rate, 's) | ‘Argumentul de intrare 's' determin’ afgarea rezutatuiu simboly int-o matrce sir Exemplul 0.1.3. S& se aproximeze cu numere rajionale, numerele: 1.25, 0.25, x si 1.2508, Cusecventa: Xe(1.25 0.25 pi 1.2596); Yerats (x) ‘88 objn rezutatee: Exemplul 9.1.4, S& se aproximeze eu tract continue numerole: 0.25, 1.25, -2.26 §11.543, Cu eecventa MATLAB rat((0.25 1.25 -2.25 1.3439) 8e objine razutatu 0+ 118) 1+ Ma) 24 Aa) 14 8+ 1-124 416))) Soltia corespunde urmatoarelor descompuneri In facil continue: 1 : L tas=1e 4 1 1 2252-24 1343=14— “ 34 T nine Exemplul 9.1.5, Si se a Se inscris aceste numer mai jos: 6 roximeze prin frac raionale numerele: 2.25, 3.5, 6.57, 10, e Int-un vector si se aplica funcfia rat, cain secvenja de x= (2. faa) = objinandu-se rezutatul X=[ 225 35 657 10] Al 9 7 657 10) 5 3.5 6.57 10} at it) 92 Calcul numeric cu MATLAB +9. Funofil materratice uzuale. 93 B=[ 4 2 10 1) 1, dack X>0 sto o aroninare arate dal, prin rare fac signix)=4 0, daci soa “1, daca X<0 9.1.4. Functia rest Fundlia rem(X,¥) calouleaz restul impli lui X la Y, element cu element. Daci elementele vectorului sau matticei sunt numere complexe, partea maginar& este ignoratd. Argumentele X si Y trebuie sa fie matrice de aceeasi dimonsiune, sau unul dint ele si fa ‘scala. Exemplul 9.1.6. S& se caiculeze restui Imparftilelomentelor vactorulu X la Y. Cu secvenja de instruct: x= C1 yer2 3 2 = rem(X,¥) ‘50 objine rezultatu Zit 3-61; 4a 0 2) Exemplul 8.1.7. S& se determine restul imp&ifiil unui vector la un scala gi al unui salar la un vector, Gi secre MATLAB: ie xs (2.5 6 -7]7 a Herem,¥) tavcemt¥8) se obj etal . Zi=(25000 0 1.0000] Z2=[0.5000 3.0000 3.0000] Exemplul 9.1.8, Fie vectori 1 i 642i) Bei ei BH) ‘SA se calculeze restul impErfri elementelor complaxe ale vectorului X la Y. Cu secvenja de instructiuni: x= (1 4 ~6H24i); Y= (Dei 3424 3-117 2 = rem(x,¥) 80 obfine rezultatu: Z=[1 0 0] 9.1.5. Functia semn Funcja sign asociaza ficodrui element al vectorului X elementele -1, 0, 1, dup rmiitoarea reguli: 9.2. Divizori gi multipii comuni PPentru calciuldvizoir gi al mulipilor comuni se folososc functile: ged Calcuieaza cel mai mare divizor comun a doua numere; Jem Calculeaz col mai mic multiply comun a doua numere, 9.2.1. Cal mai mare divizor comun Funclia MATLAB ged calculeazi cel mai mare dvizor eomun a dou numere intreg ‘se apeleazai cu srtaxa: a=godxy) Exemplul 8.2.1. S& se determine cel mai mare divizor comun al numerelor: 20 gi 21, Cuseoventa: 1c (30,24) 3 rezuts 9.2.2. Cel mai mic multiply comun Funda MATLAB lem retumeazi cel malic mutiply comun a dou numer tnreg So apeleazé cu siniaxa: alemixy) Exemplul 3.22. Sa se determine col mai mic multiply comun al numetelr: 9 gi 30, Cuseevenja: rezuit: asLen(9,30) a= 9.3. Numere complexe Operatile cu numere complexe folosese functile: abs Cabuleaza valoarea absoluté (modulul) a argumentulu; angie Calculeaza faza (unghiul) argumentului, unwrap Cal-uieaza parle roalé gi imaginaré ale numerelor complexe exprimate : fn forma polard; con Caleuleazi conjugata complexéi a argumentulul; imag Extiage partea imaginara a argumentului, veal Extage partea roalé a argumentului, 94 Caleul numeric cu MATLAB 9.3.1. Definirea numerelor complexe in MATLAB Numerele complexe sunt permise tn toate operatile si funcfite din MATLAB, Acestea sunt introduse utilzand variabllole epeciale |g, ca tn exemple +4 2=3444] entra a defini matricoa tet M-| 1-54 exist dou matode: * ca sumi a dou’ matrice cu elements numere reale, uma. reprezentind partea real far cealaltl partea imaginarg, Mof2 0; -1 -5}4{3 10 4} * cacomatrice cu olemente numere complexe. Msf2e3't 1 Sei) Prin al dotlea procedeu trebuie evita orice spatiy liber (blanc) inte pire real gf imaginard ale aceluiagi numar complex; astfet: 2H(243"] bl2 43] retureazs: a=[20000+3.00001 b={2,0000 0+3,00001 } Notatia b reprezentand dou numero eaparats, Dac variabille | sau j du fost deja utiizate in ate scopur, pentru caleull cu numere ‘complexe poate fi declarata o noud unitate imaghiara, In modul urator saqt(-t) : 9.3.2. Modulul si argumentul numerelor complexe Un numir complex z se exprimé sub una dintre formele: searteziand: z=x1ly polack: =1e" nde x gi y sunt parle real gi imaginar& ale numarulul complex 2, lar gi @ sunt ™odulul gi argumentul numéruul complex 2. Functia abs determin modulul elementelor unui vector sau unel matice; se apeleazA cu sintaxe: taba(2) Funejia angle calouleazi argumentulelementelor unui vector sau unel matrice, "n radiant 58 apoleaza cu sintaxe: ficanglet2) Functia_unwrep permite calculul partior reale, cu sintax xe unwrapl2). sau xeunwrap(reakz)) respectv a parti imaginare, ou sintaxa: I 9. Functii matematice uzuale 95 unwrap\imagtz)) Argumentul numdirului complex trebuie 6% fie exprimat th radiant Exomplul 9, Cu instructiuni: Si se sorie numarul eomplex: 41 sub forma poland, bye zexei*y; Eeabs (2) fisangle(2) 88 obtine rezutiatut 1.4142 fi= 0.7054 Exemplul 9.3.2. Sd op sorle numsirul complex z=4e sub forma carteziand, Cu instructiunit = sqrt(4); f= pi/as z= r.texp(iresy 80 objine rezultatul Ze 14142 4 1.4142) Exemplul 9.3.3, Fle datti matricea cu numerele complexe exprimat sub forma polart: [ og 1 et et WES ore’) spe [tre PP enn] ‘Si se determine projectile acestor numere pe axole realé gi maginard, apliognd functia unwrap Cu instructiunite: Ay exp(i*pi/4), exp(-t*pi/a)s exp (i*(pi/24pi/4) 1, exp(i* (2*pispi/4) ), . exp(-i" 12*pit pisdi yy; xeunwrap (real (M) ) yeunwrar (imag (1) | 80 obtine: 0.7071 o.7071 x 1.0000 0.7071 0707 oor “0 0.7071 o7071 07071 0.7071 0.7074 9.3.3. Partile real $i imaginard si conjugatul numerelor complexe Partea real a unui numar complex poate fi detorminati cui functia real; se apoleazk cu sintaxa: 9% Calcul numeric cu MATLAB 21022) {ar patea imaginark poate fi detomninalé eu funcfia imag; 8 apeloazi cu sintaxa: yeinagte) Conjugatul Z al unui numér complex 99 poato determina cu funcjia conj : se apeloazicu sntaxa: conj=conjz) fia] romp 8, Fecatt mation Ma] | Li 4e* ‘Si se determine partea reali, imaginard sl conjugatul elemientelor acesteia, Cu seovenja MATLAB: M= (1 24; -i @¥explitpi/a) Je Mrereal(M) § partea reala MisimagiM) § partea imaginara Mc=conj(M) § matricea conjugata se objn rezultatele Mrz 4.0000 2.0000 0 2.8284 Miz © 1.0000 ~1.0000 2.8284 Me= 1.0000 2.0000 1.00004, 0 4.00001 2.8284 - 2.82841 9.4, Functiile putere, radical, logaritm gi exponentiala Funetile MATLAB pentru ridicarea la putere, extragerea radicalului, calculul Jogaritmului gi al exponential, sunt: a Ridicé un numar a la puterea n (a”); ow Catculeazii exponentiala (e") fog Calculeazd logaritmul natural (In); fog2 Calculeaza logaritmul in baza 2 (logs) logto Calculeazd logaritmul zecimal (log) nextpow2 —Determina puterea Na numérulii 2 care majoreazi modulul argumentului P (IPIs 2); pow2 Calouleaza valoarea numéruiui 2 la puterea n 2"); sqft Calculeazi radicalu de ordinul doi ditr-un numa. Daca argumentul acestor func elementare sunt mattce, ele opereaza element cu element. Argumentele funcilor pot fi gi numere complexe, 9.4, or 1. Functia putere MATLAB-ul clspune de doua func pentr rdicarea la putere: + pow2 = pentru ridioa 2 la putorea n (2"), 4 + pontruaridca un numaira ia puterea n (x=a”). Se apeleazi cu sintarele: yepowas) — calloarh numind yo2* Dac x esto 0 matice,y va fo mation de aceleagi dimensiini cu elementole calculate dt fe acfiondnd element eu element aaa a Ypoweon) -calaloas numand yen ~ eakeuieaza puterea n a numérulul a, x=a". Exponentul n poate avea orice vvaleare, real sau complexd. Pentru caiculul radicaluiai de ordinul n intr-un numa a, ¢¢ uiizeaz func putare sub forma: x=a"™ Funcjia nexipow2 avand ca argument scalarul P, ee apeleaza cu sintaxa: Nenextpowa\P) slretumeazd col mai mic numa naturaNasto! nest 2*2 PL Dadi P este vector, funciiaretumeazé scalaru N, astfel incat 2" majpreazi numarul de elemente ale vectorial. Exemplul At, Seo cauace: A=[2° 2° 2] Cu seoventa: rezuiti: AxIpow2(3) pow2 (5) pow2 (13.5) A 1.004004 + 0.0008 0.0082 4.1585 A=[B 32 11585] Exemplul 9.4.2. Si se efectueze aceleagi calcule ca la punctul anterior, utiizdnd operatorul de rdicare lapulere *, Cu secvenja: 8e objin acsloagirezultate, Cu seoventa: se objine: AeI293 295 2913.5) Exemplul 9.43. Sa se calculeze: x= 4/125 x=12541/9) x= 50000 Exemplul 8.4.4 S8 se determine puterle N ale lui 2 care majpreaza elementele vectoruiul A Cusecventa [4-8 17]. Ste abtzovocoru maprant P-2" Ne[nextpow2 (4) nextpow2 (8) nextpowe (171 98 Caleul numeric cu MATLAB Functia radical Calculu!racicaluul de ordinul 2 dintrun numit, x =-fa , poste utiliza funotia putero, sau funcia sqrt apelaté cu sina xoqrf) . Argumentul a poate fi orice numar feal sau complex. Dact numénul a este negativ sau complex, rezutatul calculi este un numar complex. Exemplul 9.4.5. S& se calculeze radicalul lecarul element al matricel: Cu seoventa de netructunt X=[1 249] ceqt) se obtinerezuanu 40000 1142 2000 0+ 3.00001 9.4.3. Fuinctia fogaritm Clout logarrmulu natural al ogarimutul tn baza 2 sau al logarimului fn baza 10 al unui numer a utlizeaza funefie fg, depen gtd ppeto cy shiek () raboga xe Dvet ematical eton runt oy sa cap =, ‘ezutatul este calculat cu relaile: log{z) = loglabs(2) +1 atanaty,x) logt{abs(2) + i atandly,x) Lunde atan2 este luncie MATLAB ce calculeaza arciangenta numarului complex. Exemplul 9.4.6. S8 se calculeze logaritmul natural gi zecimal din numerele ¢? si 100. Cu seoventa x1={ log(exp(2)) 1oq(100)1 x2={ 1oglo(exp(2)) logi0(200)} sar exp (2) 100) xl*1og(A) x2=10910 (A) se objine rezuitatut xt x2=[08686 2.0000} {2.0000 4.6052 9. Functii matematioe uzuale . 20 lw Exerplul 9.4.7. S& ee calculere to rma baz 2 al elementelor matioot: eo sn) A=[4 293; 82 10; xr1og2 (A) se obtine rezuitatul x= 2.0000 3.0000 6.0000 3.3219 9.4.4, Functia exponential Catcutul expe onentl x=6%, (unde = 2.71828182846..)oloseste funcfia exp, apelata cu sintaxa: >xpia) Deck argumentul este numarul complex 2=xeiy, rezuitatul este calculat cu relatia: = £* (cos(y) +L singy)) Exemplul 9.4.8, S8 se calculeze: 6, 6° gio Cu secventa: xeLexp(2) exp(2)— exp(-3)) et 2-3] exp (A) 90 obfine rezunatul [2.7183 7.3801 6.0498} 9.5. Functiile trigonometrice Functile tigonometrice se apeleaza ou sintaxa: xenume_functie(argument) unde: fume funcfle este numete unela inte funotiletigonometice de mal os; argument este valoarea pentru care se evalueazk functia; Xeste vatiabila in care se rotumeazd rezulatul pace arcumentul este © mattice, funcfile igonomettice opereazi asupra fiecdrui elernent 9.5.1. Functille trigonometric directe Funetilletigonomettice directe In MATLAB sunt: sh Calcuieaza sinusul argumentului; ‘Celeuleaza cosinusul arguments aR. 4100 Calcul numeric cu MATLAB «}-> 9. Funofii materatice uzuale fat ‘an Caleuieaza tangenta argument : ; om Caleuloael colangenia argument 9.6. Funofiile hiperbolice seo Galeisazd secanta argument on Caleuleaza cosecanta argument res Pentru arguente numere complexe, z=xti, rele de calcul sunt sin{z) = sin{x)coshly) + i cos(x)sinhly) 0s(z) = cos(x)cashiy) - i sin(x)sinhly) tanta) = sin(zVeos(z) Exemplul 9.5.1, S& se calculeze funciie tigonometice directe ale elementtor vectorului je 3 -*] TOG Cu secvenja: ml pi/d Sepi/4 arpirpi/4l; asin) Botan se obi rez - A=[ 0.7071 0.7071 -0.7071) B=[ 1.0000 -1.0000 -1.0000] 9.5.2. Functille trigonometrice inverse F unaletigonometic inverse in MATLAB sunt ach Calouloazd arcsinusl arguments moe Galeulaza arecooinusul argurent stan Caleuleazdarctangonta argumont tare Calevoaza arctangenta und argu Some, oot CalculsazA arcootangenta argument mee Caleuleazdarcvecanta argument cee Caleuloazi arccooecantaargumentuld. Exemplul 85.2. Sa se cakculeze unciletigonometic inverse penta elena vec xo 1 2/2] Casecveni: “a O 1 sart(2)/2)7 sin x) waar (x) se obj ezutatoo As[ 0 41,5708 0.7854] Bel 0 are 0.6485} 2enume_funcje(argument) nde: = nuriie_funcfie este numele uneia dntre func hiperbotice de mai jos; + argument este valoarea pentru care se evalueazé furcia, este vatiabila in care ge retumeazi rezultatu Daci arcumentul este © matrice, funcile tigonometrice opereazi asupra feckrui clement. 9.6.1. Functille hiperbolice directe Functile hiperbolce directe in MATLAB sunt: sinh Calouleaza sinusul hiperbolc al argumentutu cosh Calculeaz& cosinusulhiperbolic al argumentului, tanh Calculeaza tangenta hiperbolio& a argumentulu ‘oth Calculeazi cotangenta hiperbolica a argumentulul, sech Calculeaza secanta hiperbolicé a argumentului. sch Calculeaza cosecanta hiperbolicé a argumentului. 9.6.2. Functille hiperbolice inverse Func Hperbolice inverse in MATLAB sunt: asinh Calculeaza arcsinusul hiperbolic al argumentulu: ‘acosh Calculeaz’ arccosinusul hiperbolic al argumentului; atanh Calculeazi arctangenta hiperbolicl a argumentul acoth Calculeaza arccotangenta hiperbolcd a argumentulul; asech Calculeaza aresecanta hiperbolic& @ argumentului; acsch Calcuieazé arccosecanta hiperbolicé a argumentuiui. 102 aaa 10, MATRICE SPECIALE | MATLAB existh umitorul sat de functi care genereaz matte special, foloste 1 aplicafi de algebri tiniar’ gl prelucrarea semnalelor. compan Calculeaza companionul matriceal, diag Genereaza o matrice diagonald; hadamard — Genereazi matricea Hadamard; shank! Genereazé matricea Hankel, hit Genereaza matricea Hibert; invhity Genereaza matricea Hilbert inver fron Calculeaza tensorul Kronecker, ‘magic Genereaza paitratul magic; pascal Genereazi matricea Pascal foepitz Gonereazi matricea Toeplitz; vander Genereaza matricea Vandermonde; wikinson __Genereazk matricea Wilkinson, 10.1. Companionul matriceal Functia compan calculeaz% companionul unel matrce; 8e apeleaz& ci sintaxa: ‘Accompanip) Daci p este un vector cu costiclentipotinomiall scrigi tn ordine descrescitoare 2 puter, compan(p) este companionut mattioeal corespondent. Prima. ines Companionulu! este constituté din numere reprezentand cdtul cu semn schimbat dintre ceeficientil potnomial, incepaind cu puterea (n-1) pénd la ferment Iver $1 cootloletel polinomial al puteriin, adic -p(2:n)/p(1). Pentru potinomul POR) = p(x" + p2)x™! + p)x"*4...4p(n— Dx? + p(n)x! + pln+1) Dima tinie a companionuiul es PVP, -plSY/pt1) (art). alorile propri ale companionului unui vector p, ai od coeficent! polit {unt daft da functia eig(compan(p), sunt ridcinile polinomului. Pa umare, pentru a dulermina rédacinle unul polinom, 86 poate folos! exprosia MATLAB: ‘=elg(compan(p)) Linde p sunt coeficlenti potinomulul tn ordinea descrascatoare a puterilor. Exemplul 10.1.1. S& se determine rdcinile polinomulus Pixdex! ox? 44 $e. sere vectorul cosfcientior polinomial, se determin companionul gi apol Nalorlle proprii le acestuia. Valorla proprii ale companionuill sunt chiar 1HCotile Polinomulu (Cu seoventa de instructiun! MATLAB: Pe(l-1-1a1; b= companip); 10. Matrice speciale 103 eet r= eigib) sau, mai compact xHeig (compan (p) ) ‘80 objin réEcinile potinom uu: 1.0000 4.0000 -1.0000] 10.2. Matricea diagonala Furctia diag genereac matice diagonale sau opereazd cu dagonalele unor ‘mattice; se apeleazé cu una dintre sintaxcle: Daalag(X) D=alag(X.k) ‘Argumentul optional kindled ciagonala corespunzatoare, anuine: k=, diagonala principal; > 0, indicd diagonala k de ceasupra celei principale: k <0, india diagonala k de sub cea principal, pact aigumentilX este un vector cu n componente, funcia lag(X.) genereazk o matioe pirat de ordinul nvabs(), cu elementele vectoruul X pe dagonala kc Mrcons [ace ‘sraumerf kc fanclia croeaza o malice cu elamentole vectoruiX pe dagonala prncipa Dacd ergumentul X este 0 matrce, functia dlag(Xk) extrage un vector coband format din elementele de pe diagonala k a matroei X. 123 Exemplul 10.2.1. Fiedatt matricea A=/4 5 6 78 9, soe eeze,© mates avind diagonal principal Wen ct cea a matical A gi cu Calolate elemento egale cu zero. Cu secventa MATLAB: Ae(L 2.3745 6;7 8 917, Bediag(diag(A) | 8¢ obtine rezutatu B= oon Exemplul 10.22, Sk se genereze 0 mate de ondinul 2m, deft de elie: i-m—1, i: MGp=}t . lo + Tnrest unde ie[1, 2mst] sje(4, amet].

You might also like