Sunteți pe pagina 1din 18

MEDII DE CALCUL INGINERESC – Îndrumar de laborator 27

L2. Functii MATLAB de interes general. Functii matematice uzuale.


Reprezentarea graficelor

1. Scopul lucrarii
Scopul acestei lucrari de laborator consta în însusirea principalelor functii MATLAB de
interes general, a functiilor matematice utilizate în rezolvarea problemelor tehnice, respectiv
în fixarea comenzilor si facilitatilor de reprezentare grafica a rezultatelor numerice.

2. Chestiuni de studiat

2.1. Functii MATLAB de interes general


2.2. Functii matematice uzuale
2.3. Reprezentarea graficelor 2D
2.4. Reprezentarea graficelor 3D
2.5. Configurarea graficelor
2.6. Aplicatii numerice

3. Elemente teoretice si exemple de calcul

3.1. Functii MATLAB de interes general

3.1.1. Despre variabile si constante. Ca alte limbaje de programare, MATLAB foloseste


variabile si constante. MATLAB nu necesita instructiuni de declaratie sau dimensionare a
variabilelor. Când MATLAB întâlneste un nou nume de variabila, acesta creaza automat
variabila si aloca memoria necesara. Daca variabila deja exista, MATLAB schimba
continutul acesteia si daca este necesar aloca o alta cantitate de memorie. De pilda tastati:
» num_studenti = 25 (1)
MATLAB creaza o matrice 1x1 numita num_studenti si aloca valoarea 25 singurului
element al matricei.
Numele de variabile constau dintr-o litera, urmata de un numar de litere, cifre, etc.
MATLAB foloseste doar primele 19 caractere ale unui nume de variabila. MATLAB face
deosebirea între litere mari si mici (este case sensitive). A si a nu reprezinta aceeasi
variabila. De pilda, nu puteti lansa functia Plot ci trebuie sa lansati functia plot. În mod
similar, variabila a nu este tot una cu variabila A. Trebuie notat faptul ca daca folositi
functia help, numele functiilor sunt afisate cu litere mari, (de pilda PLOT) însa doar cu
scopul de a le scoate în evidenta fata de restul textului. Nu folositi litere mari când lansati
functii MATLAB.
Spatiile de tip blanc în jurul operatorilor, cum ar fi -, :, si ( ), sunt optionali, si pot
îmbunatati claritatea programului. Pentru a vizualiza o matrice asociata unei variabile,
tastati numele variabilei respective în Command Window. Printre constantele întâlnite în
MATLAB, se numara cele prezentate în Tabelul 1.
28 MEDII DE CALCUL INGINERESC – Îndrumar de laborator

Tabel 1
pi 3.14159265...
i sqrt(-1)
j sqrt(-1)
eps Precizia relativa în virgula mobila 2.2204.10-16
realmin Cel mai mic numar în virgula mobila 2.2251.10-308
realmax Cel mai mare numar în virgula mobila 1.7977.10-308
Inf Infinit
NaN Not a number

Infinite (Inf) este generat prin împartirea cu zero a uni numar ne-nul, sau prin evaluarea
unor expresii matematice care depasesc numarul realmax.
Not-a-number (NaN) este generat când se încearca evaluarea expresiilor de genul 0/0 sau
Inf-Inf care nu au valori matematice bine definite.
MATLAB foloseste pentru numere notatia zecimala conventionala, cu punct zecimal
optional si semne plus sau minus. Notatia stiintifica foloseste litera e pentru a specifica 10 la
o putere. Numerele imaginare folosesc fie i fie j ca sufix. Iata câteva exemple de numere:

3 -99 0.0001 (2)


9.6397238 1.60210e-20 6.02252e23
1i -3.14159j 3e5i

Toate numerele sunt stocate intern folosind formatul long standardizat, având o precizie
de circa 16 cifre semnificative si variind între realmin si realmax.

3.1.2. Introducerea functiilor si comenzilor. În MATLAB puteti lansa doar un singur


proces simultan. Daca MATLAB este ocupat cu rularea unei functii, orice alta comanda
lansata nu va putea fi executata. Comanda urmatoare va fi lansata când cea anterioara s-a
încheiat.
Puteti întrerupe un program în executie în orice moment, apasând combinatia de taste
Ctrl+C sau Ctrl+Break.
Pentru a introduce mai multe functii într-o singura linie de comanda, separati functiile cu
o virgula ( , ) sau punct si virgula ( ; ). Prin folosirea semnului punct si virgula ( ; ) se
elimina afisarea rezultatului comenzii precedente. De pilda, plasati 2 functii pe o linie pentru
a construi un tabel de logaritmi :
» x = (1:10)'; logs = [x log10(x)] (3)

apoi apasati Enter sau Return pentru a lansa functiile în ordine de la stânga la dreapta.
Daca o instructiune nu încape pe o linie, folositi simbolul "..." pentru a indica faptul ca
aceasta instructiune continua pe linia urmatoare, apasati apoi Enter sau Return pentru a
avansa la linia urmatoare si apoi continuati introducerea instructiunii. De pilda:
» s = 1 - 1/2 + 1/3 - 1/4 + 1/5 - 1/6 + 1/7 ... (4)
- 1/8 + 1/9 - 1/10 + 1/11 - 1/12;
Functia format controleaza formatul numeric al valorilor afisate de MATLAB. Functia
afecteaza doar afisarea numerelor, nu si modul de calcul si salvare. Iata câteva exemple de
formate, împreuna cu rezultatele furnizate. Tastati:
MEDII DE CALCUL INGINERESC – Îndrumar de laborator 29

» format short (5)

» x = [4/3 1.2345e-6] (6)

x= (7)
1.3333 0.0000
» format short e (8)

»x (9)
x= (10)
1.3333e+000 1.2345e-006

» format long (11)

»x (12)

x= (13)
1.33333333333333 0.00000123450000

» format long e (14)

»x (15)

x= (16)
1.333333333333333e+000 1.234500000000000e-006

Functia format poate în plus controla interspatiile la afisarea textului în Command


Window folosind urmatoarele variante:
format compact pentru a suprima liniile vide; acest format va permite totodata sa
vizualizati mai multe informatii în Command Window.
format loose pentru a afisa liniile vide; acest format permite o vizualizare mai usoara a
informatiilor.
Daca tastati simbolul %, MATLAB întelege ca ceea ce urmeaza este un comentariu.
Comenzile Cut, Copy, Paste din meniul Edit permit editarea textului introdus în
Command Window. Unele dintre aceste comenzi pot fi accesate si din meniul contextual.
Pentru a reapela comenzile sau functiile pe care le-ati introdus anterior utilizati în mod
repetat tasta sageata . De pilda, sa presupunem ca din greseala ati introdus:

» rho = (1+ sqt(5))/2 (17)

MATLAB va raspunde cu:

??? Undefined function or variable 'sqt'. (18)

Deoarece în exemplul de mai sus s-a introdus gresit functia sqt în loc de sqrt, pentru a nu
retasta întreaga instructiune, apasati tasta . Linia tastata anterior este reafisata. Folositi
30 MEDII DE CALCUL INGINERESC – Îndrumar de laborator

tastele sageata stânga sau dreapta pentru pozitionarea cursorului, pentru a putea
corecta functia prin introducerea literei r care lipseste. Folosirea repetata a tastei
reapeleaza linii de comanda tastate anterior. Functiile pe care le-ati introdus sunt memorate
într-un buffer.
Pentru stergerea comenzilor afisate în Command Window folositi comanda clc. Aceasta
comanda nu sterge variabilele din workspace, ci doar afisarea comenzilor. Prin urmare
puteti continua sa folositi tasta pentru a reapela functii lansate anterior. Similar functiei
clc, functia home muta prompt-ul pe primul rând si prima coloana în fereastra Command
Window.
Daca o linie de comanda se încheie cu punct si virgula (;), MATLAB lanseaza
instructiunea, dar în urma apasarii tastei Enter sau Return, nu afiseaza nimic pe ecran.
Aceasta comanda devine utila în cazul generarii matricelor mari. De pilda, daca tastati:

» A = rand(200); (19)

si apoi apasati tasta Enter, MATLAB creaza matricea A dar nu o afiseaza pe ecran.
3.1.3. Înregistrarea unei sesiuni de lucru. Functia diary creaza o copie a sesiunii dvs.
MATLAB într-un fisier pe disc, incluzând instructiunile introduse de la tastatura si
raspunsul sistemului în Command Window, exclusiv graficele. Puteti vizualiza si edita
fisierul text rezultant folosind orice procesor de text. Pentru a crea un fisier pe disc, denumit
mai_03.out care contine toate functiile pe care le introduceti si toate raspunsurile
MATLAB, tastati diary('mai_03.out'). Pentru a întrerupe înregistrarea sesiunii, folositi
diary('off').
Puteti vizualiza informatia corespunzatoare unei sesiuni utilizând Command History, care
contine o lista a tuturor functiilor executate în sesiunea curenta.

3.1.4. Utilizarea functiei Help. Accesarea documentatiei MATLAB este posibila folosind
ferestrele si functiile de tip help cu facilitatile specifice, Tabel 2.
Tabel 2
Functia Descriere
help Afiseaza M-file help în Command Window pentru functia specificata
lookfor Afiseaza în Command Window o lista si o scurta descriere pentru toate functiile a
caror scurta descriere include cuvântul cheie specificat

Pentru a capata rapid informatii despre o functie, de pilda trace, se tasteaza în Command
Window:

» help trace (20)

MATLAB va afisa informatii despre destinatia si sintaxa functiei trace:


TRACE Sum of diagonal elements. (21)
TRACE(A) is the sum of the diagonal elements of A, which is
also the sum of the eigenvalues of A.
MEDII DE CALCUL INGINERESC – Îndrumar de laborator 31

3.1.5. Spatiul de lucru MATLAB (MATLAB Workspace). Spatiul de lucru MATLAB sau
MATLAB Workspace consta într-un set de variabile definite în cursul unei sesiuni de lucru
MATLAB si stocate în memorie. Puteti adauga variabile la workspace-ul curent folosind
functii, lansând fisiere M si încarcând workspace-uri salvate anterior. De pilda tastati:

» t = 0:pi/4:2*pi; (22)
» y = sin(t);

În acest moment în workspace vor exista doua variabile, y si t, fiecare având 9 valori.
Pentru vizualizarea continutului workspace-ului curent puteti folosi functiile:

who pentru a lista variabilele din workspace-ul curent;


whos pentru a lista variabilele si informatii despre dimensiunile si clasa lor;
exist pentru a vedea daca o anumita variabila specificata se afla în workspace.

De pilda daca tastati comenzile:


»t = 0:pi/4:2*pi; (23)
» y = sin(t);
» who

MATLAB va raspunde cu:


Your variables are: (24)
t y

Daca tastati:

» whos (25)
MATLAB va raspunde cu:
Name Size Bytes Class (26)
t 1x9 72 double array
y 1x9 72 double array
Grand total is 18 elements using 144 bytes
Continutul workspace-ului nu este memorat de la o sesiune MATLAB la alta, însa poate
fi salvat într-un fisier pe disc si încarcat ulterior.
Variabilele din workspace pot fi sterse prin mai multe metode, cea mai simpla constând
în utilizarea functiei clear. Tastati de pilda:
clear y pentru a sterge variabila y,
who pentru a verifica faptul ca variabila y nu mai exista în workspace-ul curent,
clear pentru a sterge toate variabilele odata,
who pentru a verifica faptul ca nu mai exista nici o variabila în workspace-ul curent.

3.1.6. Operatii cu fisiere. Operatiile MATLAB cu fisiere folosesc directorul curent ca


punct de referinta. Orice fisier pe care vreti sa-l lansati trebuie mutat în directorul curent sau
32 MEDII DE CALCUL INGINERESC – Îndrumar de laborator

într-un director pe care sa-l includeti în calea de cautare. Deasemenea, când deschideti un
fisier în MATLAB, punctul de plecare pentru cutia de dialog Open, de deschidere a
fisierelor, este directorul curent. Operatiunile cu fisiere pot fi executate folosind functiile
MATLAB de lucru cu fisiere si cu sistemul de operare din Tabelul 3.
Tabel 3
Functia Destinatia
cd Schimba directorul curent
pwd Afiseaza directorul curent
dir, ls Listeaza fisierele si subdirectoarele din directorul curent
delete Sterge fisiere din directorul curent sau obiecte grafice
! Executa comezi ale sistemului de operare

3.1.7. Functii de manipulare a datei si orei. MATLAB contine o multitudine de functii de


manipulare a datei si orei. Iata câteva dintre aceste functii ce pot avea utilitate practica în
multe aplicatii numerice, Tabel 4.
Tabel 4
Functie Descriere
clock Indica data curenta si ora ca vector de tip data
date Indica data curenta ca sir de caractere de tip data
cputime Afiseaza CPU time în secunde de când a fost lansat MATLAB
etime Afiseaza timpul scurs în secunde
tic, toc Afiseaza timpul scurs între cele doua comenzi

3.2. Functii matematice uzuale


MATLAB pune la dispozitia utilizatorului o biblioteca bogata de functii matematice de
diferite tipuri.
3.2.1. Functii de aproximare a numerelor. Functiile MATLAB de rotunjire a numerelor
sunt prezentate succint în Tabelul 5.
Tabel 5
Functia Descriere Exemplu
ceil Returneaza un numar întreg rotunjit la cel mai apropiat numar ceil(3.2) 4
întreg spre +
fix Returneaza un numar întreg rotunjit la cel mai apropiat numar fix(-3.2) -3
întreg spre zero
floor Returneaza un numar întreg rotunjit la cel mai apropiat numar floor(3.2) 3
întreg spre –
round Returneaza un numar întreg rotunjit la cel mai apropiat numar round(3.2) 3
întreg
rem Returneaza restul împartirii argumentelor rem(-5,2) -1
rat Returneaza aproximarea unui numar cu fractii rationale rat(5.2) 5 + 1/(5)
continue
rats Returneaza aproximarea unui numar cu fractii rationale rats(5.2) 26/5
sign Returneaza semnul argumentului sign(-5.2) -1
sign(5.2) +1
sign(0) 0
MEDII DE CALCUL INGINERESC – Îndrumar de laborator 33

Functiile de mai sus pot fi aplicate unor scalari sau pot fi aplicate element cu element
unor matrice sau vectori.

3.2.2. Functii de operare cu numere complexe. Operatiile principale specifice numerelor


complexe din pachetul MATLAB sunt prezentate în Tabelul 6.
Tabel 6
Functia Descriere Exemplu
abs Calculeaza (valoarea absoluta) modulul numerelor abs(3+4i) 5
complexe
angle Calculeaza faza numerelor complexe angle(1+i) 0.7854
unwrap Calculeaza partile reala si imaginara a numerelor unwrap(1+i) 1+i
complexe exprimate sub forma polara
conj Calculeaza conjugata complexa a numerelor conj(1+i) 1-i
complexe
imag Calculeaza partea imaginara a numerelor complexe imag(1+3i) 3
real Calculeaza partea reala a numerelor complexe real(3+i) 3
isreal Determina daca elementele matricelor sau isreal([2 3]) 1
vectorilor sunt numere reale

Operatiile aritmetice clasice ramân valabile pentru numere complexe, respectiv pentru
vectori si matrice având ca elemente numere complexe, Tabel 7.
Tabel 7
Operator Operatie
+ Adunare
- Scadere
* Înmultire
/ Împartire
\ Împartire la stânga
^ Putere
’ Transpusa complex conjugata
() Pentru ordinea operatiilor

3.2.3. Functiile putere, radical, logaritm si exponentiala. Functiile MATLAB de ridicare


la putere, de extragere a radicalului, de calcul al logaritmului si al exponentialei sunt
prezentate în Tabelul 8.
Tabel 8
Functia Descriere Exemplu
^ Ridicare la putere a numerelor sau matricelor 2^2 4
exp Calculeaza exponentiala exp(2) 7.3891
log Calculeaza logaritmul natural log(7.3891) 2
log2 Calculeaza logaritmul în baza 2 log2(4) 2
log10 Calculeaza logaritmul în baza 10 log10(100) 2
nextpow2 Calculeaza puterea lui 2 care majoreaza modulul nextpow2(15) 4
numarului studiat
pow2 Calculeaza puterea lui 2 pow2(5) 32
sqrt Calculeaza radicalul de ordinul 2 al numerelor sqrt(36) 6
34 MEDII DE CALCUL INGINERESC – Îndrumar de laborator

3.2.4. Functii trigonometrice. MATLAB dispune de o biblioteca bine pusa la punct de


functii trigonometrice care sunt prezentate în Tabelul 9. Functiile trigonometrice pot actiona
asupra unor scalari sau asupra elementelor unor vectori sau matrice, în functie de tipul
argumentului transmis. Unghiurile sunt în general considerate în radiani.
Tabel 9
Functia Descriere Exemplu
sin Calculeaza sinusul argumentului sin(pi/2) 1
asin Calculeaza arcsinusul argumentului asin(1) 1.5708
sinh Calculeaza sinusul hiperbolic al argumentului sinh(2+2i)
-1.5093 + 3.4210i
asinh Calculeaza arcsinusul hiperbolic al argumentului asinh(2) 1.4436
cos Calculeaza cosinusul argumentului cos(pi) -1
acos Calculeaza arcosinusul argumentului acos(-1) 3.1416
cosh Calculeaza cosinusul hiperbolic al argumentului cosh(2+2i)
-1.5656 + 3.2979i
acosh Calculeaza arcosinusul hiperbolic al argumentului acosh(2) 1.3170
tan Calculeaza tangenta argumentului tan(pi/4) 1
atan Calculeaza arctangenta argumentului atan(1) 0.7854
tanh Calculeaza tangenta hiperbolica a argumentului tanh(2+2i)
1.0238 - 0.0284i
atanh Calculeaza arctangenta hiperbolica a argumentului atanh(2)
0.5493 + 1.5708i
cot Calculeaza cotangenta argumentului cot(pi/4) 1
acot Calculeaza arcotangenta argumentului acot(1) 0.7854
coth Calculeaza cotangenta hiperbolica a argumentului coth(2+2i)
0.9760 + 0.0271i
acoth Calculeaza arcotangenta hiperbolica a argumentului acoth(2) 0.5493
sec Calculeaza secanta argumentului sec(pi) -1
asec Calculeaza arcsecanta argumentului asec(-1) 3.1416
sech Calculeaza secanta hiperbolica a argumentului sech(2+2i)
-0.1175 - 0.2475i
asech Calculeaza arcsecanta hiperbolica a argumentului asech(2) 1.0472i
csc Calculeaza cosecanta argumentului csc(pi/2) 1
acsc Calculeaza arccosecanta argumentului acsc(1) 1.5708
csch Calculeaza cosecanta hiperbolica a argumentului csch(2+2i)
-0.1080 - 0.2447i
acsch Calculeaza arccosecanta hiperbolica a argumentului acsch(2) 0.4812

3.2.5. Functii de matematica discreta. MATLAB contine un ansamblu de functii de


matematica discreta cum ar fi functiile de calcul al divizorilor si multiplilor comuni etc.
dupa cum sunt prezentate în Tabelul 10.
Tabel 10
Functia Descriere Exemplu
gcd Calculeaza cel mai mare divizor comun a doua gcd(115, 35) 5
numere
lcm Calculeaza cel mai mic multiplu comun a doua lcm(115, 35) 805
numere
MEDII DE CALCUL INGINERESC – Îndrumar de laborator 35

3.3. Reprezentarea graficelor 2D Graficul functiei sinus


1

MATLAB dispune de o 0.8


multitudine de facilitati pentru 0.6
reprezentarea graficelor, respectiv
0.4
pentru editarea si salvarea acestora.
0.2
3.3.1. Trasarea unui grafic 2D. O

sin(x)
0
functie de baza utilizata la trasarea
-0.2
graficelor 2D este functia plot care
are diferite forme, în functie de -0.4
argumentele de intrare. Daca y este -0.6
un vector, plot(y) produce un grafic,
-0.8
liniar pe portiuni, al elementelor lui
-1
y, în functie de index-ul elementelor 0 1 2 3 4 5 6 7
lui y. Daca specificati doi vectori ca x = 0:2.pi
argumente, plot(x, y) creaza un Fig. 1. Reprezentarea grafica a functiei sinus.
grafic al lui y functie de x. Pentru
exemplificare, tastati:
» x = 0:pi/100:2*pi; (27)
» y = sin(x);
» plot(x, y)
Acum se pot adauga graficului notatii pe cele doua axe, respectiv un titlu.
» xlabel('x = 0:2.pi') (28)
» ylabel('sin(x)')
» title('Graficul functiei sinus','FontSize',12)
În urma executiei comenzilor de mai sus se obtine graficul din Fig. 1.

3.3.2. Functii de reprezentare grafica 2D. MATLAB include o gama larga de functii de
reprezentare grafica 2D a curbelor, cum ar fi cele prezentate în Tabelul 11.
Tabel 11
Functia Destinatia
plot Grafica 2D cu scara liniara pe ambele axe X si Y
loglog Grafica 2D cu scara logaritmica pe ambele axe X si Y
semilogx Grafica 2D cu scara logaritmica pe axa X si scara liniara pe axa Y
semilogy Grafica 2D cu scara logaritmica pe axa Y si scara liniara pe axa X
stem Grafica 2D pentru seturi de date discrete
bar Grafica 2D, reprezentare cu bare
stairs Grafica 2D, reprezentare în scara
fill Grafica 2D, de reprezentare a poligoanelor
36 MEDII DE CALCUL INGINERESC – Îndrumar de laborator

3.4. Reprezentarea graficelor 3D


3.4.1. Reprezentarea grafica a functiilor de doua variabile. Pentru a afisa o functie de
doua variabile, z = f(x, y) urmati pasii de mai jos:
Generati matricele X si Y constând din rânduri si coloane (de pilda folosind functia
meshgrid), reprezentând domeniul de definitie al functiei;
Folositi matricele X si Y pentru a evalua si a trasa functia.
Functia meshgrid transforma domeniul specificat printr-un singur vector sau doi vectori x
si y în matrice X si Y pentru evaluarea functiilor de doua variabile. Rândurile lui X sunt
copii ale vectorului x si coloanele lui Y sunt copii ale vectorului y.
Pentru a trasa graficul bi-dimensional al functiei sinc=sin(r)/r, Fig. 2, unde r reprezinta
distanta fata de origine, tastati comenzile de mai jos. Prin adaugarea lui eps (cel mai mic
numar MATLAB în virgula mobila) se evita nedeterminarea 0/0 în origine.
» [X,Y] = meshgrid(-8:.5:8); (29)
» R = sqrt(X.^2 + Y.^2) + eps;
» Z = sin(R)./R;
» mesh(X, Y, Z)
O alta forma de afisare a graficului functiei sinc consta în folosirea comenzii surf. De
aceasta data culoarea fetelor este determinata de valorile lui Z si de colormap, Fig. 3. Tastati
în acest sens comenzile de mai jos.
» surf(X, Y, Z) (30)
» colormap hsv
» colorbar
Comanda colorbar permite afisarea legendei de culori a graficului.

1
1 0.8

0.5 0.6
0.5

0.4
0 0

0.2
-0.5 -0.5
10 10
5 10 0
5 10
0 5
0
0 0
-5 -5 -5 -0.2
-10 -10 -10 -10

Fig. 2. Reprezentarea grafica a functiilor Fig. 3. Reprezentarea grafica a functiilor de doua


de doua variabile folosind functia mesh. variabile folosind functiile surf, colormap
si colorbar.

3.4.2. Reprezentarea suprafetelor. MATLAB defineste o suprafata prin coordonata z a


punctelor situate pe un grid în planul x-y, folosind linii drepte pentru conectarea punctelor
MEDII DE CALCUL INGINERESC – Îndrumar de laborator 37

alaturate. Diferite functii de reprezentare grafica 3D a suprafetelor disponibile în MATLAB


sunt prezentate în Tabelul 12.
Tabel 12
Functia Actiune
mesh, surf Trasare de suprafete
meshc, surfc Trasare de suprafete cu contur dedesubt
meshz Trasare de suprafete cu perdea verticala
pcolor Trasare de suprafete în plan (valoare proportionala cu culoarea)
surfl Trasare de suprafete luminate dintr-o anumita directie
surface Creare de obiecte tip suprafata

Cu exceptia functiei pcolor toate celelalte functii grafice prezentate în tabelul de mai sus
afiseaza suprafetele în trei dimensiuni. Functiile din familia mesh genereaza suprafete de tip
plasa colorând doar liniile ce conecteaza punctele definite, iar functiile de tip surf afiseaza
atât liniile de legatura cât si fetele suprafetei colorate. Functia pcolor permite afisarea în
plan a unei suprafete având valoarea proportionala cu culoarea.

3.4.3. Alte functii MATLAB de reprezentare grafica 3D a seturilor de date sunt


prezentate în Tabelul 13.
Tabel 13
Functia Destinatia
fill3 Grafica 3D, de reprezentare a poligoanelor
plot3 Grafica 3D, cu scara liniara pe ambele axe X si Y

3.5. Configurarea si salvarea graficelor

3.5.1. Ferestre de tip figure. Functiile de reprezentare grafica deschid în mod automat o
noua fereastra de tip figure daca nu exista nici o fereastra figure deja afisata pe ecran. Daca
o fereastra figure exista, MATLAB foloseste acea fereastra pentru reprezentari grafice.
Daca exista mai multe ferestre figure deschise, MATLAB se fixeaza la una dintre ele ce
reprezinta fereastra figure curenta (ultima fereastra de acest tip folosita sau fereastra pe
care s-a executat ultima data un clic).
Pentru a face ca o fereastra figure existenta sa devina curenta, clicati pe acea fereastra
sau tastati la linia de comanda figure(n), unde n reprezinta numarul din bara de titlu a
figurii respective. Rezultatele comenzilor grafice ulterioare vor fi afisate în aceasta fereastra
devenita curenta. Pentru a deschide o noua fereastra figure si pentru a o face fereastra
figure curenta, tastati cuvântul cheie figure la linia de comanda.

3.5.2. Reprezentari multiple în acelasi sistem de coordonate. Perechi multiple (x, y) de


argumente pot fi reprezentate grafic printr-un singur apel al functiei plot. MATLAB
acceseaza automat un set predefinit de diverse culori (setul poate fi modificat) ce permit
diferentierea vizuala între seturile de date. De pilda, instructiunile ce urmeaza afiseaza trei
curbe de variatie functie de x, fiecare curba cu o culoare diferita:

» x = 0:pi/100:2*pi; (31)
» y1 = sin(x);
38 MEDII DE CALCUL INGINERESC – Îndrumar de laborator

» y2 = sin(x-.25);
» y3 = sin(x-.5);
» plot(x, y1, x, y2, x, y3)
» legend('sin(x)','sin(x-.25)', 'sin(x-.5)')
Comanda legend permite o 1
sin(x)
cale usoara de identificare a 0.8 sin(x-.25)
sin(x-.5)
curbelor individuale. În Fig. 4, 0.6
este prezentat rezultatul
0.4
MATLAB al executiei setului de
comenzi (31). 0.2

0
3.5.3. Adaugarea unor curbe la -0.2
grafice existente. Comanda hold
-0.4
permite adaugarea unor curbe la
un grafic existent. Prin utilizarea -0.6

comenzii hold on MATLAB nu -0.8


va elimina graficul existent la -1
0 1 2 3 4 5 6 7
apelul unei noi comenzi plot, ci
va adauga noile curbe la graficul
Fig. 4. Reprezentari multiple în acelasi sistem de
existent, rescalând axele daca coordonate.
este necesar. De pilda, setul de
instructiuni (32) de mai jos, Fig. 5, creaza mai întâi un grafic tip contour al functiei peaks,
apoi suprapune o reprezentare grafica în degrade a aceleiasi functii.
» [x, y, z] = peaks; (32)
» pcolor(x, y, z);
» shading interp;
» hold on;
» contour(x, y, z, 20, 'k');
» hold off; 3
sin(x)
Comanda hold on permite ca sin(x-.25)
sin(x-.5)
2
reprezentarea grafica pcolor sa se
combine cu reprezentarea contour
într-o singura figura, Fig. 5. 1

3.5.4. Reprezentari grafice 0


multiple pe o figura. Comanda
subplot permite afisarea în
-1
aceeasi fereastra a mai multor
grafice sau tiparirea acestora pe
-2
aceeasi coala de hârtie. Tastând
subplot(m, n, p), fereastra figure
este partitionata într-o matrice de -3
-3 -2 -1 0 1 2 3
m x n grafice mai mici, graficul cu
index p selectat ca grafic curent. Fig. 5. Exemplu de adaugare a unor curbe la grafice
Graficele sunt numerotate rând existente utilizând functia hold.
MEDII DE CALCUL INGINERESC – Îndrumar de laborator 39

dupa rând, de la stânga la dreapta si apoi de sus în jos. De pilda, setul de comenzi (33) de
mai jos traseaza curbele în patru grafice diferite în fereastra figure, Fig. 6.
» [X,Y,Z] = peaks; (33)
» subplot(2, 2, 1); mesh(X);
» subplot(2, 2, 2); mesh(Y);
» subplot(2, 2, 3); mesh(Z);
» subplot(2, 2, 4); mesh(X, Y, Z);

5 5

0 0

-5 -5
50 50
50 50
0 0 0 0

10 10

0 0

-10 -10
50 5
50 5
0 0
0 0 -5 -5

Fig. 6. Exemplu de reprezentari grafice multiple pe aceeasi figura


utilizând functia subplot.

3.5.5. Specificarea tipului de linie si culoarea. Este posibila setarea culorii, a tipului de
linie, respectiv a markerului (de exemplu simbolul 'o' sau ’x’) când plotati datele utilizând
functia plot.
» plot(x, y, 'culoare_stil') (34)
Sirul de caractere culoare_stil contine de la 1 la 3 caractere ce desemneaza o culoare si un
stil de linie sau un tip de marker:
Caracterele ce desemneaza culori sunt 'c', 'm', 'y', 'r', 'g', 'b', 'w', si 'k'. Acestea
corespund culorilor cyan, magenta, yellow, red, green, blue, white, si black.
Stilul de linie, respectiv tipul de marker este indicat de sirurile de caractere: '-' pentru
linie continua, '--' pentru linie lunga întrerupta, ':' pentru linie scurta întrerupta, '-.'
pentru linie punct, respectiv markerele ’.’, 'o', ’x’, '+', '*', 'x'.
Daca nu se specifica tipul de marker si nici tipul de linie, atunci graficul este trasat cu
linie continua si fara markere.
40 MEDII DE CALCUL INGINERESC – Îndrumar de laborator

De pilda prin lansarea setului de comenzi:

» x = 0:pi/20:2*pi; (35)
» y = sin(x);
» plot(x, y, 'b*')

MATLAB va trasa graficul functiei y functie de x cu markere de tip * de culoare albastra,


dar fara sa conecteze marker-ele cu linie, Fig. 7.

0.8

0.6

0.4

0.2

-0.2

-0.4

-0.6

-0.8

-1
0 1 2 3 4 5 6 7

Fig. 7. Reprezentarea functiei sinus cu marker albastru de tip *

3.5.6. Controlul axelor. Comanda axis admite un numar de optiuni pentru setarea scalarii,
orientarii si aspectului graficelor.
3.5.6.1. Setarea limitelor axelor. MATLAB cauta implicit maximele si minimelor seturilor
de date pentru a alege limitele axelor. Comanda axis permite însa specificarea propriilor
dvs. limite pentru axe si prezinta sintaxa urmatoare: axis([xmin xmax ymin ymax]) pentru
grafice bidimensionale si axis([xmin xmax ymin ymax zmin zmax]) pentru grafice
tridimensionale. Folositi comanda axis auto pentru a permite selectia automata a limitelor,
optiune MATLAB implicita.
3.5.6.2. Setarea aspectului axelor. Comanda axis permite deasemenea specificarea unui
numar de stiluri predefinite. De pilda, axis square determina limitele axelor x si y de aceeasi
lungime. Comanda axis equal determina incrementul pe axele x si y de aceeasi lungime. De
pilda urmatoarea comanda:
» plot(exp(i*[0:pi/10:2*pi])) (36)
urmata fie de axis square fie de axis equal face ca ovalul sa devina cerc, Fig. 8. Comanda
axis auto normal face ca modul de scalare sa revina la cel initial, automatic.
MEDII DE CALCUL INGINERESC – Îndrumar de laborator 41

3.5.6.3. Setarea vizibilitatii axelor. Puteti folosi comanda axis pentru a face axele vizibile
sau invizibile. Comanda axis on face axele vizibile, aceasta comanda fiind cea implicita.
Comanda axis off face axele invizibile.

0.8

0.6

0.4

0.2

-0.2

-0.4

-0.6

-0.8

-1
-1 -0.5 0 0.5 1

Fig. 8. Aplicatii ale functiilor axis square sau axis equal

3.5.7. Setarea gridului. Comanda grid face sa apara sau sa dispara liniile de grid. Comanda
grid on face ca liniile de grid sa apara iar grid off face ca liniile de grid sa dispara din nou.

3.5.8. Etichetarea axelor si a titlului. Comenzile xlabel, ylabel, si zlabel adauga etichete
pe axele x, y, si z. Comanda title adauga un titlu în partea superioara a figurii si functia text
insereaza text oriunde pe figura. În urma tastarii setului de comenzi (37) MATLAB va afisa
rezultatele în Fig. 9.

» t = -pi:pi/100:pi; (37)
» y = sin(t);
» plot(t, y, 'r')
» axis([-pi pi -1 1])
» xlabel('-pi < t < pi')
» ylabel('sin(t)')
» title('Graficul functiei sinus')
» text(1,-1/3,'Functia sinus')
42 MEDII DE CALCUL INGINERESC – Îndrumar de laborator

Graficul functiei sinus


1

0.8

0.6

0.4

0.2
sin(t)

-0.2
Functia sinus
-0.4

-0.6

-0.8

-1
-3 -2 -1 0 1 2 3
-pi < t < pi

Fig. 9. Etichetarea axelor si a titlului unui grafic.

MATLAB permite deasemenea editarea graficelor, salvarea, respectiv tiparirea acestora


la imprimanta.

4. Aplicatii numerice propuse spre rezolvare

APLICATIA 1
Sa se genereze un vector X=1:10 si un vector Y cu 10 elemente numere întregi aleatoare
între 0 si 100. Sa se afiseze pe ecran toate elementele lui Y divizibile cu 7 si sa se traseze
graficul Y = f(X).

APLICATIA 2
Sa se genereze vectorul x=[3 15 9 12 -1 0 -12 1] si sa se precizeze comenzile care vor
efectua urmatoarele operatiuni:
a) Afiseaza pe ecran toate elementele pozitive ale vectorului x
b) Afiseaza pe ecran toate elementele divizibile cu 3 ale vectorului x
c) Afiseaza pe ecran toate elementele pare ale vectorului x însa multiplicate cu 5
d) Extrag într-un vector y, elementele lui x mai mari ca 10

APLICATIA 3
Sa se genereze o matrice A de dimensiuni 4 x 4 cu elemente reale aleatoare cuprinse între
10 si 20. Sa se construiasca alte patru matrice ale caror elemente se obtin prin rotunjirea
elementelor matricei A catre respectiv cel mai apropiat numar (matricea B), catre cel mai
apropiat numar întreg spre - (matricea C), catre cel mai apropiat numar întreg spre +
(matricea D), catre cel mai apropiat numar întreg spre 0 (matricea E). Folositi functiile
MATLAB de rotunjire round, floor, ceil si fix.
MEDII DE CALCUL INGINERESC – Îndrumar de laborator 43

APLICATIA 4
Se da un transformator monofazat functionând în gol, caracterizat de urmatoarele date:
R1=1 , X 1=2 , Rw= 2000 , Xm= 2000 Tensiunea primara este U1=220 V. Sa se
scrie un fisier script care sa aiba ca parametri datele transformatorului si care sa permita
calculul marimilor:
a) Curentul I10 si tensiunea U20’ în gol,
b) Puterile activa P10 si reactiva Q10 absorbite de transformator.

I10 R1 jX 1

U1 Rw jXm U20’

APLICATIA 5
Sa se calculeze cel mai mare divizor comun al numerelor 55878, 112782, 1278.

APLICATIA 6
Folosind functia MATLAB plot reprezentati pe acelasi grafic functiile de mai jos în
intervalul [0.001...20. ]:
f(x) = sin(x)/x si
g(x) = cos(x)/(x+1)

APLICATIA 7
Reprezentati grafic functia f(x)=sin(x) în grade de la 0 la 360.

APLICATIA 8
Reprezentati grafic functia f(x) = sin(1/x) unde 0.01 < x < 0.1. Daca reprezentarea nu
este precisa efectuati corectiile de rigoare. Adaugati titlul ”Graficul functiei
f(x)=sin(1/x)” , pe axa x adaugati ”x [rad] ” iar pe axa y adaugati ”f(x)”.

APLICATIA 9
Reprezentati grafic functia Rosenbrock sau ”banana”: f(x, y) = 100(y-x2)2+ (1-x)2.
Intervalul de reprezentare este definit de: -3<x<3 si -5<y<10. Sa se suprapuna peste
graficul functiei curbele de nivel corespunzatoare.

APLICATIA 10
Reprezentati pe acelasi grafic functiile de mai jos în intervalul [0, 4p]:
f(x)=ex.sin(x) cu marker tip cerc, culoare albastra, si
g(x)= ex.cos(x) cu linie întrerupta de culoare verde.
44 MEDII DE CALCUL INGINERESC – Îndrumar de laborator

APLICATIA 11
Sa se reprezinte grafic urmatoarele functii în intervalul [0.5, 1] pe acelasi grafic:
a) ln(2 + t + t2)
b) e( t .(1 + cos(t) )
c) arccos(t) + sin2(t)
d) arctg(t)
e) cotg(t)
Atentie, notatia functiilor de mai sus este una matematica, sintaxa de apel MATLAB a
acestor functii fiind diferita !

APLICATIA 12
Se da un transformator monofazat caracterizat de urmatoarele date nominale:
Sn = 1000 VA, Pjn = 50 W si Pfe = 15 W. Sa se traseze caracteristica randamentului
transformatorului = f( ) pentru sarcina pur rezistiva, cu = (0:0.01:1), stiind ca:
= . Sn / ( . Sn + 2 .Pjn + Pfe )

APLICATIA 13
Folosind pe rând toate functiile din Tabelul 12, reprezentati grafic functia Z obtinuta prin
comanda MATLAB, [X, Y, Z] = peaks.

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