Está en la página 1de 15

Trabajo:

DEMO: 3-D plots.

Informática aplicada á problemas


químicos.

Héctor Miguéns Moares. D.N.I.: 53486401 Q


Esteban Suárez Picado. D.N.I.: 47380753 V
DEMO: 3-D Plots:

Introducción:

En este trabajo manejaremos funciones 3-D plots,


centrándonos en la representación de superficies,
utilizando la función peaks. Además estudiaremos los
comandos quiver y slice en los dos últimos apartados. A
continuación mostraremos los temas que vamos a tratar:

1. Mesh plot of peaks:


- definición de la función z.
- utilización el comando mesh.
- estudio del comando colormap y sus diversas
aplicaciones, en Matlab.
- ejemplo de la utilidad del comando meshz, y su
acción sobre la superficie.
- Además en este apartado incluiremos varios ejemplos
sobre la etiquetación de los ejes cartesianos, escalas de
los ejes y manejo de los comandos grid on, grid off y view.

2. Surface plot of peaks:


- manejo de los comandos surf, surfc, contour y
contourf, estos 3 últimos comandos nos permitirán la
creación de las curvas de nivel y sus efectos sobre el
gráfico de contorno.
- por último citaremos el comando surfnorm (crea
vectores tangentes a la superficie) y colorbar como
utilidad complementaria al gráfico.

3. Surface plot (with shading) of peaks:


- utilidad del comando surfl.
- por último destacamos la función del comando shading
con sus distintas variedades.

4. Contour plot of peaks:


- estudio del comando contour, así como la
modificación del color o formato de las curvas de nivel.

5. Quiver:
- utilización del comando meshgrid.
- estudio y aplicaciones del comando quiver.
- representación de las curvas de nivel sobre la
figura creada por el comando quiver.

6. Slice:
- utilización del comando meshgrid.
- manejo del comando slice y su efecto sobre los ejes
cartesianos.
Mesh plot of peaks:
- Plot of peaks: muestra gráficos 3D creados por las funciones
surf y peaks de Matlab; (peaks es una función de dos variables, que se
obtiene mediante distribuciones Gaussianas; surf una superficie 3D
coloreada, correspondiente a la función).

z=peaks(25);
z= es la función que define la superficie a representar, eligiendo una
red de puntos en el espacio sobre que está definido el dominio de
dicha función.

mesh(z);
El comando mesh nos permite dibujar la superficie dada por la función
anterior, z, dibujando las líneas de la rejilla que componen la malla
con los colores especificados.

colormap(hsv)
El comando colormap especifica el mapa de colores ya definidos por sus
correspondientes matrices que existen en Matlab. En este caso el mapa
de colores establecido en este ejercicio es ‘hsv’.

Una vez que hemos realizado dichos comandos obtenemos el


gráfico correspondiente a la superficie tridimensional dada por la
función z.
Como otros ejemplos de comandos que pueden complementar dicho
gráfico citamos:

>> meshz(z); igual que mesh(z), pero permite dibujar en los


bordes del dominio de la función una especie de cortina o telón en la
parte inferior.
>> colormap(hsv(100)); crea un mapa de 100 colores.

- Como comandos para etiquetar y modificar los gráficos 3D


podemos destacar:

>> xlabel (‘texto1’); etiqueta el eje cartesiano x con el texto


o variable que corresponda.

>> ylabel (‘texto2’); etiqueta el eje cartesiano y con el texto


o variable que corrsponda.

>> zlabel (‘texto3’); etiqueta el eje cartesiano z con el texto


o variable que corresponda.

>> axis([xmin xmax ymin ymax zmin zmax]); situamos los valores
máximo y mínimo para los ejes X,Y y Z en el gráfico.

>> axis equal; permite poner la misma escala en los ejes.

>> axis(‘auto’); situamos a los ejes en la escala automática


por defecto.

>> axis(axis); permite que la escala de los ejes no cambie al


situar otro gráfico sobre los mismos ejes (utilizando hold on).

>> title (‘grafica’); permite dar un título en la parte


superior de la gráfica.

>> grid on; permite activar una cuadrícula en el gráfico.

>> grid off; permite desactivar la cuadrícula creada


anteriormente.

>> view([x,y,z]); sitúa el punto de vista de la figura en el


punto de coordenadas cartesianas (x,y,z).
Por ejemplo podemos teclear: >> view ([2 4 3]); y nos aparece:
Si queremos activar una nueva gráfica de representación sin
eliminar la que tenemos tecleamos el comando >> figure;
Los comandos anteriores los aplicamos en la siguiente gráfica
mostrada posteriormente:

- Matlab nos permite elegir el color del mapa más conveniente


añadiendo al comando colormap una serie de ejemplos de tonalidades de
colores para representar la superficie indicada:
A continuación indicamos como se deben teclear los comandos que
más nos interesen para representar nuestra figura:

>> colormap (‘cool’);


>> colormap (‘gray’);
>> colormap (‘spring’);
>> colormap (‘pink’);
>> colormap (‘bone’);
>> colormap (‘lines’);
.
.
.
>> colormap (‘hsv’);

Surface Plot of Peaks:


z=peaks(25);

z= es la función que define la superficie a representar,


eligiendo una red de puntos en el espacio sobre que está definido el
dominio de dicha función.

surf(z);
Con respecto a la función mesh, que dibuja en perspectiva una
función en base a una retícula de líneas de colores, el comando surf
en vez de líneas aparece una superficie de caras.

colormap(jet); especifica el mapa de colores establecido por


defecto por Matlab, jet.
Otros comandos que nos pueden ayudar a visualizar el gráfico
obtenido son:

>> surfl(z); mejora la representación de la superficie con


mayor luminosidad, como podemos observar en la siguiente figura:
>> surfc (z); permite dibujar en el plano XY las curvas de nivel
correspondientes a la superficie indicada:

Otro comando parecido que podemos utilizar es el siguiente:

>> contour(z); función que dibuja el gráfico de contorno


(curvas de nivel) para la matriz Z. El número de líneas de contorno a
utilizar se elige automáticamente.
Si por ejemplo queremos que aparezca 40 curvas de nivel
tendremos que utilizar el anterior comando como: >> contour(z,40).

Las curvas de nivel se pueden definir como aquellas líneas que


unen todos los puntos que tienen igualdad de condiciones o cota.
Suelen representarse en distintos colores para diferenciar su altura.
Su utilización se basa en el uso de mapas de geodesia y oceanografía.

>> countourf (z); permite dibujar un gráfico de contorno y


rellena las áreas entre las isolíneas. Podemos observar su efecto en
la siguiente figura:
- Con respecto a este apartado podemos incluir la utilización
de más comandos como:

>> surfnorm(z); permite dibujar vectores normales a la


superficie representada que indicamos posteriormente:
Otro comando a mencionar es: >> colorbar; este comando
establece una columna de colores vertical a la derecha del gráfico,
como podemos observar en este ejemplo:

Surface plot (with shading) of peaks:

>> z= peaks (25);


z= es la función que define la superficie a representar,
eligiendo una red de puntos en el espacio sobre que está definido el
dominio de dicha función.

>> surfl (z); mejora la representación del gráfico con mejor


luminosidad.

>> shading interp; este comando permite controlar el tipo de


sombreado de una superficie creada en este caso con el comando surf.
En este caso utilizamos la opción de shading interp, el cual sitúa un
sombreado denso.

- Podemos utilizar otros comandos respecto a shading, como:

>> shading flat; sitúa un sombreado suave.

>> shading faceted; (opción por defecto) sitúa un sombreado


normal.

>> colormap (pink); especifica el mapa de colores elegido,


pink.
Contour Plot of Peaks:
>> z= peaks(25);

z= es la función que define la superficie a representar,


eligiendo una red de puntos en el espacio sobre que está definido el
dominio de dicha función.

>> contour (z,16); función que dibuja un gráfico de isolíneas a


partir de la matriz Z, donde Z se interpreta como alturas respecto al
plano XY, en el cual especificamos, en este caso, 16 líneas de
contorno.
>> contour (z,n); dibuja el gráfico de contorno (curvas de
nivel) para la matriz Z usando n líneas de contorno.
- Si queremos cambiar el color y el formato de línea de las
curvas de nivel procedemos utilizando:

>> contour (z,'-. r'); muestra las curvas de nivel con el color
que deseamos, en este lugar red, rojo.

Line Style Specifiers (formato línea) Color Specifiers (colores)

Specifier Line Style Specifier Color


- Solid line (default) r Red
-- Dashed line g Green
: Dotted line b Blue
-. Dash-dot line c Cyan
m Magenta
y Yellow
k Black
w White

Quiver:
z= x*exp(-x^2-y^2); función a representar.

>> x= -2:.2:2; cogemos valores desde -2 a +2 con paso de 0.2


en el eje X, (especificamos el intervalo de x).

>> y= -1:.2:2; cogemos valores desde -1 a +2 con paso de 0.2


en el eje Y, (especificamos el intervalo de y).

>> [xx,yy]= meshgrid (x,y); este comando permite definir la


matriz de puntos de la función z= x*exp(-x^2-y^2).

>> zz=xx.*exp(-xx.^2-yy.^2);

>> [px,py]= gradient(zz,.2,.2); genera un conjunto de vectores


en la dirección de mayor crecimiento de la función z, en el cual
tomamos dos puntos espaciadores de 0.2 unidades de longitud entre los
vectores tangentes y la superficie indicada.

El gradiente se define como un vector cuya dirección es la de


máximo crecimiento de la función en ese punto, y cuya magnitud es la
pendiente de la función en esa dirección. Su expresión matemática se
obtiene aplicando el operador nabla sobre dicha función.

>> quiver (x,y,px,py,2); este comando muestra los vectores


tangentes en el punto definido y en el espacio bidimensional.

Para representar la superficie z=x*exp(-x^2-y^2), necesitamos


definir los intervalos de x e y. Generamos con el comando meshgrid una
red de puntos en el plano en el cual evaluamos z.
Si queremos modificar el color de los vectores tangentes
utilizamos el comando quiver de la siguiente manera:
>> quiver(x,y,px,py,2,'r'); con este comando cambiamos el color
de los vectores a rojo, por ejemplo.

En matemáticas un quiver (o dígrafo), es un grafo direcionado


donde curvas y vectores entre dos vértices están permitidos. Se usan
comúnmente en teoría de representación: una representación, V, de un
quiver atribuye un espacio vectorial V(x), para cada vértice x del
quiver y un mapa lineal V(a) para cada vector a.

- Con respecto a esto, podemos añadir comandos adicionales:


>> contour (xx,yy,zz); este comando dibujas las curvas de nivel
para la matriz Z usando en los ejes X e Y el escalado definido por los
vectores x e y.

>> hold on; con este comando conseguimos mantener el gráfico


existente con todas sus propiedades, de modo que el siguiente gráfico
que se realice se sitúe sobre los mismos ejes y se superponga al
existente. También hay otra opción, hold off, que elimina lo activado
anteriormente. Se trata de un comando válido para gráficos 2-D y 3-D.

>> quiver (x,y,px,py,2); genera el gráfico correspondientes a


los vectores con componentes (px,py), en los puntos (x,y), con 2
unidades de longitud.
- El efecto de estos comandos se puede observar en la figura
siguiente:
Slice:
>> [x,y,z] = meshgrid(-2:.2:2,-2:.25:2,-2:.16:2); este comando
permite transformar el campo de definición dado por el intervalo
indicado de las variables x, y, z de la función v a representar en
argumentos matriciales utilizables por los comandos surf y mesh para
obtener gráficos de superficie y malla, respectivamente.

>> v = x.*exp(-x.^2-y.^2-z.^2); función a representar.

>> xslice = [-1.2,.8,2]; yslice = 2; zslice = [-2,0]; el


comando slice muestra los planos ortogonales que cortan al eje X, en
- 1.2, 0.8 y 2, al eje Y, en 2, y al eje Z, en el -2 y 0.

>> slice(x,y,z,v,xslice,yslice,zslice); el comando slice dibuja


cortes definidos por los vectores (sx,sy,sz) en el volumen V definido
por las matrices tridimensionales (X,Y,Z).

>> colormap (hsv); especifica el mapa de colores elegido, hsv.


En esta última representación podemos observar los puntos de
corte de los planos ortogonales con los ejes cartesianos. El eje x es
cortado en los puntos -1.2, 0.8 y 2. El eje y en el 2. Y por último el
eje z se intersecciona en los puntos -2 y 0 con dos planos ortogonales
a dicho eje.

También podría gustarte