2. Matlab ofrece gran número de
posibilidades a la hora de realizar
representaciones gráficas. Dibuja
curvas planas y superficies. Permite
agrupar y superponer
representaciones. Todo ello con
variaciones de estilo y de
coordenadas.
Permite a su vez realizar gráficos de
tipo estadístico: de barra,
histogramas, etc.
Por las características propias del programa, los gráficos, en concreto los 2D, están
orientados a la representación gráfica de vectores. Se utiliza una ventana especial
para la creación de los gráficos: la ventana gráfica o de dibujo y, dichos gráficos se
guardan en ficheros de extensión .fig. Ciertos comandos ejecutados sobre la línea de
comandos son los que abren esta ventana, otros dibujan sobre la ventana activa,
bien sustituyendo lo que había en ella, bien añadiendo nuevos elementos gráficos a
los que había. Los iremos estudiando con más detalle.
3. Funciones Básicas para las gráficas 2D
El comando básico para la
representación de gráficos 2D es el
comando plot.
Su sintaxis puede ser:
plot(x,y): dibuja el conjunto de puntos
(x,y) donde las abscisas de los puntos
se encuentran en el vector x y las
ordenadas en el y.
Para representar una función f(x) es
necesario conocer los valores de
puntos de la forma (x,f(x)). Para ello
puede seguirse alguno de estos
caminos:
4. - Definir un vector x con el rango de variación donde se desea pintar la
función.
Para ello puede ser muy útil el comando linspace(xmin,xmax,n).
Crear el vector y evaluando f en x. Por ejemplo: 50
>> x=linspace(0,10,100);
>> y=sin(x);
>> plot(x,y)
Por defecto, MATLAB dibuja uniendo los puntos con
línea continua de color azul y un grosor determinado,
opciones todas que se podrán alterar .
5. - También es posible dibujar una función con el comando
fplot cuya sintaxis es la siguiente:
fplot(‘f(x)’,[xmin,xmax]).
Así, este comando admite como argumento un nombre de
función o de un fichero .m en el que está definida la función
a representar.
Por ejemplo:
>> fplot(‘sin(x)',[-3*pi,3*pi,-1,1])
En general, si no se cierra la ventana de dibujo
generada al evaluar un comando como los
anteriotes, si se vuelve a ejecutar uno de ellos, se
dibuja sobre dicha ventana perdiéndose el primer
dibujo.
6. Si se desea representar varias funciones a la vez las opciones son:
- plot(x,y,x,z) donde x el vector de las abscisas, común para las dos
representaciones, y es el de las ordenadas de la primera representación y
z las de la segunda.
- fplot(‘[f1(x),f2(x),...]’,[xmin,xmax]) donde f1, f2, … son las funciones a
representar en el intervalo de variación marcado por xmin y xmax.
Mediante el comando: hold on, hold off.Todos los gráficos que se ordene
dibujar entre los comandos hold on y hold off se representan en la misma
figura. Si hay una figura abierta se dibujan en ésta.
Ejemplo:
>> hold on
>> x=[-3*pi:1:3*pi];
>> plot(x,sin(x))
>> plot(x,tan(x),'r')
>> hold off
7. El comando subplot. Una ventana gráfica se puede
dividir en m particiones horizontales y n verticales para
representar mxn figuras. Cada una de las particiones
tendrá sus ejes aunque las propiedades serán comunes
a todas ellas. La sintaxis es: subplot(m,n,i), donde m y n
son el número de subdivisiones e i la subdivisión activa.
Por ejemplo:
>> x=0:0.1:2*pi;
>> y=sin(x);z=cos(x);t=exp(-x);v=x^2;
>> subplot(2,2,1), plot(x,y) 51
>> subplot(2,2,2), plot(x,z)
>> subplot(2,2,3), plot(x,t)
>> subplot(2,2,4), plot(x,v)
La ventana gráfica sería la de la figura
8. Representación gráfica en 3D
La representación de funciones 3D ( es
decir, funciones f: R2® R) se puede realizar en
MATLAB de forma directa, utilizando alguna de las
utilidades predefinidas en dicho lenguaje. Para
ello, en cualquier caso, es necesario
que, previamente, se definan todos los puntos
(x, y) sobre los cuales va a tomar valores la
función f. Esta tarea se realiza discretizando, en
primer lugar, los ejes x e y que definen el plano y, a
partir de esta discretización inicial, se calculan
todos los pares de puntos (x, y) utilizando la
funciónmeshgrid.
Esta función devuelve dos pares de matrices en las
cuales se almacenan, respectivamente, las
coordenadas x e y de los puntos de R2 en que se va
a representar la función f.
9. Ejemplo
Si deseamos representar una función f:[0,2]x[0,2]® R será
necesario, en primer lugar, definir los ejes x e y correspondientes
a dichos intervalos, con la discretización deseada:
>>x=0:0.5:2;
>>y=0:0.5:2;
de modo que cada eje se supone discretizado en 5 puntos.
Seguidamente, se construyen todos los pares (x, y) directamente
utilizando
>>[XY]=meshgrid(x, y);
Las matrices X e Y así generadas almacenan las coordenadas de
los 25 puntos en que se discretiza el plano [0,2]x[0,2], de modo
que en X se guardan las coordenadas x de los puntos, y en Y las
coordenadas y.
10. El siguiente paso consiste en calcular los valores de la función para
cada uno de los puntos (x, y), lo cual se hace directamente
manejando las matrices X e Y como si fuesen variables.
Así, si la función es
escribiríamos
>>Z=exp(X.^2+Y.^2);
(ojo con los operadores ".", porque tanto X como Y son matrices
numéricas) de modo que, ahora, en las matrices X, Y y Z tenemos ya
guardadas las coordenadas 3D de los puntos que queremos
representar.
Estas matrices son las que se utilizan con las funciones predefinidas
para representación 3D en MATLAB. Por ejemplo, puede probarse la
función
>> mesh(X,Y,Z)
En este ejemplo, la representación no es muy precisa, ya que la
discretización escogida para los ejes (0.5) no es demasiado fina.
11. Otras funciones de representación
En todos los casos de representación gráfica (y esto incluye
a las representaciones 2D) es posible modificar el "punto de
vista" del observador de la gráfica. En la versión 5.3 de
MATLAB esto puede hacerse de forma interactiva
utilizando el ratón. Para ello basta activar el botón 3D y
establecer con el ratón el nuevo punto de vista de la gráfica.
Los parámetros que definen el "punto de vista" son
la elevación y el azimut, que indican, respectivamente, la
altura sobre el eje z y el ángulo respecto del plano XY en que
se sitúa el observador.
Además de las funciones ya descritas, es posible, en ambos
casos, añadir a la representación gráfica las curvas de nivel
correspondientes a la función que se representa. Para ello
se utilizan las funciones meshc y surfc en lugar
de mesh y surf. Estas curvas de nivel se proyectan sobre el
plano XY automáticamente.