Documente Academic
Documente Profesional
Documente Cultură
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
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:
Toate numerele sunt stocate intern folosind formatul long standardizat, având o precizie
de circa 16 cifre semnificative si variind între realmin si realmax.
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
x= (7)
1.3333 0.0000
» format short e (8)
»x (9)
x= (10)
1.3333e+000 1.2345e-006
»x (12)
x= (13)
1.33333333333333 0.00000123450000
»x (15)
x= (16)
1.333333333333333e+000 1.234500000000000e-006
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:
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:
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.
î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
Functiile de mai sus pot fi aplicate unor scalari sau pot fi aplicate element cu element
unor matrice sau vectori.
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
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
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
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.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.
» 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
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
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
» x = 0:pi/20:2*pi; (35)
» y = sin(x);
» plot(x, y, 'b*')
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
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
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
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
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.