Sunteți pe pagina 1din 16

1

LUCRAREA 4

Elemente de grafic n MATLAB

1. Grafice 2D.
Presupunem c am efectuat un experiment n care variind o
mrime x de la -5 la 5 cu pasul 0.5 am obinut urmtorul 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 prezentm un grafic al variaiei 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 obinute:
>> 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 funcia plot:
>> plot(x,y)
ntr-o fereastr special (fereastra grafic) apare graficul dorit (Figura
4.1):

Figura 4.1
2

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) poziia din
fereastra graficului de unde va ncepe scrierea textului. Pentru informaii
suplimentare recomandm capitolul corespunztor din manualul User
Guide [2] (Figura 4.2).



Figura 4.2

Funcia plot are urmtoarea form sintactic:
plot(x,y,speclinie) unde
- x i y sunt vectorii ce definesc punctele de reprezentat
3
- speclinie este un ir de caractere intre ` ` i reprezint tipul liniei ce
unete 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)
-- liniue
: puncte
-. Linie-punct

Markerul poate fi:
simbol Tip marker
+ Semnul +
o cerc
* asterisc
. punct
x cruce
s ptrat
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 rou
g verde
b albastru
c bleu
m mov
y galben
k negru
w alb

Vom reprezenta acum graficul funciei f(x)=x*sin(x) pe intervalul
[-, ]. Pentru aceasta vom construi cei doi vectori x i y dup care vom
4
utiliza comanda plot. Vom considera raia ca fiind 0.01. ntruct x este un
vector iar sin(x) este tot un vector va trebui s utilizm la nmulire
operaia cu punct (.*)
>> x=-pi:0.01:pi;
>> y=x.*sin(x);
>> plot(x,y,-xr)
>> title('Graficul funciei x*sin(x)')
>> xlabel('x')
>> ylabel('x*sin(x)')
Graficul obinut este prezentat n figura 4.3
Remarcai faptul c am pus la sfritul definirii lui x ; care are
rolul de a anula scrierea pe ecran vectorului x. Am fcut acest lucru
pentru a nu umple inutil ecranul cu elementele lui x (nu mai puin de 629
de elemente). Am procedat la fel i la definirea lui y (evident tot 629 de
elemente). Recomandm utilizarea acestui separator pentru a anula
scrierea inutil a tot felul de numere pe ecran. ns este util s nu utilizm
separatorul ; dac dorim s depanm un program.



Figura 4.3

5
Putem reprezenta i suprafaa ce reprezint graficul unei funcii
de dou variabile z=f(x,y).
( ) [ ] [ ]
2 2
, 2, 2 , 4, 4
1
x y
f x y pentru x y
x y
=
+ +


Pentru aceasta trebuie s definim mai nti matricile ce definesc
domeniul de definiie i utilizm 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 diferenele
de nivel ( vezi figura 4.5).
Pentru a le desena graficele pe acelai ecran am folosit comanda
subplot(n,m,k) unde n reprezint numrul de lini de subferestre, m
6
numrul de coloane de subferestre, iar k numrul 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 spaiu avem trei
comenzi:
- cylinder(y,n) deseneaz un corp de rotaie 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.

Aplicaii

1. S se reprezinte graficele funciilor urmtoare:
7
( )
( )
( )
2 2
2
2
3
1 sin 2 ; 2 ; 3 sin 1 ; 4 1 ,
1
x
x
y e x y y x x y x arctg x
x

= = = + = +
+

definite pe intervalul [ ] 2 , 2 x . Reprezentarea se va face:
a) toate funciile pe aceiai figur;
b) fiecare funcie n figura ei dar toate pe acelai ecran.


2. a) S se reprezinte graficul funciei
2 2
2 2
sin x y
z
x y

+


=
+

pe domeniul [ ] 8 , 8 x , [ ] 8 , 8 y . Se vor utiliza toate comenzile de
desenare ( mesh, meshc, surf, surfc ), pe acelai ecran n figuri diferite.
Discutai diferenele.
b) S se traseze suprafaa definit de ( ) ( ) sin cos z x x y =
pe domeniul dat de [ ] [ ] , , , x y i s se editeze modul de
colorare al suprafeei.
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 aceiai imagine.

3. S se deseneze urmtoarele figuri geometrice:
a) un cilindru;
b) un paralelipiped dreptunghic;
c) o piramid cu baza ptrat;
d) un trunchi de piramid cu baza hexagonal:
e) un con;
f) un trunchi de con;
g) o suprafa de rotaie generat de funcia: sin( ) y x 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 urmtoarele intersecii de figuri:
a) un cilindru i un con;
8
b) un elipsoid de centru (0,0,0.5) i raze rx=1.5, ry=1 i
rz=0.75 cu conul generat de
1
4;
2
y x = pentru x=0:0.5:8.


Indicaii i soluii

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)
9


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)
10
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)
11
3. a) cylinder;

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

Fig. 3.b)
12
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)
13
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)
14
g) x=-pi/2:pi/10:pi/2; y=x.*sin(x); cylinder(y,40);

Fig. 3.g)
h) sphere;

Fig. 3,h)
15
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)
16
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)