trabajo: demo: 3-d plots. informática aplicada á...

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

Upload: vunhan

Post on 06-Sep-2018

224 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Trabajo: DEMO: 3-D plots. Informática aplicada á ...mathgene.usc.es/matlab/trabajos/3D-plots.pdf · Informática aplicada á problemas químicos. Héctor ... vectores tangentes

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

Page 2: Trabajo: DEMO: 3-D plots. Informática aplicada á ...mathgene.usc.es/matlab/trabajos/3D-plots.pdf · Informática aplicada á problemas químicos. Héctor ... vectores tangentes

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.

Page 3: Trabajo: DEMO: 3-D plots. Informática aplicada á ...mathgene.usc.es/matlab/trabajos/3D-plots.pdf · Informática aplicada á problemas químicos. Héctor ... vectores tangentes

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.

Page 4: Trabajo: DEMO: 3-D plots. Informática aplicada á ...mathgene.usc.es/matlab/trabajos/3D-plots.pdf · Informática aplicada á problemas químicos. Héctor ... vectores tangentes

>> 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:

Page 5: Trabajo: DEMO: 3-D plots. Informática aplicada á ...mathgene.usc.es/matlab/trabajos/3D-plots.pdf · Informática aplicada á problemas químicos. Héctor ... vectores tangentes

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:

Page 6: Trabajo: DEMO: 3-D plots. Informática aplicada á ...mathgene.usc.es/matlab/trabajos/3D-plots.pdf · Informática aplicada á problemas químicos. Héctor ... vectores tangentes

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.

Page 7: Trabajo: DEMO: 3-D plots. Informática aplicada á ...mathgene.usc.es/matlab/trabajos/3D-plots.pdf · Informática aplicada á problemas químicos. Héctor ... vectores tangentes

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:

Page 8: Trabajo: DEMO: 3-D plots. Informática aplicada á ...mathgene.usc.es/matlab/trabajos/3D-plots.pdf · Informática aplicada á problemas químicos. Héctor ... vectores tangentes

>> 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:

Page 9: Trabajo: DEMO: 3-D plots. Informática aplicada á ...mathgene.usc.es/matlab/trabajos/3D-plots.pdf · Informática aplicada á problemas químicos. Héctor ... vectores tangentes

- 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:

Page 10: Trabajo: DEMO: 3-D plots. Informática aplicada á ...mathgene.usc.es/matlab/trabajos/3D-plots.pdf · Informática aplicada á problemas químicos. Héctor ... vectores tangentes

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.

Page 11: Trabajo: DEMO: 3-D plots. Informática aplicada á ...mathgene.usc.es/matlab/trabajos/3D-plots.pdf · Informática aplicada á problemas químicos. Héctor ... vectores tangentes

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.

Page 12: Trabajo: DEMO: 3-D plots. Informática aplicada á ...mathgene.usc.es/matlab/trabajos/3D-plots.pdf · Informática aplicada á problemas químicos. Héctor ... vectores tangentes

- 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)

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.

Specifier Line Style

- Solid line (default)

-- Dashed line

: Dotted line

-. Dash-dot line

Specifier Color

r Red

g Green

b Blue

c Cyan

m Magenta

y Yellow

k Black

w White

Page 13: Trabajo: DEMO: 3-D plots. Informática aplicada á ...mathgene.usc.es/matlab/trabajos/3D-plots.pdf · Informática aplicada á problemas químicos. Héctor ... vectores tangentes

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:

Page 14: Trabajo: DEMO: 3-D plots. Informática aplicada á ...mathgene.usc.es/matlab/trabajos/3D-plots.pdf · Informática aplicada á problemas químicos. Héctor ... vectores tangentes

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.

Page 15: Trabajo: DEMO: 3-D plots. Informática aplicada á ...mathgene.usc.es/matlab/trabajos/3D-plots.pdf · Informática aplicada á problemas químicos. Héctor ... vectores tangentes

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.