Sunteți pe pagina 1din 16

LUCRAREA 4

Elemente de grafic n MATLAB

1. Grafice 2D.
Presupunem c am efectuat un experiment n care variind o
m rime x de la -5 la 5 cu pasul 0.5 am ob inut urm torul sir de valori: -4,
-7, -5, -3, 0, 2, 5, 8, 6, 2, 0, -4, 2, 4, 7, 9, 6, 0, -3, -1, -3. Putem cu
MATLAB s prezent m un grafic al varia iei rezultatelor. Pentru aceasta
vom proceda astfel. Vom construi vectorul x al parametrului cu ajutorul
operatorului : .
>> x=-5:0.5:5
Vom defini vectorul y al valorilor ob inute:
>> y=[-4,-7,-5,-3,0,2,5,8,6,2,0,-4,2,4,7,9,6,0,-3,-1,-1]
Vom construi graficul dorit utiliznd func ia plot:
>> plot(x,y)
ntr-o fereastr special (fereastra grafic ) apare graficul dorit (Figura
4.1):

Figura 4.1

1
Vom completa acest grafic cu un titlu, cu etichete pentru axa Ox
i Oy, cu indicarea prin text pe grafic al punctului de minim i de maxim:
>> title ('EXEMPLUL 1')
>> xlabel('VARIATIA PARAMETRULUI X')
>> ylabel('REZULTATE')
>> text(-4.5,-7,'minim')
>> text(2.5,9,'maxim')
La comanda text valorile numerice indic punctul (x,y) pozi ia din
fereastra graficului de unde va ncepe scrierea textului. Pentru informa ii
suplimentare recomand m capitolul corespunz tor din manualul User
Guide [2] (Figura 4.2).

Figura 4.2

Func ia plot are urm toarea form sintactic :


plot(x,y,speclinie) unde
- x i y sunt vectorii ce definesc punctele de reprezentat

2
- speclinie este un ir de caractere intre ` ` i reprezint tipul liniei ce
une te punctele definite de x i y, markerul cu care se reprezint
punctele definite de x i y i culoarea liniei puse n aceast ordine.
Tipul de linie poate fi:
simbol Tip linie
- Linie continu (implicit)
-- liniu e
: puncte
-. Linie-punct

Markerul poate fi:


simbol Tip marker
+ Semnul +
o cerc
* asterisc
. punct
x cruce
s p trat
d romb
^ triunghi cu un vrf n sus
v triunghi cu un vrf n jos
> triunghi cu un vrf la dreapta
< triunghi cu un vrf la stnga
p pentagrama stelat
h hexagrama stelat

Culorile pot fi:


simbol culoare
r ro u
g verde
b albastru
c bleu
m mov
y galben
k negru
w alb

Vom reprezenta acum graficul func iei f(x)=x*sin(x) pe intervalul


[- , ]. Pentru aceasta vom construi cei doi vectori x i y dup care vom

3
utiliza comanda plot. Vom considera ra ia ca fiind 0.01. ntruct x este un
vector iar sin(x) este tot un vector va trebui s utiliz m la nmul ire
opera ia cu punct (.*)
>> x=-pi:0.01:pi;
>> y=x.*sin(x);
>> plot(x,y,-xr)
>> title('Graficul func iei x*sin(x)')
>> xlabel('x')
>> ylabel('x*sin(x)')
Graficul ob inut este prezentat n figura 4.3
Remarca i faptul c am pus la sfr itul definirii lui x ; care are
rolul de a anula scrierea pe ecran vectorului x. Am f cut acest lucru
pentru a nu umple inutil ecranul cu elementele lui x (nu mai pu in de 629
de elemente). Am procedat la fel i la definirea lui y (evident tot 629 de
elemente). Recomand m utilizarea acestui separator pentru a anula
scrierea inutil a tot felul de numere pe ecran. ns este util s nu utiliz m
separatorul ; dac dorim s depan m un program.

Figura 4.3

4
Putem reprezenta i suprafa a ce reprezint graficul unei func ii
de dou variabile z=f(x,y).
x y
f ( x, y ) = 2 pentru x [ 2, 2] , y [ 4, 4]
x + y2 +1
Pentru aceasta trebuie s definim mai nti matricile ce definesc
domeniul de defini ie i utiliz m apoi comanda surf (figura 4.4)..
>> [x,y]=meshgrid([-2:0.2:2],[-4:0.4:4]);
>> z=x.*y./sqrt(x.^2+y.^2+1);
>> surf(x,y,z)

Figura 4.4
Comanda meshgrid are rolul de a transforma domeniile de tip
vector ale lui x i y n matrici pentru a putea fi utilizate de surf care cere
ca variabilele de intrare s fie matrici.
n locul comenzii surf se pot utiliza comenzile mesh,surfc,meshc
ultimele dou desennd pe planul xOy liniile de contur. Dac se doresc
doar liniile de contur exist comenzile contour(x,y,z) i contourf(x,y,z)
special pentru acest lucru. Ultima dintre ele umple cu culoare diferen ele
de nivel ( vezi figura 4.5).
Pentru a le desena graficele pe acela i ecran am folosit comanda
subplot(n,m,k) unde n reprezint num rul de lini de subferestre, m

5
num rul de coloane de subferestre, iar k num rul ferestrei ce devine
activ . Comenzile au fost:
>> subplot(1,2,1)
>> contour(x,y,z)
>> subplot(1,2,2)
>> contourf(x,y,z)

Figura 4.5
Pentru desenarea de figuri geometrice n spa iu avem trei
comenzi:
- cylinder(y,n) deseneaz un corp de rota ie n jurul axei z generat de o
curb creat de vectorul y i avnd n puncte pe circumferin . Daca r
este constant atunci deseneaz o prism regulat cu baza avnd n
laturi. Cu ajutorul ei se pot desena i piramide sau conuri.
- sphere(n) o sfer cu n puncte pe circumferin .
- ellipsoid(xc,yc,zc,rx,ry,rz) genereaz un elipsoid de centru (xc,yc,zc)
i semiaxe rx,ry,rz.

Aplica ii
1. S se reprezinte graficele func iilor urm toare:

6
x
y1 = e 2 sin ( 2 x ) ; y2 =
x +1
x3
2
; (
y3 = x sin x 2 + 1 ;) y 4 = x 2 + 1 arctg ( x ) ,

definite pe intervalul x [ 2 , 2] . Reprezentarea se va face:


a) toate func iile pe aceia i figur ;
b) fiecare func ie n figura ei dar toate pe acela i ecran.

sin x2 + y2
2. a) S se reprezinte graficul func iei z =
x2 + y 2
pe domeniul x [ 8 , 8] , y [ 8 , 8] . Se vor utiliza toate comenzile de
desenare ( mesh, meshc, surf, surfc ), pe acela i ecran n figuri diferite.
Discuta i diferen ele.
b) S se traseze suprafa a definit de z = x sin ( x ) cos ( y )
pe domeniul dat de x [ , ] , y [ , ] i s se editeze modul de
colorare al suprafe ei.
c) S se traseze liniile de contur ale celor dou grafice de
mai sus n ambele variante de desenare, cele patru desene fiind
reprezentate pe aceia i imagine.

3. S se deseneze urm toarele figuri geometrice:


a) un cilindru;
b) un paralelipiped dreptunghic;
c) o piramid cu baza p trat ;
d) un trunchi de piramid cu baza hexagonal :
e) un con;
f) un trunchi de con;
g) o suprafa de rota ie generat de func ia: y = x sin( x) ;
h) o sfer :
i) un elipsoid cu centrul n punctul (0,0,0) si de raze: rx=1,
ry=8 i rz=3.

4. S se fac urm toarele intersec ii de figuri:


a) un cilindru i un con;

7
b) un elipsoid de centru (0,0,0.5) i raze rx=1.5, ry=1 i
1
rz=0.75 cu conul generat de y = x 4; pentru x=0:0.5:8.
2

Indica ii i solu ii

1. a) x=-2:0.1:2; y1=exp(x/2).*sin(2*x); y2=(x-2)./(x.^2+1);


y3=x.*sin(x.^2+1); y4=sqrt(x.^2+1).*atan(x);
plot(x,y1,r,x,y2,b,x,y3,g,x,y4,m)

Fig. 1.a)
b) x=-2:0.1:2; y1=exp(x/2).*sin(2*x); y2=(x-2)./(x.^2+1);
y3=x.*sin(x.^2+1); y4=sqrt(x.^2+1).*atan(x);
subplot(2,2,1); plot(x,y1,r); subplot(2,2,2); plot(x,y2,b);
subplot(2,2,3); plot(x,y3,g); subplot(2,2,4); plot(x,y4,m)

8
Fig. 1.b)
2. a) x=-8:0.5:8; y=x; [X,Y]=meshgrid(x,y);
Z=sin(sqrt(X.^2+Y.^2+eps))./sqrt(X.^2+Y.^2+eps); surf(X,Y,Z)

Fig. 2.a)

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

Fig. 2.b)
c) x=-8:0.5:8; y=x; [X,Y]=meshgrid(x,y);
Z=sin(sqrt(X.^2+Y.^2+eps))./sqrt(X.^2+Y.^2+eps); subplot(2,2,1)
contour(X,Y,Z); subplot(2,2,3); contourf(X,Y,Z)
x=-pi:pi/10:pi; y=x; [X,Y]=meshgrid(x,y); Z=X.*sin(X).*cos(Y);
subplot(2,2,2);contour(X,Y,Z); subplot(2,2,4); contourf(X,Y,Z)

Fig.2,c)

10
3. a) cylinder;

Fig.3.a)
b) cylinder(4,4);

Fig. 3.b)

11
c)x=0:0.2:2; y=x-2; cylinder(y,4);

Fig. 3.c)
d) x=0:0.2:2; y=x-3; cylinder(y,6);

Fig. 3.d)

12
e) x=0:0.2:2; y=x-2; cylinder(y,40);

Fig 3.e)
f) x=0:0.2:2; y=x-3; cylinder(y,40);

Fig. 3.f)

13
g) x=-pi/2:pi/10:pi/2; y=x.*sin(x); cylinder(y,40);

Fig. 3.g)
h) sphere;

Fig. 3,h)

14
j) ellipsoid(0,0,0,1,8,3).

Fig. 3.h)
4. a) x=0:0.1:2; y=x-2; cylinder(y,50); hold on; cylinder;

Fig. 4.a)

15
b) ellipsoid(0,0,0.5,1.5,1,0.75); hold on; x=0:0.5:8; y=0.5*x-
4; cylinder(y,40)

Fig, 4.b)

16