Afica Aplicatii PDF

You might also like

Download as pdf
Download as pdf
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]. 10. Matrice speciale 405 104 Caloul numeric cu MATLAB 1000 1100 Pentru m=2, matricea rezutateste; M=|0 1 0 1 0 oorid oo ora, Pentru a genera matricea trdiagonalé de ordinul 2m, din acest exemplu, se Uilizoazii seovenja MATLAB: m2 Nediag(-m:m) +di.ag (ones (2m, 1),1)+... diag (ones (24m, 3) ,~2) Exomplul 10.23, Si ee aple funjia dag voctorul V=[ 1 28} Cusecvenja MATLAB: V=[123] A= diaglV,2) B= dagly) ‘se objin rezulttatele: co0o+ 10.3, Matricea Hadamard Matricea Hadamard este 0 matrico pra cu toate elemantole 4 sau -1 apezat into astol de succesiune, inci nia jeste identcd cu coloana | Funelja hadamard be apeleazd cusintaxa: Hrehadamaroin) Lande unit aati rebuie 8 fe ase! ale, Inca n, 12 sauirV20 a feo putee a kd 2. Aceasli matice nu este Insd ortogonali (motv pentru care sa flo naa Hn), dar se poato ortagonaiza prin nme cu un scalar, conform rela wrt Hg) unde n=2% k find un num natural a Exemplul 10.3.1. Sa se traseze [nile de nivel corespunzatoare matricel Hadamard pentrun=i2 gin=40. Cu seovenja MATLAB: nel2; contour (hadanard(n) ) ‘80 pot uri inile de nivel in fereastra grafic, (orhal = Exemplul 10.3.2. Sa se determine matricele Hadamard orlogonalé si neortogonal, de ordinul2, Cu instrustiunile: H2o=(1/sqrt (2)) *#2n 8 objine rezutatut Hen = Heo = 1 o7071 o7or1 1 7071 0.7074 | 10.4. Matricea Hankel Matricea Hankel este 0 malice anthaimeticd gi antilagonall; ce funcjja hankel apelaté cu una dintre sintaxele: ee H=hankef) H= hankote.) Dac func Hankel este apelatt cu un singur vector argument, matricea rotumats este 0 matice Hankel pra, a cei prima coloana 9i prin tna su eamentoc verte argument foal eemantle do stb prina anticlagona cunt nul, In sch, decd onsin hank este epelat cu doi vector argument, de densianlm sn, mabioea Tetum coo exemplu: [s 4 1 20 ‘te 0 matrice Hankel defini prin vectorul {5 4 1 2. 4H 0 of Step 1041 Sts genaez malice Hank ded do Cu secvenja MATLAB: nncumnmm a eae Bo Mateo) ocho recut Ronni enue Exemplul 104.2. Sk se genereze o matrice Hankel, definé de vector [10 6 6] (prima coloand) si t-{1 2°3 4] (ultima lini). Cu secvenja MATLAB: om[10 § 6 Jz 1=(1 2.9 41; H = hankel (e, 1) rezutiés 106 Calcul numeric cu MATLAB, 5 6 2 ener 23 4 So observa prioiatea utimului element al vectoruli, care defineste prima coloand, fal de [primul element al vectonuli, care defineste utkna tn, 10.5. Matricea Hilbert er ws me nat tamale oe Exemplul 10.5.1, S& se determine matrioea Hibert de ordinul 3 (Cu instructianea MATLAB: B= hilb(3) ‘se obfine rezutatu He 41,0000 0.5000 0.2333 0.5000 03833 0.2500 0.838 0.2500 0.2000 10.6. Inversa matricei Hilbert Funcfia invhi retumeaz® inversa matricel Hibért de ordinul n; se apeleazé cu sintaxar 1H = ivhitgn) Rezuitatele sunt exacte pentru n < 15. Compararea cu rezutatul obfinut din calculul indhitko)) conduce la observatia o& pent n > 15 apar erori inacceptabile, ca urmare a ‘label condifonéria matricelor Hibert. Exemplut 10.6.1. Calculatiinversa matricelor Hilbert de ordinele & gi 25, atat cu funcfia invhilb cat si prin inversarea matricel H cu functia inv. Urmatiti diferenjele Fezuttatelor. Cu seoventa MATLAB: ne3 THL=4nvbilb (n) TH2minv (hitb (n) 7 =H 1-123 sdmaxemax (max (abs (D) }) rezu& cea mal mare diferent: max = 7.3896e-013 pentru n=8, gt dmax 1,38720+035 10. Matrice spaciate 407, pentiy n=25 Rezultatul confima existen{a unulalgoritm specific implementat tn functia invhib $i avage atentia asupra erorilor ee pot rezuta prin utlizarea unel functi rd ‘unoagterea particulartitior acestela. 10.7. Tensorul Kroneker Functia KkrontX,¥) calculeaza produsul tensorial Kronecker dintre maticele X si, Rezuitatul este 0 matrice formata din toate produsele posible inte elementals ll X gi, Dacii X este 0 matrice mx n, iar ¥ este 0 matrce Ix p, atunck KekramX,Y) este 0 matrice cu dimensiunea tix np. De retinut & produsu! tensorial nu este comutativ: r000X) + kront,X) De exempt, dact X este 0 matrice 2x3: XeEX(1,1) X(1,2) X(,3) Xt) X@.2) X@3)) atunci K=kron(XY) are ca rezuitat matricea: Ke LX AY X(1.2)Y X(1,3)°¥ XQAY XO2VY X@.3\Y ] _ camara rmomnanecses i]. vf 3] BE sane es 10.8, Patratul magic Patratul magie de ortinuln este o mattice nx n, construti cu Intregi de la 1 la n?, care are suma elementelor de pe fiacare Iie, coloand, diagonalé sau anti-diagonald principal, egald. Patratul magic are suma scalati dubhi stochastic, Functia magic se apeleaza cu sintzxa: ‘Azmegic(n) ‘nde argument tebuie le mal mare sau egal cu, 408 Calcul numeric cu MATLAB sl: 40, aatiioe specials 109 Peabs(pascatn,1)) Peabs(pascatn,2)) Exemplul 10.6.4. Sk se ganeraze pital magicde odin 4, , inatugjunton Cu secvonia MATLAB: Bieabe (pascal (5,11) N= magic(4) P2cabs [pascal (5,21) tut: relumeaz rezutatale: ae enue Pls P2= 8 2 3 18 too00 00004 511 0 8 41000 omeom cesta 976% +2400 coors 4145 4 13310 ous tia aaa care este o matic soalat dub stochate gl care are suma elementaor pe fiecare colon 146 44 14a sau line, ct gi pe diagonal, egalé cu 34, 10.9. Matricea Pascal MATLAB poate genera o malrice piitrati avand elementele triunghiulul ui Pascal, Tiunghiu lui Pascal con{ine coeficien{i binomial ai decompuneri (ae): (a+b)" =a" +C\a™™d+ Crab". C2 ab +b" pentru ‘orice nude natural n, De exemply, triunghiul lui Pascal cu coeticientt ddecompuneri unui binom de ordinul patru are urmatoarea forma: 0 1 1 boa 2 12041 See sae 41 4 6 4 1 Dacit numerotarea liniortrunghiului lui Pascal se face incepand cu z0ro, aga cum este prezentat mal sus, flecare tiie din trlunghi va con{ine coeficienti descompuneri binomuli (a+b), unde n este numérul nie. Aste, lila cu numeral ta Conjine cooficienti descompuneribinomulu (a+b)?, care sunt: 1, 3, 3,4. Funciia pascal se apeleazd cu sintaxa: ascaln) Astfel, instrucfiunea: pascal (5) retumeaza matricea Pascal de ordinul 5 P 114d 1234 5 13 6 10 15 14 40 20 35 15 15 35 70 la care ofementele din partea sting a antidiagonalel principale sunt elementele \wiunghiului lui Pascal. De multe.ori Ins’, apelarea funcjial pascal se face cu una dintre sintaxole: ‘Acsstea contin elementele triunghiulul lui Pascal ordonate astfet: matticea P1 contine elemetele ‘riunghiuui tui Pascal ordonate pe linia, tn partea triunghiulard din calul stang, in timp ce matrices P2 contine elemetele triunghiului tui Pascal ordonate pe eoloand, in partea triunghiulard din colful drept. De exemplu, pentru extragerea Ccoeficien{ilor descompuneri binoriale (a+)*, se foloseste secventa:, "sabs (pascal (n+1,1)) ; Coef=P(n+1, 1:n41} objindndu-se rezultatul: Cosi=[1 8 28 56 70 56 28 8 1} 10.10. Matricea Toeplitz Matricea Toeplitz este definti prin vector elementelor primei coloane gi ai prime! lini, O matrice Toopitz simetricd este defintd doar de un singur vector. Funcfia foepliiz se apeleazi cu una dint sintaxele: ‘T=toeplit{c) T=tospit{c,) Daca funcjia toepiltz este apelati cu un singur vector argument, matricea rotumata este 0 matrice Toeplitz patratd, ale cArei prim coloan8 si primi lie sunt elementele Vectorulul argument, jar pe diagonala principald gi pe toate diagonalelo paralele cu aceasta se glisesc elerentele defirite in linia sau coloana amintité. in-schimb, dacA functia toeplitz este apelaté cu doi vectori argument de dimensiuni m gi n, matricea retumaté are imonsiunest mx n, a cael prima coloana este definti de primul vector argument, iar prima Iie de elementele celui de-al doilea vector argument, Daca primul element al primului vector (prima coloana) diferd de primul element al celui de-al dollea vector (prima line), elementul ‘oloanel are prioritate [afd de elementul nel Exemplul 10.10.1, Sé se generaze 0 malrice Toeplitz hermiticd, definité de vectorul 12349) Cu secvenja MATLAB: c= (1234 51; 1 = toeplitz(e} 80 obfine rezuitatut 410 Caloul numeric cu MATLAB «| 10. Matrice speciale an MW : ve 1283845 B 4214 21234 west 3214123 6416 4 1 aera 125.05 5 4 54324 oo 10.12, Matricea Wilkinson Exempl 1.102. St 90 genereze 0 matte Toop, deft de vactre {10 § 6] rina coloand) gite{t 2 9 4) (rina ie), atrcea Wikneon do oui na elamerole dette prin laa ‘Cu seoventa MATLAB: [n-2i+4 c= [1056]; le (1.23 4); > risj T= toepliezte,2) wa init ‘se obfine rezultatul: " . Bel . 0 In test 0 2 3 4 ; | Wad enti nfdo exempie 8 5 10 2 21000 Se cbsov pottatea element vetondul care defines pra colvana (orinul vector A apa argument, ) fal do cement vactond care dsfneste pina fie fal doles vonor argument welo toto 10.11. Matricea Vandermond cory 14. r ricea Vandermonde looot al Naticoa Vandermonde est det de expres este 0 matice Wilkinson de onl aD eae Funcfl wiknson se pelo ou staxa: . Wewilkinson(n) unde ceste vector cu element, asociatpenuitme! cotoane, De exempis . Exemplul 10.12.1. Si se genereze o matice Wikinaon de ordinul 4. Cu seoventa: Yop 1 Wewilkinson (4) ylt ean settee Pear 1.5000 1.0000 oO oO a 410000 05000 1.0000 9 so 4 0 14,0000 0.5000 1.0000 «leo matice Vandermonde, defi de vectorule=[t 2 8 4 oe ometree eas Fungi vanderse apeleaza cl sax Vevandor@) xem 1.11. Sse gonerezeomaton Vandermonde pn vedo | e=[2945) Cu secvenfa MATLAB: e= (2345 = vandortey se cbne ezutatut | ik ] 412 11. CALCULE CU MATRICE I In multe domenii formularea matricealé a problemelor a condus la eimplficarea metodelor de rezolvare gi a facut posibilé extinderea unor solu deja cunosculo la domenii noi, 11.1, Manipularea matricelor MATLAB-ul oferd urmatoarele funofi pentru manipularea matricelor: diag Creeazi sau extrage diagonalele matric, iit Rotegte matricea In jurul axel vertcale (inverseazé ordinea coloanelor); fipud Rotegte matricea in jul axel orizontale (Inverseaza ordinea inilor); reshape Schimbai dimensiunite matticei (redimensioneazi matricea); 1190 Rotegte matricea cu un muitipl de 90 de grade; tt Extrage matricea inferior trunghiulara dintr-o matrce; tia xtrage matricea superior triunghiuiar’ dnt-o mattice; Spociticd indici, rearanjeazi sau decupeazd o submatrice, 11.4.1, Extragerea submatricelor prin indici Elementele individuale ale unel malrice se apoleaza cu numele acestela, urmat de {do ingici, cupring! intre paranteze rotunde gi separali de vigulé, Primui indice semnnificd lini, iar al dollea coloana in care se gisoste elementu apotat, De exempiu instructiunea: AG,3)= A(1,3) + AG.1) are ca rezultatinlocurea elementului din fnia 3 gi coloana 3, A(3,3), al matricel A, cu suma dintre elementul Iniel 1 - coloanel 3, A(1,3), sf elomentul din linia 3 -coloana 4 Indic pot fi scalari sau vectori, indict vector permit definirea unor submatrice, procedeu prin care se pot refer pli disparate dint-o malice. Spre exempl,instructiunea: BeM(1:5,3) extrage submatricea B de dmensiunea 5x1, constind din primele 5 elemente din coloana a 3.2.4 matricei M, De asemenea, intructiunea: (C=M(1:5,7:10) ‘extrage suimatricoa C cu dimensiunea 5x4, constiuté din olementele primelor 5 ln (linia 4-5) siale ulmelor 4 coloane (coloanele 7-10) ale matricoi M. Uilizarea numai a semnului dou’. puncte ,:" In loculindiodor pentru kni sau pentru coloane, presupune considerarea tuturor elementelor pe Ini sau respectiv pe coloane, Aste, Instructiunea: D=M¢.3) cextrage din matricea M, 0 submatrice D care confine toate lle (datori somnulul doud puncte) din coloana a 3, in timp ce instruajlunee:. | ESM(t5,) lextrage submatricea E care confine tnd de fa 1 fa 5 ale tuturor coloanelor maticei M, Crearea maticelor mar, precumn gi manipularea acestora se face cu mui 11. Caloule cu matrice xb dacs isa dl vcr Spe axe, retushnoa ose 0619 youll te coloanole 3, 5 si 10 ale matriceiA cu primele 3 coloane al rei B. In general ceed syst var component eg acinar ke : ° cero ban Cr cr omens x a cote , tn o / Inversarea coloanelor unel matce A se face cu instrucjunea "yale matesi 113 in ‘A=ACsni-t:t) lar inversarea iniior se face cu nstrucjunea. AeAlni-t De @ mate importa ese tizarea fir atoct rr, care ‘matricel intr-un vector coloand, citind coloanele una dupa alta. wee “sformarea Astfot: Az[12,34) b=At) ‘7 ca rez rarsfornarea unel matice A int-un vector coloand: a b= a4 Aros eee ee rn il fe eel» htt et 12 14 , Pertu extagerea vectorlor eu elemente decupate din aki vector, se folosesc formet: Fk salectoazt olementele jet, Kf ale unui veoto 4, ogra azuttote got” “* ME Ur verona, tk selecteaz# elementos [i jv, #2, ..K ale unul vector; vector h Fezute ese gol daca b0 si pksau daca cD gh foe ©22usolecti ino sau coloanelor matical, ee soos eerie AG) =selecteazl coloana ja matroa! A AG) ~selecteaz ina ia matron, AC) aloo ea mace A + Selectoazlelomentala AQ), Aj)... Ak) ale vector MGA) ~soeceark ‘ate nt " caoane ge te gy MDA nA, mate, ~ selectesz4 toate’ olamentele maticol A, privte ca ©. sng coloand(neepnd eu prin). pe i 114 Calcul numeric cu MATLAB, Exemplul 11.1.1, Si se selecteze elementele din poziile 3-5 gi2,4,6 ale vectoruli: 473510) (Cu seovenfa MATLAB: aa(2.47:351 0); BRA(3:5) =a (2:26) ‘80 obj rezuitatut Exemplul 11.1.2, Generati un vector C prin intrefeserea elementelor vectorion A=[ 13.57) siBel2 4 6 a) Cusecvenja MATLAB: Ae(1 3.5 7); B24 6 8)y nelength (A) Hlength (8) e(hs2en)aay C(2:2n) 80 obtne rezuitatu GsI1 2.34 5 67 8} Laa4ase 234561 Exomplult443, FleA=|3 4 5 6 1 21. la so 123 are eee eee ee eatcnnm iapctmneen mani men 2 3486; 294560 9456221. pels terudetcrestctuictstavteltztstaiat malar) Gentes) peatiiar46) BEAC( 1 41, (24:51) 28 45 8H Ds 458 $84 = 24 5 5 12 41. Caloule cu matrice 115 11.1.2. Extragerea submatricelor prin vectori cu elemente 0-1 Vectorllcu elomente 0 gi 1, creali de operator logici sau relational, au propriot \deosebite, care pot conduce fa scrieréa unor programe foaite compacte, Daca A este 0 matrices m x n gi L un vector da hingime m, cu elemente 0 si Inotructiuniea: BeAL.) retumeaza tn matrioea B toate elementele cin fnile matricel A pentru care elementul Corespunzator ca pozitie din vectorul Leste 1. Prin acest procedeui se exttage 0 submattice ‘ou un vector retumat de func logice. De exemphu, dacd Lo 10-1 1) instructiunea B-A(L,) elimin& tle 1 $19 ale matricel A. Pentrueliminarea coloanetor expresia de mal sus se transforma tn: C=AGL) Numaiul de elemente ale ll Ltrebuie 6 fie egale cu numérul de coloane ale matricet A, Exemplul 11.1.4, S& 90 extragt dint-o mattice X toate lnile care au elemental din ‘coloana a 3a mai mare sau egal cu 1. (Cu seovenja MATLAB: ord 70-5 05 81; (,3)>=17 XL, 2) L y se obtine rezutetul o14 o5 8 11.1.3. Asamblarea matricelor mari (© matrices poate fi defini pe haza 1mor ato mattice de dimcnaiun’inferioare, ca tn exemplut ‘A-eye(4); ones(A) ANZ} Matricea C este compust din matricca A de dimensiunea 4x4, matricea identitate 4x4, Imatricea unitate de dimensiunile matricei A si matrioea A ridcaté la patrat. Matricel foloste {hn asamblare trebuie 8A fie consistente ca cimensiuni, adiod sd determine blocuri care se Fntegreazéi compact in tabloul matriceirezutat In caz contrar se obtin mesaje de eroare, 11.1.4. Redimensionarea unei matrice Funcila reshape redimensioneaz 0 matiice A cu dimensiunea | x p tntr-o até ‘matrica B, cu dimensiunea m x n. Pentru ca oparatia de recimensionare 8 fle posbla este necesar ca matrcea A si alba acelagi numer de elomente cu matrizea B (1x p=” xn). Se apeleazi cu shhtaxa: 116 Calcul numeric cu MATLAB, Bereshape(A.m.n) . . Elemnentele metrice! 8 - In ordinea succesivé a coloanelor gi pe fiecare colon de sus in jos sunt elementele mattice’ argument A (cite de sus in jos gi de a sténga la droapta). Exemplul 11.1.5. S4 se redimensioneze maticea A eu dimensiunea 3x4 in maticea 8 cu dimensiunea 2x6. 147 10 azl25 8 1 369 2, (Cu secvenja MATLAB: 14710;2 58 1173 6 9 iz}; reshape (A,2, 6) B ‘52 obfine rezultatut Be 1357911 2-4 6.8 10 12 11.1.5. Rotirea matricel in jurul unei coloane sau linii Fanci fr bud iveroazi ordeal sa colar mato, Pac, oie rctaah © rouse Taio hp une cba a ne Rl Se apebesd oi svete Zatipud) Funcla fiplX)retuneazi mabioea Y rezita pn photarea matrice! argument In [url utime coloane, opera pn care aceasta deve pina coloand Funcjia ipuaX)telumeaza atrcea 2 reeual pn pvolarea mate argurent a {url utili opera rn care aceasta devine prima le. ira) Exemplul 11.1.6. 84 se roteascd maticea A=|4 5 6 789, ‘* Injurul unei coleane; in jurul unet in. Cu seovenja MATLAB: Ae(L 2 3/4 5 677 0 9); Befliplr (A) pad (A) ‘bin rezutatoi: ‘0 obi . fae Tae) 65 4 456 987 123 44. Caleule cu matrice La es ‘ 1s + 24190 de grade in sens tigonometis +, 0 (A' este notajia matricei transpuse ); 3. exist‘ o mate unica R, superior triunghiulard, nesinguiard, care satisface rolaja: =I, Factorizama Cholesky const ta descompunerea_matticel costicientior sistemulul conform pet. 3, unde R este numitfactorul Cholesky. Sistemul iia! devine: Ria ‘ar solujia aceetuia presupune rezolvarea succesivs a sistomelor: Rly=b gi apol Rxzy. Factorizarea Cholesky se calculeazi cu functia MATLAB chot $e apeleaza cu Una dintre sintaxela: Rechoka) IR, plachonx) unde: ‘A. ~ este omatrice pozitl defini; i - esto omatrice superior triunghiulard, astfel Incdt R"R=A; P_ ~ este in scalar de test, egal cu zero dacd matricea A este poztv definit gi lun intieg pozttv in caz contrar. Rezolvarez in MATLAB a unui sistern de eouati lniare presupune etapolo; + se calculeaza factorul Cholesky, cu relat: RachoW(A): + 88 rezolvi sistemul Rly=b cu relajia: y=; | % Se rezolvé sistemul Rx=y cu relafia: x=Rly, " ‘Aceste etape se pot scrie compact sub forma: Fschol); x=FIR\b Exemplu ie Calculaji factorul Cholesky al matrice Darang Cu seovenja MATLAB: 126 Calout numeric cul MATLAB AR(9,1g-1, 0/1, 9, 0,-17-1, 0,9, 170,21, 915 TR p]=hol (ay se obtine rezuitatut Re 3.0000 0.9393° 0.3333 o 0 2.9814 0.0373 -o.sa54 0 0. 29812 0.4306 ° 0 O 296t8 P= 0 (mattice pozitiv definits) 11.3.4, Factorizarea LU (lower-upper) Prin factorizare LU, © matrice pitratt este descompus sub forma produsulul a {dou matricetriunghiulare: na inferior triunghiular, cu elomente 1 pe diagonala principal (matrioea L) si cealats superior triunghiuiaré (matricea U), In MATLAB, factorizarea LU este Utlizaté pentru obinerea inversei unei matrice cu funoja inv gl pentru calculul determinantului cu funclia det. Este totodata baza rezolvarii ecuaflor liniare prin .Imp&rtiea matricelor” obtinuté cu operatori\ gi /, Factorizarea LU a une mattice se face cu functia 1u; se apeleazi cu una dine sintaxole: + Fetumeaz\ 0 matrioe superior tiunghiuiar’ U gl 0° mattice Inferior friunghiular& permutati L, astel Moat Kel ~ Fotumeaz’ 0 matrice superior trunghiularé In U, inferior trunghiulsr ta L ‘lpermutarea matriceab’ in P, astfolInoat L’U=P*X, ILUPI=taX) Exemplul 11.3.4, Si ee factorizeze LU matrioea 123] whe lr so Cusecventa MATLAB: Ae( 2.3)4 5 6:7 8 0}; (1, U}=1a/a) {20 obfinrezutatale Ls 0.1429 1.0000 0 7.0000 8.0000 0 05714 015000 4.0000 0 0.8571 3.0000 1000 00 o 0 45000 Leste © pormutare a matricel inferior trunghiulare, lar U este o matrice superior triungblulard, : Soovenia MATLAB: (1,0, 2)=10ay rotumoazit umatoarele rezuate: Le Pp 1.0000 0 oo oot 0.1429 4.0000 0 100 05714 0.5000 1.0000 010 41. Calcule cu mattice 127 Inversa unei matrice, Xeinu)*L) lar determinant: Dediot(A) poate fi calcula cu expresia D=det(L)"det(u) Rezolarea sistemelor de eoualii Ax=b prin factorizarea LU presupune soluffonarea succesiv a elsterelor uy y=Ub gi 11.3.5, Factorizarea QR inv(A), poate fi calcula’ gi cu expresia: Factrlzarea QR este 0 descompunere a unel marice ca produs al unel matice Ortonormale,Q, cu 0 matrce superior tlunghilar, Factorizarea .QR* se utitzeaz pentru rezolvarea slstemelor de ecuafi lniare cu ‘mal multe ecuafi decat necnoseite. Cea mai bunk soluje a unor astel de sisteme, in sensu calor mai mci patrate, este calbulata cu hstructinea: x=Alb, care utizeara aceastl factorizare. Prin utizareafactorzati QR, sola x este calcula tn dol pag. y2Q"b; xaFty Descompunerea ortogonaltriunghiulard (factorizarea QR) se realzeazi cu functia ) tet 42, Prelucrarea datelor gi calcule statstice 194 se foloseste funciia sun care se apeleazi cu sintaxa: Yesum(X) Dac argumentul X este un vector, functia sum retumeazi un scalar egal cu suma ‘lementolor vector, iar dacd argumentul este o matrce, functia retumeazA un vector lnie ‘care confine suma elementolor pe fscare coloan’. Pentru calculul produsului elamentelor unui vector: se foloseste functia prod care se apeleazii cu sintaxa: prockX) Dac argument X esta un vector, funcjia prod retumeaz4 un scalar egal cu produsul ‘elementelor vectoruli, iar dact argumentul este 0 matrice, funcfia retumeazi un vector linia ‘care contine produsul elemientelor pe flecare coloand. Pin suma cumulaté a elementelor unui vector se infelege vectorul ale cArul lamente sunt date de relaia: asda. ‘Se folosests functia cumsum care se apeleazi cu sintaxa: -cumsum(X) aod argurentul X este un vector, functia retumeaza un vector care contine suma cumulat ® elementdor vectoruu, lar dao! argumentul este o matric, funclia returneaz& 0 matrice care pe fiecare coloand contine suma cumulatl a elementolor din coloana respectiv. Ph produs cumulat al elomentelor unui vector se infelege vectorul ale cdl ‘elements sunt date de relale: Te. 3 JHA, 00 Py 4, jos NI Se foloseste functia cumprod care se apeleazti cu sintaxa: /=cumprodX) Daci argumentul X este un vector, functia rotureaz un vector care confine produstl cumulat al elementelor vectoruui, iar daci argumentul este o matrice, funelia ratumeazi 0 ‘mattice care pe flacare coloand confine produsul cumulat al elementelor din coloana respoctivl, Exemplul 12.3.1, S& se calculeze suma, suma cumulati, produsul gi produsul Ccumulat al elementelor unui vector. Cu seoventa MATLAB: Vell 2.34 5 Sesum(V) scecunsum{V) P=prod (V} _PC=cumprod (V) se obfn rezutatcle: s. 5 120 192 Caloul numeric cu MATLAB Exemplul 12.3.2. Si so caloueze summa, suma cumulalé, produstl gi produsui cumulat al elementelor unel matrce, Cu secvenja MATLAB: Mell 2 394 8 6:7 8 9742 U1; S=sum(i) Pxprodin) sc=cumstm (i) sup zod (M) ‘80 obfin rezutatole: S=[16 17 19} P=[112 160 162) 8c. PC= 123 fieee aa aero 4 i 18 12 15 18 28 80 162 16 17 19 142 160 162 12.4. Sortarea elementelor unei matrice Sortarea elementeior unui vector sau matrice in ordine crescdtoare se face cu functia sort care se apeleaz cu una dintre sktaxels; YesortX) DY. = sont(x) Daca argumentul X este matrice, functia sorteazi flacare coloand a acestola. A doua forma do apelare a functiei sort returneazit- Tn matricea Y elementele coloanelor sortale in ordine ascendenta si In maticea | indici elementolor sortale ale matical X. Daca elementelo ‘coloanel matrcei se repetd (au valor egale), indi acestora sunt returnaf in ordinea in care au fost intalnfi in matricea argument. Pentru matiice complexe, elamentele sunt sortale dupa valoarea moduli Exemplul 12.4.1. SA se sorteze elementele unui vector, cu precizarea indice fiocdnui element, Cu seovenja MATLAB: fa[1'3 5 0 0) (¥,a]*sort (y) 80 objin rezuitatele: Ye[5 00 4 3 =[3 451 Q Exemplul 12.4.2. Sa se sorteze elementele unei mattce, cu precizarea indcelu floctrui element. Cu secvenja MATLAB: He[1 -2 375 -9 0;-10 3 O17 (¥,2) = sort (x) se obj rezutatel: 40-9 0 a 22 1200 ie del 5 a 3 234 E i 42. Prelucrarea datolor gi caleule statistice 193 Exemplil 12.4.3, Si se schimbe ordinea: coleanslor matrcel M, astiel tncat elementle din prima linio 8% fie ordonate crescator. (Aceasté ordonare ‘este utd’ la (eptereniarea gic a matic, dad pra ines prin coband reprez coordonaile axl. Cu secvenja MATLAB: Me(7 2-5 4-1 5B 1-6-4 20-369); m= Maat [2,7] = sort ML); 13 MQ,t)" +50 objine rezultat M3 = Exempltl 12.4.4, Sa se schimbe ordnea tniior matticei N, astfel Incdt elementele din coloana a dows 8a fe ordonate descrescitor. Cuscevenja MATLAB: 7-2 43-5 2 04 10 -4)-7 $ “1); ML N(,2)7 2,2] = sort (Ni); T= f1ipud(r); NS = NGL, ‘sau cu secventa sored compact: Na{7 2 45 2 0:4 (2,11 = sortint2)) N3= Nefioud(),) ‘80 obfine rezultatu: 10-57 5 4 NS= 410-4 754 5 2 0 724 12.5. Varianta gi dispersia datelor Vavianja unui set de date 90 calculeazl cu relia Dl -1)" Nor unde termenul (x, -y) reprezint dferenja sau abaterea tu x; fafé de valoarea medic j Prin urmare, varlanfa reprezintd patratul abate medi patratice a dateor fafa de mecie, Abatorea medio pitraticd (abateroa slandard sau dispersia) esto definlé ca radacina 134 Calcul numeric cu MATLAB. patrati a varianjel, o= Vo* Functia MATLAB std calculeaz& abateroa medio pitratct [Sn ~YNar Dacii X este un vector, funcia std retumeazi un scalar caré reprezinté abaterea medio patric a elementelor vectorui pentru matice, funcja sid retumeazA un vector line continnd abatoroa media patraticd a flectrei coloane, 12.6. Coeficientul de corelatie a datelor Pentru a stabi dact tntre dout seturi de date, Inegistrate th vectori u giv, exist o dependenta linia’, se calculeaza coeficlentul de corelato: Shin Sud, Se (Saf TaSe(S5] Funcla MATLAB care cloleazi noes coeftint esto comroo 88 apolar cu tna dre sintaxcl: Rescorrcoeh{X) FayconeooiXY) Daca func corer areca argument de intareo sigur matce, 86 teturneaz8 0 Imatice care conte pe pore Fx(,) coef de coreua dre taken coeers + Matrioea este simetrica, deoarece Fx(i,)=Ax(.i). . ‘Apela cu dou arguments do fife, X gl mate. de ecseayi dinensiuo, funcfia returneazé o matrice care confine Pe pozifile Rxy(i) coeficienti de corelatie dintre fecar coloand X i fecarecoloand ¥ Exemplul 12.6.1. Fie umitoarele functt x=249t, ‘oefcienti de corelatia Rxy si Fixx, pantru domenialte[0, 10}. (Cu seoventa MATLAB: * YeBt gi 2=2sin(), Calcul! 07 we2t3*ty eRe; z2¥ehn(t); Rxy=correoes (x,y) Ruzecorrcoes (x, 2) ‘se obtin rezuttatale: Fay = 14 4.0000 0.1167 14 -0.1167 110000 fe observa of Inte x sy exstl © dependent lniard, decarace Fay(t,2) = Poy(21) = 4 Deoarece Fx2(1,2) = Foe(2,1) #1, x giz nu sunt intr relaia fini. x= ti 42, Prelucrarea datelor gi calcule statistice 135 12.7. Valori nedefinite \Valoarea speciali NAN corespunde tn MATLAB. fui Not-Number. fn mod nomal aceast valoare este rezufatul unor opel nedetinte, O10 sau sole, conform conwentilor Stabile de standardul IEEE de arimetic& tn vrgla mei, Pentru ientiicarea poziiior ocupate de valorie NaN intr-un vector x, se utiizeaz instructiunea: = fKisnan(x), care retumeazi In vectorul| inci elementelor care sunt valori NaN, Cu instructiunea: y= x(fingisnan())); ‘82 obfine un vector y care contine toate elements lui x ce nu sunt NaN (elimind valoile NaN dintr-un set de date). Practi, pentru a elimina valorie NaN dintr-un set de date, exist umitoarele douk modaitii: x(isnants)) = [] x=x(-isnan(e)) sau din care a doua forma se execut& mai rapid, Orice operajie in care tnul dintre operanzi este NaN retureaz4 valoarea NaN, incluslv pentu operatile dntre dou valri NaN. Exemplul 12.7.1. S& se elimine Inile unei matrice care au cel pulin © valoare nnedeterminald (NaN). Cu secventa MATLAE Y=xX 4} s [6p Se creoazi mai inti matric N care constitu tabeluldin care se cteste + elementul prime ni cin prima coloand: NOt) =0 * pri inl, mal putin primu element, confine elementele uy ordonatecresedtor: | 16. Interpolarea $1 aproximarea datelor q mepearea slaproximareadatelor N(t,2net) = yCtin). * prima coloan, mai putin prim element, vor fl elemento lu x ordonate orescitor N¢2in,4) = (tin), * _cololate clemente ale matrcel, sunt elementale asociate perechibor (x.y) Prin urmare matrioea N esta: or 234) I 234 ‘| ; 23456] I | Cu umitoata secvents MATLAB: Ly 2s 3, 411,243, 4,532, 3, 4,5, 61354, 5,6, 714 cmeibled iy 21-5), Szccabie2 I, 2/5, 3) SSetabie2 IN, 2.8, 315) se obfh rez ate: Sed= 5.5000 os 6 Observatie: Pentru a utiliza funciia table2, prima fine gi prima cobani a tabelulul bidmensional din care se ese dateletrebule sa fie monotone. Valorie ulilzate penn x trebuie 88 safe Inte prima gi utima valoare dn prima coloand (hte Xow $i Jon) ia colo entry trebuio 9 ale inte pia gi uma valoare dn pra thie (Ite Yin 1). 16.2, Interpolarea functillor de o singura varlabila hn acest subcapito! se prezinté tel tipuri de interpol: lniar&, spline cubled gi Polinomialé. ih toate cazurila se presupune o& existé un set de date are reprezintd coorrlonatele (x,y). Obiectivul Il constituie estimarea valorlor functiei f(x), pentru orice Punct x=[X,, 2). Curba de interpolare trece prin toate punctela care o definese, legea de interpolare intre puncte putand f liniard, cubic sau polinomiald. In figura 16.1. este dat un exemplu grafic de interpolare lniaré'gi spline cubiod a datelor. Valorie estimate prin Interpolare tnire punctele date depind de tipul de interpolare ales, 7 | Fig. 16.1, Interpolare nia gi spline cubica. 152. Calcul numeric cu MATLAB, 46. Interpolarea si aproximarea datelor 153 16.2.1. Interpolarea liniara Daca se presupune ca funcia dintre cele dou’ puncte din figura 16.2 poate fi ‘estimata printr-o linia dreapta, atunct valoarea functiei tn orice punct x dintre cole doud, valori se deduce cu expresia: xox, fw =y,+ (y2-y) Fe) Ye fe) y Fig, 16.2. Interpolarea tiniar& Interpolarea liniaré a functilor de o singurd variable face cu functia tablo? care se apeleaaii cu sintaxa: ble f(nume_tabex) Primul argument al funcioi este numele tabolulul care confine datsle co se referd la coordonatele (x,y). Daca acesta este un figier pe disc, alunci nume_figier ‘rebuie 6a fie mai intai ncircat ou functia load. ‘Al doilea argument se referd la valorile lui x pentru care se doreste determinarea vaiorior interpolate y. Datele din prinia coloandi a tabelulul (valorile lui x) trebuie si fe in ordine crescdtoare, iar valorile x trebuie s8 se gaseasca intre prima gi ultima valoare a primet coloane; in caz contrar se afigeaz un mesa) de eroare, Dac tabelul din care se citesc datele confine mai mult de dou coloane, functia fablet retumeazé un vector linie cu N-1 elemente unde N este numéirul de coloane ale tabelulul. Fiecare valoare returati este interpolaté din coloana corospunzitoare a datelor. Exemplul 16.2.1. Estimati valorle temperaturil la momentole de timp 2.5 sec gi 4.9 sec, cu datele din tabelul de mai jos. Time Bl ‘Temperatura °C] 0.0 7.0 2.0 3.0, p——— fT 5.0 io] Se introduc datele din tabe! tntr-o matrice care are In prima coloand valorile timpului gi tn a doua coloand temperaturile corespunzatoar Eempl (+,11=[0.0,2.0,2.0,3.0,4.0,5.0}" 7 Lempl (:,2)=[0.0,20.0, 60,0, 68.0,80.0, 110.0)"; (Cu instructiunea MATLAB: yetablel (templ, [2.5 ss obfin rezultatel: 4.91) [640 107.0) °c 16.2.2. Interpolarea spline cubi Curba spline cubic& este 0 curb neted’, definiti de un set de polinoame de gradul trei, Curba dintre fiecare pereche de puncte este un polinom de gradul tri, caalculat astfelincat sa conduci la tranzifiinotede de la un polinom de gradul tre la altul. ‘Spre exemplu, gase puncte sunt conectate cu cinti curbe diferte de gradul trai, o2 ‘constituie o functie neteda intre toate cele gase puncte. Curba de interpolare spline cubic’ este calculatd cu functia._ sping, se apeleazi cu sintaxa: Y= splino(xy x) unde: xiy sunt vector care contin abscisele si ordonatele datelor (cu pas mare"); xieste un vector care conjne noils abscise, de regula cu pas mai fin"; yieste vecbrulretumat, asociat lui xi, Valotile x trebuie sé fie ordonate crescator. Exemplul 16.2.2. Sd se determine valoarea y de intorpolare spline cublo& pentru x26, Cu secventa MATLAB: xm(0, 1 2, 3, 4, Sz y= (0.0, 20.0, 60.0, 68.0, 77.0, 110.0) tempa=spline(x,y, 2-6) 8 obfine rezuitatu: tempas 67.3013 °C. Pentru calculul a doua valorl interpolate, se poate utiliza secven|a MATLAB: tempb=spline(x,y, (2.6, 4.9]) objindndu-se rezultatuk tempbe (67.9019 105.2020] °C Exemplu' 16.2.3. Sa se reprezinte gral o interpolare liniara i spline cubled prin ase puncte. Cu secvenfa MATLAB: x0, 1, 2, 3, 4, Siz (0.0, 20.0, 60.0, 68.0,77.0, 110.0); akisi{-1, 6, plot (x, yy xh, vx, y0 '0") title(‘Interpelarea liniaza si spline’) 20, 1201) 154 Calout numeric cu MATLAB xlabel (Timp [3)'); ylabel (‘Temperatura [grade C)'); grid 8e obtine graficul din figura 16.3. 129 109) ‘Temperatura [grade C] Timp fs} Figura 16.3. Interpolarea lniard gi spline a datelor Exemplul 16.2.4, Fiind date 10 perechi de puncte th planuil xOy, 88 se trasaze (grafic ezutat prin interpolarea spline pe o retea de 4 ori mal fed, Cu seoventa de program: = 0:10; y = sin(x)s Hd = 03.25:105 y= spline (x,y, si) plot (x,y, "0" 24, yi) '8e determina vectorut yi al celor 40 de puncte corespondente valorlor xt 16.2.3. Interpolarea prin metoda transformatei Fourier Functiainterpft interpoleaza datele ou o singurd variabld uliizand metoda FFT (Fast Fourier Transform); se apeleazd cu sintaxa: ysinterphte.n) ‘care retumeaza un vector y de lungime n obfinut dn vectorul x. Numiiruln trebule si fe mal imate decdt numérul de elements al vectorului x, iar rezultatul are perioisate eiroulard dat de uttizarea transformatei Fourlr. peroadt TPNH 1825. Fle datele obfiute dhi-un shus egantonat ctv 8 pasl pe inf 284) 8) Interpotati datele cu un pas dublu gl verifcativelorilo obtinut, I i 416. Interpolarea gi aproximarea datolor (Cu secverta MATLAB: 1 xesin (2*pitk/@)1 ySeinterpft (x,16) kae0:15; yee sin(2*pitki/16); ax (yS~Ye) ‘se obfine wezutatut d= 5.551 10-016 Diferenja maxima Intre valorile interpolate gi cele reale este egalA cu ordinul de mairima al celui mai mic numar reprezentabil tn calculator (eroarea de trunchilere).. 16.2.4. Interpolarea multipla Func ntept poate interpola catele dupa o fge Unit, cubic sau spine cubic se apelezl cusitaxa yisinerptixy.,egula) unde regula” este nul dn eine choi: ‘near penta nterpoar tna Spline penta ntrpolare spline cubis cubie~peninsnterpolare cubed oat lg de interpolare neces a x safle ordonat monoton. n plus, metoda cub core ca puncts po axa x a fs ege cistanato. Daca y este 0 matice cu numa de tnt ogal ou celal vector x 9 cu Ncoloane, Interotrotumaa2i 0 matics cu un nur de Ini egal cu col al vector x cu N coke Exemplul 16.2.6. . Fie urmatoarole date ale unel func de o singurd vari: x 2 a o 7 6 [eps ft 7 ‘SA se estimeze cu functa interp{ valoarea y care corespunde lui x interpoiarea linia’, cubic’ si spline cubic’, Cuseoverja MATLAB: "2-1 01217 ye 6 2327); yileinterpt (x,y, [-2, 1.51, "Linear" yissinterpl (x,y, [-1,1.5], 'spline') yicsinterpl (x,y, [1,15], 'eubie') 80 obfin rezutatole g1x2215, folosind [2 4] Intexpotare tinier [2.0000 20158] — -interpolare epline yle=[ 2 3} interpolare cubic 156 Calcul numeric cu MATLAB 16.3. Interpolarea functiilor de doua variabile Functile MATLAB pentru interpolarea datolor care reprezil& functi de. dou variable (suprafele) sunt intxp3, inter, itor gl gridcata, 16.3.1. Interpolarea dup o lege biarmonica Func inter interpoleaz dato funcje de dous variable dupé o lege biamonic 20 apoleazi cu sintaxa: zeintorpxy,2,xh/) care retumeaza tn matricea zi valor intorpolate corespunzatoare hi x gly, Maticole x giy spected puncte in care sunt date valle li 2, Daca x sy sunt vector, punctele trebuio 0 fle egal cistantate gi monotone. Apolatd cu siniaxa: interne.) {unciareturieaz o matroe i cu dimensiunea m x , cae reprint nterplarea datelor din matiosa z 16.3.2. interpolarea dupi o lege biliniara Funojiainterp4 interpoleazi date func de dou variable dup o lege biiniar; so apeleaza cu sintaxa: zlsintorpatxy,2.x1 yl) care returneaza in matricea 21 valorle corespunzitoare lu xi gi yi. Malrcele x gly peciicd ppuncele In care sunt date valorie kl z. Dac’ x siy sunt vector, punctele trebuie safle egal distanjate gi monotone. Valori in ‘fara intervaiolor de definite pentru x 5, retumeaz NaN pentru zi. Apelaté cu sintaxa: zeinterpaxiyi) funojia presupune x=1:n gi y=t:m, unde m x_n este dimensiunea matiicei Dac se folosesta sintaxa: zisinterpdlz.k) funcja rotumeazé o matrice zi care expandeazi matricea 2 prin intojeserea tunel colsane gi 8 nei int interpolate bilinear fnire cele existente, operand rweursiv de k or. Prin umare, pentru 0 matrice 2 cu cimensiunea 3x4 si pentru ke2, rezuté a prima interpolare matriooa 21 ‘cu dimensiunea 5x7, iar dup a doua interpolare o matice cu dimensiunea Ox13. Priv aocst procedeu pasul devine de p=2" ori mai fin, Spre deosebire de funcile care citesc din table prin interpolare vaiorie precizate, ‘aceasti functie retumeazi o matrice a tuluror valorior interpolate. f2e6s pass 469 5) Interpol biliniar matricea A folosind Intrejeserea cu k=2 nivele de date interpolate, Exemplul 16.3.1. Fie matricea: 4 16. interpolarea gi aproximarea datelor 157 Verficati dacd valonrea interpolatd care corespunde la jumitatea iniervalui dinte ultimele ‘dou coloane gi utmele doua ini dupa prima interpolare este media aritmeticd a numereior care definesc dreptunghiul de interpolare, adic& (8464945)/4=7. (Cu soovonja MATLAB: Asl_2,6,6,5/3, 4,8, 674,6,9,5) Aisinterp4 (A,2) Anterp4 (A, 1)7 Veal(4, 6) ‘80 objine matricea Ai care interpoleazi de dow ori maticea A, A1 care interpoleazi 0 singurd dati elementele maticei A si valoarea cerutd prin enunt V=A\ (4,6)=7.. 16.3.3. Interpolarea dupi o lege bicubica Funcia iterpS interpoleaza datele funciio de doud variablle dupa o lege bicubic’: oe apeleazd cu sintaxs Zisintorpaley.2,xhyi) care retureaza in matricea zi valorie corespunziitoare lui x! gl yi. Matriele x gi y spectcd punctele in care sunt date valor lui z. Daca x siy sunt vector, puncte trebuie 84 fe egal distanfate gi monotone, Valor in afara intervalelor de defile pentru x giyretumeazx NaN pentru zi. ‘Apelatt cu sintaxa: Ziinterpsl2 xiyi) functia presupune x=1:n gi y=t:m, unde m xn este dimensiunea matriceiz. acd se fobsaste sintaxa: ‘zivinterp5lz,4) {unctia retumeaza o matrice 2i care expandeazi matricea z prin Intrejeserea unel coloane gi une’ inl interpolae bicubic ine cele existent, operand recursiv de k or. Prin urmare, pentru o matrice z cu dimensiunea x4 si pentru k=2, rezuli la prima interpolare matrcea 2i cu dimensiunea 5x7, iar dupa a doua interpolare o matrioe cu dimensiunea Gxt3, Prin acest procedeu pasul deve de p=2" ori mal fin, fp 665 Exemplul 16.3.2. Fie matrioea: A=|3 4 8 6 469 5, Interpolafiticubic matricea A folosind intre{eserea cu k=2 nivele de date interpolate, Calculati valoarea irterpolatd care corespunde la jumatatea intervalului dintre ultimele dou coloane gi ultimele doug ini. Cu seovenja MATLAB: S| 2,6,6,5/3,4,8,674,6,9,5) AlsinterpS (A, 2) AnvorpS (Ay 1); V=Ad (4, 6) 80 objine matricea Ai care inlerpoleaz de dou orl matricea A, matricea A1 care interpoleazé o singura dat matricea A si valoarea cerutd prin enun{ V=A\1(4.6)=8,06257. Rezuitatu objinut cufunciia interpS este deri de acela objinut prin interpolarea biiniara. 158 Calcul numeric cu MATLAB 16.3.4. Interpolarea prin metoda distantei inverse Interpolarea datelor functio de dows varablle prin metoda distanjel inverse Yealzeaaiicu funcia grétiata; se apeleazi cu shiaxa: a Phagiiddate(ay.z3xiy) Valorie maticel 2i corespund elementelor maticelor xi gi yl. Matroea 2 asoclaza fiectrel perechi (,y) ote 0 valoare 2. Dact x este un vector nie, acesta se aplod flecdrel colaane a matical z (este 0 Imatrice cu coloane constante). Similar, dack y esle un vector coloand, costa se. epic fiecdre rl a matielz (este 0 matice cu lini constants). Apelaté cu sintaxa: Ix yi, zbegrttdatats y, 2, x,y) tinct gional patos gh Exemplul 16.3.3. Si se reprezinte grafic functia de doui variabile 2=x(x%4y?) intervalul xel-1, 1], yef-t, 4]. pe Cu seoventa MATLAB: Ly yeti .S:tayey'y (x, y]"meshgria (x, 7) zem.* (x. °24Y.°2) 4 wedi Delp yiewds sds [xt, yiJ=meshgrsa ni, yi) Bimgriddata (x, y, 2, XL, 4) mesh (x,y, 2) hold’ on} mesh (x4, yi, 24-5) 0 obtine reprezentarea din figura 16.4. (Pentru comparafie rezultatul interpolérl a fost ‘deplasat pe axa z cu d=-5 fal de reprezentarea neintorpolat) Fig, 16.4, Interpolarea suprafefelor cu functia grcttata. “16. Interpoterea gi aproximarea datelor 2 16.3.5. Interpolarea multipla Functia infor? inerpoleaza datslefunefior do dou varabie dun lege bars sau bicubie§ se apoloaz cu sntaxas einterpAxy.2.yh regu) unde ,reguia’ este unul dintre cuvintele cheie: near peniru ntrpolare bina cubic ~ pentru interpola bictbiek. Maticea2iconine valor interpolate coretpunztoare lux gy . Ambo leg de iterpolare necestl ca x gi 8A fe ordonate monoton, In pls, rmetoda ‘cubic core ca punctle pe axcle x sys fe agal stanjate. Daci x este un vector ine, acesta se aplcé fecreicoloane a matics z. Snr, daca y este in vector coloand,acesia se apa fscrel nia matical. Exemplul 16.3.4. Fie urmtorul tabel bidimensional: a ae a 2[-3 [4] 8} 6 3 [476 }-9 5 SA ce estimeze valorle zi care corespund perechil (xy)= (35, 2.5), cu functia interp2, foloshd interpolarea biiniara gi bicubic’, (Cu secvenja WATLAB: 223 4h seul Linllor consgante ye(1 23)"; @vectorul coloanelor const. 2,6, 8,513, 4, 8, 6:4, 6, 9,5) zilsinterp2 (x,y, 2,3.5,2.5,"Linear') zicsinterp2 (x, y,2/3.5,2.5, 'cubic!) se obfin rezutatole: zi 7 zie= 8.0625 16.4. Aproximarea prin metoda celor mai mici patrate In acest sectiune se prezinté mal intai aproximaroa unul set de date printr-o linie dreapta si apoi aproximarea printr-un polinom. Pentru ca aproximarea s& fie consideraté .csa mai bund” suma pitratelor distanfelor de la fiecare punet la curba aproximanta (linia sau polinom) trebuie sa fle minima, Cu aceastt condile este posibil ‘a nici un punct al setului de date s& nu se giseascd pe cura aproximantA. Acast lucrs separa nel aprotimarea de interpolare, la care toate punctele sunt situate pe curba. 16.4.1, Regresia liniara Regresia finiard este aproximarea unui set de date printr-o dependenté iniard ‘care minimizeaz& suma patratelor dintre dreapta de aproximare $i punctele date.

You might also like