Sunteți pe pagina 1din 49

Captulo 4

Grcas

4.1. Las Grcas en MATLAB


4.1.1. Anatoma de las Grcas en MATLAB
El entorno MATLAB ofrece una variedad de funciones para la grca de datos adems de herramientas
GUI para crear y modicar la visualizacin de las grcas. Una gura (gure) es una ventana MATLAB
que contiene la visualizacin de una grca (usualmente trazado de datos) y componentes UI. Un trazado
(plot) es cualquier visualizacin grca, a partir de un conjunto de datos, que se pueda crear dentro de
una ventana gura. Una grca (graph) es el conjunto de uno omas trazas en ejes bidimensionales
otridimensionales.
Por ejemplo, el siguiente script crea una grca conteniendo tres curvas.
 grafdemo.m (script)
 
1 clc;
2 clear;
3 x = (0:0.2:20);
4 y = sin(x)./sqrt(x+1);
5 y(:,2) = sin(x/2)./sqrt(x+1);
6 y(:,3) = sin(x/3)./sqrt(x+1);
7 plot(x,y)
 

Ventana figura
(figure)

Eje
(axes)

Trazas de curvas
(plots)

4.1.2. Procesos para el trazado de una grca


Una grca es la traza de datos, los cuales pueden ser generados por cdigo MATLAB, por ejemplo
a travs de una regla de correspondencia aplicada sobre un dominio; o pueden ser importados de alguna

75
base de datos, como un archivo de Excel.

DATOS

Sea bidimensional o tridimensional, el proceso de trazado de una grca esta constituido por las
siguientes etapas:

Creacin de la grca

Exploracin de datos

Edicin del grco

Adicin de anotaciones al grco

Impresin y Exportacin de grcas

Adicin y eliminacin de contenido de una ventana gure

Almacenamiento y reutilizacin de grcas (*.g)

Cada una de estas etapas se pueden desarrollar a travs de cdigo (funciones y/o scripts) o utilizando las
herramientas que provee MATLAB.

4.1.3. Creacin de una grca


Por lo general, la creacin de una grca implica el desarrollo de los siguientes pasos:

1. Preparar los datos a gracar.

Los datos deben estar en el workspace.

2. Especicar la ventana gura en la que se desea hacer la grca.

Usando el comando gure.Hace la subdivisin de la grca en sub-grcas (ejes) si es necesario.

3. Especicar la sub-grca (eje) en la que se desea hacer la grca.

Usando el comando subplot.

4. Efectuar el trazado de la grca.

Usando las funciones trazadoras de grca bidimensional/tridimensional.

5. Agregar detalles a la grca .

Legenda, enrejado, ttulo, etiquetas, etc.

6. Estableciendo valores a las propiedades de los objetos que componen la grca.

Creando manipuladoresa los objetos de la grca.


Obteniendo/estableciendopropiedades mediantelos comandos get y set.

NOTA: Los objetos que componen una grca en MATLAB son parte de la siguiente Jerarqua
de Objetos Grcos

EXPOSITOR: Miguel Ataurima Arellano 76 mataurimaa@uni.pe


root

figure

Anotaciones
objetos UI axes
ocultas de ejes

objetos de Grupo de Anotaciones de


objetos ncleo
trazado objetos objetos

4.1.4. Algunas Herramientas GUI


Son aquellas que nos permitirn editar las grcas generadas tras la ejecucin de cdigo fuente en
ventanas gura. Entre ellas tenemos:

Barra de herramientas de las Ventana gure

Modo edicin Zoom in/out Barra de colores Legenda

Pan Rotador Cursor Pincel Data Link Oculta/Muestra herramientas


3D de Datos de Datos de trazado

Otras herramientas (men View)

Cmara
iluminacin

Controles de movimiento Selector de ejes Tipo de


de cmara principales Proyeccin Reset y Stop

Edicin de trazas

edicin de propiedades de Fija objetos en una posicin Alinea objetos


objetos grficos especfica

4.2. Las Grcas Bidimensionales


4.2.1. Funciones trazadoras de Grcas Bidimensionales
Las funciones grcas bidimensionales segn el tipo de grca son del tipo lnea, barra, rea, direc-
cional, radial o dispersa (scatter).

EXPOSITOR: Miguel Ataurima Arellano 77 mataurimaa@uni.pe


Linea

Barra
agrupada apilada agrupada apilada

rea

Direccional

Radial

Dispersas
(Scatter)

Una de las funciones trazadora comnmente utilizada es la funcin plot, razn por la cual procederemos
a desarrollarla de manera exhaustiva. Una vez que se halle familiarizado con el uso de esta funcin, ser
mucho mas cmodo abordar las dems.

4.2.2. La funcin de trazado lineal bidimensional: plot

La funcin plot es una funcin que graca sobre un eje (objeto axis) perteneciente a una ventana
gura (objeto gure), una traza, resultante de confrontar un conjunto de datos dado sobre otro.
Para poder utilizar la funcin grca plot se debe seguir los siguientes pasos:

Preparar los conjuntos de datos por gracar (coordenadas de los puntos a trazar) y cargarlos al
workspace. Estos pueden ser:

Generados por regla de correspondencia. Por ejemplo, mediante:


 
>> x = (0:pi/4:2*pi);
>> y = sin(x);
 

Obtenidos desde alguna fuente de datos. Por ejemplo, mediante importacin de datos de una
Bases de Datos externa (como Excel).

Una vez cargados los datos en el workspace (ws para abreviar), generar la grca invocando a la
funcin plot.
 
>> plot(x,y);
 

EXPOSITOR: Miguel Ataurima Arellano 78 mataurimaa@uni.pe


ws

x y

0 0
0.7854 0.7071
1.5708 1.0000
2.3562 0.7071
3.1416 0.0000
3.9270 -0.7071
4.7124 -1.0000
5.4978 -0.7071
6.2832 -0.0000

En este caso, la funcin plot proceder a desarrollar el trazado uniendo las duplas constituidas por
cada par (x(i),y(i)) con i=1,2,...,9, desde la primera hasta la ltima.

ws

x y

1 0 0 3

2 0.7854 0.7071 2 4

3 1.5708 1.0000

4 2.3562 0.7071 5 9

1
5 3.1416 0.0000

6 3.9270 -0.7071
6 8
7 4.7124 -1.0000

8 5.4978 -0.7071 7

9 6.2832 -0.0000

4.2.3. Formatos habituales del comando plot

I. Formato bsico: vector vs. vector


Este formato nos permitir obtener la grca de una u mas trazas sobre un eje.
 Sintxis:
plot( x , y ) plot( x1, y1 , x2, y2 , ... )
1 1 1
2 2 2
: : : : : : : : :
n1 n1 : : :
n2
eje y
eje y

eje x eje x

EXPOSITOR: Miguel Ataurima Arellano 79 mataurimaa@uni.pe


EJEMPLO: Gracar la funcin de densidad de probabilidad normal
1 1 x 2
f (x; , ) = e 2 ( )
2
para el caso en el que = 2, = 1 en el intervalo x [1; 5].
 graf2d001.m (script)
 
1 clc;
2 clear;
3
4 % parmetros
5 mu = 2;
6 sigma = 1;
7
8 % dominio
9 x = (-1:0.01:5);
10
11 % rango
12 y = exp(-0.5*((x-mu)/sigma).^2)/(sigma*sqrt(2*pi));
13
14 %grfica
15 plot(x,y);
 

0.4

0.35

0.3

0.25

0.2

0.15

0.1

0.05

0
-1 0 1 2 3 4 5

 Observaciones:
Haciendo uso de la funcin pdf del toolbox Statistics, podemos reemplazar la lnea 8 por
 
y = pdf(Normal, x, mu, sigma);
 
obteniendo el mismo resultado.
El comando pdf permite gracar las funciones de densidades de probabilidad tStudent, 2 , ,
entre muchas otras. Para mas detalle respecto al comando pdf consulte la ayuda de MATLAB

EXPOSITOR: Miguel Ataurima Arellano 80 mataurimaa@uni.pe


EJEMPLO: Gracar la senda continua

1 0,8t
x (t) = e sin (2t) + 1
2

junto con sus envolventes x1 (t) = 12 e0.8t + 1 y x2 (t) = 12 e0.8t + 1 en el intervalo de tiempo t [0; 10]

 graf2d002.m (script)
 
1 clc;
2 clear;
3
4 % dominio
5 t = (0:0.01:10);
6
7 % senda
8 x = 0.5*exp(-0.8*t).*sin(2*pi*t) + 1;
9
10 % envolventes
11 x1 = 0.5*exp(-0.8*t) + 1;
12 x2 = -0.5*exp(-0.8*t) + 1;
13
14 % grafica
15 plot(t,x,t,x1,t,x2);
 

1.5

0.5
0 2 4 6 8 10

EJEMPLO: Modicar el cdigo anterior de manera que:

Los rtulos de los ejes x e y sean tiempo y x(t), x1 (t), x2 (t) respectivamente.

El ttulo de la grca sea Senda x(t) y sus envolventes

Aparezca una leyenda que permita distinguir las curvas obtenidas

El grco resultante deber ser similar al siguiente

EXPOSITOR: Miguel Ataurima Arellano 81 mataurimaa@uni.pe


Senda x(t) y sus envolventes
1.5
Senda: x(t)
Envolvente: x 1(t)
Envolvente: x 2(t)

x(t), x 1(t), x 2(t)

0.5
0 2 4 6 8 10
tiempo

 graf2d003.m (script)
 
1 clc;
2 clear;
3
4 % dominio
5 t = (0:0.01:10);
6
7 % senda
8 x = 0.5*exp(-0.8*t).*sin(2*pi*t) + 1;
9
10 % envolventes
11 x1 = 0.5*exp(-0.8*t) + 1;
12 x2 = -0.5*exp(-0.8*t) + 1;
13
14 % grafica
15 plot(t,x,t,x1,t,x2);
16
17 % rotulos en los ejes
18 xlabel(tiempo);
19 ylabel(x(t), x_1(t), x_2(t));
20
21 % ttulo
22 title(Senda x(t) y sus envolventes);
23
24 % leyenda
25 legend(Senda: x(t), Envolvente: x_1(t), Envolvente: x_2(t));
 
 Observacin:
Los temas concernientes a rtulos, ttulos, legenda, control de sistema de ejes, etc. sern visto mas
adelante en este captulo.

EXPOSITOR: Miguel Ataurima Arellano 82 mataurimaa@uni.pe


II. Formato con especicadores
Toda traza en MATLAB posee marcadores ubicados en cada uno de los puntos dato y lneas que
unen dichos marcadores. Las lneas poseen estilos y colores, los marcadores tipos y colores. La forma de
especicarlos es a travs de una cadena de texto (linespec) que es pasada como un argumento adicional
luego de cada conjunto de datos.
 Sintxis:
plot( x1, y1, linespec1, ... )
linespec1, es una cadena que contiene uno o mas caracteres cada uno de los cuales
representa a un especificador, los cuales pueden ser del tipo lnea, del tipo marcador y/o
del tipo color

TIPO LNEA TIPO MARCADOR


Especificador Estilo de lnea Especificador Tipo de Marcador
- Lnea slida (default) + Signo mas
-- Lnea guin o Crculo
: Lnea punteada * Asterisco
-. Lnea punto-guin . Punto
x Cruz
TIPO COLOR 'square' o s Cuadrado
Especificador Color 'diamond' o d Diamante
r Rojo ^ Triangulo apuntando hacia arriba
g Verde v Tringulo apuntando hacia abajo
b Azul > Tringulo apuntado a la derecha
c Cyan < Tringulo apuntando a la izquierda
M Magenta 'pentagram' o p Estella de cinco puntas
Y Amarillo 'hexagram' o h Estrella de seis puntas
k Negro
w Blanco

EJEMPLO: Crear un script que graque tres funciones de densidad normal, mediante el uso de una
funcin annima, con los juegos de parmetros (, ), ( + 1, + 0,5) y ( + 2, + 1) respectivamente.
Aada a la grca los detalles que crea conveniente considerando = 5, = 1 y x [5 + ; 9 + ]
 graf2d004.m (script)
 
1 clc; clear
2
3 % Parmetros
4 mu = 5;
5 sigma = 1;
6
7 % Dominio
8 x = (-5+mu:0.01:9+mu);
9
10 % Funcin Anonima fnormal para la funcin de densidad normal con x~N(mu,sigma^2)
11 f = @(x,mu,sigma) (1/(sigma*sqrt(2*pi)))*exp(-0.5*((x-mu)/sigma).^2);
12
13 % Evaluacin de la funcin normal en cada conjunto de parmetos
14 y1 = f(x,mu,sigma);
15 y2 = f(x,mu+1,sigma+0.5);
16 y3 = f(x,mu+2,sigma+1);
17
18 % Grfica de las normales
19 plot(x, y1, b, ... % x ~ N(mu, sigma^2 )
20 x, y2, b--, ... % x ~ N(mu+1, (sigma+0.5)^2 )
21 x, y3, b:); % x ~ N(mu+2, (sigma+1)^2 )

EXPOSITOR: Miguel Ataurima Arellano 83 mataurimaa@uni.pe


22
23 % Detalles
24 grid on;
25 title(Grficas de funciones de densidad normal);
26 xlabel(Eje X);
27 ylabel(Eje Y);
28 str1 = sprintf(y_1 = f(x) : x ~ N( %3.2f, %3.2f^2), mu, sigma);
29 str2 = sprintf(y_2 = f(x) : x ~ N( %3.2f, %3.2f^2), mu+1, sigma+0.5);
30 str3 = sprintf(y_3 = f(x) : x ~ N( %3.2f, %3.2f), mu+2, sigma+1);
31 legend( str1, str2, str3);
 

Grficas de funciones de densidad normal


0.4
y 1 = f(x) : x ~ N( 5.00, 1.002)
0.35
y 2 = f(x) : x ~ N( 6.00, 1.502)
0.3 y 3 = f(x) : x ~ N( 7.00, 2.00)

0.25
Eje Y

0.2

0.15

0.1

0.05

0
0 2 4 6 8 10 12 14
Eje X

EJEMPLO: Crear un script que graque la trayectoria


 
2, t=0 2, t=0
x1 (t) = t
; x2 (t) = 4t t
2e + 8, t > 0 12e + 6e + 8, t > 0

con un desplazamiento en el tiempo hasta t = = 2 . Considere un intervalo de tiempo t [0; 10].


 graf2d005.m (script)
 
1 clc;
2 clear;
3
4 % Dominio
5 t = (0:0.01:10);
6
7 % Instante de cambio
8 tau = 2;
9
10 % Funcion annima que modela la senda
11 f = @(t) 2*exp(-t) + 8;
12 g = @(t) -12*exp(-4*t) + 6*exp(-t) + 8;
13
14 % Trayectoria inicia en t=tau
15 x1 = f(t-tau);
16 x2 = g(t-tau);
17
18 % Restriccin: para t<=tau se tiene que:
19 x1(t<=tau) = 2;
20 x2(t<=tau) = 2;
21

EXPOSITOR: Miguel Ataurima Arellano 84 mataurimaa@uni.pe


22 % Grfica
23 plot(t, x1, ... % x1(t)
24 t, x2, --,... % x2(t)
25 [0 10], [8 8], :k); % ss
26
27 axis([0 10 0 12]);
28 xlabel(tiempo);
29 ylabel(x_1(t), x_2(t))
30 legend(x_1(t), x_2(t));
 

12
x 1(t)
10 x 2(t)

8
x 1(t), x 2(t)

0
0 1 2 3 4 5 6 7 8 9 10
tiempo

 Observacin:
Para establecer los extremos de visualizacin del eje hemos utilizado la funcin axis (lnea 27) cuya
sintxis para grcas en dos dimensiones es

axis([xmin xmax ymin ymax])

EJEMPLO: Basndose en el ejemplo anterior realice los cambios necesario al script para obtener la
grca de  
10, t=0 10, t=0
x1 (t) = t
; x2 (t) = t 4t
2e + 4, t > 0 4e + 10e + 4, t > 0
con un desplazamiento en el tiempo hasta t = = 2 . Considere un intervalo de tiempo t [0; 10]. La
grca resultante deber ser similar a la siguiente:

12
x 1(t)
10 x 2(t)

8
x 1(t), x 2(t)

0
0 1 2 3 4 5 6 7 8 9 10
tiempo

EXPOSITOR: Miguel Ataurima Arellano 85 mataurimaa@uni.pe


III. Formato con establecimiento de propiedades
 Sintxis:
plot( ... , 'propiedad1' , 'valor1' , ... )
Permite establecer valores a determinadas propiedades de la traza:
Color, LineStyle, LineWidth, Marker, MarkerSize, MarkerEdgeColor,
MarkerFaceColor, XData, YData, ZData, Type, etc.
Para mayor informacin sobre las propiedades y valores posibles de establecer consulte la documen-
tacin.
EJEMPLO: Crear un script que graque la funcin

f (x) = tan(sin(x)) sin(tan(x))

para un intervalo de tiempot [; ]. Utilice una lnea de trazado especicando el grosor, asi como el
color y tamao del marcador.
 graf2d007.m (script)
 
1 clc;
2 clear;
3
4 % Dominio
5 x = (-pi:pi/10:pi);
6
7 % Rango
8 y = tan(sin(x)) - sin(tan(x));
9
10 % Grfica
11 plot(x,y,--s,LineWidth, 2,...
12 MarkerEdgeColor, r,...
13 MarkerFaceColor, w,...
14 MarkerSize, 8);
15
16 % Detalles
17 xlabel(eje X);
18 ylabel(eje Y);
19 legend(f(x))
 

3
f(x)
2

1
eje Y

-1

-2

-3
-4 -3 -2 -1 0 1 2 3 4
eje X

EJEMPLO: Crear un script que graque la sucesin


t
xt = 4 (0,7) + 5

para un intervalo de tiempot [0; 20]. Utilice una lnea de trazado especicando el grosor, asi como el
color y tamao del marcador.

EXPOSITOR: Miguel Ataurima Arellano 86 mataurimaa@uni.pe


 graf2d008.m (script)
 
1 clc;
2 clear;
3
4 % Dominio
5 t = (0:20);
6
7 % Regla de correspondencia de la sucesin
8 x = 4*(-0.7).^t + 5;
9
10 % Grfica
11 plot(t,x, bs--, LineWidth, 2,...
12 MarkerEdgeColor, none,...
13 MarkerFaceColor, k,...
14 MarkerSize, 6);
15 % Detalles
16 grid on;
17 axis([0 20 0 10]);
18 xlabel(tiempo);
19 ylabel(x(t));
 

10

6
x(t)

0
0 2 4 6 8 10 12 14 16 18 20
tiempo

IV. Formato con un solo argumento


Permite pasar como argumento de entrada un vector o matriz. En este caso el comando plot asumir
los ndices del rango de las (valores enteros que inician en 1) como valores del eje x, y stos se trazarn
versus los datos contenidos en el argumento de entrada.

Si el argumento de entrada es un vector (y) entonces la traza obtenida ser la de los ndices versus
valors del vector.
traza: (i, yi ) para i = 1, 2, ..., n

Si el argumento de entrada es una matriz (Y) entonces las trazas obtenidas sern las de los ndices
versus cada uno de los valores de las columnas de la matriz.

traza 1: (i, Y1,i ) para i = 1, 2, ..., n


traza 2: (i, Y2,i ) para i = 1, 2, ..., n
.. ..
. .

EXPOSITOR: Miguel Ataurima Arellano 87 mataurimaa@uni.pe


 Sintxis:
plot( y ) plot( Y )
1 1
2 2
: : : : : ...
n n
eje y

eje y
1 2 k .. n 1 2 k .. n

eje x eje x

EJEMPLO: Crear un script que graque un proceso del tipo caminata aleatoria (random walk) gausiano

xt GW N (0, 1) : xt = xt1 + t , t i.i.d.N (0, 1)

considere un periodo de simulacin comprendido entre t = 1, 2, .., T con T = 500 observaciones.

Notas:
T
La forma de representar una secuencia {zt }t=1 en MATLAB es mediante un vector, por lo general
columna, de longitud T .

La generacin de un arreglo de m n valores aleatorios que siguen una distribucin normal con
media 0 y desviacin estndar 1 se consigue mediante el comando randn(m,n).

 graf2d008.m (script)
 
1 clc;
2 clear;
3
4 % Numero de observaciones (tamao de la muestra)
5 T = 500;
6
7 % Desviaciones estndar de las innovaciones
8 sigma1 = 1;
9
10 % Semilla pre-establecida
11 randn(seed, 123);
12
13 % Ruidos gausianos (vectores de innovacin)
14 e = sigma1*randn(T,1);
15
16 % Caminatas aleatorias (Sumas acumuladas)
17 X = cumsum(e);
18
19 % Grfica
20 plot(X);
21
22 % Detalles
23 xlabel(tiempo);
24 ylabel(x_t);
25 title(Caminata Aleatoria);
26 legend(x_t~GWN(0,1));
 

EXPOSITOR: Miguel Ataurima Arellano 88 mataurimaa@uni.pe


Caminata Aleatoria
40

x t~GRW(0,1)
30

20
xt

10

-10
0 50 100 150 200 250 300 350 400 450 500
tiempo

EJEMPLO: Crear un script que graque tres procesos del tipo caminata aleatoria (random walk)
gausiana
x1,t RW (0, 1) : x1,t = x1,t1 + 1,t , 1,t i.i.d.N (0, 1)
x2,t RW (0, 2) : x2,t = x2,t1 + 2,t , 2,t i.i.d.N (0, 2)
x3,t RW (0, 5) : x3,t = x3,t1 + 3,t , 3,t i.i.d.N (0, 5)
considere un periodo de simulacin comprendido entre [1, T ] con T = 500 observaciones.
 graf2d008.m (script)
 
1 clc;
2 clear;
3
4 % Numero de observaciones (tamao de la muestra)
5 T = 500;
6
7 % Desviaciones estndar de las innovaciones
8 sigma1 = 1;
9 sigma2 = sqrt(2);
10 sigma3 = sqrt(5);
11
12 % Semilla pre-establecida
13 randn(seed, 123);
14
15 % Ruidos gausianos (vectores de innovacin)
16 e1 = sigma1*randn(T,1);
17 e2 = sigma2*randn(T,1);
18 e3 = sigma3*randn(T,1);
19
20 % Caminatas aleatorias (Sumas acumuladas)
21 X(:,1) = cumsum(e1);
22 X(:,2) = cumsum(e2);
23 X(:,3) = cumsum(e3);
24
25 % Grfica
26 plot(X);
27
28 % Detalles
29 xlabel(tiempo);
30 ylabel(x_{1,t}, x_{2,t}, x_{3,t});
31 title(Caminatas Aleatorias);
32 legend(x_{1,t}~RW(0,1), x_{2,t}~RW(0,2), x_{3,t}~RW(0,5));
 

EXPOSITOR: Miguel Ataurima Arellano 89 mataurimaa@uni.pe


Caminatas Aleatorias
60

x 1,t~RW(0,1)
50
x 2,t~RW(0,2)

40 x 3,t~RW(0,5)

30
x 1,t, x 2,t, x 3,t

20

10

-10

-20

-30
0 50 100 150 200 250 300 350 400 450 500
tiempo

V. Formato vector vs. matriz


Aqu el primer argumento es un vector y el segundo una matriz. Este caso extiende el formato bsico
gracando el vector dado como primer argumento versus cada una de las columnas de la matriz.
 Sintxis:
plot( x , Y )
1
2
: : : : ...
n1
eje y

eje x

EJEMPLO: Crear un script que graque las funciones

f1 (x) = x
f2 (x) = x2
f3 (x) = x3

para un intervalo x [2; 2]. Los datos en el eje y no debern ser mayores en valor absoluto a 2.
 graf2d011.m (script)
 
1 clc;
2 clear;
3
4 % Dominio
5 x = (-2:0.001:2);
6
7 % Matriz Rango
8 % Cada columna contiene una regla de correspondencia
9 Y = [x x.^2 x.^3];
10
11 % Eliminamos todos los valores en la matriz Y
12 % que esten fuera de [-2;2]
13 Y(abs(Y)>2) = NaN;

EXPOSITOR: Miguel Ataurima Arellano 90 mataurimaa@uni.pe


14
15 % Grfica
16 plot(x, Y);
17
18 % Detalles
19 grid on;
20 xlabel(eje X);
21 ylabel(eje Y);
22 legend(y=x, y=x^2, y=x^3);
23 axis equal;
24 axis([-2 2 -2 2]);
 

1.5

0.5
eje Y

-0.5

-1 y=x
y=x 2
-1.5 y=x 3

-2
-2 -1.5 -1 -0.5 0 0.5 1 1.5 2
eje X

EJEMPLO: Crear un script que carge los ndices historicos de la Bolsas de Valores de Lima del ao
2012 1 y obtenga en un solo eje la grca de las Cotizaciones de los siguientes ndices: agrario, banquero,
industrial y diversos.
 graf2d012.m (script)
 
1 clc;
2 clear;
3
4 % Cargamos base de datos de INDICES DE COTIZACIONES BVL
5 [DATOS, etiquetas] = xlsread(IBVL2012,1,A3:I253);
6
7 % Obtenemos informacin de la base datos leida
8 [nobs, nseries] = size(DATOS);
9
10 % Obtenemos la serie numrica de fechas diarias
11 numFechas = datenum(datevec(etiquetas(2:end,1), dd/mm/yyyy));
12
13 % Graficamos
14 plot(numFechas,DATOS(:,1:4), LineWidth, 2);
15
16 % Especificamos formato de fecha para el eje horizontal
17 dateFormat = mmm-yy;
18 datetick(x, dateFormat);
1 Esta informacin est disponible en http://www.bvl.com.pe/mercindiceshistorico.html

EXPOSITOR: Miguel Ataurima Arellano 91 mataurimaa@uni.pe


19
20 % Detalles
21 legend(etiquetas(1,2:5), Orientation, Horizontal, ...
22 Location, Southoutside);
23 title(ndices de Cotizaciones BVL);
24 set(gca, FontSize, 8)
 

ndices de Cotizaciones BVL


1300

1200

1100

1000

900

800

700

600

500
Jan-12 Feb-12 Mar-12 Apr-12 May-12 Jun-12 Jul-12 Aug-12 Sep-12 Oct-12 Nov-12 Dec-12 Jan-13
AGRARIO BANCOS DIVERSAS INDUSTR

4.2.4. Gestin de las Propiedades de los objetos grcos


Cuando se crea una grca a travs del comando plot, se crean un conjunto de objetos grcos:
Ventana Figure(gure), Ejes(axes) y Trazas(objetos trazados). Cada uno de ellos poseen propiedades que
pueden obtenerse o establecerse a travs de los comandos get y set respectivamente.
 Sintxis:
Para crear un manipulador de las trazas (h) de una grca basta con asignar a una variable la salida
del comando plot
 
h = plot( ... )
 
Para el caso gener de varias trazas sobre el eje de una ventana gura se tendr los siguientes objetos
grcos:
gcf retorna el objeto gure actual

gca retorna el objeto axis actual (contenido en el objeto gure)


h contiene el objeto de trazado retornado por el comando plot

12 12

9 9

6 6

3 3

0 0
0 0

2 2

4 4

K  K  K  6 6

8 8

trazas ejes
(h) (gca) figura
(gcf)

EXPOSITOR: Miguel Ataurima Arellano 92 mataurimaa@uni.pe


y adems:

Para obtener todas las propiedades de un objeto:


 
M = get(objeto)
 

Para obtener una sola propiedad de ub objeto:


 
M = get(objeto,Propiedad)
 

Para establecer un nuevo valor de propiedad de un objeto


 
set(objeto,Propiedad,valor)
 

Una forma de averiguar de manera interactiva las propiedades de un objeto es dndo clic en el botn
(Show Plot Tools and Dock Figure), el cual habilitar un conjunto de herramientas de edicin de objetos
grcos,

Asi, por ejemplo, para editar las propiedades de la segunda traza habr que elegir del panel Plot
Browser el tercer objeto y luego deberemos dar clic en el botn More Properties... del Panel Property
Editor, que en su ttulo compartir el tipo de objeto seleccionado Property Editor - Lineseries. Realizada
esta accin se aperturar la ventana Inspector indicando en su barra de ttulo el tipo de grca (graph2d)
asi como el tipo de objeto seleccionado (Lineseries): graph2d.lineseres

EXPOSITOR: Miguel Ataurima Arellano 93 mataurimaa@uni.pe


A travs de esta herramienta podremos conocer a ciencia cierta las propiedades de cada objeto grco
asi como los valores admitibles por ste. Todo establecimiento de algn valor de propiedad puede realizarse
directamente mediante la ventana Inspector, o mediante cdigo fuente con el comando set.
EJEMPLO: Modique el script graf2d007.m estableciendo las propiedades de las trazas mediante el uso
de un manipulador grco.
 graf2d013.m (script alternativo a graf2d007.m)
 
1 clc;
2 clear;
3
4 % Dominio
5 x = (-pi:pi/10:pi);
6
7 % Rango
8 y = tan(sin(x)) - sin(tan(x));
9
10 % Grfica
11 h = plot(x,y);
12 set(h, LineStyle, --, ...
13 Marker, s, ...
14 LineWidth, 2,...
15 MarkerEdgeColor, r,...
16 MarkerFaceColor, w,...
17 MarkerSize, 8);
18
19 % Detalles
20 xlabel(eje X);

EXPOSITOR: Miguel Ataurima Arellano 94 mataurimaa@uni.pe


21 ylabel(eje Y);
22 legend(f(x))
 

EJEMPLO: Modique el script graf2d003.m estableciendo las propiedades de las envolventes como lneas
con guines y la senda como lnea contnua de color azul, mediante el uso de un manipulador grco.

 graf2d014.m (script alternativo a graf2d003.m)


 
1 clc;
2 clear;
3
4 % dominio
5 t = (0:0.01:10);
6
7 % senda
8 x = 0.5*exp(-0.8*t).*sin(2*pi*t) + 1;
9
10 % envolventes
11 x1 = 0.5*exp(-0.8*t) + 1;
12 x2 = -0.5*exp(-0.8*t) + 1;
13
14 % grafica
15 h = plot(t,x,t,x1,t,x2); % h es un vector columna de 3 elementos
16
17 % establecemos propiedades de la 2da. y 3era. traza
18 set(h(2:3), LineStyle, --, ...
19 Color, k);
20
21 % establecemos la propiedad LineWidth a las tres trazas
22 set(h, LineWidth, 2);
23
24 % rotulos en los ejes
25 xlabel(tiempo);
26 ylabel(x(t), x_1(t), x_2(t));
27
28 % ttulo
29 title(Senda x(t) y sus envolventes);
30
31 % leyenda
32 legend(Senda: x(t), Envolvente: x_1(t), Envolvente: x_2(t));
 

Senda x(t) y sus envolventes


1.5
Senda: x(t)
1.4
Envolvente: x 1(t)
1.3 Envolvente: x 2(t)

1.2
x(t), x 1(t), x 2(t)

1.1

0.9

0.8

0.7

0.6

0.5
0 1 2 3 4 5 6 7 8 9 10
tiempo

EXPOSITOR: Miguel Ataurima Arellano 95 mataurimaa@uni.pe


4.2.5. Control de ejes y anotaciones
Para el control de ejes tenemos:
axis([xmin xmax ymin ymax])
Establece los lmites para los ejes x e y del actual eje.
axis([xmin xmax ymin ymax zmin zmax cmin cmax])
Igual que el anterior mas los lmites de escalamiento de color
v = axis
Retorna un vector la conteniendo los factores de escala de los ejes.
axis auto
Establece los lmites del actual eje basndose en los valores mnimos y mximos de los datos.

axis tight
Establece los limites de los ejes al rango de los datos
axis ij
Establece el origen del sistema de coordenadas en la esquina superior izquierda. El eje i es vertical,
con valores crecientes de arriba a abajo. El eje j es horizontal con valores crecientes de izquierda a
derecha
axis xy
Dibuja el grco en formato de ejes cartesianos por defecto con el origen del sistema de coordenadas
en la esquina inferior izquierda. El eje x es horizontal con valores crecientes de izquierda a derecha.
El eje y es vertical con calores crecientes de abajo hacia arriba.
axis equal
Establece la proporcin entre la anchura y la altura de la traza (aspect ratio) de manera que las
unidades de los datos son las mismas en toda direccin.
axis image
Funciona igual que axis equal excepto que la caja de la traza se ajusta de manera ceida alrededor
de los datos.
axis square
hace cuadrada la regin del actual eje.
axis normal
Ajusta automticamente el proporcin de aspecto de los ejes y el escalamiento relativo de las
unidades de dato de manera que la traza se ajuste a la forma de la gura tan bien como sea posible.
axis off
Desactiva las lneas de los ejes, marcadores tick, y etiquetas.
axis on
Activa las lneas de los ejes, marcadores tick, y etiquetas.
axis(axes_handles,...)
Aplica el comando axis a ejes especcos.
xlim([xmin xmax]) ylim([ymin ymax])
Establece los lmites de los ejes en x e y respectivamente.

Para el control de anotaciones tenemos:


title(cadena)
Muestra la cadena en la parte superior-centro del eje actual.

EXPOSITOR: Miguel Ataurima Arellano 96 mataurimaa@uni.pe


title(axes_handle,...)
Aade el titulo a los ejes especicados.

title(... ,Propiedad,valor,...)
Funciona igual que las anteriores aadiendo la posiblidad de especicar pares propiedad/valor.

xlabel(cadena) ylabel(cadena)
Etiqueta los ejes x e y respectivamente.

legend(cadena1, cadena2,...)
Muestra una leyenda en el actual eje usando las cadenas especicadas para etiquetar cada conjunto
de datos en el orden en que han sido trazados.

text(x,y,cadena)
Aada la cadena en la posicin especicada por el punto (x,y), x e y deben ser nmeros double.

text(x,y,cadena,Propiedad,valor,...)
Funciona igual que la anterior aadiendo la posiblidad de especicar pares propiedad/valor.

texlabel(f)
Convierte la expresin MATLAB f en un equivalente TEX / LATEX para usarlo en cadenas de texto.
Generalmente se usa en como cadena con la funcin text.

datetick(tickaxis,dateform)
Formatea las etiquetas de las lneas tick de un eje usando fechas, reemplazando las etiquetas num-
ricas por defecto. tickaxis es la cadena x, y o z. Por defecto es x. datetick selecciona un formato
de etiqueta basado en los lmites mnimo y mximo de los ejes especicados. dateform es un entero
que especica el formato de las etiqueta.

[x,y]=ginput(n)
Permite seleccionar n puntos del actual eje cuyas coordenadas x e y son retornadas en los vectores
columna x e y respectivamente. Se puede nalizar el ingreso de los puntos presionando la tecla
Enter.

[x,y]=ginput
Igual que el anterior pero permitiendo seleccionar los puntos hasta presionar la tecla Enter.

gtext(cadena)
Espera a que se presione un botn del ratn o del teclado mientras el puntero esta dentro de la
ventana gura. Ubica el texto especicado por cadena en la posicin en donde se presione un botn
del ratn o presione cualquier tecla.

clabel(C,h,Propiedad,valor,...)
alterna las etiquetas e las inserta en las lneas de contorno. La funcin inserta solo aquellas etiquetas
que se ajustan al interior del contorno, dependiendo del tamao del contorno. Se pueden especicar
pares propiedad/valor

datetick(tickaxis,dateFormat)
Formatea las etiquetas conforme la cadena dateFormat.

legend(string1,string2,...)
Muestra una leyenda en los ejes actuales usando las cadenas especicadas que etiquetarrn cada
conjunto de datos.

EXPOSITOR: Miguel Ataurima Arellano 97 mataurimaa@uni.pe


4.2.6. Mltiples ejes en una Ventana gura
Para crear mltiples ejes en una venta gura, o dicho de otra manera, dividir la actual gura en ejes
dispuestos en una distribucin de m las por n columnas se utiliza la funcin subplot
 
h = subplot(m,n,p)
 
Esta funcin permite elegir el objeto eje p-simo como eje actual retornando un manipulador de ejes
h.

1 2 n-1 n

n+1 n+2 n+(n-1) 2n


m
filas

(m-1)n+1 (m-1)n+2 (m-1)n+(n-1) mn

n
columnas

subplot(m,n,p)
plot(x,y)

Observaciones:
Cada eje es numerado por las de izquierda a derecha a partir de 1 hasta mn.
Cada vez que se especica un eje actual, toda ejecucin de algn comando de gracacin, por
ejemplo plot, se ejecutar en dicho eje.

EJEMPLO: Tras resolver el siguiente problema de optimizacin dinmica (modelo de crecimiento de


Ramsey)
max et u(c(t)) dt
0

s.a.: k = f (k) c k
k(0) = k0 , k(T ) = kT
c1
considerando f (k) = 3k 1/3 , u (c) = , = 0,5, = 0,05 y = 0,05 se ha obtenido las siguientes
1
sendas ptimas para el capital y consumo per-cpita

k(t) = Ae0,2t + Be0,16t + 10 10
c(t) = 0,15Ae0,2t + 0,21Be0,16t + 2,5 10

las que resultan ser estables con A = 0 y B = 3,38.


Crear un script MATLAB que graque las sendas asi como la evolucin de la funcin de utilidad a lo
largo del tiempo.

EXPOSITOR: Miguel Ataurima Arellano 98 mataurimaa@uni.pe


 graf2d015.m (script)
 
1 clc;
2 clear;
3
4 % Parmetros
5 A = 0; B = 3.38; theta = 0.5;
6
7 % Intervalo de simulacin
8 t = (0:0.001:50);
9
10 % Grfica de k(t)
11 subplot(3,1,1);
12 k = A*exp(0.2*t) + B*exp(-0.16*t) + 10*sqrt(10);
13 plot(t,k, ...
14 [0 50], [10*sqrt(10) 10*sqrt(10)], :k, LineWidth, 2);
15 title(CAPITAL PER CPITA);
16 ylabel(k(t));
17 set(gca, FontSize, 8);
18
19 % Grfica de c(t)
20 subplot(3,1,2);
21 c = -0.15*A*exp(0.2*t) + 0.21*B*exp(-0.16*t) + 2.5*sqrt(10);
22 plot(t, c, ...
23 [0 50], [2.5*sqrt(10) 2.5*sqrt(10)], :k, LineWidth, 2);
24 title(CONSUMO PER CPITA);
25 ylabel(c(t));
26 set(gca, FontSize, 8);
27
28 % Grfica de u(c(t))
29 subplot(3,1,3);
30 u = c.^(1-theta)/(1-theta);
31 plot(t, u , ...
32 [0 50], [min(u) min(u)], :k, LineWidth, 2);
33 title(UTILIDAD PER CPITA);
34 ylabel(u(c(t)));
35 xlabel(tiempo);
36 set(gca, FontSize, 8);
 

CAPITAL PER CPITA


36

34
k(t)

32

30
0 5 10 15 20 25 30 35 40 45 50

CONSUMO PER CPITA


9

8.5
c(t)

7.5
0 5 10 15 20 25 30 35 40 45 50

UTILIDAD PER CPITA


5.9

5.8
u(c(t))

5.7

5.6
0 5 10 15 20 25 30 35 40 45 50
tiempo

EXPOSITOR: Miguel Ataurima Arellano 99 mataurimaa@uni.pe


EJEMPLO: Crear un script que permita obtener las grcas implicadas en el Modelo Bsico de Solow.

Funcin de produccin homognea de grado 1: Yt = At F (Kt , Ht )

Tecnologa: At+1 = (1 + ) At con A0 dado


Yt
Funcin de produccin per-cpita: yt = = At F (kt , 1) At f (kt )
Ht
Fuerza laboral: Ht+1 = (1 + n) Ht

Regla de crecimiento del capital: Kt+1 = (1 ) Kt + It

(1 ) kt + it It
Regla de crecimiento del capital per-cpita: kt+1 = donde it =
1+n Ht
Ahorros per-cpita: st = yt donde es la fraccin de la produccin per-cpita que es ahorrada.

Equilibrio de la economa cerrada: it = st .

Se presentan dos casos

1. Economa sin crecimiento tecnolgico = 0

At+1 = At = A0

Regla de crecimiento del capital per-cpita

(1 + n) kt+1 = (1 ) kt + A0 f (kt )

Estado Estacionario: kt+1 = kt = k

(1 + n) k = (1 ) k + A0 f (k)
( + n) k = A0 f (k)

considerando f (kt ) = kt

  1
A0 1
k=
+n

y = A0 k
c = (1 ) y

Regla de oro
max

c = (1 ) y = A0 f (k) ( + n) k
k

resolviendo y considerando f (kt ) = kt

  1
A0 1
k =
+n
 
y = A0 k

( + n) k
=
y
c = (1 ) y

2. Economa con crecimiento tecnolgico estocstico


 
At = Aet con t i.i.d.N 0, 2

EXPOSITOR: Miguel Ataurima Arellano 100 mataurimaa@uni.pe


Regla de crecimiento del capital per-cpita

(1 ) kt + Aet f (kt )
kt+1 =
1+n
considerando f (kt ) = kt

(1 ) kt + Aet kt
kt+1 =
1+n
yt = At f (kt ) = Aet kt
ct = (1 ) yt
st = yt

 graf2d016.m (script)
 
1 clc; clear;
2
3 A0 = 1;
4 n = 0.02;
5 delta = 0.1;
6 theta = 0.36;
7 sigma = 0.2;
8
9 kss = (sigma*A0/(delta+n))^(1/(1-theta));
10 yss = A0*kss^theta;
11 css = (1-sigma)*yss;
12
13 fprintf(Estado Estacionario:\n);
14 fprintf(k = %8.4f\n, kss);
15 fprintf(y = %8.4f\n, yss);
16 fprintf(sigma = %8.4f\n, sigma);
17 fprintf(c = %8.4f\n, css);
18
19 kgold = (theta*A0/(delta+n))^(1/(1-theta));
20 ygold = A0*kgold^theta;
21 sigmagold = (delta+n)*kgold/ygold;
22 cgold = (1-sigmagold)*ygold;
23
24 fprintf(\nRegla de Oro:\n);
25 fprintf(k* = %8.4f\n, kgold);
26 fprintf(y* = %8.4f\n, ygold);
27 fprintf(sigma* = %8.4f\n, sigmagold);
28 fprintf(c* = %8.4f\n, cgold);
29
30 %% % Grafica 1
31 figure(1);
32 kmax = (A0/(delta+n))^(1/(1-theta));
33 domk = linspace(0,kmax,200);
34 y = A0*domk.^theta;
35 s = sigma*y;
36 sgold = sigmagold*y;
37 plot(domk,y, ...
38 domk,s, ...
39 domk,sgold, -r, ...
40 domk, (delta+n)*domk, -k,...
41 [kss kss], [0 sigma*yss], :k, ...
42 [kgold kgold], [0 sigmagold*ygold], :r, ...
43 [kgold kss], [sigmagold*ygold sigma*yss], .k, ...
44 [kgold kss], [sigmagold*ygold sigma*yss], .k, LineWidth, 2);

EXPOSITOR: Miguel Ataurima Arellano 101 mataurimaa@uni.pe


45 xlabel(k_t);
46 legend(y_t, \sigmay_t, \sigma^*y_t, ...
47 (\delta+n)k_t, Location, Best);
48 xlim([0 kmax]);
49 set(gca, FontSize, 8);
50
51 %% % Grafica 2
52 figure(2);
53 T = 120;
54 stderr = 0.2;
55 k = zeros(T,1);
56 e = stderr*randn(T,1);
57
58 k(1) = 1.5;
59 for t=1:T-1
60 k(t+1) = ((1-delta)*k(t) + sigma*A0*exp(e(t))*k(t)^theta)/(1+n);
61 end
62
63 y = A0*exp(e).*k.^theta;
64 c = (1-sigma)*y;
65 s = sigma*y;
66
67 domt = (1:T);
68 subplot(3,1,1);
69 plot(domt, k, ...
70 [1 T], [kss kss], :, LineWidth, 2);
71 legend(k_t, k_{ss}, Location, Best, LineWidth, 2);
72 xlim([1 T]);
73 set(gca, FontSize, 8);
74
75 subplot(3,1,2);
76 plot(domt, y, ...
77 [1 T], [yss yss], :, LineWidth, 2);
78 legend(y_t, y_{ss}, Location, Best);
79 xlim([1 T]);
80 set(gca, FontSize, 8);
81
82 subplot(3,1,3);
83 plot(domt, c, ...
84 [1 T], [css css], :, LineWidth, 2);
85 legend(c_t, c_{ss}, Location, Best);
86 xlim([1 T]);
87 set(gca, FontSize, 8);
88 xlabel(tiempo);
 

EXPOSITOR: Miguel Ataurima Arellano 102 mataurimaa@uni.pe


3.5 3
kt
yt
2.5 kss
y t
*
3 yt
( +n)kt 2

1.5
2.5 10 20 30 40 50 60 70 80 90 100 110 120

2.5 yt
2
y ss
2

1.5

1.5 1

0.5
10 20 30 40 50 60 70 80 90 100 110 120

1
2.5
ct
2
c ss
0.5 1.5

0 0.5
0 5 10 15 20 25 10 20 30 40 50 60 70 80 90 100 110 120
kt tiempo

4.2.7. Otras funciones de trazado Bidimensional


I) Histogramas
MATLAB cuenta con la funcin hist para la grca de histogramas. A continuacin se explican las
sintxis de hist mas utilizadas
hist(data) crea un trazado de barras del tipo histograma a partir de data. Los elementos en data son
ordenados en 10 contenedores igualmente espaciados sobre el eje x entre el mnimo y el mximo valor
de data. Los contenedores son mostrados como rectngulos tales que la altura de cada rectngulo
indica el nmero de elementos en el contenedor.
hist(data, ncontenedore) ordena los datos dentro del numero de contenedores especicado por
ncontenedores.
hist(data, xcenters) ordena los datos en un numero de contenedores determinado por length(xcenters).
Los valores en xcenters especican los centros para cada contenedor sobre el eje x.
nelements = hist(___) retorna un vector la, nelements, indicando el nmero de elementos en cada
contenedor.
[nelements, xcenters] = hist(___) retorna un vector la adicional, xcenters, indicando la localiza-
cin de cada centro contenedor sobre el eje x. Para trazar el histograma, se debe usar bar(xcenters,
nelements).

EJEMPLO: Crear un script que graque una secuencia gaussiana

yt N (0, 1)

y su respectivo histograma con subintervalos centrados entre -4 y 4 con un paso de 0.5.


 graf2d017.m (script)
 
1 clc; clear;
2
3 % Talla de la muestra
4 T = 1000;
5 t = (1:T);
6
7 % Semilla
8 rand(seed,12345);
9

EXPOSITOR: Miguel Ataurima Arellano 103 mataurimaa@uni.pe


10 % Valores centrales
11 xc = (-4:0.5:4);
12
13 % Vector aleatorio y~N(0,1)
14 x = randn(T,1);
15
16 % Grafica del vector y
17 subplot(2,1,1);
18 plot(t,x, LineWidth, 2);
19 title(Secuencia Gaussiana: y_t ~ N(0,1));
20 xlabel(tiempo);
21 ylabel(y_t);
22 grid on;
23 set(gca, FontSize, 8);
24
25 % Grafica de Histograma
26 subplot(2,1,2);
27 hist(x,xc);
28 title(Histograma de y_t);
29 xlabel(y_t);
30 grid on;
31 set(gca, FontSize, 8);
 

Secuencia Gaussiana: y t ~ N(0,1)


4

0
yt

-2

-4
0 100 200 300 400 500 600 700 800 900 1000
tiempo
Histograma de y t
200

150

100

50

0
-5 -4 -3 -2 -1 0 1 2 3 4 5
yt

EJEMPLO: Modicar el script anterior de manera que el color de las barras sea azul y el de los bordes
sea blanco.
 graf2d018.m (script)
 
1 clc; clear;
2
3 % Talla de la muestra
4 T = 1000;

EXPOSITOR: Miguel Ataurima Arellano 104 mataurimaa@uni.pe


5 t = (1:T);
6
7 % Semilla
8 rand(seed,12345);
9
10 % Valores centrales
11 xc = (-4:0.5:4);
12
13 % Vector aleatorio y~N(0,1)
14 x = randn(T,1);
15
16 % Grafica del vector y
17 subplot(2,1,1);
18 plot(t,x);
19 title(Secuencia Gaussiana: y_t ~ N(0,1));
20 xlabel(tiempo);
21 ylabel(y_t);
22 grid on;
23
24 % Grafica de Histograma
25 subplot(2,1,2);
26 hist(x,xc);
27 h = findobj(gca,Type,patch);
28 set(h, FaceColor, b, ...
29 EdgeColor, w);
30 title(Histograma de y_t);
31 xlabel(y_t);
32 grid on;
33 % Superponemos la Grafica de los puntos centrales
34 hold on;
35 plot(xc,zeros(size(xc)), .r);
36 hold off;
 

Secuencia Gaussiana: y t ~ N(0,1)


4

0
yt

-2

-4
0 100 200 300 400 500 600 700 800 900 1000
tiempo
Histograma de y t
250

200

150

100

50

0
-5 -4 -3 -2 -1 0 1 2 3 4 5
yt

EXPOSITOR: Miguel Ataurima Arellano 105 mataurimaa@uni.pe


EJEMPLO: Modicar el script anterior de manera que se graque el histograma considerando el intervalo
de variacin de x dividido en 20 subintervalos.
 graf2d020.m (script)
 
1 clc; clear;
2
3 % Talla de la muestra
4 T = 1000;
5 t = (1:T);
6
7 % Semilla
8 rand(seed,12345);
9
10 % Vector aleatorio y~N(0,1)
11 x = randn(T,1);
12
13 % Grafica del vector y
14 subplot(2,1,1);
15 plot(t,x);
16 title(Secuencia Gaussiana: y_t ~ N(0,1));
17 xlabel(tiempo);
18 ylabel(y_t);
19 grid on;
20
21 % Grafica de Histograma
22 subplot(2,1,2);
23 nsub = 20;
24 hist(x, nsub);
25 title(Histograma de y_t);
26 xlabel(y_t);
27 grid on;
 

Secuencia Gaussiana: y t ~ N(0,1)


4

0
yt

-2

-4
0 100 200 300 400 500 600 700 800 900 1000
tiempo
Histograma de y t
150

100

50

0
-4 -3 -2 -1 0 1 2 3 4
yt

EXPOSITOR: Miguel Ataurima Arellano 106 mataurimaa@uni.pe


II) bar
MATLAB cuenta con la funcin bar para la grca de barras. A continuacin se explican las sintxis
de bar mas utilizadas:
bar(Y) muestra una barar para cada elemento en Y.

bar(x,Y) muestra barras para cada columna en Y en las ubicaciones especicadas en x.

bar(___,width) establece el ancho de barra relativo y controla la separacin de barras dentro de un


grupo y puede incluir cualquiera de los argumentos de entrada de las sintxis previas.
bar(___,style) especica el estilo de las barras y puede incluir cualquiera de los argumentos de
entrada de las sintxis previas.
bar(___,bar_color) muestra todas las barras usando el color especicado por la abreviacin letra
simple de bar_color y puede incluir cualquiera de los argumentos de entrada de las sintxis previas.
bar(___,Name,Value) ja los nombres de las propiedades con los valores especicados y puede incluir
cualquiera de los argumentos de entrada de las sintxis previas.
Nota: No se peude especicar nombres y valores cuando usando las opciones hist o histc.
bar(axes_handle,___) traza dentro de los ejes con el manipulador axes_handle en vez del actual
eje (gca).
h = bar(___) retorna un vector de manipuladores a los objetos grcos barseries, uno por cada
creado.
EJEMPLO: Modicar el script anterior de manera que la grca del histograma se realice mediante
barras.
 graf2d019.m (script)
 
1 clc; clear;
2
3 % Talla de la muestra
4 T = 1000;
5 t = (1:T);
6
7 % Semilla
8 rand(seed,12345);
9
10 % Valores centrales
11 xc = (-4:0.5:4);
12
13 % Vector aleatorio y~N(0,1)
14 x = randn(T,1);
15
16 % Grafica del vector y
17 subplot(2,1,1);
18 plot(t,x);
19 title(Secuencia Gaussiana: y_t ~ N(0,1));
20 xlabel(tiempo);
21 ylabel(y_t);
22 grid on;
23
24 % Grafica de Histograma
25 subplot(2,1,2);
26 [n, xout] = hist(x,xc);
27 bar(xout,n);
28 title(Histograma de y_t);
29 xlabel(y_t);
30 grid on;

EXPOSITOR: Miguel Ataurima Arellano 107 mataurimaa@uni.pe


31
32 % Superponemos la Grafica de los puntos centrales
33 hold on;
34 plot(xc,zeros(size(xc)), .r);
35 hold off;
 

Secuencia Gaussiana: y t ~ N(0,1)


4

0
yt

-2

-4
0 100 200 300 400 500 600 700 800 900 1000
tiempo
Histograma de y t
200

150

100

50

0
-5 -4 -3 -2 -1 0 1 2 3 4 5
yt

III) Contorno
Una traza de contorno muestra isolineas de una matriz Z. La etiquetacin de las lneas de contorno
(curvas de nivel) se efecta usando clabel.
contour(Z) dibuja un trazo de contorno de la matriz Z, donde Z es interpretado como un conjunto
de alturas con respecto al plano x-y. Z debe ser por lo menos una matriz de 2 2 que contenga
por lo menos dos distintos valores. El nmero de lneas de contorno y los valores de las lneas de
contorno son elegidas automticamente basado en el mnimo y mximo valor de Z. Los rangos de
los ejes x e y son [1:n] y [1:m] respcetivamente, donde [m,n] = size(Z).
contour(Z,n) dibuja un trazo de contorno de la matriz Z con n lneas de contorno donde n es un
escalar.
contour(Z,v) dibuja un trazo de contorno de la matriz Z con lineas de contorno en los valores
dato especicado en el vector v creciente monotnicamente. El nmero de lneas de contorno es
igual a length(v). Para trazar una sola lnea de contorno de nivel i, se debe usar contour(Z,[i i]).
Especivando el vector v se establece el LevelListMode a manual para permitir al usuario controla
los niveles de contorno. Vea las propiedades de contourgroup para mayor informacin.
contour(X,Y,Z), contour(X,Y,Z,n), y contour(X,Y,Z,v) dibuja las trazas de contorno de Z uasndo
X e Y para determinar los lmites en los ejes X e Y. Cuando X e Y son matrices, ellas deben ser
del mismo tamao que Z y deben ser monotnicamente crecientes.
contour(...,LineSpec) dibuja los contorno usando el tipo de lnea y color especicados mediante
LineSpec. contour ignora los smbolos de ls marcadores.
contour(axes_handle,...) traza en axes_handle en vez de en gca.

[C,h] = contour(...) returna una matriz de contorno, C, que contiene los datos que denen las
lneas de contorno, y un manipuladore, h, a un objeto contourgroup. La funcin clabel usa la matriz

EXPOSITOR: Miguel Ataurima Arellano 108 mataurimaa@uni.pe


de contorno C para etiquetar las lneas de contorno. ContourMatrix es tambin una propiedad
contourgroup de solo lectura que se puede obtener a partir del manipulador retornado.

Observaciones:

Se debe usar las propiedades del objeto contourgroup para controla la apariencia de las trazas de
contorno.

Si X o Y estn irregularmente espaciadas, contour calcula los contornos usando una malla de
contorno regularmente espaciada, y entonces transforma los datos de X o Y.

EJEMPLO: Crear un trazo de contorno de la funcin:


2
y 2
z = f (x, y) = xex

sobre el rango 2 x 2, 2 y 3.
 graf2d021.m (script)
 
1 clc;
2 clear;
3
4 % Obtencin de las matrices dominio
5 [x,y] = meshgrid(-2:.01:2,-2:.01:3);
6
7 % Evaluacin de la funcin
8 z = x.*exp(-x.^2-y.^2);
9
10 % Obtencin del trazo de contorno
11 [C,h] = contour(x,y,z,-0.4:0.1:0.4);
12
13 % Detalles
14 set(h, ShowText, on, ...
15 TextStep, get(h,LevelStep)*2, ...
16 EdgeColor, b);
17 set(gca, FontSize, 8);
18 axis([-2 2 -2 2]);
 

1.5

-0 .1
1 0.1
.1

0.5 .3 0.
0.1
.2

3
-0

-0
0.2
-0 .2

0.2
-0

-0.4 0.4
0

0.
-0.5 .3 3
-0
0.1
-0 .1

-0 -0 .2 0.2
.1
-1 0.1

-1.5
0

-2
-2 -1.5 -1 -0.5 0 0.5 1 1.5 2

EXPOSITOR: Miguel Ataurima Arellano 109 mataurimaa@uni.pe


EJEMPLO: Crear un mapa de curvas de indiferencia de un consumidor que presenta una funcin de
utilidad del tipo Cobb-Douglas
u(x, y) = Ax y
sobre el rango 0 x 1, 0 y 1. Considere A = 1, = 0,5 y = 0,5
 graf2d022.m (script)
 
1 clc;
2 clear;
3
4 % parmetros
5 A = 1; alfa = 0.5; beta = 0.5;
6
7 % Obtencin de las matrices dominio
8 [x,y] = meshgrid(0:.01:1,0:.01:1);
9
10 % Evaluacin de la funcin
11 z = A*x.^alfa.*y.^beta;
12
13 % Obtencin del trazo de contorno
14 [C,h] = contour(x,y,z,0.1:0.1:1);
15
16 % Detalles
17 set(h, ShowText, on, ...
18 TextStep, get(h,LevelStep)*2, ...
19 EdgeColor, b, ...
20 LineWidth, 2);
21 axis square;
22 xlabel(cantidad del bien x);
23 ylabel(cantidad del bien y);
24 title(Mapa de Curvas de Indiferencia)
 

Mapa de Curvas de Indiferencia


1

0.9
0.
8

0.9
0.6
0.2

0.4

0.8
0.
7
0.7
0.8
0.5
0.1

0.3
cantidad del bien y

0.6
0.6
0.7
0.5
0.
4

0.5
0.2

0.4
0.6

0.3 0.
3 0.5
0.4
0.1

0.2
0.4
0.3
0.2
0.1 0. 3
0.2
0.1 0.2
0.1 0.1
0
0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1
cantidad del bien x

EXPOSITOR: Miguel Ataurima Arellano 110 mataurimaa@uni.pe


IV) Escala logartmica
Una escala logartmica es una escala de medida que utiliza el logaritmo de una cantidad en lugar de
la propia cantidad. Un ejemplo sencillo de escala logartmica muestra divisiones igualmente espaciadas
en el eje vertical de un grco marcadas con 1, 10, 100, 1000, en vez de 1, 2, 3, 4.
La presentacin de datos en una escala logartmica puede ser til cuando los datos cubren una am-
plia gama de valores - el logaritmo los reduce a un rango ms manejable. Por ejemplo, el logit para
probabilidades (odds) en estadstica.
Cuando es necesario representar una serie de valores y el rango que abarcan es grande, una escala
logartmica puede proporcionar un medio de visualizacin de los datos que permite que se puedan deter-
minar los valores a partir de la grca. La escala logartmica se representa con distancias proporcionales
a los logaritmos de los valores que se representan. Por ejemplo, en la gura superior, en ambas grcas,
se han representado los valores: 2, 5, 20, 60, 320, 780, 1500, 4900.

Eje con
Escala
Lineal
6000

Eje con
Escala
Logartmica

Una escala logartmica es tambin una escala grca en uno (semilogartmica) o ambos lados de una
grca (logartmica).

1. Representacin semilogartmica
Una representacin semilogartmica es una representacin grca de una funcin o de un conjunto
de valores numricos, en la que el eje de abscisas o el eje de ordenadas tienen escala logartmica
mientras el otro eje tiene una escala lineal o proporcional.
Los datos que siguen una variacin similar a una funcin exponencial

y = aebx a, b constantes

o aquellas serie de datos cuyo rango abarca varios rdenes de magnitud, son apropiados para una
representacin semilogartmica. Tomando logartmos a la expresin anterior se pone en evidencia
una relacin semilogartmica
log(y) = log(a) + b x

En MATLAB se utiliza los comandos:

semilogx(x,y): eje x en escala logartmica, eje y en escala lineal.


semilogy(x,y): eje x en escala lineal, eje y en escala logartmica.

10
EJEMPLO: Gracar la sucesin {xt }t=0 con xt = 2t .

 graf2d023.m (script)
 
1 clc; clear;
2
3 % Talla de la muestra
4 T = 10;
5 t = (1:T);
6
7 x = 2.^t;
8
9 subplot(1,2,1);

EXPOSITOR: Miguel Ataurima Arellano 111 mataurimaa@uni.pe


10 plot(t, x, o-, LineWidth, 2, ...
11 MarkerFaceColor, r, ...
12 MarkerEdgeColor, none, ...
13 MarkerSize, 5);
14 title(Representacin Lineal);
15 xlabel(tiempo);
16 grid on;
17 set(gca, FontSize, 8);
18
19 subplot(1,2,2);
20 plot(t,x);
21 semilogy(t, x, o-, LineWidth, 2, ...
22 MarkerFaceColor, r, ...
23 MarkerEdgeColor, none, ...
24 MarkerSize, 5);
25 title(Representacin Semilogartmica);
26 xlabel(tiempo);
27 grid on;
28 set(gca, FontSize, 8);
 

Representacin Lineal 4
Representacin Semilogartmica
1200 10

1000
3
10

800

2
600 10

400
1
10

200

0
0 10
0 2 4 6 8 10 0 2 4 6 8 10
tiempo tiempo

2. Representacin logartmica
Una representacin logartmica es una representacin grca de una funcin o de un conjunto de
valores numricos, en la que el eje de abscisas y el eje de ordenadas tienen escala logartmica.
Los datos que siguen una variacin similar a una funcin exponencial

y = axb a, b constantes

o aquellas serie de datos cuyo rango abarca varios rdenes de magnitud, son apropiados para una
representacin semilogartmica. Tomando logartmos a la expresin anterior se pone en evidencia
una relacin semilogartmica
log(y) = log(a) + b log(x)

En MATLAB se utiliza el comando:


loglog(x,y): eje x en escala logartmica, eje y en escala logaritmica

EXPOSITOR: Miguel Ataurima Arellano 112 mataurimaa@uni.pe


10
EJEMPLO: Gracar la sucesin {xt }t=0 con xt = 5t3 .

 graf2d024.m (script)
 
1 clc; clear;
2
3 % Talla de la muestra
4 T = 10;
5 t = (1:T);
6
7 x = 5 *t.^3;
8
9 subplot(1,2,1);
10 plot(t, x, o-, LineWidth, 2, ...
11 MarkerFaceColor, r, ...
12 MarkerEdgeColor, none, ...
13 MarkerSize, 5);
14 title(Representacin Lineal);
15 xlabel(tiempo);
16 grid on;
17 set(gca, FontSize, 8);
18
19 subplot(1,2,2);
20 plot(t,x);
21 loglog(t, x, o-, LineWidth, 2, ...
22 MarkerFaceColor, r, ...
23 MarkerEdgeColor, none, ...
24 MarkerSize, 5);
25 title(Representacin logartmica);
26 xlabel(tiempo);
27 grid on;
28 set(gca, FontSize, 8);
 

Representacin Lineal 4
Representacin logartmica
5000 10

4500

4000
3
10
3500

3000
2
2500 10

2000

1500
1
10
1000

500
0
0 10
0 2 4 6 8 10 0 1
10 10
tiempo tiempo

EXPOSITOR: Miguel Ataurima Arellano 113 mataurimaa@uni.pe


4.3. Las Grcas Tridimensionales
4.3.1. Funciones trazadoras de Grcas Tridimensionales

Linea

Malla
y Barra

rea
y objetos
constructivos

Superficie

Direccin

Volumtrico

4.3.2. Grca de observaciones tridimensionales


Se deben seguir los siguientes pasos:
Se debe especicar el dominio de gracacin a travs de vectores. Por ejemplo, especicamos tres
vectores, x, y y z
 
>> x = [1 3 5 8 6 4 2];
>> y = [2 4 5 7 6 4 1];
>> z = [2 6 7 8 9 10 12];
 

Con estos vectores se efecta la grca de las muestras haciendo usando las funciones MATLAB para
el trazado tridimensional. Por ejemplo, podemos representar tridimensionalmente las observaciones
va los comandos stem3 y scatter3

stem3(x,y,z) scatter(x,y,z)

15 15

10 10

5 5

0 0
12 8
10 12 8
6 10
8 4 6
6 8
2 6 4
4
2 0 4 2
2 0

4.3.3. Grca de curvas tridimensionales


Se deben seguir los siguientes pasos:

EXPOSITOR: Miguel Ataurima Arellano 114 mataurimaa@uni.pe


Especicar el dominio de la variable independiente (por lo general, tiempo).
 
>> t = 0:pi/10:10*pi
t =
0 0.3142 ... 31.1018 31.4159
 

Generar los vectores dominio a travs de alguna regla de correspondencia con la variable indepen-
diente.
 
>> x = t.*sin(t)
x =
0 0.0971 ... -9.6110 -0.0000

>> y = t.*cos(t)
y =
0 0.2988 ... 29.5795 31.4159

>> z = t.^2
z =
0 0.0987 ... 967.3199 986.9604
 

Gracar la curva descrita por los vectores obtenidos en el paso anterior usando las funciones
MATLAB para el trazado de curvas tridimensionales plot3(x,y,z);
 
>> plot3(x,y,z);
 

400
Grfica de la curva
300

200

100

0
20
10 20
0 10
0
-10 -10
-20 -20

4.3.4. Grca de supercies tridimensionales


I) Forma Cartesiana
Son aquellas supercies denidas por ternas (x, y, z) donde a cada par (x, y) se le asigna un valor z
por medio de una regla de correspondencia f .

f : D R2 R
(x, y) z = f (x, y)

Para gracar supercies en forma cartesiana en MATLAB se deben seguir los siguientes pasos:
Transformar los vectores dominios a arreglos bidimensionales mediante la funcin meshgrid. Por
ejemplo:
 
>> Dx = -3:3;
>> Dy = -2:2;
>> [x,y] = meshgrid(Dx,Dy)

EXPOSITOR: Miguel Ataurima Arellano 115 mataurimaa@uni.pe


x =
-3 -2 -1 0 1 2 3
-3 -2 -1 0 1 2 3
-3 -2 -1 0 1 2 3
-3 -2 -1 0 1 2 3
-3 -2 -1 0 1 2 3

y =
-2 -2 -2 -2 -2 -2 -2
-1 -1 -1 -1 -1 -1 -1
0 0 0 0 0 0 0
1 1 1 1 1 1 1
2 2 2 2 2 2 2
 

Estas matrices sern usadas para evaluarlas funciones. Por ejemplo evaluemos la funcin z =
f (x, y) = x2 + y 2
 
>> z = x.^2 + y.^2;
z =
13 8 5 4 5 8 13
10 5 2 1 2 5 10
9 4 1 0 1 4 9
10 5 2 1 2 5 10
13 8 5 4 5 8 13
 

Gracamos la supercie utilizando las funciones MATLAB de trazado desupercies/mallas tridi-


mensionales. Por ejemplo, usando surf obtendremos
 
>> surf(x,y,z);
 

15

10

Grfica de la funcin
5

0
2
1 4
0 2
0
-1 -2
-2 -4

EJEMPLO: Gracar la funcin Coob-Douglas

z = Ax y

considerando A = 1, = 0,5 y = 0,5 con 0 x 1 y 0 y 1. Utilice las funciones mesh, surf y


surfl.
 graf3d001.m (script)
 
1 clc; clear;
2
3 % Establecimiento de parmetros
4 A = 1; alfa = 0.5; beta = 0.5;
5

EXPOSITOR: Miguel Ataurima Arellano 116 mataurimaa@uni.pe


6 % Establecimiento del dominio matricial
7 [x,y] = meshgrid(0:0.1:1, 0:0.1:1);
8
9 % Establecimiento del rango matricial
10 z = A*x.^alfa.*y.^beta;
11
12 % Grficas
13 subplot(1,3,1); mesh(x,y,z);
14 title(Grfica de superficie usando mesh);
15 xlabel(eje X); ylabel(eje Y); zlabel(eje Z);
16 set(gca, FontSize, 8)
17 axis equal;
18
19 subplot(1,3,2); surf(x,y,z);
20 title(Grfica de superficie usando surf);
21 xlabel(eje X); ylabel(eje Y); zlabel(eje Z);
22 set(gca, FontSize, 8)
23 axis equal;
24
25 subplot(1,3,3); surfl(x,y,z);
26 title(Grfica de superficie usando surfl);
27 xlabel(eje X); ylabel(eje Y); zlabel(eje Z);
28 set(gca, FontSize, 8)
29 axis equal;
 

Grfica de superficie usando mesh Grfica de superficie usando surf Grfica de superficie usando surfl

1 1 1

0.8 0.8 0.8

0.6 0.6 0.6


eje Z

eje Z

eje Z

0.4 0.4 0.4

0.2 0.2 0.2

0 0 0
1 1 1
0.8 1 0.8 1 0.8 1
0.6 0.8 0.6 0.8 0.6 0.8
0.4 0.6 0.4 0.6 0.4 0.6
0.4 0.4 0.4
0.2 0.2 0.2
0.2 0.2 0.2
eje Y 0 0 eje Y 0 0 eje Y 0 0
eje X eje X eje X

EJEMPLO: Modique el cdigo anterior haciendo uso de algoritmos de iluminacin y renderizacin,


de tal manera que la supercie obtenida tenga una apariencia real. Use solo la funcin surfl.
 graf3d002.m (script)
 
1 clc; clear;
2
3 % Establecimiento de parmetros
4 A = 1; alfa = 0.5; beta = 0.5;
5
6 % Establecimiento del dominio matricial
7 [x,y] = meshgrid(0:0.01:1, 0:0.01:1);
8
9 % Establecimiento del rango matricial
10 z = A*x.^alfa.*y.^beta;
11
12 % Grafica de la superficie con surfl
13 h = surfl(x,y,z);
14

EXPOSITOR: Miguel Ataurima Arellano 117 mataurimaa@uni.pe


15 % Configuracin de color y eliminacin de bordes
16 set(h, FaceColor, [0.3 0.3 1], ...
17 EdgeColor, none);
18
19 % Iluminacin
20 camlight left;
21
22 % Algoritmo de renderizacin
23 lighting phong;
24
25 % Detalles
26 title(Grfica de superficie Cobb-Douglas);
27 xlabel(eje X); ylabel(eje Y); zlabel(eje Z);
28 axis equal;
 

EJEMPLO: Modique el cdigo anterior mostrando 10 lneas de contorno (curvas de nivel) equiespa-
ciadas y con nfasis los niveles z = {0,2; 0,65; 0,7}.
 graf3d003.m (script)
 
1 clc; clear; clf;
2
3 % Establecimiento de parmetros
4 A = 1; alfa = 0.5; beta = 0.5;
5
6 % Establecimiento del dominio matricial
7 [x,y] = meshgrid(0:0.01:1, 0:0.01:1);
8
9 % Establecimiento del rango matricial

EXPOSITOR: Miguel Ataurima Arellano 118 mataurimaa@uni.pe


10 z = A*x.^alfa.*y.^beta;
11
12 % Grafica de la superficie con surfl
13 h = surfl(x,y,z);
14
15 % Congelamos la grfica
16 hold on;
17
18 % Grafica de 10 lineas de contorno equiespaciadas
19 [C1,hc1] = contour3(x,y,z,10);
20
21 % Grafica de las lineas de contorno 0.2, 0.5 y 0.6
22 [C2,hc2] = contour3(x,y,z,[0.2 0.5 0.6], red);
23 set(hc2, LineWidth, 1.5);
24
25 % Descongelamos la grfica
26 hold off;
27
28 % Configuracin de color y eliminacin de bordes
29 set(h, FaceColor, [0.3 0.3 1], ...
30 EdgeColor, none, ...
31 FaceAlpha, 0.6);
32
33 % Iluminacin
34 camlight left;
35
36 % Algoritmo de renderizacin
37 lighting phong;
38
39 % Detalles
40 title(Grfica de superficie Cobb-Douglas);
41 xlabel(eje X); ylabel(eje Y); zlabel(eje Z);
42 axis equal;
 

EXPOSITOR: Miguel Ataurima Arellano 119 mataurimaa@uni.pe


EJEMPLO: Modique el cdigo anterior mostrando 10 lneas de contorno (curvas de nivel) equiespa-
ciadas y con nfasis los niveles z = {0,2; 0,65; 0,7} para los siguientes casos:

Caso I Caso II Caso III


Tipo de Rendimiento

Decreciente ( + < 1) 0.2 0.6 0.6 0.2 0.4 0.4
Constante ( + 1) 0.2 0.8 0.8 0.2 0.5 0.5
Crecientes ( + > 1) 1.6 0.8 0.8 1.6 1.2 1.2

 graf3d003.m (script)
 
1 function grafica3d03rpta
2 clc; clear; clf;
3
4 subplot(3,3,1); grafica(1,0.2,0.6);
5 subplot(3,3,2); grafica(1,0.6,0.2);
6 subplot(3,3,3); grafica(1,0.4,0.4);
7
8 subplot(3,3,4); grafica(1,0.2,0.8);
9 subplot(3,3,5); grafica(1,0.8,0.2);
10 subplot(3,3,6); grafica(1,0.5,0.5);
11
12 subplot(3,3,7); grafica(1,1.6,0.8);
13 subplot(3,3,8); grafica(1,0.8,1.6);
14 subplot(3,3,9); grafica(1,1.2,1.2);
15
16 function grafica(A, alfa, beta)
17 % Establecimiento del dominio matricial
18 [x,y] = meshgrid(0:0.01:1, 0:0.01:1);
19
20 % Establecimiento del rango matricial
21 z = A*x.^alfa.*y.^beta;
22
23 % Grafica de la superficie con surfl
24 h = surfl(x,y,z);
25
26 % Congelamos la grfica
27 hold on;
28
29 % Grafica de 10 lineas de contorno equiespaciadas
30 contour3(x, y, z, 10);
31
32 % Grafica de las lineas de contorno 0.2, 0.5 y 0.6
33 [C2,hc2] = contour3(x, y, z,[0.2 0.5 0.6], red);
34 set(hc2, LineWidth, 1.5);
35
36 % Descongelamos la grfica
37 hold off;
38
39 % Configuracin de color y eliminacin de bordes
40 set(h, FaceColor, [0.3 0.3 1], ...
41 EdgeColor, none, ...
42 FaceAlpha, 0.6);
43
44 % Iluminacin
45 camlight left;
46
47 % Algoritmo de renderizacin

EXPOSITOR: Miguel Ataurima Arellano 120 mataurimaa@uni.pe


48 lighting phong;
49
50 % Detalles
51 strtitulo = [A= num2str(A) , \alpha= num2str(alfa) ...
52 , \beta= num2str(beta)];
53 title(strtitulo);
54 xlabel(eje X); ylabel(eje Y); zlabel(eje Z);
55 axis equal;
56 set(gca, FontSize, 10)
 

EXPOSITOR: Miguel Ataurima Arellano 121 mataurimaa@uni.pe


II) Forma Paramtrica
Son aquellas supercies en R3 que se denen como una aplicacin continua

: D R2 R3
(u, v) (u, v) = (x (u, v) , y (u, v) , z (u, v))

denominndose a la aplicacin como la parametrizacin de la supercie y a las ecuaciones




x = x (u, v)
(u, v) = y = y (u, v) , (u, v) D


z = z (u, v)

como las ecuaciones paramtricas de la supercie.

EJEMPLO: Crear un script que permita realizar la grca de un toroide circular, cuyas ecuaciones
paramtricas vienen dadas por

x = x (u, v) = (a + r cos v) cos u


y = y (u, v) = (a + r cos v) cos u
z = z (u, v) = r sin v

con a = 10, r = 4,5 y adems 0 u 2, 0 v 2.


 graf3d004.m (script)
 
1 clc; clear;
2
3 % Parmetros del Toroide
4 a = 10;
5 r = 4.5;
6
7 % Dominio matricial de los parametros u y v
8 [u,v] = meshgrid(0:pi/64:2*pi);
9
10 % Ecuaciones paramtricas de la superficie
11 x = (a+r*cos(v)).*cos(u);
12 y = (a+r*cos(v)).*sin(u);
13 z = r*sin(v);
14
15 % Grafica de la superficie
16 h = surfl(x,y,z);
17
18 % Establecimiento de propiedades de la superficie
19 set(h, FaceColor, [0.7 0.7 1], ...
20 EdgeColor, none);
21
22 % Iluminacin
23 camlight left;
24
25 % Algoritmo de renderizacin
26 lighting phong;
27
28 % Detalles
29 title(sprintf(Toroide circular (a = %5.2f, r = %5.2f), a, r));
30 xlabel(eje x);
31 ylabel(eje y);
32 zlabel(eje z);
33 axis equal;
 

EXPOSITOR: Miguel Ataurima Arellano 122 mataurimaa@uni.pe


EXPOSITOR: Miguel Ataurima Arellano 123 mataurimaa@uni.pe

S-ar putea să vă placă și