Академический Документы
Профессиональный Документы
Культура Документы
Page 1 of 15
Graficas en dos dimensiones. Suponga que desea graficar un conjunto de puntos de datos [xi, yi], i = 1,2,3, ..., n. En necesario hacer dos arreglos, del mismo tamao, para x y y que representen los valores que deseamos graficar. Una manera de hacerlo es utilizando la instruccin plot. Ejemplo 1. Graficar la funcin f(x)=seno(x)e(-0.4x) para x = [0, 10].
x = 0: 0.05: 10; y = sin(x).*exp(-0.4*x); plot(x,y); xlabel('Eje x'); ylabel('Eje y'); grid on;
Los rtulos de los ejes de imprimen con los comando xlabel y ylabel.
0.6 0.5 0.4 0.3
Eje y
5 Eje x
10
http://lc.fie.umich.mx/~calderon/Matlab/Graficas.html
28/11/2011
Page 2 of 15
1 0.8 0.6 0.4
Imaginario(z)
0.2 0 -0.2 -0.4 -0.6 -0.8 -1 -1 -0.8 -0.6 -0.4 -0.2 0 Real(z) 0.2 0.4 0.6 0.8 1
Graficacin utilizando nicamente marcas. Los datos pueden graficarse solo con marcas sin estar conectados por lneas. Se dispone de cinco tipos de marcas o letras. Tipo de marca Smbolo Punto . Mas + Estrella * Circulo o Marca x x Tambin se pueden utilizar lneas Tipo de lnea Smbolo continua guiones -Punteada : Guiones y puntos -. y colores. Color de lnea Smbolo rojo r amarillo y
http://lc.fie.umich.mx/~calderon/Matlab/Graficas.html 28/11/2011
Page 3 of 15
m c g b w k
Graficacin de funciones con fplot. Otra forma de grafica funciones individuales es con fplot.
fplot(archivo, [xmin, xmax]);
donde archivo es el nombre del archivo que contiene los datos a graficar y [xmin y xmax] los limites de la funcin a graficar. Borrado de Grficas. El comando clf borra todo lo que haya en la ventana de grficos, mientras cla borra las curvas y redibuja los ejes. Retculas Se puede agregar un conjunto de lneas paralelas a los ejes, para hacer mas legible la lectura de datos en la grfica, a este conjunto de lneas se le llama retcula. La instruccin para ponerla es:
grid on;
Graficas polares. Podemos hacer grficas en coordenadas polares utilizando la instruccin: polar(t, y); Esta instruccin es muy similar a plot, la diferencia estriba en que el sistema de coordenadas ya no es un sistema cartesiano x, y, sino un sistema polar r, .
tetha = 0: 0.05: 4*pi+0.1;
http://lc.fie.umich.mx/~calderon/Matlab/Graficas.html
28/11/2011
Page 4 of 15
150
30
210
330
240 270
300
tetha = 0.01: 0.05: 2*pi+0.1; r = 2-5*cos(tetha); polar(tetha, r); title('Caracol de Pascal'); grid on;
120
210
330
240 270
300
http://lc.fie.umich.mx/~calderon/Matlab/Graficas.html
28/11/2011
Page 5 of 15
automticamente, sin embargo, hay manera de ajustarlos automticamente utilizando el comando axis.
axis(square); % redibuja en forma cuadrada. axis(off); % cancela el efecto axis([x_min, x_max, y_min, ymax]) % establece los valores mnimos y mximos para cada eje.
Grficas Logartmicas y semilogaritmicas. Las funciones pueden graficarse en una escala log-log utilizando el comando
loglog(x,y);
Ejemplo 3. El siguiente ejemplo muestra como trazar una funcin en una escala logartmicalocartmica.
x = 0:0.1:10; y = x.^2; loglog(x,y);
10
10
10
10
-1
10
-2
10
-1
10
10
http://lc.fie.umich.mx/~calderon/Matlab/Graficas.html
28/11/2011
Page 6 of 15
semilogy(x,y);
10
10
10
10
-1
10
-2
10
Graficacin de mltiples curvas. Se uno desea graficar mas de una curva entonces ser necesario en la instruccin plot poner mas de un par de termino a graficar tal como se muestra a continuacin.
x = 0: 0.05:5; y = sin(x); z = cos(x); plot(x, y, x, z);
1 0.8 0.6 0.4 0.2 0 -0.2 -0.4 -0.6 -0.8 -1 0 0.5 1 1.5 2 2.5 3 3.5 4 4.5 5
http://lc.fie.umich.mx/~calderon/Matlab/Graficas.html
28/11/2011
Page 7 of 15
Automticamente se seleccionaran los colores de cada grafica y si uno desea podrn cambiarse haciendo
x = 0: 0.05:5; y = sin(x); z = cos(x); plot(x, y, '--', x, z, '*');
En algunos casos resulta til mandar a graficar utilizando solo un par de argumentos en la sentencia plot. En tal caso se procede :
clear; x = 0: 0.05:5; y(1, :) = sin(x); y(2, :) = cos(x); y(3, :) = sin(x).*cos(x); plot(x, y);
1 0.8 0.6 0.4 0.2 0 -0.2 -0.4 -0.6 -0.8 -1 0 0.5 1 1.5 2 2.5 3 3.5 4 4.5 5
Retencin (Sobre poner grficas). Hasta el momento hemos realizado el trazado de las curvas utilizando una sola operacin. Pero si deseamos graficar sobre una grafica ya realizada utilizaremos el comando hold on.
clear; x = 0: 0.05:5; y = sin(x); plot(x, y, 'b*'); hold on; z = cos(x); plot(x, z, 'r--'); yz = sin(x).*cos(x);
http://lc.fie.umich.mx/~calderon/Matlab/Graficas.html
28/11/2011
Page 8 of 15
donde x y y representa las coordenadas de la grfica donde deseas que aparezca impresa la cadena. Subgrficas. Con el comando subplot podemos grficar m por n grficas en una sola figura. La sintaxis del comando es subplot(m, n, k) donde m y n se refiere al arreglo de graficas y k al nmero de grafica sobre al que se trabaja. Ejemplo 4. Calcular el voltaje y corriente transitoria que circulan por la inductancia de un circuito RL serie. Para encontrar la solucin utilice el mtodo de la regla trapezoidal y compare el resultado con la solucin real.
function y1 = RL1(Tf, inc) global V R L H V = 10; R = 5; L = 1; H = inc; Ic(1) = 0; num_iter = Tf/inc; t = 0:inc:Tf; Ir = (V/R)*(1-exp(-R*t/L)); for iter = 1: num_iter Ic(iter+1) = f(Ic(iter)); end; subplot(1, 2, 1); plot(t, Ir, '.r'); title('Corriente corriente en la inductancia'); xlabel('tiempo en segundos'); ylabel('corriente en amperes'); hold on; plot(t, Ic, 'k');
http://lc.fie.umich.mx/~calderon/Matlab/Graficas.html
28/11/2011
Page 9 of 15
text(1, 1, '... Real'); text(1, 0.5, '---calculada'); Vr = V - R*Ir; Vc = V - R*Ic; subplot(1,2, 2); plot(t, Vr, '.r'); title('Voltaje en la inductancia'); xlabel('tiempo en segundos'); ylabel('Voltajes'); hold on; plot(t, Vc, 'k'); text(1, 1, '... Real'); text(1, 0.5, '---calculada'); hold off; function I1 = f(Io) global V R L H I1 = (Io + (2*V-R*Io)*H/(2*L))/(1+R*H/(2*L));
Corriente corriente en la inductancia 2 1.8 1.6 1.4 10 9 8 7 6 ... Real Voltaje en la inductancia
corriente en amperes
Voltajes
---calculada
http://lc.fie.umich.mx/~calderon/Matlab/Graficas.html
28/11/2011
Page 10 of 15
Ejemplo 5. Trazar la curva de la funcin f(x,y) = (x-50)2 + (y-50)2, en el rango x = [1,100] y y =[1,100].
clear; for k=1:100; for l=1:100; z(k,l) = (k-50)^2 + (l-50)^2; end; end; mesh(z); title ('grafica de (k-50)^2 + (l-50)^2'); xlabel ('eje x'); ylabel ('eje z'); zlabel ('z(x,y)');
http://lc.fie.umich.mx/~calderon/Matlab/Graficas.html
28/11/2011
Page 11 of 15
100 90 80 70 60
eje y
50 40 30 20 10 10 20 30 40 50 eje x 60 70 80 90 100
clear; for k=1:100; for l=1:100; z(k,l) = (k-50)^2 + (l-50)^2; end; end; contour(z); title ('grafica de (k-50)^2 + (l-50)^2'); xlabel ('eje x'); ylabel ('eje y'); zlabel ('z(x,y)');
Malla. En algunos casos donde los puntos en la direccin de x y de y no son valores enteros positivos, tenemos que hacer uso del comando meshgrid. Ejemplo 6. Trazar la grfica de la funcin z = x*exp(-x2-y2) en el rango x=[-2,2] y y =[-2,2].
http://lc.fie.umich.mx/~calderon/Matlab/Graficas.html
28/11/2011
Page 12 of 15
clear, clf; xa = -2:0.2:2; ya = -2:0.2:2; [x y] = meshgrid(xa,ya); z = x.*exp(-x.^2-y.^2); mesh(x, y, z); title ('Grafica en 3D'); xlabel('x'); ylabel('y'); zlabel('z');
Grfica Vectorial. En ocasiones, las cantidades correspondientes a los puntos de una retcula se dan en forma vectorial. Por ejemplo la distribucin de la velocidad en un flujo, etc. Los vectores en estos puntos pueden calcularse utilizando el comando quiver y requieren de dos vectores uno en la direccin de x y otro en la direccin de y. Ejemplo 7. Graficar el vector gradiente correspondiente a la curva z = x*exp(-x2-y2).
[x,y] = meshgrid(-2:.2:2, -2:.2:2); z = x .* exp(-x.^2 - y.^2); [px,py] = gradient(z,.2,.2); contour(z),hold on, quiver(px,py), hold off
http://lc.fie.umich.mx/~calderon/Matlab/Graficas.html
28/11/2011
Page 13 of 15
20 18 16 14 12 10 8 6 4 2 2 4 6 8 10 12 14 16 18 20
http://lc.fie.umich.mx/~calderon/Matlab/Graficas.html
28/11/2011
Page 14 of 15
Ejemplo 9. Determinar la distribucin de potencial elctrico en un conductor cuadrado, utilizando diferencias finitas.
clear; N = 50; z = zeros(N,N); z(N, :) = 0.1; for iter = 1: 100 for n=2:N-1 for m=2:N-1 suma = 0; suma = suma + z(n-1,m); suma = suma + z(n+1,m); suma = suma + z(n,m-1); suma = suma + z(n,m+1); z(n,m) = suma/4; end; end; end; [c, h] = contour(z); clabel(c, h); colorbar;
http://lc.fie.umich.mx/~calderon/Matlab/Graficas.html
28/11/2011
Page 15 of 15
0.06 0.05
50 0 .0 4 45 40 35 30 25 20 15 10 5
0.09
0.09
0.08 0.07
0.09
0.06 0.05
0.08 4 0.07.0 0
02 1 03 0. 0.0 0.
0.01
10
15
20
25
30
35
40
45
50
Regresar.
http://lc.fie.umich.mx/~calderon/Matlab/Graficas.html
28/11/2011