Graficas en 2 d y 3d matlab
description
Transcript of Graficas en 2 d y 3d matlab
![Page 1: Graficas en 2 d y 3d matlab](https://reader036.fdocument.pub/reader036/viewer/2022081506/558011d2d8b42a190e8b4853/html5/thumbnails/1.jpg)
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](https://reader036.fdocument.pub/reader036/viewer/2022081506/558011d2d8b42a190e8b4853/html5/thumbnails/2.jpg)
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](https://reader036.fdocument.pub/reader036/viewer/2022081506/558011d2d8b42a190e8b4853/html5/thumbnails/3.jpg)
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](https://reader036.fdocument.pub/reader036/viewer/2022081506/558011d2d8b42a190e8b4853/html5/thumbnails/4.jpg)
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](https://reader036.fdocument.pub/reader036/viewer/2022081506/558011d2d8b42a190e8b4853/html5/thumbnails/5.jpg)
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](https://reader036.fdocument.pub/reader036/viewer/2022081506/558011d2d8b42a190e8b4853/html5/thumbnails/6.jpg)
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](https://reader036.fdocument.pub/reader036/viewer/2022081506/558011d2d8b42a190e8b4853/html5/thumbnails/7.jpg)
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](https://reader036.fdocument.pub/reader036/viewer/2022081506/558011d2d8b42a190e8b4853/html5/thumbnails/8.jpg)
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](https://reader036.fdocument.pub/reader036/viewer/2022081506/558011d2d8b42a190e8b4853/html5/thumbnails/9.jpg)
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](https://reader036.fdocument.pub/reader036/viewer/2022081506/558011d2d8b42a190e8b4853/html5/thumbnails/10.jpg)
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](https://reader036.fdocument.pub/reader036/viewer/2022081506/558011d2d8b42a190e8b4853/html5/thumbnails/11.jpg)
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](https://reader036.fdocument.pub/reader036/viewer/2022081506/558011d2d8b42a190e8b4853/html5/thumbnails/12.jpg)
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](https://reader036.fdocument.pub/reader036/viewer/2022081506/558011d2d8b42a190e8b4853/html5/thumbnails/13.jpg)
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](https://reader036.fdocument.pub/reader036/viewer/2022081506/558011d2d8b42a190e8b4853/html5/thumbnails/14.jpg)
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](https://reader036.fdocument.pub/reader036/viewer/2022081506/558011d2d8b42a190e8b4853/html5/thumbnails/15.jpg)
Gráficas xy Sencillas
![Page 16: Graficas en 2 d y 3d matlab](https://reader036.fdocument.pub/reader036/viewer/2022081506/558011d2d8b42a190e8b4853/html5/thumbnails/16.jpg)
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](https://reader036.fdocument.pub/reader036/viewer/2022081506/558011d2d8b42a190e8b4853/html5/thumbnails/17.jpg)
Gráficas xy Sencillas
![Page 18: Graficas en 2 d y 3d matlab](https://reader036.fdocument.pub/reader036/viewer/2022081506/558011d2d8b42a190e8b4853/html5/thumbnails/18.jpg)
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](https://reader036.fdocument.pub/reader036/viewer/2022081506/558011d2d8b42a190e8b4853/html5/thumbnails/19.jpg)
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](https://reader036.fdocument.pub/reader036/viewer/2022081506/558011d2d8b42a190e8b4853/html5/thumbnails/20.jpg)
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](https://reader036.fdocument.pub/reader036/viewer/2022081506/558011d2d8b42a190e8b4853/html5/thumbnails/21.jpg)
Gráficas Múltiples
![Page 22: Graficas en 2 d y 3d matlab](https://reader036.fdocument.pub/reader036/viewer/2022081506/558011d2d8b42a190e8b4853/html5/thumbnails/22.jpg)
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](https://reader036.fdocument.pub/reader036/viewer/2022081506/558011d2d8b42a190e8b4853/html5/thumbnails/23.jpg)
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](https://reader036.fdocument.pub/reader036/viewer/2022081506/558011d2d8b42a190e8b4853/html5/thumbnails/24.jpg)
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](https://reader036.fdocument.pub/reader036/viewer/2022081506/558011d2d8b42a190e8b4853/html5/thumbnails/25.jpg)
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](https://reader036.fdocument.pub/reader036/viewer/2022081506/558011d2d8b42a190e8b4853/html5/thumbnails/26.jpg)
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](https://reader036.fdocument.pub/reader036/viewer/2022081506/558011d2d8b42a190e8b4853/html5/thumbnails/27.jpg)
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](https://reader036.fdocument.pub/reader036/viewer/2022081506/558011d2d8b42a190e8b4853/html5/thumbnails/28.jpg)
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](https://reader036.fdocument.pub/reader036/viewer/2022081506/558011d2d8b42a190e8b4853/html5/thumbnails/29.jpg)
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](https://reader036.fdocument.pub/reader036/viewer/2022081506/558011d2d8b42a190e8b4853/html5/thumbnails/30.jpg)
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](https://reader036.fdocument.pub/reader036/viewer/2022081506/558011d2d8b42a190e8b4853/html5/thumbnails/31.jpg)