graficas en 2 d y 3d matlab

31
Escuela Superior Politécnica de Chimborazo Facultad de Informática y Electrónica Herramientas Eda Graficas en 2 y 3 D Eduardo Morales Juan Guaranga

Upload: juan-ete

Post on 16-Jun-2015

33.992 views

Category:

Education


1 download

DESCRIPTION

Graficas en 2 y 3d matlab Por Juan Guaranga y Eduardo Morales.

TRANSCRIPT

Page 1: Graficas en 2 d y 3d matlab

Escuela Superior Politécnica de Chimborazo

Facultad de Informática y Electrónica

Herramientas EdaGraficas en 2 y 3 D

Eduardo MoralesJuan Guaranga

Page 2: Graficas en 2 d y 3d matlab

Objetivo:PRESENTAR MATLAB COMO UNA HERRAMIENTA AUXILIAR PARA EL ANÁLISIS Y SOLUCIÓN DE PROBLEMAS. SELECCIONANDO Y ADECUANDO LAS DISTINTAS FUNCIONES A LAS NECESIDADES PARTICULARES DE CURSOS DEL DEPARTAMENTO.

LAS INSTRUCCIONES BÁSICAS QUE UTILIZA MATLAB PARA DIBUJAR LA GRÁFICA DE UNA FUNCIÓN DE UNA VARIABLE SON LOS SIGUIENTES:

Page 3: Graficas en 2 d y 3d matlab

Gráficos 2D y 3DFunciones gráficas 2D y 3D elementales

2D: plot() crea un gráfico a partir de vectores con escalas lineales sobre ambos ejes,

>> plot(X,Y,’opción’) (opción: permite elegir color y trazo de la curva)

hold on: permite pintar más gráficos en la misma figura (se desactiva con hold off)

grid activa una cuadrícula en el dibujo. Escribiendo de nuevo grid se desactiva.

2D: loglog() escala logarítmica en ambos ejes, semilogx(): escala lineal en el eje de ordenadas y logarítmica en el eje de abscisas, semilogy(): escala lineal en abscisas y logarítmica en ordenadas

Ejemplo: main_dibujos.m, y ver en Demos: Graphics

Page 4: Graficas en 2 d y 3d matlab

Gráficos 2D y 3DFunciones gráficas 2D y 3D elementales

2D: subplot(n,m,k) subdivide una ventana gráfica se puede en m particiones horizontales y n verticales y k es la subdivisión que se activa.

2D: polar(ángulo,r) para pintar en polares

2D: fill(x,y,’opción’) dibuja una curva cerrada y la rellena del color que se indique en ‘opción’

3D: plot3 es análoga a su homóloga bidimensional plot.» plot3(X,Y,Z, ’opción’)

Page 5: Graficas en 2 d y 3d matlab

Gráficos 2D y 3DElección de la escala de los ejes

axis([x0 x1 y0 y1]) (2D), axis([x0 x1 y0 y1 z0 z1]) (3D)

axis auto: devuelve la escala a la de defecto

axis off: desactiva los etiquetados de los ejes desapareciendo los ejes, sus etiquetas y la malla, axis on: lo activa de nuevo

axis equal: los mismos factores de escala para los dos ejes

axis square: cierra con un cuadrado la región delimitada por los ejes de coordenadas actuales.

Para elegir las etiquetas que aparecen en los ejes:

set(gca, ‘XTick’,-pi:pi/2,pi) %gca:get current axisset(gca, ‘XTicklabel’,({‘-pi’,’-pi/2’,0,’pi/2’,’pi’})

Page 6: Graficas en 2 d y 3d matlab

Gráficos 2D y 3DFunciones para añadir títulos a la gráfica

title('título') añade un título al dibujo. Para incluir en el texto el valor de una variable numérica es preciso transformarla mediante :

int2str(n) convierte el valor de la variable entera n en carácternum2str(x) convierte el valor de la variable real o compleja x

en carácter. Ejemplo: title(num2str(x))

xlabel(‘texto’) añade una etiqueta al eje de abscisas. Con xlabel off desaparece. Lo mismo ylabel(‘texto’) o zlabel(‘texto’)

text(x,y,'texto') introduce 'texto' en el lugar especificado por las coordenadas x e y. Si x e y son vectores, el texto se repite por cada par de elementos.

gtext('texto') introduce texto con ayuda del ratón.

Page 7: Graficas en 2 d y 3d matlab

Gráficos 2D y 3DFunciones de Matlab para gráficos 2D y 3D

Imprimir gráficos: Print (botón File en ventana gráfica)

Guardar gráficos: Save (botón File en ventana gráfica): Se crea un fichero .fig que podrá volver a editarse y modificarse

Exportar gráficos: Export (botón File en ventana gráfica)

figure(n): Llamar una nueva figura o referirnos a una figura ya hecha

close all borra todas las figuras, close(figure(n)) una en concreto

Page 8: Graficas en 2 d y 3d matlab

Ejercicio IRepresentar las funciones:

y1= sin(3 π x)/ex

y2=cos(3π x)/ex

con x variando entre 0 y 3 π,obteniendo una única figura de la forma:

Page 9: Graficas en 2 d y 3d matlab

Gráficos 2D y 3DRepresentación gráfica de superficies

Creación de una malla a partir de vectores [X, Y]=meshgrid(x,y)

Gráfica de la malla construida sobre la superficie Z(X,Y): mesh(X,Y,Z), meshc(X,Y,Z) (dibuja además líneas de nivel en el plano z=0)

Gráfica de la superficie Z(X,Y): surf(X,Y,Z), surfc(X,Y,Z) pcolor(Z) dibuja proyección con sombras de color sobre el

plano (la gama de colores está en consonancia con las variaciones de Z)

contour(X,Y,Z,v) y contour3(X,Y,Z,v) generan las líneas de nivel de una superficie para los valores dados en v. Para etiquetar las líneas, primero cs=contour(Z) (para saber los valores del contorno) y luego clabel(cs) o directamente clabel(cs,v)

Page 10: Graficas en 2 d y 3d matlab

Gráficos 2D y 3DRepresentación gráfica de superficies Diferentes formas de representar los polígonos coloreados:

shading flat: sombrea con color constante para cada polígono.

shading interp: sombrea calculado por interpolación de colores entre los vértices de cada polígono

shading faceted: sombreado constante con líneas negras superpuestas (opción por defecto)

hidden off (desactiva la desaparición de líneas escondidas), hidden on (lo activa)

Manipulación de gráficos view(azimut, elev), view([xd,yd,zd]) rotate(h,d,a) o rotate(h,d,a,o), ‘h’ es el objeto, ‘d’ es un

vector que indica la dirección, ‘a’ un ángulo y ‘o’ el origen de rotación

En ventana gráfica: View (camera toolbar)

Page 11: Graficas en 2 d y 3d matlab

Gráficos 2D y 3DTransformación de coordenadas

[ang,rad]=cart2pol(x,y), de cartesianas a polares [ang,rad,z]=cart2pol(x,y,z), de cartesianas a cilindricas

[x,y]=pol2cart(ang,rad), de polares a cartesianas [x,y,z]=pol2cart(ang,rad,z), de cilindricas a cartesianas

[angx,angz,rad]=cart2sph(x,y,z), de cartesianas a esfericas

[x,y,z]=aph2cart(angx,angz,rad), de esfericas a cartesianas

Page 12: Graficas en 2 d y 3d matlab

Gráficos 2D y 3DCreación de películas

Una película se compone de varias imágenes (frames)

getframe se emplea para guardar todas esas imágenes. Devuelve un vector columna con la información necesaria para reproducir la imagen que se acaba de representar, por ejemplo con la función plot. Esos vectores se almacenan en una matriz M.

movie(M,n,fps) representa n veces la película almacenada en M a una velocidad de fps imágenes por segundo

X=0:0.01:2*pi;

for j=1:10

plot(x,sin(j*x)/2)

M(j)=getframe;

end

movie(M,4,6)

Page 13: Graficas en 2 d y 3d matlab

Gráficas xy Sencillas

Se explicará la graficación xy sencilla con un ejemplo. Suponga que

queremos graficar la información resultante de un experimento:

Ensayo Distancia

1 58.5

2 63.8

3 64.2

4 67.3

5 71.5

6 88.3

7 90.1

8 90.6

9 89.5

10 90.4

Page 14: Graficas en 2 d y 3d matlab

Gráficas xy Sencillas

Almacenamos las dos columnas en vectores de datos: x= [1 2 3 4 5 6 7 8 9 10];

y= [58.5 63.8 64.2 67.3 71.5 88.3 90.1 90.6 89.5 90.4]; Para graficar los datos: plot(x,y)

Page 15: Graficas en 2 d y 3d matlab

Gráficas xy Sencillas

Page 16: Graficas en 2 d y 3d matlab

Gráficas xy Sencillas

Para agregar información a la gráfica: title(‘Experimentos de Laboratorio’)xlabel(‘Ensayo’)ylabel(‘Distancia, m’)grid on Note las diferencias en las gráficas.

Page 17: Graficas en 2 d y 3d matlab

Gráficas xy Sencillas

Page 18: Graficas en 2 d y 3d matlab

Gráficas Lineales y Logarítmicas

Los comandos de Matlab para generar gráficas lineales y logarítmicas de los vectores x y y son los siguientes:

semilogx(x,y) Genera una gráfica de los valores x y y usando una escala logarítmica para x y una escala lineal para y. semilogy(x,y) Genera una gráfica de los valores x y y usando una escala logarítmica para y y una escala lineal para x. loglog(x,y) Genera una gráfica de los valores x y y usando una escala logarítmica tanto para x como para y.

Page 19: Graficas en 2 d y 3d matlab

Gráficas Múltiples

Para generar curvas múltiples en la misma gráfica se

usan múltiples argumentos en un comando de

graficación, plot(x,y,w,z) 

donde las variables x, y, w y z son vectores. El comando

traza la curva correspondiente a x vs y, y luego w vs z.

Matlab selecciona diferentes tipos de línea para distinguir

las líneas.

Page 20: Graficas en 2 d y 3d matlab

Gráficas Múltiples

Otra forma es graficar una matriz con columnas

múltiples. Cada columna se graficará contra un vector x. 

x= 0:0.1:5;w= x;z= w.^2 - 0.9*x +7;f(1,:)= x.^2 - 3*x + 2;f(2,:)= 2*x.^2 + x -3;subplot(2,1,1)plot(x,f(1,:),w,z),title('Grafica con dos curvas:plot(x,f(1,:),w,z)')subplot(2,1,2)

plot(x,f), title('Grafica de multiples funciones:plot(x,f)')

Page 21: Graficas en 2 d y 3d matlab

Gráficas Múltiples

Page 22: Graficas en 2 d y 3d matlab

Estilo de Líneas y Marcas

El comando plot(x,y) genera una gráfica de líneas que conecta los puntos representados por los vectores. Podemos seleccionar otros tipos de línea y/o de puntos. La siguiente tabla muestra algunas opciones:

Tipo de línea Indicador Tipo de punto Indicador

continua - punto .

guiones -- más +

punteada : estrella *

guiones-puntos -. círculo o

    marca x

Page 23: Graficas en 2 d y 3d matlab

Estilo de Líneas y Marcas

La selección del tipo de línea o punto se hace agregando un argumento al comando de graficación: 

plot(x,y,’o’)

Page 24: Graficas en 2 d y 3d matlab

Escala de los Ejes

Matlab fija automáticamente la escala de los ejes ajustándola a los valores de los datos. Podemos cambiar las escalas con el comando axis: 

axis Mantiene la escala del eje actual para gráficas subsecuentes. Una segunda ejecución del comando regresa el sistema al escalado automático.

 

axis([xmin xmax ymin ymax])Especifica la escala del eje usando los valores de escala que están definidos en el comando. El comado plot precede al comando axis.

Page 25: Graficas en 2 d y 3d matlab

Subgráficas

El comando subplot permite dividir la ventana de gráficos en subventanas.  subplot(x, y, n) Divide la ventana de gráficas en un arreglo de x por y subventanas y define la subventana n para colocar la gráfica que se genere después del comando subplot. subplot(2,1,1), plot(x,y) La gráfica definida por el comando plot(x,y) se colocará en la primera subventana de las cuatro definidas por el comando subplot(2,2,1).

Page 26: Graficas en 2 d y 3d matlab

Matlab ofrece 3 tipos de graficación para tres dimensiones:

•Gráficas de líneas

•Gráficas de contorno

•Gráficas de malla

Page 27: Graficas en 2 d y 3d matlab

Gráficas de líneas

Las gráficas de líneas son creadas usando el comado

plot3, el cual es la version tridimensional de plot

Page 28: Graficas en 2 d y 3d matlab

Gráficas de contorno

Las gráficas de controno en

realidad son gráficas en dos

dimensiones, con líneas

uniendo puntos con igual valor

en z.

Page 29: Graficas en 2 d y 3d matlab

Gráficas de malla

En las gráficas de malla,

cada punto se une a sus

vecinos formando una

especie de tapete.

Page 30: Graficas en 2 d y 3d matlab

Ejemplos:

Simple3D

clfx=-1:.1:1;y=-2:.1:2;[X,Y]=meshgrid(x,y);z=X.^4+(Y/2).^4;subplot(121), contour(z)subplot(122), mesh(z)

Page 31: Graficas en 2 d y 3d matlab