1.1. generalităţi · numele de variabile şi funcţii: max. 63 caractere (case sensitive),...

19
PDS2010-lab-Tema1-Matlab7, elemente de bază- 1 Matlab7, Elemente de bază 1.1. Generalităţi 1.1.1. Definire, componente MATLAB (Matrix Laboratory) este un mediu de lucru pentru calcule tehnice programabile (technical computing). Mediul MATLAB conţine 5 parţi principale: a) Un suport interactiv pentru dezvoltare şi testare de programe (Desktop Tools & Development Environment) oferit prin intermediul unei ferestre de bază , BW, cu bară de meniu contextual; folosind subfereste (SW) cu interfeţe gra- fice dedicate, se pot realiza următoarele: 1a) execuţia de comenzi prin SW-Command Window (cu prompter-ul >>) şi urmărirea comenzilor date în SW- Command History (cu comenzile , în SW-Coommnd- Window se face căutarea în lista din SW-Command History); 2a) editarea şi depanarea unor programe, dezvoltate de utilizator în limbaj Matlab, printr-un Editor (cu Debugger încorporat) din SW-Editor ; 3a) vizualizarea spaţiului variabilelor (prin SW-Work- space); 4a) vizualizarea Help-ului printr-un navigator (browser) în SW-Help; 5a) selecţia spaţiului de lucru (Current Directory) de pe hard-diskul calculatorului prin meniul BW. Obs: fereastra de bază a mediului Matlab conţine cel puţin Command-Window, la care se pot adăuga, funcţie de activi- tăţile desfăşurate, diverse subferestre (în varianta numită „planşetă” ori „docked” ca în fig.1, sau parţial suprapuse). Fig.1. Exemplu de fereastră de bază (BW) a Matlab-ului cu subferestre (SW) “docked”

Upload: others

Post on 10-Feb-2020

7 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: 1.1. Generalităţi · numele de variabile şi funcţii: max. 63 caractere (case sensitive), începând cu o literă sau underscore; există un set de cuvinte cheie in-terzise de

PDS2010-lab-Tema1-Matlab7, elemente de bază- 1

Matlab7, Elemente de bază

1.1. Generalităţi

1.1.1. Definire, componente

MATLAB (Matrix Laboratory) este un mediu de lucrupentru calcule tehnice programabile (technical computing).

Mediul MATLAB conţine 5 parţi principale:a) Un suport interactiv pentru dezvoltare şi testare de programe (Desktop Tools & Development Environment)oferit prin intermediul unei ferestre de bază, BW, cu bară de meniu contextual; folosind subfereste (SW) cu interfeţe gra-fice dedicate, se pot realiza următoarele:

1a) execuţia de comenzi prin SW-Command Window(cu prompter-ul >>) şi urmărirea comenzilor date în SW-Command History (cu comenzile , în SW-Coommnd-Window se face căutarea în lista din SW-Command History);

2a) editarea şi depanarea unor programe, dezvoltate de utilizator în limbaj Matlab, printr-un Editor (cu Debuggerîncorporat) din SW-Editor;

3a) vizualizarea spaţiului variabilelor (prin SW-Work-space);

4a) vizualizarea Help-ului printr-un navigator (browser)în SW-Help;

5a) selecţia spaţiului de lucru (Current Directory) de pe hard-diskul calculatorului prin meniul BW.Obs: fereastra de bază a mediului Matlab conţine cel puţinCommand-Window, la care se pot adăuga, funcţie de activi-tăţile desfăşurate, diverse subferestre (în varianta numită „planşetă” ori „docked” ca în fig.1, sau parţial suprapuse).

Fig.1. Exemplu de fereastră de bază (BW) a Matlab-ului cusubferestre (SW) “docked”

Page 2: 1.1. Generalităţi · numele de variabile şi funcţii: max. 63 caractere (case sensitive), începând cu o literă sau underscore; există un set de cuvinte cheie in-terzise de

PDS2010-lab-Tema1-Matlab7, elemente de bază- 2

b) MATLAB Language. Limbaj de nivel înalt (high-level matrix/array language with control flow statements, functions, data structures,input/output) cu facilităţi de tip OOP (object-oriented programming) ce permite elaborare de mici programe de test ("programming in the small") sau a unora complexe ("programming in the large").c) MATLAB Mathematical Function Library, conţine un set impresionat de funcţii, de la cele comune aritmetice, gestionare de array şi fişiere, etc, până la funcţii specializate pe domnii tehnice (grupate, tematic, în Toolbox-uri); o funcţie poate fi aplelată din linia de co- mandă sau în cadrul programelor scrise de utilizator. d) Graphics (Figures). Există o fereastră specială pentru afişarea de grafice (Graphic_Window, GraphWin.). Ea permite procesări suplimentare de vizualizare şi adnotare a graficului prezentat; mai multe GraphWin pot fi deschise simultan. e) MATLAB Application Program Interface (API). Per-mite scrierea de programe în C ce interacţionează cu Matlab precum: rutine folosite de Matlab (de obicei pt. citire/ scrierefisierelor de date, acces la diverse devices etc), apelarea Mat-lab ca şi „computational engine”.

1.1.2. Tipuri de fisiere

Fişierele asociate utilizării Matlab-ului pot fi de trei tipuri (* simbolizează numele dat respectivului fişier): 1a) *.m .....fişier de tip text (Text file), numit şi „M File”, ce contine instrucţiuni Matlab, descriind o funcţie sau un script;2a) *.mat ... fişier binar specific (Matlab Specific Binay File), ce conţine date accesibile direct unor funcţii Matlab; 3a) *.mex ... fisier tip .dll, scris în C, pe care limbajul Matlabîl poate încărca şi lansa în execuţie.

1.2. Bazele programării

1.2.1. Variabile

1.2.1.1. Introducere

1.2.1.1.1. Generalităţi

nu se cere nici o declaratie prealabilă a dimensiunii si tipuluide valori ale variabilei, aceasta fiind creeată (alocându-i-sespaţiu) când este folosită prima dată (atribuindu-i-se o valoare);

Exemplu de fereastră pentru afişarea de grafice al Matlab-ului

Page 3: 1.1. Generalităţi · numele de variabile şi funcţii: max. 63 caractere (case sensitive), începând cu o literă sau underscore; există un set de cuvinte cheie in-terzise de

PDS2010-lab-Tema1-Matlab7, elemente de bază- 3

implicit orice variabilă numerică este organizată ca masiv indexat (array) de numere complexe cu descriere de tip double pentru păr-ţile reală şi imaginară; cum memorarea secţiunilor reală şi imaginară pentru array de numere complexe se face prin intermediul a câte unei matrice, se spune că variabila implicită din Matlab este matricea (matrix) definită ca un masiv rectangular de numere reale;matricea cu dimensiuni (1x1) defineşte un scalar, iar cea cu o singură linie sau o singură coloană defineşte un vector; se pot declara explicit variabile de tip: logic, char, numeric (int16, int32, int64, uint16, uint32, uint64, single –simpla precizie pe 32 biti,double –dubla precizie pe 64 biti), cell array, structure, function handle; numele de variabile şi funcţii: max. 63 caractere (case sensitive), începând cu o literă sau underscore; există un set de cuvinte cheie in-terzise de folosit ca nume (date de functia iskeyword);

1.2.1.1.2. Variabile implicite, constante predefinite

Variabile implicite: ans (answer) este variabila ce în fereastra de comanda se asignează rezultatului ultimei operaţii executate şi căruia nu i s-a dat un nume; nargin, nargout –numărul de argumente (de intrare respectiv de ieşire) ale unei funcţii; Constante predefinite: pi, i sau j pentru -1 (! de evitat literele i şi j pentru variabila de iteraţie); inf- reprezentarea rezultatului împăr-ţirii 1/0; NaN (Not-a-Number) rezultatul împărţirii nedefinite 0/0;

1.2.1.1.3. Simboluri de operaţii între varaibile

operaţii aritmetice: +, -, * ; / \ împărţire la dreapta/stânga (dreapta, stânga indicând locul unde este împărţitorul); ^ ridicare laputere; operaţii logice: = asignare; == identic, ~= diferit; <, <=, >, >=; ~ negare; & SI logic; | SAU logic;

1.2.1.2. Matrice

1.2.1.2.1. Generarea unei matrice

A. O matrice se poate genera prin enumerarea (listarea) componentelor sale, linie cu linie , toate elementele fiind cuprinse întreparamenteze drepte ; elementele dintr-o linie se separă prin virgulă sau spaţiu; liniile se separă prin punct-şi-virgulă. Ex: A=[1 2 3 ; 4, 5, 6]

B. Alte modalităţi de generare programată a unei matrice sunt: prin funcţii dedicate, prin descărcarea dintr-un fişier extern de date.Ex: Dacă fişierul de date este de tip ASCII (zis Flat File), organizat pe linii cu acelaşi număr de componente (separaţia între linii fiind prin CR , iar între componentele unei linii prin space), atunci prin a=load (´file_name.txt ´) rezultă o variabilă a de tip matrice avândorganizarea sugerată de fişier.

C. Funcţii pentru generare de variabile particulare de tip matrice (notată cu a) :a=zeros(n, m, classname) -initializează cu zero o matrice n x m (zeros(5) initializ o matrice patrata 5x5 cu valori zero)- este folosită implict pentru declararea dimensiunii si tipului variabilei unui array;a=ones(n, m, classname) pentru iniţializare cu 1;

Page 4: 1.1. Generalităţi · numele de variabile şi funcţii: max. 63 caractere (case sensitive), începând cu o literă sau underscore; există un set de cuvinte cheie in-terzise de

PDS2010-lab-Tema1-Matlab7, elemente de bază- 4

a=eye(n,m) defineşte o matrice cu elementele primei diagonale 1 si restul zero; a=diag(v) o matrice patrată diagonală cu elementele vectorului v pe diagonala principală; a=diag(M) defineşte un vector coloană cu componentele de pe diagonala principală a matricei M; a=rand(n,m) – defineşte o matrice nxm de numere aleatoare normalizate şi cu distribuţie uniformă-; a=randn(n,m) –matrice nxm cunumere având distributie normală; a=n:m, cu n şi m numere întregi şi m>=n, : fiind operatorul colon; se creează vectorul a ce are ca valori toate numerele întregi de la nla m;a=linspace(min, max, nr_elemente), creează vectorul a cu nr_elemente distribuite echidistant între min şi max; a=logspace(min, max, nr_elemente), creează vectorul a cu nr_elemente distribuite logaritmic între 10min şi 10max.

D. O matrice existentă poate fi mărită prin definirea noilor linii şi/sau coloane şi adaugarea acestora, după modelul de generare prin enumerare a noii matrice; dacă se declară noi componente până la care matricea iniţială nu avea elemente, elementele lipsă sunt setate la valoarea zero.Ex: A(3,4)=8 pentru A=[1 2 3 ; 4 5 6] generează matricea A=[1 2 3 0; 4 5 6 0; 0 0 0 8]. Ex: V(4)=4 pentru V=[1 2 3] generează V=[1 2 3 4].

1.2.1.2.2. Selecţia unor elemente dintr-o matrice

Dacă se notează cu M o matrice şi cu V un vector, atunci: M(l, k) descrie elementul din linia l, coloana k; M(l,:) defineşte un V cu toate elementele liniei l; M(l, k:m) defineşte un V cu elementele din linia l de la coloana k la m; M(:, k) defineşte un V cu toate elementele coloanei k; M(l, k:n:m) defineşte un V cu elementele din linia l de la coloana k la m luate cu pasul n (cu particularizare şi pentru V); M(:) transformă matricea într-un vector coloană în care toate coloanele matricei se concatenează una după alta; V(:) dacă vectorul V e tip linie devine coloană, dacă e coloană ramăne la fel; M(n) dă al n-lea element al matricei; M([i,j,k]) permite selecţia doar a elementelor matricei indexate cu indicii i, j, k; în asemenea cazuri de selecţie elementele unei matrice sunt numărate (şi indexate de la indicele 1) pe un vector rezultat din coloanele concatenate.

1.2.1.2.3. Operaţii cu matrice

A. Operatii globale: adunare/ scădere, descrise prin + sau - ( operaţia cere aceleaşi dimensiuni pentru operanzi); înmulţire,descrisă prin * (C=A*B înseamnă )ܥ ,݅ )݆ = ∑ )ܣ ,݅ )ܤ݇( ,݇ )݆

ୀଵ , cerând ca nr de coloane din A să fie egal cu nr de linii din B); conjugată şi transpusă descrisă prin ´ (apostrof); împărţire la dreapta (A/B) sau la stânga (A\B) care deşi sunt echivalente cu A*(invB) respectiv (invA)*B sunt calculate ca soluţii ale ecuaţiilor X*B=A respectiv A*X=B, calcule care, deobicei, sunt mai rapide; operaţiile cer acelaşi număr coloane respectiv de linii).

B. Operatii de tip element cu element între array (AR) de dimensiuni identice: .* înmulţire; ./ împărţire AR-stânga la AR-dreapta; .\ împărţire AR-dreapta la AR-stânga; .^ ridicare la putere AR-stânga la AR-dreapta; .’ transpunere fără conjugare;

Page 5: 1.1. Generalităţi · numele de variabile şi funcţii: max. 63 caractere (case sensitive), începând cu o literă sau underscore; există un set de cuvinte cheie in-terzise de

PDS2010-lab-Tema1-Matlab7, elemente de bază- 5

C. Concatenarea matricelor: operaţia se face după direcţia liniilor dacă separatorul între matricele ce se concatenează este punct-şi-virgulă sau după coloane daca separatorul este virgula sau spaţiu (dacă se concatenează diverse matrice trebuie îndeplinite ega-litatea nr. de componente pe direcţia ce rămâne neafectată (nr.linii pentru concat după coloane, etc); Ex: B=[A, 2*A; A-2, A+5] înseamnă: A şi 2*A se concatenează pe direcţia coloanelor la fel şi A-2 şi A+5; cele doua rezultate se concateneaza după linii.

D. Eliminarea unor linii sau coloane se face prin înlocuirea componentelor acestora cu elementul vid, definit prin [];Ex: M(2:6, :)=[] implică eliminarea din matricea M a tuturor liniile între 2 si 6 inclusiv;

1.2.1.3. Spaţiul variabilelor vizibile (Base-Workspace)

Variabilele vizibile în orice moment de aşteptare a unei noi comenzi către mediul Matlab sunt prezentate îm subfereastra (SW)Base-Workspace („spaţiu de lucru”); aceste variabile:1b) se vizualizează (tip şi nume, valoare, clasa), se editează (erase, change with array editor) şi se prezintă grafic cu workspace browser;2b) se listează cu who (lista variabilelor curente) sau cu whos (lista variabilelor curente cu detalii pentru: dimensiuni, clasele cărora le aparţin, etc); 3b) se identifică decă există cu exist;Obs: pentru variabilele de tip număr prin format option se alege formatul de prezentare a valorii (dacă parametrul option este shortsau long formatul este de tip virgulă fixă cu 5 respectiv 15 cifre, iar dacă este short e long e formatul este în virgulă mobilă cu mantisape 5 respectiv 15 cifre); aceeaşi selecţie este posibilă prin meniul din FilePreferencesGeneral/Editor&Debugger/Array_Editor.

Base-Workspace se şterge/salvează/încarcă cu comenzile clear/save/ load.

1.2.2. Structuri de date predefinite

1.2.2.1. Multidimensional array

Multi-array= array cu mai mult de două dimensiuni si populat cu valori numerice; un multi-array tridimensional este practic ogrupare de mai multe matrici (==array bidimensional) de dimensiuni identice;

1.2.2.2. Cell array

Este un Array având componente de dimensiuni şi tipuri de date ce pot diferi; creat cu funcţia cell sau prin cuprinderea întreacolade a descrierii pentru componente (prin nume sau expresii) .Ex: cell (n,m) –creeaza un cell array ce contine n x m matrici goale; a={ c, d, sum(c), c.*d} creeaza cell array prin copiereacomponentelor în noua variabila a si nu memorarea unor pointeri la componente (daca ceva se schimba în c nu se schimba automat şi în a); ex de apelul componentelor: a{1} apelează pe c;

Page 6: 1.1. Generalităţi · numele de variabile şi funcţii: max. 63 caractere (case sensitive), începând cu o literă sau underscore; există un set de cuvinte cheie in-terzise de

PDS2010-lab-Tema1-Matlab7, elemente de bază- 6

1.2.2.3. Structure

Array de tip „data containers”, populat cu date de tipuri diferite, numite „câmpuri” (fields); o structură are un set de câmpuri definite, aceleaşi pentru toate instanţierile (cazurile concrete) structurii; câmpurile unei instanţieri sunt accesate prin indicatori decâmpuri (field designators) cu „dot technique”.Ex: instanţierea cu indicele k a structurii generice cu numele nume_struct se defineste prin:nume_struct(k)=struct (´nume_câmp1´, val_câmp1k, ´nume_câmp2´, val_câmp2k, ´nume_câmp3´, val_câmp3k, ...), sau prin:nume_struct(k).nume_câmp1=val_câmp1k, nume_struct(k).nume_câmp2=val_câmp2k, ...;Cu {nume_struct.nume_câmp1} se crează un cell array cu valorile câmpului nume_câmp1 din toate instanţierile lui nume_struct, adică {val_câmp11, val_câmp12,.... }.

1.2.2.4. Siruri de caractere (cuvinte)

cuvânt= arrray unidimensional de caractere, memorate prin descrierea in ASCII a caracterelor; definit prin sirul de caractere al cuvântului cuprins intre apostroafe (single quotes); memorarea unui set de cuvinte se poate face prin cuprinderea între acolade {´text1´; ´text2´; ´text3´} –cu pastrarea nr. de caracterept. fiecare cuvânt sau prin [´text1´; ´text2´; ´text3´] –ceea ce implică uniformizarea numărului de caractere prin adaugarea de blancuri.

1.2.2.5. Tipuri de date utilizator

Utilizatorul îşi poate creea propriile tipuri de date si metode pentru procesarea lor folosind clasele.

1.2.3. Set de instrucţiuni pentru controlul deşfăşurării programului (flow control)

a) toate instrucţiunile se termină cu endb) if - executie selectivă (condiţionată) după starea adevărat/fals a unor expresii/variabile de tip logic;

if logical_expression_1instructiuni

elseif logical_expresion_2instructiuni

elseif logical_expresion_3instructiuni

...else instrucţiuni end

switch value_expressioncase val1

instructiunicase val2

instructiuni...otherwise

instructiuniend

for k=limit1 :increment :limit2instructiuni

end

Obs: secţiunea :increment poate lipsicând este implicit 1; limit1, limit2 de tipintreg;

while logical_conditioninstructiuni

end

trayinstructiuni

cathinstructiuni

end

Page 7: 1.1. Generalităţi · numele de variabile şi funcţii: max. 63 caractere (case sensitive), începând cu o literă sau underscore; există un set de cuvinte cheie in-terzise de

PDS2010-lab-Tema1-Matlab7, elemente de bază- 7

c) switch - case - executie selectivă după valoarile posibile ale unei expresii/variabile de tip valoare;d) for, while -execuţia unui set de instrucţiuni de un nr. specificat/nespecificat de ori;

Obs: în locul buclelor for pentru generarea de valori ale unei funcţii y pentru pas constant al variabilei x se preferă folosirea opera-torului colon (:) pentru generarea valorilor variabilei x, prin x=init:pas:final şi apoi generarea valorilor lui y prin y(x);

e) break, continue -folosite in corpul unor instr. compuse din bucle for sau while (ce conţin teste if) pentru a finaliza instrucţiunea (break oricând şi continue în while loop) sau a finaliza iteraţia curenta (continue într-o bucla for);

f) tray - catch -folosite pentru a trata o eroare ce poate apare in execitia instrucţiunile de dupa tray;

1.2.4. Scripturi şi funcţii

Sunt componente distincte ce sunt conţinute într-un .m file.

1.2.4.1. Scripturi

Set de comenzi conţinut într-un .m file ce va fi executat în ordinea în care există; nu are mărimi (argumente) de intrare şi de ieşire; se folosesc pentru operaţii curente şi des repetate; toate variabilele declarate într-un script se menţin în base-workspace până sunt sterse sau se termină sesiunea de lucru cu Matlab, putând fi partajate (shared) cu alte scripturi sau cu comenzi date prin linia de comandă (command line interface).

1.2.4.2. Funcţii

Fiecare funcţie este cuprinsă într-un fisier de tip .m file de forma name_function.m în care name_function este numele dat funcţiei în linia de definiţie; funcţia poate avea mărimi de intrare şi/sau ieşire; se recomandă ca numele funcţiei să fie scris cu litere mici; Prima linie (de definiţie) a unei funcţii este:

function [name_outArg1, name_outArg2, ...] =name_function (name_inArg1,...) prima linie de comentariu dupa prima linie a funcţiei este afişată ca help la comanda F1; variabilele definite în corpul funcţiei sunt locale; declaraţia unei variabile locale prin persistent variable_name o face accesibilă la o reapalare a funcţiei (în care s-a definit) cu valoarea ce o avea după apelarea precedentă a funcţiei (la prima apelare o asemea variabilă este iniţializată implicit cu zero); o variabilă a unei funcţii declarată globală (prin global variable_name) poate fi accesată dintr-o altă funcţie (în care este declarată la fel ca în funcţia iniţială); o variabilă globală este vizibilă în Base-workspace după iniţializare; un fişier de funcţie *.m poate conţine pe lîngă funcţia principală (prima definită în fişier şi care dă numele fişierului) şi alte subfuncţiiutilizate doar de funcţia principală; numai în asemenea cazuri este obligatoriu ca fiecare funcţie/subfuncţie să se termine cu end; return – este comanda ce finalizează anticipat execuţia unei funcţii, programul continuând dela locul de unde funcţia a fost apelată; în corpul unei funcţii functiile Matlab nargin si nargout dau numărul argumentelor de intrare/iesire ale funcţiei; o funcţie apelată rămâne în memorie până ce este stearsă explicit cu clear; unei funcţii i se poate asocia un handle ce permite apelarea sa indirect; el se obţine prin fhande=@funtion_name;

Page 8: 1.1. Generalităţi · numele de variabile şi funcţii: max. 63 caractere (case sensitive), începând cu o literă sau underscore; există un set de cuvinte cheie in-terzise de

PDS2010-lab-Tema1-Matlab7, elemente de bază- 8

o funcţie poate fi private (cu reducere de acces) sau overloaded (implementând polimorfismul); eval(´string´) evaluaează string (ce poate conţine expresie Matlab) si execută ceea ce este acolo ca pe o comandă; feval(´string´) permite evaluarea unui string ce conţine numele unei funcţii precum şi parametrii de intrare ai acesteia daţi ca valorile unui vector (între paranteze drepte); ex: feval(´sin´, [0:pi/8:2*pi])Obs: Dacă execuţia unei funcţii este întreruptă (prin utilizarea unui BreakPoint) atunci în Base-Workspace sunt vizibile şi variabilele locale ale funcţiei cărora li s-au alocat valori; cu excepţia argumentelor de ieşire ale funcţiei aceste variabile locale dispar din Base-Workspace după „epuizarea” funcţiei.

1.2.5. Diverse

1.2.5.1. Ordinea de priorităţi în evaluarea unui nume

Atunci când un nume apare ordinea de căutare este: variabilă în workspace; subfuncţie; funcţie privată; constructor de clasă; me-todă; funcţie în directorul curent; funcţie în alte directoare până la cel rădăcină.

1.2.5.2. Editarea unui fişier .m

Simboluri utile: ... şi CarriageReturn (CR), permite continuarea unei liniei pe rândul următor; punct-şi-virgulă (;) -împiedicaafisarea rezultatului evaluării unei expresii; % -începe o linie de comentariu.

Pe o line pot fi mai multe instrucţiuni separate prin punct-şi-virgulă.

1.2.5.3. GUIDE - Guide User Interface Development Environment

Ofera un set de unelte pentru creerea GUIs (Graphic User Interface) atât pentru Layout cât si pentru generarea unui .m file(adding callbacks function to to the GUI .m file) ce permite gestionarea interacţiunilor cu utilizatorul.

1.3. Grafice de funcţiiMatlab oferă un set de funcţii (numite generic Ploting Function) pentru construcţie de grafice de funcţii intr-o fereastră separată

de Command Window, numită „fereastra de figură” (FW- Figure Window). Graficele în 2D sau 3D, permit numeroase facilităţi de descriere generate prin program. În plus, prin toolbar-ul FW se oferă numeroase facilităţi de procesare a graficelor prezentate (din categoriile Save, Print, Edit, View, Inset, etc).

1.3.1. Comenzi de bază pentru definirea graficelor

1.3.1.1. Funcţia plot -linear 2D plot-

Funcţia plot permite configurarea unor grafice; cu parametrii variabili, principalele variante de utilizare ale funcţiei sunt:

1.3.1.1.1. Definirea dependenţelor trasate

plot(Y, ’Property_Name’, Property_Value,...) – traseaza dependenţa coloanelor lui Y funcţie de indexul său cu proprietăţi impuse

Page 9: 1.1. Generalităţi · numele de variabile şi funcţii: max. 63 caractere (case sensitive), începând cu o literă sau underscore; există un set de cuvinte cheie in-terzise de

PDS2010-lab-Tema1-Matlab7, elemente de bază- 9

pentru linia de grafic; dacă Y are valori complexe se trasează evoluţiile lui real(Y) şi imag(Y); plot (X1,Y1, ’Property_Name’, Property_Value,... ) –traseaza, pentru toate coloanele lui Y1, dependenţa de valorile lui X1; generalizată prin: plot(X1,Y1, X2,Y2,...Xn,Yn); toate perechile (Xk, Yk) sunt vectori cu aceeaşi dimensiune.Obs: comanda hold on menţine ce a fost deja desenat şi proprietăţile definite pentru axe aşa încât o nouă comandă plot să adauge un nou grafic cu noi proprietăţi la cele existente deja; hold off revine la proprietăţile implicite (default) pentru axe şi sterge ce era desenat.

1.3.1.1.2. Handle asociate unui grafic

funcţia plot întoarce un plot_handle de tip vector coloana cu o valoare (de tip intreg) pentru fiecare curbă a graficului; pentru graficul curent (se poate obţine un handle (pentru o accesare ulterioară), fie:

-pentru axele curente, prin handle_axes=gca; gca =get current axes handle;- pentru graficul integral (numit figure) prin: handle_figure=gcf; gcf=get current figure handle;

1.3.1.1.3. Definirea caracteristicilor liniilor graficelor (explicitarea lui ’Property_Name’, Property_Value)

plot(..., LineSpec,...) în care LineSpec este o combinaţie de max 3 simboluri cuprinse între apostroafe şi descriid: line style (- liniecontinua, -- linie discontinua, : -linie punctata, -. linie punct) MarkerType (ex: ? o * . x ) color (r g b c m y k w pentru red green bluecyan magenta yellow black white);Ex: plot(Y,´--*r´) –grafic cu linie intrerupta, cu markeri * si de culoare rosie;Obs: echivalent scrierii condensate se poate folosi:

i) tehnica Matlab de descriere a proprietăţilor unui obiect prin succesiunea ..., ´Property_name´, property_value, .... ; Ex plot(....,´LineStyle´, ´--´, ´Marker´, ´o´, ´©olor´, ´r´,...);

ii) axes_handle al sist. de axe si funcţia set pentru fiecare proprietate:axes_handle=plot(x1, y1, x2, y2, x3, y3)set(axes_handle, ´Linewidth´,2, {´LineStyle´},{´--´,´-´,´:´})set(axes_handle, {´color´}, {´r´,´r´,´y´});

1.3.1.1.4. Adnotarea graficelor

titlu pentru grafic si axe: title(´text´); xlabel(´text´), ylabel(´text´); text inserat începind de la coordonatele (x,y) ale figurii cu proprietăţi (de tip Font, Size, Colours, etc) date exeplicit:

text(x,y,´text´,’Property_Name’, Property_Value,...); grid on, grid off pentru activarea/dezactivarea caroiajului (gridul) gaficului.

1.3.1.2. Alte funcţii pentru descriere grafică

1.3.1.2.1.1 Variante tip plot pentru grafice cu axe in coordonate logaritmice se inlocuieste funcţia plot (pastrându-se felul de specificare a argumentelor) cu una

Page 10: 1.1. Generalităţi · numele de variabile şi funcţii: max. 63 caractere (case sensitive), începând cu o literă sau underscore; există un set de cuvinte cheie in-terzise de

PDS2010-lab-Tema1-Matlab7, elemente de bază- 10

dintre funcţiile: loglog –pt. ambele axe logaritmice, semilogx –pt. axa x log şi y lineară, semilogy –pt. axa y log şi x lineară; pentru grafica 3D se foloseste funcţia plot3(X1,Y1,Z1,...); pentru grafice speciale: in alt tip de coordonate (polar) sau cu stiluri diferite (bar, hist, pie, stairs, stem, etc); trasarea graficului unei funcţii între limite impuse: fplot(function_name, limits, nr_points, ...LineSpec...)

1.3.1.2.1.2 Grafice de tip discret Funcţia stem permite reprezentarea discretă a valorilor unei funcţii print-un set de segmente verticale la valori discrete aleabscisei; variante stem(y), stem (x,y), etc.

1.3.1.3. Partajarea Graphic Window

Cu funcţia subplot, pe aceeasi graphic window se pot selecta mai multe suprafeţe (rectangular pane) fiecare cu un sistem de axe într-o definire matricială (n,m) , n pe verticală, m pe orizontală; suprafeţele adiacente pot fi concatenate.

Identificarea suprafeţelor se face prin parametrul p din subplot(m,n,p) ce are valori de la 1 la mxn, numerotarea facându-se dinstânga sus, continuând pe prima linie până la capăt apoi a doua linie, etc. Obs: subplot dă si handle pentru suprafaţa de desenare selectată. Ex: subplot(3,2,1) –selecteaza sist. de axe din suprafata stânga sus (în total 6 suprafete organizate pe 3 linii si 2 coloane); subplot (3,2,1:2) uneşte suprafetele de pe prima linie într-o singură suprafaţă; subplot(3,2,[1 3]) uneşte suprafeţele de pe coloana 1 liniile 1 si 2 (ce aveau parametrul p cu valorile 1 şi 3;

1.3.2. Unelte pentru editarea graficelor din Figure Window (plottools)

Un grafic prezent in Window Figure poate fi suspus unui complex proces de procerare prin intermediul unui set de unelte(Plotting Tools) ce permit modificarea felului în care se prezintă graficul (tip/lăţime/culoare linie, tip/dimensiune/culoare marker, nume pentru grafic si axe, legenda, etc) şi notări pe grafic (texte, semne grafice). Mediul de lucru ce este activat automat când un grafic este afişat (urmare a unei comenzi de tip plot); mediul poate fi apelat siprin comanda plottools, când poate fi folosit pentru trasarea de grafice pentru orice variabilă numerică prezentă în workspace cu controlul integral al caracteristicilor graficului.

Graficul procesat poate fi salvat intr-un fisier de tip .fig (ce poate fi deschis cu Matlab) sau poate fi exportat în alte formate (jpeg,tiff) pentru tipărire sau salvare.

1.4. Funcţii de procesare importante

1.4.1. Procesarea sirurilor de caractere (char_array)

1.4.1.1. Creerea de char_array

blanks((n) –creerea unui şir cu char blanc (0x20); s=sprintf(format, A,...) –creerea sirului de caractere s din valorile numerice ale

Page 11: 1.1. Generalităţi · numele de variabile şi funcţii: max. 63 caractere (case sensitive), începând cu o literă sau underscore; există un set de cuvinte cheie in-terzise de

PDS2010-lab-Tema1-Matlab7, elemente de bază- 11

matricii A cu descriere folosind un format impus (descris ca în C); t=strcat(s1, s2, s3) – concatenează pe orizontal sirurile s1..s3; T=strvcat(s1, s2, s3) –concat. pe verticală.

1.4.1.2. Modificarea unui char_array

C=deblank(C) scoate blanc-urile de la sfârşitul sirului; t=strtrim(str) –elimină blanc-urile de la extremităţile lui str; C=lower(B) –conversie la litere mici; C=upper(B) –conversie la litere mari; C=sort(B, mode) –sorteaza ascendent sau descendent pt. fiecare coloanaa matricii B; str=strrep(str1, str2, str3) –inlocuieste în str1 orice apariţie a lui str2 cu str3;

1.4.1.3. Citire/operare a unui char_array

eval(expression) sau [a1 a2 a3]=eval(function(par1, par2, par3)) –execută o comanda Matlab desrisă prin şirul expression sau execută funcţia function pt. parametrii dati; a=sscanf(s, format, size) –converteşte size caractere din sirul s după formatul format si le pune inmatricea A (! caracterele ce nu sunt de tipul indicat în format sunt ignorate);

1.4.1.4. Cautare şi comarare a unui char_array

K=findstr(str1, str2) –în K fiecare pozitie a inceputului lui sir2 în sir1; a=strcmp(str1, str2) –compara sirurile si dă a true (1) saufalse(0); a=strcmpi –comparaţie cu ignorarea case; a=strncmp(str1, str2, n) –compară daca str1 si str2 au primele n caractere identice; strncmpi; strtok.

1.4.1.5. Conversie între tipuri de date numeric şi string

S=char(X) –conv valorile intregi din X aduse in gama 0:255 prin fix(rem(A,256)) la caractere ASCII; double –conv. un număr la dublă precizie; intr2str –intreg la string; num2str –nr. la string; str2num –string la număr; str2double –string la double; s=dec2hex(a) –nr. intreg a se conv string ce-l descrie în hexa; a=hexa2dec(a) –operatia inversa; str=dec2bin(a,n) –converteste a în binar pe n biţi (<52 biti); bin2dec;

1.4.2. Funcţii matematice importante

1.4.2.1. Aproximarea numerelor

rotunjiri: ceil (spre întregul mai apropiat de +) , fix (spre întregul mai apropiat de zero), floor (spre întregul mai apropiat de -),round (spre intregul mai apropiat);restul împărţirii lui x cu y: rem(x,y);aproximări prin fracţii: rat(x) prin număr raţional, rats(x) –prin număr rational.

1.4.2.2. Divizori, multipli

gcd, lcm –calculează cmmdc respectiv cmmmc a două numere.

1.4.2.3. Valori pt numere complexe

abs(x) -modulul ; angle(x) -unghiul; unwrap(argument) –argumentul este adus la primul cadran (-pi, pi); conj(x) –val-complex con-

Page 12: 1.1. Generalităţi · numele de variabile şi funcţii: max. 63 caractere (case sensitive), începând cu o literă sau underscore; există un set de cuvinte cheie in-terzise de

PDS2010-lab-Tema1-Matlab7, elemente de bază- 12

jugată; imag(x), real(x) –părţile imaginara, reală;

1.4.2.4. Funcţii nelineare

a^n –a la puterea n; pow2(x) -2 la puterea x –număr real sau complex; pow2(m,n) –m*2^n cu n intreg şi m real; log(x) –logaritmulnatural a lui x; log10(x) –logaritmul zecimal a lui x; sqrt(x) –rădăcina pătrată a lui x; exp(x) –e la x;

1.4.2.5. Funcţii trigonometrice si hiperbolice

trigonometrice directe: sin(x) cos(x) tan(x) cot(x), sec(x) csc(x) cu x număr real sau complex; trigonometrice inverse: asin, acos, -cu iesire reala daca intrarea în -1,1 altfel iesire nr. complex; atan, acot, asc, acschiperbolice directe: sinh(x) cosh(x) tanh(x) coth(x), sech(x) csch(x) cu x număr real sau complex; hiperbolice inverse: asinh,acosh, atanh, acoth, asch, acsch.

1.4.2.6. Funcţii matematice pentru matrice

analiza matriceală: det(X); inv(X); rank(X) rangul matricei (ordinul minorului cel mai mare cu determinant dir. de zero); norm(X) ,norma; trace(X), urma matricei=suma elementelor de pe diagonală; descompunere si factorizare: chol, lu, qr, qz, pinv, rref;calculul valorilor proprii: eig(X);

1.4.3. Calcule statistice

min, max –valorile extreme pentru un vector sau o matrice (când căutarea se face pe fiecare coloana), indicându-se valoarea şi eventual poziţia valorii (valorilor) extreme căutate; ( de exemplu max(vect) respectiv [val_max, poz]=max(vect)) ; sum –suma unuivector sau a fiecărei coloane dintr-o matrice (când rezultatul e un vector linie); prod – elementelor fiecărei coloane dintr-o matrice (rezultatul e un vector linie); mean –val. medie a unui vector; median –val. mediană a unui vector; std –abaterea standard a unuivector; diff –diferenţa între elementele consecutive dintr-un vector; hist –histograma a unui vector; cov – covarianţa unui vector;

1.4.4. Operaţii cu polinoame

poly –calc. coef. polinomului când se dau rădăcinile; polyval- val unui polinom într-un punct; polyfit –aprox polinomială a unui set de date; residue –desc. în fracţii simple a raportului a 2 polinoame; roots –calc. răd. unui polinom;

1.4.5. Interpolare şi aprox. evol. experiemntale

yi=interp1(x,Y,xi, method, extrap) –dă valorile yi pentru punctele xi, fiind cunoscute valorileY pentru punctele x; method poate fi:´nearest´,´linear´,´spline´,´pchip´; extrap permite cu metodele spline (funcţii Spline cubice) si pchip (polin. Hermite cubice) si cazuri cind xi este dincolo de comeniul x; metoda spline da cele mai bune rezultate pentru funcţii netede, iar pchip nu are oscilaţii sau supracreşteri pentru funcţii nenetede. Obs: mai exista variante pentru fucţii bidimensionale (interp2) sau spaţiale (interp3).

Page 13: 1.1. Generalităţi · numele de variabile şi funcţii: max. 63 caractere (case sensitive), începând cu o literă sau underscore; există un set de cuvinte cheie in-terzise de

PDS2010-lab-Tema1-Matlab7, elemente de bază- 13

interpft –foloseste descrierea prin fft a funcţiilor periodice, polyfit –apox. cu polinom de grad impus.

1.5. Depanatorul de programe (Debugger)Matlab oferă un depanator extins care permite examinarea în profunzime a funcţiilor folosite, a spaţiului de lucru. Depanarea este bazată pe inseţia de puncte de întrerupere (stopare) a execuţiei programului (numite Breakpoints, BP). Inserţia

se poate face înaintea de a porni execuţia unui program sau în timpul în care acsesta este oprit deoarece a ajuns la un BP. La atingerea unui BP execuţia programului este oprită fiind posibilă evaluarea „urmelor” execuţiei până în acel punct; în principal

asta înseamnă examinarea spaţiului variabilelor vizibile (Base Workspace). Performantele depanatorului sunt amplificate de faptul că mediul de programre este de tip „interpreter” (în varianta translaţiei într-

un cod intermediar şi execuţia acestuia) ceea permite corecţii în program ce urmează a fi executat şi în spaţiul variabilelor la orice oprire a execuţiei (când un BP s-a atins) şi continuarea execuţiei cu programul modificat (ceea ce nu este posibil pentru un program compliat).

Dintr-un BP atins execuţia poate continua în varianta linie cu linie, până la următorul BP sau ieşirea din execuţia de program Comenzile de depanare pot fi vizualizate cu comanda help debug sau din submeniul Debug al ferestrei de bază a Matlab.

Page 14: 1.1. Generalităţi · numele de variabile şi funcţii: max. 63 caractere (case sensitive), începând cu o literă sau underscore; există un set de cuvinte cheie in-terzise de

PDS2010-lab-Tema1-Matlab7, elemente de bază- 14

1.6. Exerciţii

1.6.1. Exerciţii rezolvate

1.6.1.1. ExR0: mediu de dezvoltare (obligatoriu)

Capitolul 1.1 (Generalităţi) al materialului.

1.6.1.2. ExR1: generalităţi (2pct)

Explicaţi următoarea secvenţă de comenzi: t=(0:0.001:1);x=sin(2*pi*50*t)+2*sin(2*pi*120*t);y=[1; zeros(99,1)];z=ones(100,1);a=[1 zeros(1,5)]’;c=(a,:,ones(1,3));

d=[1 3 5 7 9 11];d1=[d ones(1,3)];d11=[d, ones(1,3)];d12={d,ones(1,3)};d13=[d;d];d15=[d’;d’];d16=[d’,d];d17=d*d;d18=d.*d;d19=d.\d;d20=d.+d’’;d21=[d;d;ones(2,2)];d22=[[d;d] ones(2,4];d23=d([1,3,6]);

f=[[d;d];ones(3,6)];f1=f(:,[1,3,5]);f2=f(2:4,2:5);f4=f(:);

g1=linspace(1, 10, 2);g2=linspace(1, 10, 0.5);g3=linspace(1, 10, -0.5);g4=linspace(1, 10, 5);

Page 15: 1.1. Generalităţi · numele de variabile şi funcţii: max. 63 caractere (case sensitive), începând cu o literă sau underscore; există un set de cuvinte cheie in-terzise de

PDS2010-lab-Tema1-Matlab7, elemente de bază- 15

1.6.1.3. ExR2: (1pct)

Explicaţi următoarea secvenţă de comenzi: n=0:1:50;a=-(1/10)+(pi/5)*i;e2=1.5*exp(a*n);figure(1);subplot(2,1,1);stem(n,real(e2), 'LineWidth', 2.5); grid;xlabel('n'); ylabel('Amplitude');axis([0 50 -1 1.5]);title('Partea reală a exp. complexe');subplot(2,1,2);stem(n, imag(e2), 'LineWidth', 2.5); grid;xlabel('n'); ylabel('Amplitude');axis([0 50 -1 1.5]);title('Partea imaginară a exp. complexe');

1.6.1.4. ExR3: (2 pct)

Explicaţi următoarea secvenţă de comenzi: clc%date initialefx=25; A=1.6; RezFrec=1; NrEsantPePerioada=40; CuFereastra=1; NrZero=20FrecEsant=NrEsantPePerioada*fx;NrFFT=fix(FrecEsant/RezFrec);NrEsantSemnal=NrFFT-NrZero;%se generaza semnalulx=[A*sin(2*pi*fx*(0:(NrEsantSemnal-1))/FrecEsant), zeros(1,NrZero)];%se genereaza si aplica fereastraw=ones(NrFFT,1);cgw=1/NrFFT;xw=x.*w';%se calculeaza FFTy=2*cgw*abs(fft(xw,NrFFT));%desenesubplot(4,1,1) %esantioanele analizateplot(x)text(10,0,strcat('A=', num2str(A), ' fx=', num2str(fx), 'Hz RezFrec=',...

num2str(RezFrec), 'Hz', ' NrFFT=', num2str(NrFFT)))xlabel('NrEsant');

Page 16: 1.1. Generalităţi · numele de variabile şi funcţii: max. 63 caractere (case sensitive), începând cu o literă sau underscore; există un set de cuvinte cheie in-terzise de

PDS2010-lab-Tema1-Matlab7, elemente de bază- 16

subplot(4,1,2)plot(w) % fereastra fereastraxlabel('NrEsant');text(10,0.5,strcat('fact scara fereastra= ', num2str(fix(cgw*10000)/10000)))subplot(4,1,3)plot(xw)xlabel('NrEsant')subplot(4,1,4)plot ((0:NrFFT-1)*RezFrec,y, 'marker', '*', 'LineStyle', ':', 'color', 'r')xlabel('Hz')text(40,0.5, strcat('A~=', num2str(y(fix(fx/RezFrec)+1)), ' fx~=', num2str((fix(fx/RezFrec))*RezFrec), 'Hz'))

1.6.1.5. ExR4: fisiere (0.5 pct)

Explicaţi următoarea secvenţă:

function GenFile(FileIn, FileOut, VectIn, VectOut)% face conversie in format textVectStrIn=num2str(VectIn);VectStrOut=num2str(VectOut);% scrie datelefind=fopen(strcat(FileIn,'.txt'),'w');fwrite(find,VectStrIn);fclose(find);find=fopen(strcat(FileOut,'.txt'),'w');fwrite(find,VectStrOut);fclose(find);

1.6.2. Probleme propuse

1.6.2.1. PrP1 (max. 2 pct)

Scripturi de prelucrare numerică a unor matrice ce să folosească instrucţiunile pentru controlul desfăşurării unui program (if, for, switch-case, while, tray-catch, break-continue).

1.6.2.2. PrP2 (max. 3 pct)

Scripturi ce să exemplifice utilizarea funcţiilor de prezentare grafică 2D, plot, subplot, hold on/off, asignare de axe, axe multiple, culori si simboluri, text pe grafic (cu folosirea funcţiilor de conversie numere-text, concatenare siruri); pot fi unul sau mai multe exemple.

Page 17: 1.1. Generalităţi · numele de variabile şi funcţii: max. 63 caractere (case sensitive), începând cu o literă sau underscore; există un set de cuvinte cheie in-terzise de

PDS2010-lab-Tema1-Matlab7, elemente de bază- 17

1.7. NotareObligatoriu, studentul trebuie să prezinte suportul editat al materialului prezent precum şi un material editat cu explicaţii pentru

problemele rezolvate (funcţionalitatea/organigrama, descrierea funcţiilor Matlab folosite, analiza corectitudinii cu eventuale completări); Studentul poate aborda cel mult două probleme rezolvate şi o problemă propusă; pentru fiecare problemă propusă studentul

trebuie să prezinte suportul editat al rezolvării cu explicaţiile corespunzătoare. Obs: punctajul maxim este corespunzător notei 10 la prezentare şi susţinere; numai note >=5 se transformă în punctaj.

Page 18: 1.1. Generalităţi · numele de variabile şi funcţii: max. 63 caractere (case sensitive), începând cu o literă sau underscore; există un set de cuvinte cheie in-terzise de

PDS2010-lab-Tema1-Matlab7, elemente de bază- 18

PDS-Lab-Tema1 Matlab7, Elemente de bază .......................................................................................................................................... 11.1. Generalităţi ........................................................................................................................................................................................... 1

1.1.1. Definire, componente ...................................................................................................................................................................... 11.1.2. Tipuri de fisiere............................................................................................................................................................................... 2

1.2. Bazele programării................................................................................................................................................................................. 21.2.1. Variabile......................................................................................................................................................................................... 2

1.2.1.1. Introducere .............................................................................................................................................................................. 21.2.1.1.1. Generalităţi ........................................................................................................................................................................ 21.2.1.1.2. Variabile implicite, constante predefinite............................................................................................................................... 31.2.1.1.3. Simboluri de operaţii între varaibile ...................................................................................................................................... 3

1.2.1.2. Matrice .................................................................................................................................................................................... 31.2.1.2.1. Generarea unei matrice....................................................................................................................................................... 31.2.1.2.2. Selecţia unor elemente dintr-o matrice ................................................................................................................................. 41.2.1.2.3. Operaţii cu matrice ............................................................................................................................................................. 4

1.2.1.3. Spaţiul variabilelor vizibile (Base-Workspace) .............................................................................................................................. 51.2.2. Structuri de date predefinite............................................................................................................................................................. 5

1.2.2.1. Multidimensional array .............................................................................................................................................................. 51.2.2.2. Cell array ................................................................................................................................................................................. 51.2.2.3. Structure.................................................................................................................................................................................. 61.2.2.4. Siruri de caractere (cuvinte) ...................................................................................................................................................... 61.2.2.5. Tipuri de date utilizator ............................................................................................................................................................. 6

1.2.3. Set de instrucţiuni pentru controlul deşfăşurării programului (flow control)........................................................................................... 61.2.4. Scripturi şi funcţii ............................................................................................................................................................................ 7

1.2.4.1. Scripturi ................................................................................................................................................................................... 71.2.4.2. Funcţii ..................................................................................................................................................................................... 7

1.2.5. Diverse .......................................................................................................................................................................................... 81.2.5.1. Ordinea de priorităţi în evaluarea unui nume ............................................................................................................................... 81.2.5.2. Editarea unui fişier .m ............................................................................................................................................................... 81.2.5.3. GUIDE - Guide User Interface Development Environment............................................................................................................ 8

1.3. Grafice de funcţii ................................................................................................................................................................................... 81.3.1. Comenzi de bază pentru definirea graficelor ...................................................................................................................................... 8

1.3.1.1. Funcţia plot -linear 2D plot- ....................................................................................................................................................... 81.3.1.1.1. Definirea dependenţelor trasate ........................................................................................................................................... 81.3.1.1.2. Handle asociate unui grafic ................................................................................................................................................. 91.3.1.1.3. Definirea caracteristicilor liniilor graficelor (explicitarea lui ’Property_Name’, Property_Value) .................................................... 91.3.1.1.4. Adnotarea graficelor ........................................................................................................................................................... 9

Page 19: 1.1. Generalităţi · numele de variabile şi funcţii: max. 63 caractere (case sensitive), începând cu o literă sau underscore; există un set de cuvinte cheie in-terzise de

PDS2010-lab-Tema1-Matlab7, elemente de bază- 19

1.3.1.2. Alte funcţii pentru descriere grafică ............................................................................................................................................ 91.3.1.3. Partajarea Graphic Window ......................................................................................................................................................10

1.3.2. Unelte pentru editarea graficelor din Figure Window (plottools) .........................................................................................................101.4. Funcţii de procesare importante.............................................................................................................................................................10

1.4.1. Procesarea sirurilor de caractere (char_array)...................................................................................................................................101.4.1.1. Creerea de char_array..............................................................................................................................................................101.4.1.2. Modificarea unui char_array......................................................................................................................................................111.4.1.3. Citire/operare a unui char_array................................................................................................................................................111.4.1.4. Cautare şi comarare a unui char_array ......................................................................................................................................111.4.1.5. Conversie între tipuri de date numeric şi string ...........................................................................................................................11

1.4.2. Funcţii matematice importante ........................................................................................................................................................111.4.2.1. Aproximarea numerelor ............................................................................................................................................................111.4.2.2. Divizori, multipli.......................................................................................................................................................................111.4.2.3. Valori pt numere complexe .......................................................................................................................................................111.4.2.4. Funcţii nelineare ......................................................................................................................................................................121.4.2.5. Funcţii trigonometrice si hiperbolice...........................................................................................................................................121.4.2.6. Funcţii matematice pentru matrice ............................................................................................................................................12

1.4.3. Calcule statistice ............................................................................................................................................................................121.4.4. Operaţii cu polinoame.....................................................................................................................................................................121.4.5. Interpolare şi aprox. evol. experiemntale .........................................................................................................................................12

1.5. Depanatorul de programe (Debugger)....................................................................................................................................................131.6. Exerciţii ...............................................................................................................................................................................................14

1.6.1. Exerciţii rezolvate ...........................................................................................................................................................................141.6.1.1. ExR0: mediu de dezvoltare (obligatoriu) ...................................................................................................................................141.6.1.2. ExR1: generalităţi (2pct) ..........................................................................................................................................................141.6.1.3. ExR2: (1pct)............................................................................................................................................................................151.6.1.4. ExR3: (2 pct)..........................................................................................................................................................................151.6.1.5. ExR4: fisiere (0.5 pct) ..............................................................................................................................................................16

1.6.2. Probleme propuse ..........................................................................................................................................................................161.6.2.1. PrP1 (max. 2 pct) ....................................................................................................................................................................161.6.2.2. PrP2 (max. 3 pct) ....................................................................................................................................................................16

1.7. Notare.................................................................................................................................................................................................17