Está en la página 1de 11

1

UNIVERSIDAD TECNOLGICA DE PEREIRA


Programa de Tecnologa Elctrica

Matlab Introduccin
Taller 2

Programacin TE243
Segundo semestre de 2007
Ing: Jos Norbey Snchez
Grupo: 02

1. Grficos en dos y tres dimensiones:

1.1 Grficos en dos dimensiones:

MATLAB dispone de cuatro funciones bsicas para crear grficos 2-D. Estas funciones
se diferencian principalmente por el tipo de escala que utilizan en los ejes de abscisas y
de ordenadas. Estas cuatro funciones son las siguientes:

plot() crea un grfico a partir de vectores y/o columnas de matrices, con escalas
lineales sobre ambos ejes.
loglog() dem con escala logartmica en ambos ejes.
semilogx() dem con escala lineal en el eje de ordenadas y logartmica en el eje de
abscisas.
semilogy() dem con escala lineal en el eje de abscisas y logartmica en el eje de
ordenadas.

En lo sucesivo se har referencia casi exclusiva a la primera de estas funciones (plot).
Las dems se pueden utilizar de un modo similar. Existen adems otras funciones
orientadas a aadir ttulos al grfico, a cada uno de los ejes, a dibujar una cuadrcula
auxiliar, a introducir texto, etc. Estas funciones son las siguientes:

title('ttulo') aade un ttulo al dibujo.
xlabel('tal') aade una etiqueta al eje de abscisas. Con xlabel off desaparece.
ylabel('cual') aade una etiqueta al eje de ordenadas. Con ylabel off desaparece
text(x,y,'texto') introduce 'texto' en el lugar especificado por las coordenadas x e y.
Si x e y son: vectores, el texto se repite por cada par de elementos.
Si texto es tambin un vector de cadenas de texto de la misma
dimensin, cada elemento se escribe en las coordenadas
correspondientes.
gtext('texto') introduce texto con ayuda del ratn: el cursor cambia de forma y se
espera un clic para introducir el texto en esa posicin.
legend() define rtulos para las distintas lneas o ejes utilizados en la figura.
Para ms detalle, consultar el Help grid activa la inclusin de una
cuadrcula en el dibujo. Con grid off desaparece la cuadrcula.

2
Ejemplo. Generar una seal sinusoidal de amplitud unitaria.

>> t=0:pi/100:2*pi;
>> seno=sin(t);
>> plot(t,seno)



Ejemplo graficar punteando dos vectores m y t de la misma dimensin:

>> t=[-5 -4.5 -3 -2 0 1 1.5 4 4.5 5];
>> m=[20 10 12 4 15 18 3 20 4 7];
Si el objetivo es graficar m contra t se digita:
>> plot(t,m)



Si queremos presentarla en color rojo escribimos plot(t,m,r), otros colores como
y(amarillo), g(verde), w(blanco) y k(negro); si se digita plot(t,m,r--), aparece la curva
punteada, otras formas .,+,*,o,:, etc. Sin cerrar la curva, tecleando los comandos:
xlabel(t(segundos)) y ylabel(m(amperios)), se adiciona el texto entre comillas
simples a los ejes x y y respectivamente como se muestra en la figura.

Ejemplo: graficar:

>> t=[-5 -4.5 -3 -2 0 1 1.5 4 4.5 5];
>> m=[20 10 12 4 15 18 3 20 4 7];
>> plot(t,m)
3
>> xlabel('t(segundos)')
>> ylabel('m(amperios)')



Mediante el comando gtext(Curva ilustrativa) se puede adicionar el texto entre
comillas (siempre con la figura abierta) donde se posicione el cursor y se haga el
correspondiente clik. En este caso se desplegar en la curva. i se desea concentrar la
atencin en una determinada zona de la curva se puede utilizar el comando
axis([-4 -2 8 14]) donde los dos primeros elementos del vector son las coordenadas
horizontales y los dos ltimos las coordenada verticales. Ver figura.

Ejemplo: graficar:

>> t=[-5 -4.5 -3 -2 0 1 1.5 4 4.5 5];
>> m=[20 10 12 4 15 18 3 20 4 7];
>> plot(t,m)
>> xlabel('t(segundos)')
>> ylabel('m(amperios)')
>> gtext('Curva Ilustrativa')
>> axis([-4 -2 8 14])


4

Se pueden hacer lecturas directamente de la curva mediante el comando ginput. Por
ejemplo tomar dos lecturas de la curva: [x,y]=ginput(2)
Ejemplo:

t=[-5 -4.5 -3 -2 0 1 1.5 4 4.5 5];
m=[20 10 12 4 15 18 3 20 4 7];
plot(t,m)
xlabel('t(segundos)')
ylabel('m(amperios)')
[x,y]=ginput(2)
x =
0.0115
1.0945
y =
14.8684
15.9737
>> grid on

Para la ubicacin de los puntos se puede habilitar convenientemente un reticulado
mediante la instruccin grid on apareciendo en la siguiente figura. Si se quiere
deshabilitar se entra grid off.



En caso de necesitarse dibujar una curva adicional sobre la misma grfica anterior se
usa el comando hold on. Por ejemplo para graficar una funcin sinusoidal sera:

Ejemplo en dos vectores de 9 datos sumarle una funcin seno:

>> t=[-4 -3 -2 -1 0 1 2 3 4];
>> m=[-2 -1 -1.5 -0.8 0 0.1 1.3 1.8 1];
>> plot(t,m)

5


A la grfica anterior le sumamos una funcin seno colocando hold on.

>>hold on;
>>t=0:pi/100:2*pi;
>> seno=sin(t);
>> plot(t,seno)



El comando hold of deshabilita lo asociado.

Las curvas anteriores podran mostrarse en dos subgrficas una debajo de la otra
separadas, pertenecientes a una misma ventana, usando el comando subplot(m,n,p),
se genera una matriz de m filas y n columnas, y p genera los ejes de cada grfica.

Ejemplo:

>> t=[-4 -3 -2 -1 0 1 2 3 4];
>> m=[-2 -1 -1.5 -0.8 0 0.1 1.3 1.8 1];
>> subplot(2,1,1)
>> plot(t,m)
>> seno=sin(t);
>> subplot(2,1,2)
6
>> seno=sin(t);
>> plot(t,seno)



Los comandos axis, xlabel, ylabel etc., se entran despus del respectivo plot para
colocar etiquetas. Usando el comando subplot(m,n,p), donde se genera una matriz de
m filas y n columnas, y p genera los ejes de cada grfica.

Ejemplo:

>> t=[-4 -3 -2 -1 0 1 2 3 4];
>> m=[-2 -1 -1.5 -0.8 0 0.1 1.3 1.8 1];
>> subplot(1,2,1)
>> plot(t,m)
>> seno=sin(t);
>> subplot(1,2,2)
>> seno=sin(t);
>> plot(t,seno)




7
1.2 Grficos en tres dimensiones

La mayora corresponden a superficies que representan la magnitud de una funcin de
dos variables; las dos variables se representan en el plano horizontal y el valor de la
funcin como una altura sobre dicho plano. La superficie se forma al unir las pequeas
rejillas implementadas alrededor de cada punto. Los comandos utilizados para graficar
superficies son: mesh, meshz, meshc, surf, surfc. A travs de algunos ejemplos se
ilustrar la operacin de los comandos y de otras utilidades adicionales. El ms
aplicable de los anteriores es mesh.

Ejemplo: graficar un plano en 3D.



>> x=-5:.5:5; (rango)
>> y=x; (me genera una lnea con pendiente a 45 en el rango dado)
>> [x1,y1]=meshgrid(x,y); (me genera un plano en el rango dado)
>> z1=0*x1+10; (tercera variable para generar en 3D)
>> surf(z1) (grfico en 3D)

Si deseamos colocar otro plano lo hacemos con hold on escribiendo lo siguiente:

Ejemplo: graficar dos planos en 3D.

>> x=-5:.5:5;
>> y=x;
>> [x1,y1]=meshgrid(x,y);
>> z1=0*x1+10;
>> surf(z1)
>> hold on
>> z2=0*x1+20;
>> mesh(z2)
8


En esta figura anterior se observa la diferencia entre mesh y surf. El comando surf
presenta dificultades cuando el nmero de puntos es grande; se pueden apreciar los
problemas repitiendo el proceso anterior con un incremento para x1 de 0.1 en lugar del
0.5 utilizado, por lo que se recomienda utilizar preferentemente mesh. Se aprecia
tambin que se est graficando contra el ndice, para graficar directamente contra los
ejes especificados debe digitarse:

Ejemplo: graficar tres planos en 3D, pero con los rangos especificados.

>> x=-5:.5:5;
>> y=x;
>> [x1,y1]=meshgrid(x,y);
>> z1=0*x1+10;
>> surf(x,y,z1)
>> hold on
>> z2=0*x1+20;
>> mesh(x,y,z2)
>> mesh(x,y,z2+10)

Se puede observar que los ejes no se pierden

axis([-5 5 -5 5 0 30])
9



Ejemplo: grfica en 3D, donde el tercer vector es una funcin.

>> x=-5:.5:5;
>> y=x;
>> [x1,y1]=meshgrid(x,y);
>> z4=1./(x1.^2+1);
>> mesh(x,y,abs(z4))



Para el caso tridimensional, se tienen los vectores x, y y z, entonces para generar una
grfica slo es necesario teclear. Otra forma: plot3(x,y,z).


10
Ejemplo. Generar una grfica tridimensional de una helicoidal.

t = 0:pi/50:10*pi;
plot3(sin(t),cos(t),t)
axis square;
grid on

El comando axis permite fijar los lmites de los ejes en una grfica y la opcin square
fija las coordenadas iguales en los tres ejes. En la figura se muestra la grfica
resultante.



Tarea:
En dos dimensiones
1) Graficar una funcin diente de sierra uniforme y sumarle una funcin coseno
2) Obtener 4 grficas en un mismo display, por filas y por columnas de: 1-funcin
seno, 2- funcin coseno, 3- una constante y 4- pendiente positiva.

En tres dimensiones
1) graficar 5 planos en tres dimensiones.
2) Dibujar la funcin sen(r)/r (siendo r=sqrt(x
2
+y
2
), en el rango de u=-8:0.5:8; v=u;
donde r=sqrt(U.^2+V.^2)+eps. Para evitar dividir por 0 se suma al denominador
el nmero pequeo eps). Utilizando los comandos meshgrid y mesh.
3) Con el comando plot3 graficar una funcin seno, una funcin coseno y una
funcin constante,
4) De acuerdo a 3) Cmo se graficara un valo?.






11




















u=-8:0.5:8; v=u;
[U,V]=meshgrid(u,v);
R=sqrt(U.^2+V.^2)+eps;
W=sin(R)./R;
mesh(W)

También podría gustarte