3D-plots jflkds fk dskfjkds jfklds

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.