Sunteți pe pagina 1din 13

Laborator 3.

Afisarea si interpretarea rezultatelor cu ajutorul functiilor de plotare


2D si 3D.

Scopul lucrării

Scopul acestei lucrari este de a afisa si de a interpreta rezultatele unor instructiuni


sau fuctii cu ajutorul graficelor pe care MatLab-ul le pune la dispozitia utilizatorilor.
Vom putea reprezenta rezultatele in urma instructiunilor fie intr-un sistem de axe
2D sau 3D pe baza unor functii predefinite ale acestui soft.

Aparatura necesară

- Staţii de lucru care au instalat Orcad9.2. si MatLab 7.1

Consideraţii teoretice

In urma rularii unei instructiuni sau a unei insiruiri de instructiuni se obtin


rezultate care trebuiesc afisate si apoi interpretate. Cea mai simpla metoda de afisare si
interpretare a rezultatelor este folosirea functiei imread studiata in primul laborator.
Astfel vom importa o imagine din afara programului si afisand aceasta imagine vom
putea analiza pe un sistem de axe ceea ce s-a obtinut.

x=imread('poza.jpg');
image(x);
grid on;

Grafica 2D

Majoritatea rezultatelor pe care le vom obtine si apoi interpreta acestora o vom


face pe un sistem cartezian de 2 axe X,Y. Pentru aceasta reprezentare, MatLab-ul pune la
dispozitia utilizatorilor cateva functii predefinite.

Functia Proprietatea

ezplot Plotare rapida


plot Plotare in funcie de X,Y
plotyy Plotare cu doua axe Y
loglog Plotare logaritmica pe X si pe Y
semilogx Plotare logaritmica pe X
semilogy Plotare logaritmica pe Y
bar Afiseaza un grafic segmential (diagrame bara)
barh Afiseaza un grafic segmential (diagrame bara)
histogram Afiseaza o histograma a unui grafic segmential
polar
Tabel 1
Functia ezplot, este o functie dupa cum ii sugereaza si numele de plotare rapida. Se
caracterizeaza prin (‘functia de plotat’,’intervalul de calcul’).

ezplot('x.^2/4+y.^2/5=15',[-15 15]);
grid;

Fig. 1

Functia plot, este una din cele mai uzuale functii de plotare intr-un sistem 2D.
Aceasta functie poate sa reprezinte grafic un rezultat in functie de cele 2 coordonate,
X,Y.

x=-5:0.1:4; %x este o valoare din intervalul [-5,4] cu increment de 0.1


y = x.^3; %y este x^3
plot(y); %afisam grafic y

Fig. 2

Reprezentarea grafica pe care am obtinut-o reprezinta rezolvarea ecuatiei y=x3 .


Daca vizualizam atent figura observam ca pe axa x suntem intr-un interval de la 0 la 91.
Asta deoarece y are 91 de valori in intervalul x pe care l-am ales. (se scrie in linia de
comanda length(y)).
Pentru a reprezenta corect aceasta ecuatia vom scrie:

x=-5:0.1:4; %x este o valoare din intervalul [-5,4] cu increment de 0.1


y = x.^3; %y este x^3
plot(x,y); %afisam grafic y

Fig. 3

In acest moment pe axa x avem exact intervalul pe care l-am stabilit initial. Se
observa ca, curbele grafice sunt identice doar ca in reprezentarea a doua indeplineste
conditiile initiale impuse.
Daca adaugam comenzilor anterioare si comanda de caroiaj vom obtine un grafic
usor de citit si interpretat.
grid on; %caroiaj

Fig. 4
De asemenea un grafic este usor interpretabil daca are un titlu, are specificatiile
celor 2 axe, o legenda a graficelor in cazul in care in aceasi fereastra se suprapun mai
multe astfel de grafice, punctele de conjunctie ale functiei sunt vizibile, daca graficele au
culori diferite sau alte elemente care pot usura vizualizarea unui asemenea grafic.
Pentru toate aceste detali MatLab-ul ofera o serie de proprietati ale acestor functii
de reprezentare grafica.

Functia Proprietatea

axis Seteaza axele vizibile sau invizibile


title Afiseaza titlul graficului
xlabel Afiseaza text pe axa X
ylabel Afiseaza text pe axa Y
text Afiseaza text pe grafic
gtext Afiseaza text pe grafic la trecerea cu mousul asupra unui grafic
color Seteaza o culoare
linestyle Forma liniilor cu care se face afisarea
fontsize Dimensiunea caracterelor
legend Permite inserarea unei legende
grid Permite plasarea caroiajului
linewidth Grosimea liniei
hold Permite stoparea unui grafic pe axe
Tabel 2

Pentru culorile cu care vom afisa graficele MatLab-ul recunoaste implicit


urmatoarele culori:

Culoarea Numele Prescurtarea

albastru blue b
Verde Green g
Rosu Red r
Galben Yellow y
Cyan Cyan c
Purpuriu Magenta m
Negru Black k
Alb White w
Tabel 3

Pentru tipul liniei cu care realizam afisarea grafica putem sa alegem din tabelul
urmator una din liniile recunoscute de functiile de plotare.

Tipul liniei Prescurtarea


Linie continua -
Linie punctata :
Linie si punct -.
Linie intrerupta --
Tabel 4

Pentru a marca pe grafic punctele de conjuctie pe care functia le ploteaza putem


utiliza urmatorul tabel:

Simbol Tipul de Marker

. Punct
o Cerculet
x X
+ Plus
* Steluta
s Patrat
d Romb
v Triunghi sus
^ Triunghi jos
< Triunghi stanga
> Triunghi dreapta
p Stea cu 5 varfuri
h Stea cu 6 varfuri
Tabel 5

Folosind fuctiile enumerate mai sus sa reprezentam grafic in acesasi sistem de axe
3 semnale sinusoidale defazate intre ele.

f=50; %setam o frecventa


T=1/f; %calculam o perioada
t=0:0.001:4*T %alegem um interval de timp
x=sin(2*pi*f*t); %calculam primul sinus
x1=sin(2*pi*f*(t-T/3)); %calculam al doilea sinus
x2=sin(2*pi*f*(t-T/2)); %calculam al 3 sinus
plot(t,x,'-or'); %afisam primul sinus
hold on; %il mentinem pe axe
plot(t,x1,':db'); %afisam al doilea sinus
hold on; %il mentinem pe axe
plot(t,x2,'--Xg'); %afisam cel de-al treilea sinus
grid on;
title('Reprezentare sinus');%dam titlu graficului
xlabel('timp [s]'); %scriem text pe axa x
ylabel('Amplitudine [V]'); %scriem text pe axa y
legend('x1','x2','x3'); %inseram o legenda
Rezultatul acestor instructiuni este :
Reprezentare sinus
1
x1
0.8 x2
x3
0.6

0.4

0.2
Amplitudine [V]

-0.2

-0.4

-0.6

-0.8

-1
0 0.005 0.01 0.015 0.02 0.025 0.03 0.035 0.04
timp [s]

Fig. 5

Se observa in aceasta figura ca fiecare din cele 3 sinusuri au culorile diferite asa
cum s-au setat, punctele de conjunctie apar clar pe grafic, este pus un titlu, specificatii pe
cele 2 axe si o legenda. In codul scris apare functia hold on care are proprietatea de a
mentine un grafic atunci cand un altul urmeaza sa fie plotat.
Putea scrie cele trei sinusuri in aceasi functie plot deoarece baza de timp ale acestora este
aceasi.
plot(t,x,'-or',t,x1,':db',t,x2,'--Xg');
grid on;

Putem spune ca afisarea unui grafic cu ajutorul functiei plot este simpla indiferent
daca datele de intrare sunt de forma unor vectori sau a unor matrici daca tinem cont de
cateva reguli simple :
plot(x) – daca x este un vector atunci vom genera un grafic in
functie de valoarea lui x si pozitia acestuia in vector

plot(x,y) – daca x si y sunt vectori de aceasi lungine atunci vom


avea un grafic de y in functie de x

Sa presupunem ca avem de afisat urmatorul set de date:

x1 = 0:.1:20; %x1 i-a o valoare in intervalul [0 20]


y1 = x1.*sin(x1); %functia y1
x2 = 10:.2:25; %x2 i-a o valoare intre [10 25]
y2 = 50*x2; %functia y2

Daca o reprezentam grafic cele 2 functi cu ajutorul plot vom obtine rezultatul din figura
urmatoare:
Fig. 6

Nu pare deloc un grafic concludent, de aceea vom folosi functia plopyy, o functie
cu ajutorul careia vom avea 2 axe y pentru reprezentare.

[axeshandles,line1handle,line2handle]=plotyy(x1,y1,x2,y2);
set(line1handle,'linestyle','-','color','red');
set(line2handle,'linestyle','--','color','g');
grid;
title('y1 is the blue line, y2 is the green dashed line');
axes(axeshandles(1));
ylabel('y1=x.*sin(x)');
axes(axeshandles(2));
ylabel('y2=50*x','color','k');
xlabel('x');

Rezultatul se poate vizualiza in figura 7.

Reprezentare cu ajutorul plotyy


20 1300

15 1200

10 1100

5 1000
y1=x.*sin(x)

y2=50*x

0 900

-5 800

-10 700

-15 600

-20 500
0 5 10 15 20 25
x

Fig. 7
In analiza circuitelor electronice de multe ori v-a trebui sa reprezentam logaritmic
rezultatele obtinute. Daca ne gandim la un filtru castigul e exprimat de tensiunea de iesire
pe tensiunea de intrare in functie de frecventa.

Frecventa Castig Frecventa Castig


20 5 2000 34
40 10 5000 34
80 30 8000 34
100 32 10000 32
120 34 12000 30
15000 10 20000 5
Tabel 6

f=[20 40 80 100 120 2000,... % incarc vectorul frecventa


5000 8000 10000 12000 15000 20000];
g=[5 10 30 32 34 34 34 34 32 30 10 5]; % incarc vectorul castig
semilogx(f,g,'-sr','linewidth',2); % afisez logaritmic pe x
grid on;
title('Reprezentare logaritmica');
xlabel('frecventa [Hz]');
ylabel('castigul [dB]');

Fig. 8

Similar se foloseste functia semilogy, doar ca acum y va fi logaritmic si x liniar.


Daca se doreste o reprezentare grafica logaritmica atat pe x cat si pe y vom folosi
functia loglog.
Fig. 9

Reprezentarea logaritmica are la baza trei functii cu ajutorul carora putem realiza logarea
axelor:
semilogx(x,y): - genereaza un grafic de log10(x) versus axa y liniara
semilogy(x,y): - genereaza un grafic cu axa x liniara versus log10(y)
loglog(x,y): - genereaza un grafic de log10(x) versus log10(y)

O alta reprezentare 2D este aceea a diagramelor bara. Aceasta reprezentare se


caracterizeaza prin funcia bar sau barh.

x=1:3:33;
y=[66 56 50 3 89 5 78 65 4 25 99];
bar(x,y);
grid on;

Fig. 10
Daca am folosi functia barh am obtine:

Fig. 11

MatLab-ul permite de asemenea afisarea mai multor ferestre de grafice in aceasi figura.
Pentru aceasta vom folosi functia subplot. Aceasta functie se caracterizeaza prin 3 valori
pe care utilizatorul le poate alege dupa dorinta sa.

subplot (a b c) , unde a – reprezinta numarul de ferestre pe verticala


b – reprezinta numarul de ferestre pe orizontala
c – pozitia in care vrem sa afisam.

Fig. 12

Fig. 13
In figura anterioara am pozitionat 9 astfel de sisteme de axe pentru reprezentari
grafice.
Un alt exemplu:

Fig. 14

Grafica 3D

Un alt tip de reprezentare este cel in grafica 3D. Acum vom avea un sistem de 3
axe X,Y,Z, deci v-a fi nevoie de 3 parametri ai unei fucntii. Una din functiile care
reprezinta grafica 3D este functia plot3.

t = 0:pi/50:10*pi;
subplot(221)
plot(t,sin(t),'-r'); %reprezint 2D sinus
grid on;
subplot(223)
plot(t,cos(t),'-g') %reprezint 2D cosinus
subplot(122)
plot3(sin(t),cos(t),t,':pb'); %reprezint 3D

Fig. 15
In figura 15 se observa reprezentarea 3D a funcitiilor sinus si cosinus pe un
interval de timp. La fel ca si functia plot, plot3 permite anumite setari ale graficului
reprezentat, legat de modul de aparitie.
De cele mai multe ori prin grafica 3D se doreste sa se reprezinte grafic suprafete,
mai mult decat simple curbe.In acest scop, Matlab ne-a pus la dispozitie doua functii
speciale: surf si mesh.
Mesh aceasta functie realizeaza un schelet al unei suprafete data de coordonatele
x, y si z.

[X, Y] = meshgrid(-pi:pi/10:pi);
Z = sin (X) .* sin (Y);
mesh (Z);

Fig. 16

Surf se foloseste pentru a vizualiza functii matematice intr-o suprafata


rectangulara.

[X, Y] = meshgrid(-pi:pi/10:pi);
Z = sin (X) .* sin (Y);
surf (Z);

Fig. 17
Meshgrid realizeaza o transformare a domeniului specificat de vectorii x, y in
doua sau mai multe matrici, in functie de cati parametrii trebuie sa returneze, in acest caz
x, y, care va fi folosita la reprezentarea acestora in grafica 3D.Liniile matricii de iesire
vor fi copii ale vectorului x, iar coloanele matricii y vor fii copii ale vectorului y.

Tema

1.Sa se analizeze toate functiile prezentate.


2.Sa se reprezinte graphic functia:

x 3
f x , pentru x [-5,5]
x2 5

3.Sa se reprezinte graphic functia:


2
f x 2e x sin x 2

4. Se dau functiile m(t), c(t), si s(t) caracteristice unui sistem de comunicatii:

m(t)=4cos(120pi*t)+ 2cos(240pi*t)
c(t)= 10cos(10000pi*t)
s(t)=m(t)*c(t)

sa se reprezinte grafic cele 3 functii folosind functia subplot.

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

  • Retete
    Retete
    Document42 pagini
    Retete
    sayuri8910
    Încă nu există evaluări
  • Curs 08
    Curs 08
    Document28 pagini
    Curs 08
    sayuri8910
    Încă nu există evaluări
  • Lab
    Lab
    Document5 pagini
    Lab
    sayuri8910
    Încă nu există evaluări
  • R11
    R11
    Document14 pagini
    R11
    sayuri8910
    Încă nu există evaluări
  • Formule Integrale
    Formule Integrale
    Document3 pagini
    Formule Integrale
    sayuri8910
    Încă nu există evaluări
  • Invertoare
    Invertoare
    Document20 pagini
    Invertoare
    sayuri8910
    Încă nu există evaluări
  • Brosura Cursuri
    Brosura Cursuri
    Document212 pagini
    Brosura Cursuri
    sayuri8910
    Încă nu există evaluări
  • Carte - Metode de Calcul Numeric in Automatic A
    Carte - Metode de Calcul Numeric in Automatic A
    Document177 pagini
    Carte - Metode de Calcul Numeric in Automatic A
    sayuri8910
    Încă nu există evaluări
  • Brosura Cursuri
    Brosura Cursuri
    Document212 pagini
    Brosura Cursuri
    sayuri8910
    Încă nu există evaluări