Upload
jonh-gonzales
View
218
Download
0
Embed Size (px)
Citation preview
8/19/2019 3D-plots jflkds fk dskfjkds jfklds
1/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
8/19/2019 3D-plots jflkds fk dskfjkds jfklds
2/15
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 comoutilidad 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.
8/19/2019 3D-plots jflkds fk dskfjkds jfklds
3/15
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 elgrá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.
8/19/2019 3D-plots jflkds fk dskfjkds jfklds
4/15
>> 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 textoo 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:
8/19/2019 3D-plots jflkds fk dskfjkds jfklds
5/15
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:
8/19/2019 3D-plots jflkds fk dskfjkds jfklds
6/15
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.
8/19/2019 3D-plots jflkds fk dskfjkds jfklds
7/15
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:
8/19/2019 3D-plots jflkds fk dskfjkds jfklds
8/15
>> 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:
8/19/2019 3D-plots jflkds fk dskfjkds jfklds
9/15
- 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:
8/19/2019 3D-plots jflkds fk dskfjkds jfklds
10/15
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.
8/19/2019 3D-plots jflkds fk dskfjkds jfklds
11/15
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 apartir 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.
8/19/2019 3D-plots jflkds fk dskfjkds jfklds
12/15
- 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.2en 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 losvectores 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
8/19/2019 3D-plots jflkds fk dskfjkds jfklds
13/15
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:
8/19/2019 3D-plots jflkds fk dskfjkds jfklds
14/15
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.
8/19/2019 3D-plots jflkds fk dskfjkds jfklds
15/15
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.