Documente Academic
Documente Profesional
Documente Cultură
MATLAB
reprezentari grafice
Functii - Exercitiu 1
a) Folosind functia fplot, sa se reprezinte graficul functiei
f(x)=xsin(x) pe intervalul [-pi,pi].
b)Se da functia:f(x)=(x4-5x2+4)/(x6+4). Sa se reprezinte
grafic, sa se determine minimumul functiei pe intervalul
[-3, 0] si maximumul pe intervalul [-1,1];
c) Sa se calculeze pentru f(x) de la pct a):
a)>> f= inline('x.*sin(x)');
% sau f =@(x)(x.*sin(x))
>>fplot(f,[-pi pi],'r')
b)>> fminbnd(inline('(x.^4-5*x.^2+4)./(x.^6+4)'),-3,0)
ans = - 1.3072
>>fminbnd(inline('-(x.^4-5*x.^2+4)./(x.^6+4)'),-1,1)
ans =1
c)>> quad(inline('x.*sin(x)'),-1,1)
ans=0.6023
d)>>dblquad(inline('x.^2./(y.^2+1)'),0,1,0,1)
ans= 0.2618
Functii - Exercitiul 2
a) Sa se rezolve ecuatia:
x2sqrt( x2 + 3) + xln (x2 +1)- 2 - ln 2 = 0 , x=0.5;
a) >> fzero(inline('x.^2.*sqrt(x.^2+3)+x.*log(x.^2+1)-2-
log(2)'),0.5);
ans=1
b)>> g=inline('(x-1).*exp(x).*sin(x)+x.^3-x');
>> fplot(g, [-2,2],'b');
>>fzero(inline('(x-1).*exp(x).*sin(x)+x.^3-x'),-1);
ans=-1.2255
>> fzero(inline('(x-1).*exp(x).*sin(x)+x.^3-x'),0.1)
ans= 0
>>fzero(inline('(x-1).*exp(x).*sin(x)+x.^3-x'),0.9)
ans= 1
Reprezentari grafice 2D – functia ezplot, ezpolar
Tipul de linie poate fi unul din simbolorile:
- continua (implicit) , -- intrerupta, : puncte, -. linie-punct
Tipul marker-ului:
+ ( semnul +), o (cerc), * (asterisc), . (punct), x (cruce),
s (patrat), d (romb), p (pentagon), h (hexagon), ^ (triunghi
cu un varf in sus), v (triunghi cu un varf in jos), > (triunghi
cu un varf la dreapta), < (triunghi cu un varf la stanga)
Culorile pot fi urmatoarele simboluri:
r (rosu), g (verde), b (albastru), c (bleu), m (mov),
y (galben), k (negru), w (alb).
Reprezentari grafice in spatiu- 3D
In Matlab pot fi reprezentate grafic in spatiul 3D: curbe, suprafete
si corpuri 3-dimensionale. O parte din functiile Matlab destinate
reprezentarilor grafice 3D:
plot3(x,y,z, speclinie) - reprezentarea liniilor in spatiu, x,y,z sunt
vectorii ce definesc punctele de reprezentat, iar speclinie este un sir
de caractere intre ` ` reprezentand tipul liniei ce uneste punctele
definite de x si y, markerul cu care se reprezinta punctele definite de
x si y si culoarea liniei, toate in aceasta ordine.
mesh(x,y,z,c) - reprezentarea grafica a suprafetelor 3D sub forma
unei retele (“mesh”)
surf(x,y,z), surfl(x,y,z,s) - reprezentarea grafica a suprafetelor
pline, cu iluminare
contour(x,y,z) , contourf(x,y,z,v) – reprezentarea grafica doar a
liniilor de contur
fill3 - reprezentarea grafica spatiala a poliedrelor
cylinder (y,n), sphere(n), ellipsoid(xc,yc,zc,rx,ry,rz) -
reprezentarea grafica a unor corpuri tridimensionale
Functii auxiliare pentru reprezentari grafice
Cateva functii auxiliare ce pot controla proprietatile modului de
reprezentare:
title - inserarea unui titlu pentru reprezentarea grafica
axes, axis - controlul aparitiei si stabilirea lungimii unitatilor de
reprezentare pe axele sistemului de coordonate
xlabel, ylabel, zlabel - inserarea etichetelor axelor sistemului de
coordonate
text, gtext - plasarea unui text pe grafic la o anumita pozitie, sau
selectata cu mouse-ul.
hold- pastrarea graficului curent si al proprietatilor sale
subplot - impartirea ferestrei de reprezentare grafica in mai multe
regiuni grafice.
grid - suprapunerea unei retele de linii pe grafic
meshgrid -definirea sub forma de retea de puncte a domeniului de
reprezentare 3D a suprafetelor.
colormap - stabilirea sau returnarea matricei de culoare
shading- stabilirea modului de umbrire pentru suprafetele 3D
Reprezentari grafice 2D – Observatii
1) Pentru reprezentarea grafica a functiilor in Matlab este necesar
ca domeniul de reprezentare sa fie definit prin puncte. Distanta
dintre orice doua puncte consecutive ale graficului trebuie sa fie
suficient de mica pentru ca reprezentarea grafica sa fie corecta.
O distanta prea mica necesita mai mult timp de calcul !
y1=e-0.4x cos(8x) si
2 x<6
y(x) = x-4 6 <= x < 20
36-x 20 <= x <= 35
Definim timpul t:
>>t=0:0.1:10;
Definim funcia x(t):
>> x=sin(t);
Punem valoarea 0 în locul valorilor negative ale lui x:
>> x=x.*(x>0);
Facem graficul si punem etichetele:
>> plot(t,x)
>> axis([0 10 -0.1 1.1])
>> xlabel('Timpul [s]')
>> ylabel('Amplitudinea')
>> title('Semnal sinusoidal discontinuu').
Reprezentari grafice 2D– functia legend
Adaugarea unei legende la un grafic se face prin comanda
legend.
Cea mai comoda si comuna apelare este data in exemplu:
>>x = 0:.2:12;
>>plot(x,besselj(1,x),x,besselj(2,x),x,besselj(3,x));
>>legend('First','Second','Third',-1);
>> grafic_log(f,1,10)
Scrieti secventa:
>>subplot(3,1,1),bar(rand(10,5),'stacked'),colormap(cool)
>>subplot(3,1,2), barh(0:.25:1,rand(5),1)
>>subplot(3,1,3), bar(rand(2,3),.75,'grouped')
x=ln(t2+2),
y=t*sin(t),
Sa se reprezinte grafic:
>> x=0:0.2:2;
>> y=x-3;
>>cylinder(y,8)
>> ezsurf('(1-s)*(3+cos(t))*cos(4*pi*s)', …
'(1-s)*(3+cos(t))*sin(4*pi*s)', ...
'3*s + (1 - s)*sin(t)', [0,2*pi/3,0,12] );
>>ezsurfc('(s-sin(s))*cos(t)','(1-cos(s))*sin(t)','s',...
[-2*pi,2*pi]);
De citit si exercitii !