Sei sulla pagina 1di 7

UNIVERSIDAD MAYOR DE SAN ANDRÉS ELT-256 COMPUTACIÓN

FACULTAD DE INGENIERÍA Ing. Vidher W. Bustillos D.

LABORATORIO # 6

REPRESENTACIÓN GRÁFICA 3D EN MATLAB

1. OBJETIVOS ESPECÍFICOS
Luego de completar este laboratorio, el estudiante será capaz de:
 Conocer la forma de realizar gráficos en 3D en el entorno de MatLab
 Utilizar comandos para realizar graficas en 3D en el entorno de MatLab
 Realizar el análisis de las gráficas en 3D en base a su ventana de representación gráfica.
 Dibujar distintas formas tridimensionales y presentarlas de manera adecuada para su análisis
 Realizar ejercicios de aplicación

2. FUNDAMENTO TEÓRICO

REPRESENTACIÓN GRÁFICAS

MATLAB tiene posibilidades de realizar varios tipos de gráficos 3D, haciéndolo muy atractivo dentro
de los investigadores al observar el comportamiento de una función y poder realizar un análisis dentro
el comportamiento dentro de algunos parámetros de dicha función.

Función plot3
La función plot3 es análoga a su homóloga bidimensional plot, su forma más sencilla es la siguiente:

>> plot3(x,y,z)

Esta función, dibuja una línea que une los puntos [x(1), y(1), z(1)],[x(2), y(2), z(2)], etc. y la proyecta
sobre un plano representado en la pantalla.

En otras palabras, esta función dibuja puntos cuyas coordenadas están contenidas en 3 vectores, bien
uniéndolos mediante una línea continua (defecto) o mediante markers y se puede especificar el color.
Ejemplo 1:
>> fi=[0:pi/20:6*pi]; plot3(cos(fi),sin(fi),fi,'r')

Al igual que los gráficos 2D, se puede realizar una especificación del grafico
Utilizando los siguientes comandos:
>> title('ESPIRAL')
>> xlabel('eje x')
>> ylabel('Eje y')
>> zlabel('Eje z')

1
UNIVERSIDAD MAYOR DE SAN ANDRÉS ELT-256 COMPUTACIÓN
FACULTAD DE INGENIERÍA Ing. Vidher W. Bustillos D.

También se pueden utilizar tres matrices X, Y y Z del mismo tamaño:


>> plot3(X,Y,Z)
Donde se dibujan tantas líneas como columnas tienen estas 3 matrices, cada una de las cuales está
definida por las 3 columnas homólogas de dichas matrices.

Ejemplo 2: Realizar el dibujo de un cubo.


>> clear
>>x=[1 5]
x =
1 5
>>y=[1 5]
y =
1 5
>>z=[1 5]
z =
1 5
>>X=[x(1) x(2) x(2) x(1) x(1) x(1) x(1) x(2) x(2) x(1)]
X =
1 5 5 1 1 1 1 5 5 1
>>Y=[y(1) y(1) y(2) y(2) y(1) y(1) y(2) y(2) y(1) y(1)]
Y =
1 1 5 5 1 1 5 5 1 1
>>Z=[z(1) z(1) z(1) z(1) z(1) z(2) z(2) z(2) z(2) z(2)]
Z =
1 1 1 1 1 5 5 5 5 5
>>figure(gcf)
>>plot3(X,Y,Z)
>>hold on
>>X1=[x(1) x(1) x(2) x(2) x(1) x(1) x(1) x(2) x(2) x(1)]
X1 =
1 1 5 5 1 1 1 5 5 1
>>Y1=[y(1) y(1) y(1) y(1) y(1) y(2) y(2) y(2) y(2) y(2)]
Y1 =
1 1 1 1 1 5 5 5 5 5
>>Z1=[z(1) z(2) z(2) z(1) z(1) z(1) z(2) z(2) z(1) z(1)]
Z1 =
1 5 5 1 1 1 5 5 1 1
>>plot3(X1,Y1,Z1)
>>text(x(1), y(1), z(1),'F'), text(x(1), y(1), z(2),'B')
>>text(x(2), y(1), z(2),'A'), text(x(2), y(1), z(1),'E')
>>text(x(1), y(2), z(1),'G'), text(x(1), y(2), z(2),'C')
>>text(x(2), y(2), z(2),'D'), text(x(2), y(2), z(1),'H')

2
UNIVERSIDAD MAYOR DE SAN ANDRÉS ELT-256 COMPUTACIÓN
FACULTAD DE INGENIERÍA Ing. Vidher W. Bustillos D.

Para observar el cubo desde distintos puntos de vista, pruebe los siguientes comandos:

>> view(66,34) % para ver el angulo de visualizacion


>> view(30,30) % para ver el angulo de visualizacion
>> view(30,70) % para ver el angulo de visualizacion
>> view(60,30) % para ver el angulo de visualizacion
>> view(60,60) % para ver el angulo de visualizacion
>> view(60,30) % para ver el angulo de visualizacion
>> view(60,20) % para ver el angulo de visualizacion
>> view(60,30) % para ver el angulo de visualizacion
>> view(60,40) % para ver el angulo de visualizacion
>> view(60,50) % para ver el angulo de visualizacion
>> view(60,40) % para ver el angulo de visualizacion
>> view(60,50) % para ver el angulo de visualizacion
>> view(60,30) % para ver el angulo de visualizacion
>> view(60,20) % para ver el angulo de visualizacion
>> view(60,10) % para ver el angulo de visualizacion

También se puede rellenar los lados del cubo con el comando fill3

>> fill3 (X,Y,Z,'b')


>> fill3 (X1,Y1,Z1,'r')

Funciones meshgrid, mesh, surf, contour, waterfall (superficie)


La instrucción:
>> [X,Y]=meshgrid(x,y)
Crea una matriz X cuyas filas son copias del vector x y una matriz Y cuyas columnas son copias del
vector “y”. Para generar la gráfica de malla se usa la función:
>>mesh(X,Y,Z)
mesh acepta un argumento opcional para controlar los colores. También puede tomaruna matriz simple
como argumento
>>mesh(Z)
Ejemplo 3:
>> x = -10:0.5:10; y = -10:0.5:10;
>> [X,Y] = meshgrid (x,y); % crea matrices para hacer la malla
>> Z = sin (sqrt (X .^2 + Y .^2)) ./ sqrt (X .^ 2 + Y .^ 2 + 0.1);
>> mesh (X,Y,Z) % dibuja la gráfica

3
UNIVERSIDAD MAYOR DE SAN ANDRÉS ELT-256 COMPUTACIÓN
FACULTAD DE INGENIERÍA Ing. Vidher W. Bustillos D.

Ejemplo 4: Para representar una función de dos variables, z = x*y en [−1, 1] × [−1, 1]
>> x = -1:0.1:1; y = -1:0.1:1;
>>z = y'*x; % Columna x Fila = Matriz cuadrada
>> surf(x,y,z) % Superficie de placas
>> mesh(x,y,z) % Mallado de la superficie
>> contour(x,y,z) % Curvas de nivel

>> surfl(x,y,z) % Superficie suavizada


>> surfc(x,y,z) % Superficie y curvas de nivel
>> waterfall(x,y,z) % Cortes verticales

Ejemplo 5: Utilizando ficheros.m, reaizar la siguiente ecuación:

El fichero test3d.m

function z=test3d(x,y)
z = 3*(1-x).^2.*exp(-(x.^2)-(y+1).^2)-10*(x/5-x.^3-y.^5).*exp(-x.^2-
y.^2) - 1/3*exp(-(x+1).^2 - y.^2);

Ahora, ejecútese la siguiente lista de comandos:

>> x=[-3:0.4:3]; y=x;


>> close
>> subplot(2,2,1)
>> figure(gcf),fi=[0:pi/20:6*pi];
4
UNIVERSIDAD MAYOR DE SAN ANDRÉS ELT-256 COMPUTACIÓN
FACULTAD DE INGENIERÍA Ing. Vidher W. Bustillos D.

>> plot3(cos(fi),sin(fi),fi,'r')
>> [X,Y]=meshgrid(x,y);
>> Z=test3d(X,Y);
>> subplot(2,2,2)
>> figure(gcf), mesh(Z)
>> subplot(2,2,3)
>> figure(gcf), surf(Z)
>> subplot(2,2,4)
>> figure(gcf), contour3(Z,16)

Curvas en el espacio
Para dibujar curvas en el espacio tridimensional, MATLAB dispone del comando ezplot3:

Su estructura es:
ezplot3(x,y,z)
ezplot3(x,y,z,[a,b])

>> t=[0:0.2:2*pi]
>> ezplot3('3*cos(t)','t*sin(t^2)','sqrt(t)')

Superficies en el espacio
Su estructura es:
ezmesh(f)
ezmesh(f,[a,b])
ezmesh(f,[a,b,c,d]

ezmesh, es una expresión de dos variables dibuja la superficie z=f(x,y) para (x,y) variando en el
cuadrado [-π,π]x[-π,π] en el primer caso, en el cuadrado [a,b]x[a,b] en el segundo, y en el rectángulo
[a,b]x[c,d] en el tercer caso. El método de dibujo es una malla con segmentos coloreados, en función
de los valores en los extremos.
>> ezmesh ('sqrt (x ^ 2 + y ^ 2)')
>> ezmesh('x*exp(-x^2 - y^2)')
>> colormap([0 0 1])

5
UNIVERSIDAD MAYOR DE SAN ANDRÉS ELT-256 COMPUTACIÓN
FACULTAD DE INGENIERÍA Ing. Vidher W. Bustillos D.

ezmesh(x,y,z,[a,b]): x, y, z son expresiones de funciones de dos variables por lo tanto dibuja


la superficie de coordenadas paramétricas x=x(s,t) y=y(s,t) z=z(s,t) para (s,t) variando en el cuadrado
[-2π,2π]x[-2π,2π] por defecto , y en el cuadrado [a,b]x[a,b] si se aumenta los límites.

>> ezmesh('s*cos(t)','s*sin(t)','t',[-pi,pi])

ezcontour(f): dibuja las líneas de nivel (isovalores) de la función z=f(x,y)


También se puede escribir como:
ezcontour(f,[a,b])
ezcontour(f,[a,b,c,d])

>> ezcontour('x*exp(-x^2 - y^2)')

ezcontourf: hace lo mismo que ezcontour, pero rellenando con un color sólido las distintas zonas
determinadas por las líneas de nivel

>> ezcontourf('x*exp(-x^2 - y^2)')

ezsurf(f): dibuja una superficie coloreada z=f(x,y), sus argumentos son como en ezmesh
>>ezsurf('sin(sqrt(x^2+y^2))/sqrt(x^2+y^2)')
>>ezsurfc('sin(sqrt(x^2+y^2))/sqrt(x^2+y^2)') %aumenta líneas de nivel

6
UNIVERSIDAD MAYOR DE SAN ANDRÉS ELT-256 COMPUTACIÓN
FACULTAD DE INGENIERÍA Ing. Vidher W. Bustillos D.

3.- PROCEDIMIENTO EN LABORATORIO


Fichero .m 1: Realizar la representación gráfica de una esfera de radio “R” (R se introduce por teclado)

Fichero*.m 2: Hacer la siguiente función dentro de un fichero.m y analizar la representación gráfica.

Para cada función colocar título y nombre de los ejes.

Fichero .m 3: Cree vectores “x” y “y” desde -5 hasta +5 con un espaciamiento de 0.5. Use la función meshgrid
para mapear "x" y "y" en dos nuevas matrices bidimensionales llamadas X y Y. Use sus nuevas matrices para
calcular el vector Z, con magnitud: 𝑍 = sin(√𝑋 2 + 𝑌 2 )
(a) Use la función de graficación mesh para crear una gráfica tridimensional de Z.
(b) Use la función de graficación surf para crear una gráfica tridimensional de Z.
(c) Modifique su gráfica de superficie con sombreado interpolado, usar diferentes colormaps.
(d) Genere una gráfica de contorno de Z.
(e) Genere una combinación de gráficas de superficie y de contorno de Z.

4.- PREINFORME
1.- Realizar los ficheros *.m de cada uno de los problemas propuestos en el procedimiento y de los ejemplos
2.- Explicar el funcionamiento con comentarios de cada uno de los ficheros *.m
3.- Dibujar las gráficas obtenidas de cada uno de los ficheros *.m en papel milimetrado

NOTA: presentar el preinforme antes de ingresar al laboratorio de forma


individual.
7