SlideShare a Scribd company logo
1 of 29
GRÁFICAS EN
MATLAB
INTREGRANTES:
VALERIA SILVA - 223
BRYAN MASAQUIZA - 459
FRANCISCO ZURITA - 721
Gráficos
MATLAB ofrece numerosas oportunidades para emplear rutinas gráficas en dos y tres
dimensiones.
En la ventana gráfica hay una paleta de comandos que permiten:
añadir texto en posiciones deseadas,
a nadir flechas o líneas,
seleccionar alguna de las componentes del gráfico y desplazarla en su caso,
rotar el gráfico.
Las gráficas de MATLAB se pueden exportar a multitud de formatos gráficos
puntuales y vectoriales
(jpg, bmp, tiff, eps, png). Además está la posibilidad de guardarlos con la extensión
fig.
En ese caso, cuando se abre la figura se inicia la ejecución de MATLAB y se ofrece al
usuario la
figura tal y como estaba cuando la guardó, incluyendo modificaciones realizadas
directamente
sobre la ventana grafica.
En lugar de dar instrucciones que se puedan ejecutar en la ventana de comandos, en
este capítulo
principalmente daremos scripts que generen uno o varios gráficos al ejecutarse
Gráficos bidimensionales
La instrucción básica para dibujo de curvas planas es plot. La orden plot dibuja vector
contra vector, siempre que tengan la misma longitud (da igual que uno sea fila y el otro
columna).
Es una instrucción a la que se le pueden añadir al final nuevos argumentos, como si
estuviera comenzando.
También se puede emplear con un vector contra una matriz. En tal caso, se van dibujando,
en distintas gráficas (con distintos colores), los pares que va formando el vector con las filas
o columnas de la matriz. En caso de duda, MATLAB siempre opta por leer las matrices por
columnas.
Se puede escoger el color para una gráfica lineal entre una lista habitual: b es azul (blue), r
es rojo (red), k es negro (black), g es verde (green), etc. (Ver el final de la sección obtener la
lista completa). Se pueden emplear líneas (-), líneas partidas (- -), guiones y puntos (.-) y
otro tipo de marcadores. (De nuevo, se puede encontrar una lista al final de esta sección).
Copia el siguiente script y ejecútalo. Al final, no cierres la figura.
x=0:0.01:2*pi;
y= cos(x);
z=sin(2*x);
Plot (x,y,'r-',x,z,'b--'); % dos dibujos
Si se quiere seguir dibujando, pero no queremos borrar la figura anterior, con figure
se genera una figura nueva. El número de figura se establece correlativamente por
MATLAB, sin dejar huecos. Aquí podemos además observar varias de las opciones
de dibujo y etiquetado de MATLAB. Las opciones modifican el dibujo pero no
suponen que se dibuja de nuevo.
figure % en una nueva ventana
x=0:0.01:2*pi;
Y=[cos(x);sin(2*x)];
plot(x,Y)
axis([0 2*pi -1.5 1.5]) % ejes
xlabel('ejex')
ylabel('ejey')
title('titulo')
grid on
En la siguiente gráfica, vemos cómo emplear y lim para recortar los
limites en el rango de la variable vertical. Esto es muy ´útil cuando se
quieren dibujar gráficas de funciones que tienden a infinito en algún
punto, ya que el escalado lo estropea todo.
close % cierra la ultima figura
figure(4) % abre la Figura 4
x=linspace(0,3,200); % 200 puntos equiespaciados de 0 a 3
plot(x,1./(x-1).^2)
ylim([0 10]), box off % quitamos la caja de alrededor
pause
close(1) % cerramos la primera figura
La orden
close
cierra la última figura creada, modificada o seleccionada. Si queremos
cerrar un figura concreta se le da como argumento el número de figura
(escribiendo close(3) cerramos la figura 3). Todas las figuras se cierran con
close all.
x=linspace(0,pi,200);
y=1-x.^2/2+x.^4/16;
plot(x,cos(x),x,y)
legend('cos','itTaylor') % it=cursiva
title('titulo con alpha, infty, int_a^b')
pause
figure(2) % acceso a la segunda grafica
plot(x,cos(x),x,1-x.^2/2+x.^4/16)
legend('bfcos','itTaylor',2) % en otra esquina
text(0,0.5,'texto en grafica') % (0,0.5) son las
coordenadas
Por defecto, si no se escogen los marcadores, todas las graficas son con línea
continua. Los colores dentro de una misma gráfica plot se van rotando de una
lista que comienza con azul, verde y rojo (en este orden).
Los macros de escritura (para escribir integrales, letras griegas, para cambiar
tipos de letra) son de TEX. Así, se dispone de todas las letras griegas (poniendo
su nombre en inglés), del símbolo para infinito (ver ejemplo) y de símbolos
básicos como la integral, etc. Con nit se pasa el tipo a cursiva (italic) y con nbf
a negrita (boldface). Notar la graf´ıa nitTaylor o nbfcos, con todo seguido.
La instrucción gtext sirve para colocar algún tipo de comentario o texto en una
grafica viendo dónde queremos colocarlo. No obstante, eso se puede hacer
manualmente, empleando la paleta de comandos de la ventana gráfica de
MATLAB. Todos los cambios realizados manualmente sobre la gráfica se
guardan cuando se exporta la gráfica a cualquier formato externo.
plot(x,cos(x)), axis equal % misma escala en ambos ejes gtext('texto para
poner') % hay que pinchar en el dibujo pause close all % cierra todos los
dibujos existentes
Vamos seguidamente a ver cómo hacer una gráfica rellena de un color. La
orden fill necesita tres argumentos: lista de coordenadas horizontales de
los puntos, lista de coordenadas verticales,
color de relleno. Si la lista de puntos no es cerrada (el último punto
coincide con el primero), MATLAB los une automáticamente. En el
siguiente ejemplo, vemos tres gráficas realizadas con
fill.
El argumento que da el color se puede escoger con uno de los colores
básicos o empleando el estándar RGB: [® ¯ °], con los tres parámetros en
[0; 1]. Los colores [1 0 0], [0 1 0] y [0 0 1]
corresponden exactamente a los que MATLAB denota como 'r', 'g' y 'b':
son las versiones más puras del rojo, el verde y el azul. [® ® ®] con ® 2
[0; 1] es un tono de gris, siendo [0 0 0] el
negro y [1 1 1] el blanco.
t=linspace(0,2*pi,20);
fill(cos(t),sin(t),'r',1+0.5*cos(t),0.5*sin(t),[0 0.5 0]);
hold on
pause
fill(0.3*cos(t),1.5+0.3*sin(t),[0.8 0.8 0.8])
Superficies
MATLAB dispone de una gran variedad de formatos para dibujar gráficas de
funciones de dos variables y una componente. En general se emplean colores para
resaltar las alturas, en una gradación típica de cálculo científico que escala las
alturas del azul al rojo (de menor a mayor).
Cuando se van a emplear funciones de dos variables, necesitaremos cruzar una lista
de valores
(x1, , , , , xn) con otra (y1, , , , , ym). Esto lo hace la orden meshgrid. Si
x = (x1, , , , , xn); y = (y1, , , , ,ym)
la instrucción
[u v]=meshgrid(x,y)
devuelve dos matrices con m filas y n columnas
t=linspace(0,2*pi,200);
subplot(221),plot3(sin(t),cos(t),sin(10*t)); % curvas en espacio
[X,Y]=meshgrid(-1:0.1:1,-1:0.1:1); % =meshgrid(-1:0.1:1);
subplot(222),surf(X,Y,X.^2+Y.^2);
subplot(223),surfc(X,Y,X.^2+Y.^2);
subplot(224),contour(X,Y,X.^2-Y.^2);
GRÁFICAS 3D
En esta sección vamos a ver cómo se pueden dibujar con Matlab
gráficos de curvas en el espacio en forma paramétrica, gráficas de
funciones de dos variables z = f(x; y), y algunos ejemplos de
superficies parametrizadas.
Curvas en el espacio
Se generan de una manera similar a las curvas en el plano, con la
diferencia de que aquí se utilizan los comandos plot3 o comet3,
también existe un comando quiver3 para dibujar vectores velocidad
sobre las curvas.
Por ejemplo, queremos dibujar la hélice
~r(t) = (sen(t); cos(t); t) 0 · t · 8¼
y sobre ella los vectores velocidad.
Generamos los valores de t:
>>t=linspace(0,8*pi,2000);
Y ahora podemos utilizar dos comandos:
plot3 lo que nos da el dibujo completo
>>plot3(sin(t),cos(t),t),grid on
con lo que obtendremos la gráfica .
O también comet3, que funciona de manera análoga a como lo hacia
el comando comet en las curvas en el plano.
>>comet3(sin(t),cos(t),t)
Para dibujar algunos vectores velocidad sobre la curva hay que utilizar el
comando quiver3(vector posición, vector velocidad).
Al igual que con el comando quiver, también conviene volver a generar
los valores de t de manera que no sean demasiados para que se pueda
apreciar mejor la gráfica. Por ejemplo,
>>t=linspace(0,8*pi,30);
>>quiver3(sin(t),cos(t),t,cos(t),-sin(t),1)
Manipulación de gráficos 3D
MALLADO. El comando meshgrid se puede utilizar también para
generar mallados de regiones rectangulares. Por ejemplo, si queremos
hacer un mallado para la región [0; 1] £ [0; 3], tendremos que escribir
>>[x,y]=meshgrid(0:.1:1,0:.1:3);
La secuencia 0:.1:1 describe la variación de la variable x, y 0:.1:3
la de la variable y. Si sólo se utiliza un intervalo, éste se aplica a las dos
variables. También se puede utilizar dentro de meshgrid el comando
linspace.
SOMBRAS Y COLORES.
Para conseguir efectos de sombreados y colores diferentes se pueden consultar
todas las posibilidades de los comandos colormap y shading. Algo que resulta
también interesante, es añadir una escala de colores al dibujo que nos permite
conocer las alturas (coordenada z) de los diferentes puntos de la gráfica, esto se
consigue con el comando colorear (después de dibujada la gráfica).
Para generar la gráfica de la figura 12 ha sido utilizada la siguiente
secuencia de comandos:
>>[x,y]=meshgrid(linspace(-1,1,50));
>>z=cos((x.*y)./(x.^2+y.^2+1));
>>surf(x,y,z),colorbar
−1
Como se puede observar, los puntos más altos corresponden a los colores más
calientes y los puntos más bajos de la gráfica están coloreados con colores fríos.
EJES. Las longitudes de los ejes coordenados también se pueden modificar con el
comando
>>axes([xmin xmax ymin ymax zmin zmax])
Los comandos grid on y axis square tambi¶en funcionan en este tipo de gráficos.
ROTACIÓN DE GRÁFICAS
Otro comando interesante en las gráficas 3D es rotate3d, que nos permite,
utilizando el ratón sobre la figura, rotarla de manera interactiva en tres
dimensiones.
CURVAS DE NIVEL
Dada una función z = f(x; y), las curvas sobre el plano XY , determinadas por f(x;
y) = k, donde k es una constante se llaman curvas de nivel. Hay varias formas de
obtenerlas usando MatLab.
Vamos a representar la gráfica de la función
z = x2 + y2;
dibujando algunas curvas de nivel.
Creamos el mallado,
>>[x,y]=meshgrid(-2:.1:2);
Sustituimos en la función, para calcular los valores de z,
>>z=x.^2+y.^2;
Ahora, podemos dibujar la gráfica utilizando alguno de los comandos
descritos anteriormente.
Las curvas de nivel se pueden hacer utilizando alguno de los coman-
dos siguientes (ver ¯guras 13, 14 y 15):
>>contour(x,y,z,10) % dibuja 10 curvas de nivel
>>contour3(x,y,z,10) % lo mismo, pero en el espacio
>>pcolor(x,y,z),colorbar
Esta última orden dibuja un mapa de colores por niveles, la orden colorbar hace
aparecer una escala de valores según el color, es decir, nos indica el valor de la
variable z, como se describió antes.
Si se usa el comando contour, después se pueden etiquetar las curvas con los
valores correspondientes de la z. Para hacer esto:
Primero dibujamos las curvas de nivel con
>>contour(x,y,z,10)
Después guardamos la información en una variable, por ejemplo,
>>cs=contour(x,y,z,30);
A continuación, tenemos dos opciones:
>>clabel(cs) % etiqueta algunas aleatoriamente
O bien
>>clabel(cs,'manual') % nos permite elegirlas con el ratón
Por otra parte, el comando >>meshc(x,y,z), dibuja la gráfica, y por
debajo, las curvas de nivel (algunas veces será necesario modificar los
ejes para que la gráfica de la función no tape a las curvas de nivel).
Algunas superficies en el espacio
Hay varios comandos en Matlab que permiten generar las gráficas
de superficies en R3 (superficies que no son funciones.) Estos comandos
son funciones que ya vienen programadas.
MÁS SUPERFICIES DE REVOLUCIÓN
El comando >>makevase hace aparecer una ventana interactiva que permite
dibujar gráficas de superficies de revolución en las que la generatriz es una
poligonal cuyos vértices se señalan con el ratón sobre el propio dibujo.
Gráficos de funciones complejas
El comando cplxmap permite representar gráficas de funciones complejas de
variable compleja en el siguiente sentido:
Sea la función compleja de variable compleja
f : C ¡! C
z 7¡! w = f(z)
El comando >>cplxmap(z,f(z)) dibuja una gráfica tridimensional
en la que el eje X es la parte real de la variable, es decir, Real(z); el eje Y es la
parte imaginaria de la variable, es decir, Im(z) y el eje Z es la
parte real de la imagen de la funci¶on, es decir, Re(f(z)).
La variable z va a pertenecer siempre al dominio constituido por
el disco unidad centrado en el origen y las coordenadas de los puntos
deben estar en forma polar. Esto se consigue utilizando previamente
el
comando >>cplxgrid(n), donde n es el número entero positivo.
Por ejemplo, con los comandos
>>z=cplxgrid(12);
>>cplxmap(z,z.^2)
obtenemos la gráfica de la función f(z) = z2 (¯gura 18)
Obsérvese que para cada valor de z, su imagen f(z), es única. Esto no es así para
cualquier función compleja. Por ejemplo, la función
f(z) = z1=2 es una función bivaluada, la función g(z) = z1=3 es una función trivaluada,
cada z puede producir tres valores distintos para g(z), y así sucesivamente. Para obtener
las gráficas de estas funciones especiales, que se denominan Superficies de Riemann,
Matlab dispone de un comando que las dibuja automáticamente, es el comando
cplxroot(n), donde n es el índice de la raíz.
El comando >>cplxroot(2) generarla a la superficie de la figura 19.
Para obtener más información, se pueden ejecutar los comandos
cplxdemo y grafcplx, que contienen sendas demostraciones de gráficas de funciones
complejas.
Gráficas en matlab

More Related Content

What's hot

Graficas en 2 d y 3d matlab
Graficas en 2 d y 3d matlabGraficas en 2 d y 3d matlab
Graficas en 2 d y 3d matlabJuan Ete
 
Matlab graficas en 2 d y 3d
Matlab   graficas en 2 d y 3dMatlab   graficas en 2 d y 3d
Matlab graficas en 2 d y 3dJohn Jayro
 
Deber graficas en matlab
Deber graficas en matlabDeber graficas en matlab
Deber graficas en matlabSam Chimborazo
 
Graficas en matlab juan villacis 2 do b
Graficas en matlab juan villacis 2 do bGraficas en matlab juan villacis 2 do b
Graficas en matlab juan villacis 2 do bN0VA6
 
Manejo Vectores Matlab
Manejo Vectores MatlabManejo Vectores Matlab
Manejo Vectores MatlabPaul Arevalo
 
Gráficos en matlab eda
Gráficos en matlab edaGráficos en matlab eda
Gráficos en matlab edaJhonny Rosas
 
Trabajo de computacion
Trabajo de computacionTrabajo de computacion
Trabajo de computacionluis_xD
 

What's hot (17)

Graficas en 2 d y 3d matlab
Graficas en 2 d y 3d matlabGraficas en 2 d y 3d matlab
Graficas en 2 d y 3d matlab
 
Matlab sesion3
Matlab sesion3Matlab sesion3
Matlab sesion3
 
Matlab graficas en 2 d y 3d
Matlab   graficas en 2 d y 3dMatlab   graficas en 2 d y 3d
Matlab graficas en 2 d y 3d
 
Matlab caudraticas2
Matlab caudraticas2Matlab caudraticas2
Matlab caudraticas2
 
Funciones y gráficas en matlab
Funciones y gráficas en matlabFunciones y gráficas en matlab
Funciones y gráficas en matlab
 
Gráficos en matlab
Gráficos en matlabGráficos en matlab
Gráficos en matlab
 
Deber graficas en matlab
Deber graficas en matlabDeber graficas en matlab
Deber graficas en matlab
 
Graficas con Matlab
Graficas con Matlab Graficas con Matlab
Graficas con Matlab
 
Matlab
MatlabMatlab
Matlab
 
Lab 3 de tele final
Lab 3 de tele finalLab 3 de tele final
Lab 3 de tele final
 
Graficos matlab
Graficos matlabGraficos matlab
Graficos matlab
 
Graficas en matlab juan villacis 2 do b
Graficas en matlab juan villacis 2 do bGraficas en matlab juan villacis 2 do b
Graficas en matlab juan villacis 2 do b
 
Manejo Vectores Matlab
Manejo Vectores MatlabManejo Vectores Matlab
Manejo Vectores Matlab
 
Gráficos en matlab eda
Gráficos en matlab edaGráficos en matlab eda
Gráficos en matlab eda
 
Matlab3
Matlab3Matlab3
Matlab3
 
Trabajo de computacion
Trabajo de computacionTrabajo de computacion
Trabajo de computacion
 
Gráficas en Matlab
Gráficas en MatlabGráficas en Matlab
Gráficas en Matlab
 

Viewers also liked

Guia rapida de matlab (comandos basicos, graficacion y programacion)
Guia rapida de matlab (comandos basicos, graficacion y programacion)Guia rapida de matlab (comandos basicos, graficacion y programacion)
Guia rapida de matlab (comandos basicos, graficacion y programacion)morones.om
 
Matlabteoria 130808215706-phpapp01
Matlabteoria 130808215706-phpapp01Matlabteoria 130808215706-phpapp01
Matlabteoria 130808215706-phpapp01yadira69
 
Matlab 2 Capitulo 4
Matlab 2 Capitulo 4Matlab 2 Capitulo 4
Matlab 2 Capitulo 4guest4f4d78d
 
Ejercicios vectoriales con matlab
Ejercicios vectoriales con matlabEjercicios vectoriales con matlab
Ejercicios vectoriales con matlabjuank Vidal
 
Matlab introduccion ejemplos practicos
Matlab introduccion ejemplos practicosMatlab introduccion ejemplos practicos
Matlab introduccion ejemplos practicosRaulsan Zam
 
Matlab practical and lab session
Matlab practical and lab sessionMatlab practical and lab session
Matlab practical and lab sessionDr. Krishna Mohbey
 
Representacion del diablo en la edad media
Representacion del diablo en la edad mediaRepresentacion del diablo en la edad media
Representacion del diablo en la edad mediarra Tatuajes
 
Determinación de la dureza del agua beatriz afán de rivera
Determinación de la dureza del agua beatriz afán de riveraDeterminación de la dureza del agua beatriz afán de rivera
Determinación de la dureza del agua beatriz afán de riveraJuan Carlos Alejo Álvarez
 
Sesión 7 matlab - Operadores lógicos y relacionales
Sesión 7 matlab - Operadores lógicos y relacionalesSesión 7 matlab - Operadores lógicos y relacionales
Sesión 7 matlab - Operadores lógicos y relacionalesmatlab_usc
 
REDES NEURONALES Mapas con Características Autoorganizativas Som
REDES NEURONALES Mapas   con Características Autoorganizativas  SomREDES NEURONALES Mapas   con Características Autoorganizativas  Som
REDES NEURONALES Mapas con Características Autoorganizativas SomESCOM
 
Propiedades de las funciones seno y coseno
Propiedades de las funciones seno y cosenoPropiedades de las funciones seno y coseno
Propiedades de las funciones seno y cosenoArmando Mateus Rojas
 

Viewers also liked (19)

Graficos matlab
Graficos matlabGraficos matlab
Graficos matlab
 
Guia rapida de matlab (comandos basicos, graficacion y programacion)
Guia rapida de matlab (comandos basicos, graficacion y programacion)Guia rapida de matlab (comandos basicos, graficacion y programacion)
Guia rapida de matlab (comandos basicos, graficacion y programacion)
 
Guia 1 matlab
Guia 1 matlabGuia 1 matlab
Guia 1 matlab
 
Matlabteoria 130808215706-phpapp01
Matlabteoria 130808215706-phpapp01Matlabteoria 130808215706-phpapp01
Matlabteoria 130808215706-phpapp01
 
Matlab 2 Capitulo 4
Matlab 2 Capitulo 4Matlab 2 Capitulo 4
Matlab 2 Capitulo 4
 
Guia 3 matlab
Guia 3 matlabGuia 3 matlab
Guia 3 matlab
 
Ejercicios vectoriales con matlab
Ejercicios vectoriales con matlabEjercicios vectoriales con matlab
Ejercicios vectoriales con matlab
 
Matlab introduccion ejemplos practicos
Matlab introduccion ejemplos practicosMatlab introduccion ejemplos practicos
Matlab introduccion ejemplos practicos
 
Segmentación de Color con MATLAB
Segmentación de Color con MATLABSegmentación de Color con MATLAB
Segmentación de Color con MATLAB
 
Matlab practical and lab session
Matlab practical and lab sessionMatlab practical and lab session
Matlab practical and lab session
 
Matlab teoria
Matlab teoriaMatlab teoria
Matlab teoria
 
Trabajo matlab vectores
Trabajo matlab vectoresTrabajo matlab vectores
Trabajo matlab vectores
 
Representacion del diablo en la edad media
Representacion del diablo en la edad mediaRepresentacion del diablo en la edad media
Representacion del diablo en la edad media
 
Determinación de la dureza del agua beatriz afán de rivera
Determinación de la dureza del agua beatriz afán de riveraDeterminación de la dureza del agua beatriz afán de rivera
Determinación de la dureza del agua beatriz afán de rivera
 
Sesión 7 matlab - Operadores lógicos y relacionales
Sesión 7 matlab - Operadores lógicos y relacionalesSesión 7 matlab - Operadores lógicos y relacionales
Sesión 7 matlab - Operadores lógicos y relacionales
 
Integrales triples
Integrales  triplesIntegrales  triples
Integrales triples
 
REDES NEURONALES Mapas con Características Autoorganizativas Som
REDES NEURONALES Mapas   con Características Autoorganizativas  SomREDES NEURONALES Mapas   con Características Autoorganizativas  Som
REDES NEURONALES Mapas con Características Autoorganizativas Som
 
Propiedades de las funciones seno y coseno
Propiedades de las funciones seno y cosenoPropiedades de las funciones seno y coseno
Propiedades de las funciones seno y coseno
 
52983063 series-de-fourier
52983063 series-de-fourier52983063 series-de-fourier
52983063 series-de-fourier
 

Similar to Gráficas en matlab (20)

Deber graficas en matlab
Deber graficas en matlabDeber graficas en matlab
Deber graficas en matlab
 
Graficas en matlab juan villacis 2 do b
Graficas en matlab juan villacis 2 do bGraficas en matlab juan villacis 2 do b
Graficas en matlab juan villacis 2 do b
 
Graficas en matlab juan villacis 2 do b
Graficas en matlab juan villacis 2 do bGraficas en matlab juan villacis 2 do b
Graficas en matlab juan villacis 2 do b
 
Desarrollo de ejercicios básicos en matlab
Desarrollo de ejercicios básicos en matlabDesarrollo de ejercicios básicos en matlab
Desarrollo de ejercicios básicos en matlab
 
clase 7 GRAFICOS 2D.pdf
clase 7 GRAFICOS 2D.pdfclase 7 GRAFICOS 2D.pdf
clase 7 GRAFICOS 2D.pdf
 
Boletin 2
Boletin 2Boletin 2
Boletin 2
 
Clase 3 (1)
Clase 3 (1)Clase 3 (1)
Clase 3 (1)
 
Mat lab03
Mat lab03Mat lab03
Mat lab03
 
Matlab
MatlabMatlab
Matlab
 
Semana 03 software libre maxima
Semana 03 software libre maximaSemana 03 software libre maxima
Semana 03 software libre maxima
 
Matlab
MatlabMatlab
Matlab
 
matlab
matlabmatlab
matlab
 
Electrónica: Tutorial de Matlab aplicado
Electrónica: Tutorial de Matlab aplicadoElectrónica: Tutorial de Matlab aplicado
Electrónica: Tutorial de Matlab aplicado
 
Graficas matlab
Graficas matlabGraficas matlab
Graficas matlab
 
Imagenes
ImagenesImagenes
Imagenes
 
Funciones parte i
Funciones parte iFunciones parte i
Funciones parte i
 
Plots
PlotsPlots
Plots
 
Matlab graficos3 d
Matlab graficos3 dMatlab graficos3 d
Matlab graficos3 d
 
Lugar geometrico
Lugar geometricoLugar geometrico
Lugar geometrico
 
Plot3 d en scilab
Plot3 d en scilabPlot3 d en scilab
Plot3 d en scilab
 

Gráficas en matlab

  • 1. GRÁFICAS EN MATLAB INTREGRANTES: VALERIA SILVA - 223 BRYAN MASAQUIZA - 459 FRANCISCO ZURITA - 721
  • 2. Gráficos MATLAB ofrece numerosas oportunidades para emplear rutinas gráficas en dos y tres dimensiones. En la ventana gráfica hay una paleta de comandos que permiten: añadir texto en posiciones deseadas, a nadir flechas o líneas, seleccionar alguna de las componentes del gráfico y desplazarla en su caso, rotar el gráfico. Las gráficas de MATLAB se pueden exportar a multitud de formatos gráficos puntuales y vectoriales (jpg, bmp, tiff, eps, png). Además está la posibilidad de guardarlos con la extensión fig. En ese caso, cuando se abre la figura se inicia la ejecución de MATLAB y se ofrece al usuario la figura tal y como estaba cuando la guardó, incluyendo modificaciones realizadas directamente sobre la ventana grafica. En lugar de dar instrucciones que se puedan ejecutar en la ventana de comandos, en este capítulo principalmente daremos scripts que generen uno o varios gráficos al ejecutarse
  • 3.
  • 4. Gráficos bidimensionales La instrucción básica para dibujo de curvas planas es plot. La orden plot dibuja vector contra vector, siempre que tengan la misma longitud (da igual que uno sea fila y el otro columna). Es una instrucción a la que se le pueden añadir al final nuevos argumentos, como si estuviera comenzando. También se puede emplear con un vector contra una matriz. En tal caso, se van dibujando, en distintas gráficas (con distintos colores), los pares que va formando el vector con las filas o columnas de la matriz. En caso de duda, MATLAB siempre opta por leer las matrices por columnas. Se puede escoger el color para una gráfica lineal entre una lista habitual: b es azul (blue), r es rojo (red), k es negro (black), g es verde (green), etc. (Ver el final de la sección obtener la lista completa). Se pueden emplear líneas (-), líneas partidas (- -), guiones y puntos (.-) y otro tipo de marcadores. (De nuevo, se puede encontrar una lista al final de esta sección). Copia el siguiente script y ejecútalo. Al final, no cierres la figura.
  • 5. x=0:0.01:2*pi; y= cos(x); z=sin(2*x); Plot (x,y,'r-',x,z,'b--'); % dos dibujos Si se quiere seguir dibujando, pero no queremos borrar la figura anterior, con figure se genera una figura nueva. El número de figura se establece correlativamente por MATLAB, sin dejar huecos. Aquí podemos además observar varias de las opciones de dibujo y etiquetado de MATLAB. Las opciones modifican el dibujo pero no suponen que se dibuja de nuevo. figure % en una nueva ventana x=0:0.01:2*pi; Y=[cos(x);sin(2*x)]; plot(x,Y) axis([0 2*pi -1.5 1.5]) % ejes xlabel('ejex') ylabel('ejey') title('titulo') grid on
  • 6. En la siguiente gráfica, vemos cómo emplear y lim para recortar los limites en el rango de la variable vertical. Esto es muy ´útil cuando se quieren dibujar gráficas de funciones que tienden a infinito en algún punto, ya que el escalado lo estropea todo. close % cierra la ultima figura figure(4) % abre la Figura 4 x=linspace(0,3,200); % 200 puntos equiespaciados de 0 a 3 plot(x,1./(x-1).^2) ylim([0 10]), box off % quitamos la caja de alrededor pause close(1) % cerramos la primera figura
  • 8. cierra la última figura creada, modificada o seleccionada. Si queremos cerrar un figura concreta se le da como argumento el número de figura (escribiendo close(3) cerramos la figura 3). Todas las figuras se cierran con close all. x=linspace(0,pi,200); y=1-x.^2/2+x.^4/16; plot(x,cos(x),x,y) legend('cos','itTaylor') % it=cursiva title('titulo con alpha, infty, int_a^b') pause figure(2) % acceso a la segunda grafica plot(x,cos(x),x,1-x.^2/2+x.^4/16) legend('bfcos','itTaylor',2) % en otra esquina text(0,0.5,'texto en grafica') % (0,0.5) son las coordenadas
  • 9. Por defecto, si no se escogen los marcadores, todas las graficas son con línea continua. Los colores dentro de una misma gráfica plot se van rotando de una lista que comienza con azul, verde y rojo (en este orden). Los macros de escritura (para escribir integrales, letras griegas, para cambiar tipos de letra) son de TEX. Así, se dispone de todas las letras griegas (poniendo su nombre en inglés), del símbolo para infinito (ver ejemplo) y de símbolos básicos como la integral, etc. Con nit se pasa el tipo a cursiva (italic) y con nbf a negrita (boldface). Notar la graf´ıa nitTaylor o nbfcos, con todo seguido. La instrucción gtext sirve para colocar algún tipo de comentario o texto en una grafica viendo dónde queremos colocarlo. No obstante, eso se puede hacer manualmente, empleando la paleta de comandos de la ventana gráfica de MATLAB. Todos los cambios realizados manualmente sobre la gráfica se guardan cuando se exporta la gráfica a cualquier formato externo.
  • 10. plot(x,cos(x)), axis equal % misma escala en ambos ejes gtext('texto para poner') % hay que pinchar en el dibujo pause close all % cierra todos los dibujos existentes
  • 11. Vamos seguidamente a ver cómo hacer una gráfica rellena de un color. La orden fill necesita tres argumentos: lista de coordenadas horizontales de los puntos, lista de coordenadas verticales, color de relleno. Si la lista de puntos no es cerrada (el último punto coincide con el primero), MATLAB los une automáticamente. En el siguiente ejemplo, vemos tres gráficas realizadas con fill. El argumento que da el color se puede escoger con uno de los colores básicos o empleando el estándar RGB: [® ¯ °], con los tres parámetros en [0; 1]. Los colores [1 0 0], [0 1 0] y [0 0 1] corresponden exactamente a los que MATLAB denota como 'r', 'g' y 'b': son las versiones más puras del rojo, el verde y el azul. [® ® ®] con ® 2 [0; 1] es un tono de gris, siendo [0 0 0] el negro y [1 1 1] el blanco.
  • 12. t=linspace(0,2*pi,20); fill(cos(t),sin(t),'r',1+0.5*cos(t),0.5*sin(t),[0 0.5 0]); hold on pause fill(0.3*cos(t),1.5+0.3*sin(t),[0.8 0.8 0.8])
  • 13. Superficies MATLAB dispone de una gran variedad de formatos para dibujar gráficas de funciones de dos variables y una componente. En general se emplean colores para resaltar las alturas, en una gradación típica de cálculo científico que escala las alturas del azul al rojo (de menor a mayor).
  • 14. Cuando se van a emplear funciones de dos variables, necesitaremos cruzar una lista de valores (x1, , , , , xn) con otra (y1, , , , , ym). Esto lo hace la orden meshgrid. Si x = (x1, , , , , xn); y = (y1, , , , ,ym) la instrucción [u v]=meshgrid(x,y) devuelve dos matrices con m filas y n columnas
  • 15. t=linspace(0,2*pi,200); subplot(221),plot3(sin(t),cos(t),sin(10*t)); % curvas en espacio [X,Y]=meshgrid(-1:0.1:1,-1:0.1:1); % =meshgrid(-1:0.1:1); subplot(222),surf(X,Y,X.^2+Y.^2); subplot(223),surfc(X,Y,X.^2+Y.^2); subplot(224),contour(X,Y,X.^2-Y.^2);
  • 16.
  • 17. GRÁFICAS 3D En esta sección vamos a ver cómo se pueden dibujar con Matlab gráficos de curvas en el espacio en forma paramétrica, gráficas de funciones de dos variables z = f(x; y), y algunos ejemplos de superficies parametrizadas. Curvas en el espacio Se generan de una manera similar a las curvas en el plano, con la diferencia de que aquí se utilizan los comandos plot3 o comet3, también existe un comando quiver3 para dibujar vectores velocidad sobre las curvas. Por ejemplo, queremos dibujar la hélice ~r(t) = (sen(t); cos(t); t) 0 · t · 8¼ y sobre ella los vectores velocidad. Generamos los valores de t: >>t=linspace(0,8*pi,2000);
  • 18. Y ahora podemos utilizar dos comandos: plot3 lo que nos da el dibujo completo >>plot3(sin(t),cos(t),t),grid on con lo que obtendremos la gráfica . O también comet3, que funciona de manera análoga a como lo hacia el comando comet en las curvas en el plano. >>comet3(sin(t),cos(t),t) Para dibujar algunos vectores velocidad sobre la curva hay que utilizar el comando quiver3(vector posición, vector velocidad).
  • 19. Al igual que con el comando quiver, también conviene volver a generar los valores de t de manera que no sean demasiados para que se pueda apreciar mejor la gráfica. Por ejemplo, >>t=linspace(0,8*pi,30); >>quiver3(sin(t),cos(t),t,cos(t),-sin(t),1) Manipulación de gráficos 3D MALLADO. El comando meshgrid se puede utilizar también para generar mallados de regiones rectangulares. Por ejemplo, si queremos hacer un mallado para la región [0; 1] £ [0; 3], tendremos que escribir >>[x,y]=meshgrid(0:.1:1,0:.1:3); La secuencia 0:.1:1 describe la variación de la variable x, y 0:.1:3 la de la variable y. Si sólo se utiliza un intervalo, éste se aplica a las dos variables. También se puede utilizar dentro de meshgrid el comando linspace.
  • 20. SOMBRAS Y COLORES. Para conseguir efectos de sombreados y colores diferentes se pueden consultar todas las posibilidades de los comandos colormap y shading. Algo que resulta también interesante, es añadir una escala de colores al dibujo que nos permite conocer las alturas (coordenada z) de los diferentes puntos de la gráfica, esto se consigue con el comando colorear (después de dibujada la gráfica). Para generar la gráfica de la figura 12 ha sido utilizada la siguiente secuencia de comandos: >>[x,y]=meshgrid(linspace(-1,1,50)); >>z=cos((x.*y)./(x.^2+y.^2+1)); >>surf(x,y,z),colorbar −1
  • 21. Como se puede observar, los puntos más altos corresponden a los colores más calientes y los puntos más bajos de la gráfica están coloreados con colores fríos. EJES. Las longitudes de los ejes coordenados también se pueden modificar con el comando >>axes([xmin xmax ymin ymax zmin zmax]) Los comandos grid on y axis square tambi¶en funcionan en este tipo de gráficos. ROTACIÓN DE GRÁFICAS Otro comando interesante en las gráficas 3D es rotate3d, que nos permite, utilizando el ratón sobre la figura, rotarla de manera interactiva en tres dimensiones. CURVAS DE NIVEL Dada una función z = f(x; y), las curvas sobre el plano XY , determinadas por f(x; y) = k, donde k es una constante se llaman curvas de nivel. Hay varias formas de obtenerlas usando MatLab.
  • 22. Vamos a representar la gráfica de la función z = x2 + y2; dibujando algunas curvas de nivel. Creamos el mallado, >>[x,y]=meshgrid(-2:.1:2); Sustituimos en la función, para calcular los valores de z, >>z=x.^2+y.^2; Ahora, podemos dibujar la gráfica utilizando alguno de los comandos descritos anteriormente. Las curvas de nivel se pueden hacer utilizando alguno de los coman- dos siguientes (ver ¯guras 13, 14 y 15): >>contour(x,y,z,10) % dibuja 10 curvas de nivel >>contour3(x,y,z,10) % lo mismo, pero en el espacio >>pcolor(x,y,z),colorbar
  • 23. Esta última orden dibuja un mapa de colores por niveles, la orden colorbar hace aparecer una escala de valores según el color, es decir, nos indica el valor de la variable z, como se describió antes. Si se usa el comando contour, después se pueden etiquetar las curvas con los valores correspondientes de la z. Para hacer esto: Primero dibujamos las curvas de nivel con >>contour(x,y,z,10) Después guardamos la información en una variable, por ejemplo, >>cs=contour(x,y,z,30);
  • 24. A continuación, tenemos dos opciones:
  • 25. >>clabel(cs) % etiqueta algunas aleatoriamente O bien >>clabel(cs,'manual') % nos permite elegirlas con el ratón Por otra parte, el comando >>meshc(x,y,z), dibuja la gráfica, y por debajo, las curvas de nivel (algunas veces será necesario modificar los ejes para que la gráfica de la función no tape a las curvas de nivel). Algunas superficies en el espacio Hay varios comandos en Matlab que permiten generar las gráficas de superficies en R3 (superficies que no son funciones.) Estos comandos son funciones que ya vienen programadas.
  • 26. MÁS SUPERFICIES DE REVOLUCIÓN El comando >>makevase hace aparecer una ventana interactiva que permite dibujar gráficas de superficies de revolución en las que la generatriz es una poligonal cuyos vértices se señalan con el ratón sobre el propio dibujo. Gráficos de funciones complejas El comando cplxmap permite representar gráficas de funciones complejas de variable compleja en el siguiente sentido: Sea la función compleja de variable compleja f : C ¡! C z 7¡! w = f(z) El comando >>cplxmap(z,f(z)) dibuja una gráfica tridimensional en la que el eje X es la parte real de la variable, es decir, Real(z); el eje Y es la parte imaginaria de la variable, es decir, Im(z) y el eje Z es la parte real de la imagen de la funci¶on, es decir, Re(f(z)).
  • 27. La variable z va a pertenecer siempre al dominio constituido por el disco unidad centrado en el origen y las coordenadas de los puntos deben estar en forma polar. Esto se consigue utilizando previamente el comando >>cplxgrid(n), donde n es el número entero positivo. Por ejemplo, con los comandos >>z=cplxgrid(12); >>cplxmap(z,z.^2) obtenemos la gráfica de la función f(z) = z2 (¯gura 18)
  • 28. Obsérvese que para cada valor de z, su imagen f(z), es única. Esto no es así para cualquier función compleja. Por ejemplo, la función f(z) = z1=2 es una función bivaluada, la función g(z) = z1=3 es una función trivaluada, cada z puede producir tres valores distintos para g(z), y así sucesivamente. Para obtener las gráficas de estas funciones especiales, que se denominan Superficies de Riemann, Matlab dispone de un comando que las dibuja automáticamente, es el comando cplxroot(n), donde n es el índice de la raíz. El comando >>cplxroot(2) generarla a la superficie de la figura 19. Para obtener más información, se pueden ejecutar los comandos cplxdemo y grafcplx, que contienen sendas demostraciones de gráficas de funciones complejas.