You are on page 1of 49

Captulo 4

Grcas
4.1.
4.1.1.

Las Grcas en MATLAB


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

4.1.4.

objetos UI

axes

objetos ncleo

objetos de
trazado

Anotaciones
ocultas de ejes

Grupo de
objetos

Anotaciones de
objetos

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

Pan

Barra de colores

Legenda

Rotador Cursor Pincel Data Link Oculta/Muestra herramientas


3D de Datos de Datos
de trazado

Otras herramientas (men View)

Controles de movimiento
de cmara

Selector de ejes
principales

iluminacin

Cmara

Tipo de
Proyeccin

Reset y Stop

Edicin de trazas
edicin de propiedades de
objetos grficos

4.2.
4.2.1.

Fija objetos en una posicin


especfica

Alinea objetos

Las Grcas Bidimensionales


Funciones trazadoras de Grcas Bidimensionales

Las funciones grcas bidimensionales segn el tipo de grca son del tipo lnea, barra, rea, direccional, 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

0
0.7854
1.5708
2.3562
3.1416
3.9270
4.7124
5.4978
6.2832

0
0.7071
1.0000
0.7071
0.0000
-0.7071
-1.0000
-0.7071
-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

4.2.3.

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

3
2

8
7

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 )
:

1
2
:
n1

1
2
:
:
n2

x2, y2 , ... )
:
:

:
:

eje y

eje y

1
2
:
n1

plot( x1, y1 ,

eje x

EXPOSITOR: Miguel Ataurima Arellano

eje x

79

mataurimaa@uni.pe

EJEMPLO: Gracar la funcin de densidad de probabilidad normal


f (x; , ) =

1 x 2
1
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
5
6

% parmetros
mu = 2;
sigma = 1;

7
8
9

% dominio
x = (-1:0.01:5);

10
11
12

% rango
y = exp(-0.5*((x-mu)/sigma).^2)/(sigma*sqrt(2*pi));

13
14
15

%grfica
plot(x,y);



0.4
0.35
0.3
0.25
0.2
0.15
0.1
0.05
0
-1

 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


x (t) =

1 0,8t
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
5

% dominio
t = (0:0.01:10);

6
7
8

% senda
x = 0.5*exp(-0.8*t).*sin(2*pi*t) + 1;

9
10
11
12

% envolventes
x1 = 0.5*exp(-0.8*t) + 1;
x2 = -0.5*exp(-0.8*t) + 1;

13
14
15

% grafica
plot(t,x,t,x1,t,x2);


1.5

0.5

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

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

Senda: x(t)
Envolvente: x 1(t)
Envolvente: x 2(t)

0.5

10

tiempo

 graf2d003.m (script)

1 clc;
2 clear;

3
4
5

% dominio
t = (0:0.01:10);

6
7
8

% senda
x = 0.5*exp(-0.8*t).*sin(2*pi*t) + 1;

9
10
11
12

% envolventes
x1 = 0.5*exp(-0.8*t) + 1;
x2 = -0.5*exp(-0.8*t) + 1;

13
14
15

% grafica
plot(t,x,t,x1,t,x2);

16
17
18
19

% rotulos en los ejes


xlabel(tiempo);
ylabel(x(t), x_1(t), x_2(t));

20
21
22

% ttulo
title(Senda x(t) y sus envolventes);

23
24
25

% leyenda
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

Crculo

Lnea punteada

Asterisco

-.

Lnea punto-guin

Punto

Cruz

TIPO COLOR

'square' o s

Cuadrado

Especificador

Color

'diamond' o d

Diamante

Rojo

Triangulo apuntando hacia arriba

Verde

Tringulo apuntando hacia abajo

Azul

>

Tringulo apuntado a la derecha

Cyan

<

Tringulo apuntando a la izquierda

Magenta

'pentagram' o p

Estella de cinco puntas

Amarillo

'hexagram' o h

Estrella de seis puntas

Negro

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
4
5

% Parmetros
mu
= 5;
sigma = 1;

6
7
8

% Dominio
x = (-5+mu:0.01:9+mu);

9
10
11

% Funcin Anonima fnormal para la funcin de densidad normal con x~N(mu,sigma^2)


f = @(x,mu,sigma) (1/(sigma*sqrt(2*pi)))*exp(-0.5*((x-mu)/sigma).^2);

12
13
14
15
16

% Evaluacin de la funcin normal en cada conjunto de parmetos


y1 = f(x,mu,sigma);
y2 = f(x,mu+1,sigma+0.5);
y3 = f(x,mu+2,sigma+1);

17
18
19
20
21

% Grfica de las normales


plot(x, y1, b, ... % x ~ N(mu, sigma^2 )
x, y2, b--, ... % x ~ N(mu+1, (sigma+0.5)^2 )
x, y3, b:);
% x ~ N(mu+2, (sigma+1)^2 )
EXPOSITOR: Miguel Ataurima Arellano

83

mataurimaa@uni.pe

22
23
24
25
26
27
28
29
30
31

% Detalles
grid on;
title(Grficas de
xlabel(Eje X);
ylabel(Eje Y);
str1 = sprintf(y_1
str2 = sprintf(y_2
str3 = sprintf(y_3
legend( str1, str2,


funciones de densidad normal);

= f(x) : x ~ N( %3.2f, %3.2f^2), mu, sigma);


= f(x) : x ~ N( %3.2f, %3.2f^2), mu+1, sigma+0.5);
= f(x) : x ~ N( %3.2f, %3.2f), mu+2, sigma+1);
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)

Eje Y

0.25
0.2
0.15
0.1
0.05
0

10

12

14

Eje X

EJEMPLO: Crear un script que graque la trayectoria




2,
t=0
2,
t=0
; x2 (t) =
x1 (t) =
t
4t
t
+ 6e + 8, t > 0
2e + 8, t > 0
12e
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
5

% Dominio
t = (0:0.01:10);

6
7
8

% Instante de cambio
tau = 2;

9
10
11
12

% Funcion annima que modela la senda


f = @(t) 2*exp(-t) + 8;
g = @(t) -12*exp(-4*t) + 6*exp(-t) + 8;

13
14
15
16

% Trayectoria inicia en t=tau


x1 = f(t-tau);
x2 = g(t-tau);

17
18
19
20

% Restriccin: para t<=tau se tiene que:


x1(t<=tau) = 2;
x2(t<=tau) = 2;

21

EXPOSITOR: Miguel Ataurima Arellano

84

mataurimaa@uni.pe

22
23
24
25

% Grfica
plot(t, x1, ...
% x1(t)
t, x2, --,... % x2(t)
[0 10], [8 8], :k); % ss

26

29
30

axis([0 10 0 12]);
xlabel(tiempo);
ylabel(x_1(t), x_2(t))
legend(x_1(t), x_2(t));


12
x 1(t)

10

x 2(t)

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

28

6
4
2
0

5
tiempo

10

 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) =
; x2 (t) =
t
t
4t
+ 4, t > 0
2e + 4, t > 0
4e + 10e
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)

27

6
4
2
0

EXPOSITOR: Miguel Ataurima Arellano

5
tiempo

85

10

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 documentacin.
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
5

% Dominio
x = (-pi:pi/10:pi);

6
7
8

% Rango
y = tan(sin(x)) - sin(tan(x));

9
10
11
12
13
14

% Grfica
plot(x,y,--s,LineWidth, 2,...
MarkerEdgeColor, r,...
MarkerFaceColor, w,...
MarkerSize, 8);

15
17
18
19

% Detalles
xlabel(eje X);
ylabel(eje Y);
legend(f(x))



3
f(x)
2
1

eje Y

16

0
-1
-2
-3
-4

-3

-2

-1

0
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
5

% Dominio
t = (0:20);

6
7
8

% Regla de correspondencia de la sucesin


x = 4*(-0.7).^t + 5;

9
11
12
13
14
15
16
17
18
19

% Grfica
plot(t,x, bs--, LineWidth, 2,...
MarkerEdgeColor, none,...
MarkerFaceColor, k,...
MarkerSize, 6);
% Detalles
grid on;
axis([0 20 0 10]);
xlabel(tiempo);
ylabel(x(t));


10
9
8
7
6
x(t)

10

5
4
3
2
1
0

10
tiempo

12

14

16

18

20

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:
traza 2:
..
.
EXPOSITOR: Miguel Ataurima Arellano

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


(i, Y2,i ) para i = 1, 2, ..., n
..
.
87

mataurimaa@uni.pe

 Sintxis:

plot( y )

plot( Y )
1
2
:
n

...

eje y

eje y

1
2
:
n

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
5

% Numero de observaciones (tamao de la muestra)


T = 500;

6
7
8

% Desviaciones estndar de las innovaciones


sigma1 = 1;

9
10
11

% Semilla pre-establecida
randn(seed, 123);

12
13
14

% Ruidos gausianos (vectores de innovacin)


e = sigma1*randn(T,1);

15
16
17

% Caminatas aleatorias (Sumas acumuladas)


X = cumsum(e);

18
19
20

% Grfica
plot(X);

21
22
23
24
25
26

% Detalles
xlabel(tiempo);
ylabel(x_t);
title(Caminata Aleatoria);
legend(x_t~GWN(0,1));

EXPOSITOR: Miguel Ataurima Arellano


88

mataurimaa@uni.pe

Caminata Aleatoria
40
x t~GRW(0,1)
30

xt

20

10

-10

50

100

150

200

250
tiempo

EJEMPLO: Crear un script que graque tres procesos del


gausiana
x1,t RW (0, 1) : x1,t = x1,t1 + 1,t ,
x2,t RW (0, 2) : x2,t = x2,t1 + 2,t ,
x3,t RW (0, 5) : x3,t = x3,t1 + 3,t ,

300

350

400

450

500

tipo caminata aleatoria (random walk)


1,t i.i.d.N (0, 1)
2,t i.i.d.N (0, 2)
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
5

% Numero de observaciones (tamao de la muestra)


T = 500;

6
7
8
9
10

% Desviaciones estndar de las innovaciones


sigma1 = 1;
sigma2 = sqrt(2);
sigma3 = sqrt(5);

11
12
13

% Semilla pre-establecida
randn(seed, 123);

14
15
16
17
18

% Ruidos gausianos (vectores de innovacin)


e1 = sigma1*randn(T,1);
e2 = sigma2*randn(T,1);
e3 = sigma3*randn(T,1);

19
20
21
22
23

% Caminatas aleatorias (Sumas acumuladas)


X(:,1) = cumsum(e1);
X(:,2) = cumsum(e2);
X(:,3) = cumsum(e3);

24
25
26

% Grfica
plot(X);

27
28
29
30
31
32

% Detalles
xlabel(tiempo);
ylabel(x_{1,t}, x_{2,t}, x_{3,t});
title(Caminatas Aleatorias);
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
50

x 1,t~RW(0,1)

40

x 3,t~RW(0,5)

x 2,t~RW(0,2)

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

30
20
10
0
-10
-20
-30

50

100

150

200

250
tiempo

300

350

400

450

500

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 )
:

...

eje y

1
2
:
n1

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
5

% Dominio
x = (-2:0.001:2);

6
7
8
9

% Matriz Rango
% Cada columna contiene una regla de correspondencia
Y = [x x.^2 x.^3];

10
11
12
13

% Eliminamos todos los valores en la matriz Y


% que esten fuera de [-2;2]
Y(abs(Y)>2) = NaN;
EXPOSITOR: Miguel Ataurima Arellano

90

mataurimaa@uni.pe

14
15
16

% Grfica
plot(x, Y);

17
18
19
20
21
22
23
24

% Detalles
grid on;
xlabel(eje X);
ylabel(eje Y);
legend(y=x, y=x^2, y=x^3);
axis equal;
axis([-2 2 -2 2]);


2
1.5
1

eje Y

0.5
0
-0.5
-1

y=x
y=x 2

-1.5
-2
-2

y=x 3

-1.5

-1

-0.5

0
eje X

0.5

1.5

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
5

% Cargamos base de datos de INDICES DE COTIZACIONES BVL


[DATOS, etiquetas] = xlsread(IBVL2012,1,A3:I253);

6
7
8

% Obtenemos informacin de la base datos leida


[nobs, nseries] = size(DATOS);

9
10
11

% Obtenemos la serie numrica de fechas diarias


numFechas = datenum(datevec(etiquetas(2:end,1), dd/mm/yyyy));

12
13
14

% Graficamos
plot(numFechas,DATOS(:,1:4), LineWidth, 2);

15
16
17
18

% Especificamos formato de fecha para el eje horizontal


dateFormat = mmm-yy;
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
21
22
23
24

% Detalles
legend(etiquetas(1,2:5), Orientation, Horizontal, ...
Location, Southoutside);
title(ndices de Cotizaciones BVL);
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

AGRARIO

4.2.4.

Jul-12

BANCOS

Aug-12

Sep-12

DIVERSAS

Oct-12

Nov-12

Dec-12

Jan-13

INDUSTR

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

3
0

K 

K 

K 

trazas
(h)

EXPOSITOR: Miguel Ataurima Arellano

ejes
(gca)

figura
(gcf)

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
5

% Dominio
x = (-pi:pi/10:pi);

6
7
8

% Rango
y = tan(sin(x)) - sin(tan(x));

9
10
11
12
13
14
15
16
17

% Grfica
h = plot(x,y);
set(h, LineStyle, --, ...
Marker, s, ...
LineWidth, 2,...
MarkerEdgeColor, r,...
MarkerFaceColor, w,...
MarkerSize, 8);

18
19
20

% Detalles
xlabel(eje X);
EXPOSITOR: Miguel Ataurima Arellano

94

mataurimaa@uni.pe

21
22

ylabel(eje Y);
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
5

% dominio
t = (0:0.01:10);

6
7
8

% senda
x = 0.5*exp(-0.8*t).*sin(2*pi*t) + 1;

9
10
11
12

% envolventes
x1 = 0.5*exp(-0.8*t) + 1;
x2 = -0.5*exp(-0.8*t) + 1;

13
14
15

% grafica
h = plot(t,x,t,x1,t,x2);

% h es un vector columna de 3 elementos

16
17
18
19

% establecemos propiedades de la 2da. y 3era. traza


set(h(2:3), LineStyle, --, ...
Color, k);

20
21
22

% establecemos la propiedad LineWidth a las tres trazas


set(h, LineWidth, 2);

23
24
25
26

% rotulos en los ejes


xlabel(tiempo);
ylabel(x(t), x_1(t), x_2(t));

27
28
29

% ttulo
title(Senda x(t) y sus envolventes);

30
32

% leyenda
legend(Senda: x(t), Envolvente: x_1(t), Envolvente: x_2(t));


Senda x(t) y sus envolventes


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

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

31

1.1
1
0.9
0.8
0.7
0.6
0.5

EXPOSITOR: Miguel Ataurima Arellano

5
tiempo

95

10

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 numricas 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.

m
filas

n+1

n+2

n-1

n+(n-1)

2n

(m-1)n+(n-1)

mn

(m-1)n+1

(m-1)n+2

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)

m
ax
et u(c(t)) dt
0

s.a.:

k = f (k) c k
k(0) = k0 , k(T ) = kT

c1
, = 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

considerando f (k) = 3k 1/3 , u (c) =

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
5

% Parmetros
A = 0; B = 3.38; theta = 0.5;

6
7
8

% Intervalo de simulacin
t = (0:0.001:50);

9
10
11
12
13
14
15
16
17

% Grfica de k(t)
subplot(3,1,1);
k = A*exp(0.2*t) + B*exp(-0.16*t) + 10*sqrt(10);
plot(t,k, ...
[0 50], [10*sqrt(10) 10*sqrt(10)], :k, LineWidth, 2);
title(CAPITAL PER CPITA);
ylabel(k(t));
set(gca, FontSize, 8);

18
19
20
21
22
23
24
25
26

% Grfica de c(t)
subplot(3,1,2);
c = -0.15*A*exp(0.2*t) + 0.21*B*exp(-0.16*t) + 2.5*sqrt(10);
plot(t, c, ...
[0 50], [2.5*sqrt(10) 2.5*sqrt(10)], :k, LineWidth, 2);
title(CONSUMO PER CPITA);
ylabel(c(t));
set(gca, FontSize, 8);

27

31
32
33
34
35
36

CAPITAL PER CPITA


36
34
k(t)

30

% Grfica de u(c(t))
subplot(3,1,3);
u = c.^(1-theta)/(1-theta);
plot(t, u , ...
[0 50], [min(u) min(u)], :k, LineWidth, 2);
title(UTILIDAD PER CPITA);
ylabel(u(c(t)));
xlabel(tiempo);
set(gca, FontSize, 8);


32
30

10

15

20

25

30

35

40

45

50

35

40

45

50

35

40

45

50

CONSUMO PER CPITA


9
8.5
c(t)

29

8
7.5

10

15

20

25

30

UTILIDAD PER CPITA


5.9

u(c(t))

28

5.8
5.7
5.6

10

EXPOSITOR: Miguel Ataurima Arellano

15

20

25
tiempo

99

30

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
Funcin de produccin per-cpita: yt =

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
Regla de crecimiento del capital per-cpita: kt+1 =

(1 ) kt + it
It
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
m
ax
c = (1 ) y = A0 f (k) ( + n) 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


kt+1 =

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

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

kt+1 =

st = yt
 graf2d016.m (script)

1 clc; clear;

2
3
4
5
6
7

A0 = 1;
n = 0.02;
delta = 0.1;
theta = 0.36;
sigma = 0.2;

8
9
10
11

kss = (sigma*A0/(delta+n))^(1/(1-theta));
yss = A0*kss^theta;
css = (1-sigma)*yss;

12
13
14
15
16
17

fprintf(Estado Estacionario:\n);
fprintf(k
= %8.4f\n, kss);
fprintf(y
= %8.4f\n, yss);
fprintf(sigma = %8.4f\n, sigma);
fprintf(c
= %8.4f\n, css);

18
19
20
21
22

kgold = (theta*A0/(delta+n))^(1/(1-theta));
ygold = A0*kgold^theta;
sigmagold = (delta+n)*kgold/ygold;
cgold = (1-sigmagold)*ygold;

23
24
25
26
27
28

fprintf(\nRegla de Oro:\n);
fprintf(k*
= %8.4f\n, kgold);
fprintf(y*
= %8.4f\n, ygold);
fprintf(sigma* = %8.4f\n, sigmagold);
fprintf(c*
= %8.4f\n, cgold);

29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44

%% % Grafica 1
figure(1);
kmax = (A0/(delta+n))^(1/(1-theta));
domk = linspace(0,kmax,200);
y = A0*domk.^theta;
s = sigma*y;
sgold = sigmagold*y;
plot(domk,y, ...
domk,s, ...
domk,sgold, -r, ...
domk, (delta+n)*domk, -k,...
[kss kss], [0 sigma*yss], :k, ...
[kgold kgold], [0 sigmagold*ygold], :r, ...
[kgold kss], [sigmagold*ygold sigma*yss], .k, ...
[kgold kss], [sigmagold*ygold sigma*yss], .k, LineWidth, 2);
EXPOSITOR: Miguel Ataurima Arellano

101

mataurimaa@uni.pe

45
46
47
48
49

xlabel(k_t);
legend(y_t, \sigmay_t, \sigma^*y_t, ...
(\delta+n)k_t, Location, Best);
xlim([0 kmax]);
set(gca, FontSize, 8);

50
51
52
53
54
55
56

%% % Grafica 2
figure(2);
T = 120;
stderr = 0.2;
k = zeros(T,1);
e = stderr*randn(T,1);

57
58
59
60
61

k(1) = 1.5;
for t=1:T-1
k(t+1) = ((1-delta)*k(t) + sigma*A0*exp(e(t))*k(t)^theta)/(1+n);
end

62
63
64
65

y = A0*exp(e).*k.^theta;
c = (1-sigma)*y;
s = sigma*y;

66
67
68
69
70
71
72
73

domt = (1:T);
subplot(3,1,1);
plot(domt, k, ...
[1 T], [kss kss], :, LineWidth, 2);
legend(k_t, k_{ss}, Location, Best, LineWidth, 2);
xlim([1 T]);
set(gca, FontSize, 8);

74
75
76
77
78
79
80

subplot(3,1,2);
plot(domt, y, ...
[1 T], [yss yss], :, LineWidth, 2);
legend(y_t, y_{ss}, Location, Best);
xlim([1 T]);
set(gca, FontSize, 8);

81
82
83
84
85
86
87
88

subplot(3,1,3);
plot(domt, c, ...
[1 T], [css css], :, LineWidth, 2);
legend(c_t, c_{ss}, Location, Best);
xlim([1 T]);
set(gca, FontSize, 8);
xlabel(tiempo);


EXPOSITOR: Miguel Ataurima Arellano

102

mataurimaa@uni.pe

3.5

kt

yt

kss

2.5

y t
*

yt

( +n)kt

1.5

2.5

10

20

30

40

50

60

70

80

90

100

110

120

80

90

100

110

120

80

90

100

110

120

3
yt

2.5

y ss

2
1.5
1.5

1
0.5

10

20

30

40

50

60

70

2.5
ct

2
0.5

c ss

1.5
1

0
0

10

15

20

0.5

25

10

20

kt

4.2.7.

30

40

50

60
tiempo

70

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 localizacin 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
4
5

% Talla de la muestra
T = 1000;
t = (1:T);

6
7
8

% Semilla
rand(seed,12345);

EXPOSITOR: Miguel Ataurima Arellano

103

mataurimaa@uni.pe

10
11

% Valores centrales
xc = (-4:0.5:4);

12
13
14

% Vector aleatorio y~N(0,1)


x = randn(T,1);

15
16
17
18
19
20
21
22
23

% Grafica del vector y


subplot(2,1,1);
plot(t,x, LineWidth, 2);
title(Secuencia Gaussiana: y_t ~ N(0,1));
xlabel(tiempo);
ylabel(y_t);
grid on;
set(gca, FontSize, 8);

24
25
26
27
28
29
30
31

% Grafica de Histograma
subplot(2,1,2);
hist(x,xc);
title(Histograma de y_t);
xlabel(y_t);
grid on;
set(gca, FontSize, 8);



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

yt

2
0
-2
-4

100

200

300

400

500
tiempo

600

700

800

900

1000

Histograma de y t
200
150
100
50
0
-5

-4

-3

-2

-1

0
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
4

% Talla de la muestra
T = 1000;
EXPOSITOR: Miguel Ataurima Arellano

104

mataurimaa@uni.pe

t = (1:T);

6
7
8

% Semilla
rand(seed,12345);

9
10
11

% Valores centrales
xc = (-4:0.5:4);

12
13
14

% Vector aleatorio y~N(0,1)


x = randn(T,1);

15
16
17
18
19
20
21
22

% Grafica del vector y


subplot(2,1,1);
plot(t,x);
title(Secuencia Gaussiana: y_t ~ N(0,1));
xlabel(tiempo);
ylabel(y_t);
grid on;

23
25
26
27
28
29
30
31
32
33
34
35
36

% Grafica de Histograma
subplot(2,1,2);
hist(x,xc);
h = findobj(gca,Type,patch);
set(h, FaceColor, b, ...
EdgeColor, w);
title(Histograma de y_t);
xlabel(y_t);
grid on;
% Superponemos la Grafica de los puntos centrales
hold on;
plot(xc,zeros(size(xc)), .r);
hold off;


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


4
2

yt

24

0
-2
-4

100

200

300

400

500
tiempo

600

700

800

900

1000

Histograma de y t
250
200
150
100
50
0
-5

-4

-3

EXPOSITOR: Miguel Ataurima Arellano

-2

-1

0
yt

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
4
5

% Talla de la muestra
T = 1000;
t = (1:T);

6
7
8

% Semilla
rand(seed,12345);

9
10
11

% Vector aleatorio y~N(0,1)


x = randn(T,1);

12
13
14
15
16
17
18
19

% Grafica del vector y


subplot(2,1,1);
plot(t,x);
title(Secuencia Gaussiana: y_t ~ N(0,1));
xlabel(tiempo);
ylabel(y_t);
grid on;

20
22
23
24
25
26
27

% Grafica de Histograma
subplot(2,1,2);
nsub = 20;
hist(x, nsub);
title(Histograma de y_t);
xlabel(y_t);
grid on;



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

4
2

yt

21

0
-2
-4

100

200

300

400

500
tiempo

600

700

800

900

1000

Histograma de y t
150

100

50

0
-4

-3

-2

EXPOSITOR: Miguel Ataurima Arellano

-1

0
yt

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
4
5

% Talla de la muestra
T = 1000;
t = (1:T);

6
7
8

% Semilla
rand(seed,12345);

9
10
11

% Valores centrales
xc = (-4:0.5:4);

12
13
14

% Vector aleatorio y~N(0,1)


x = randn(T,1);

15
16
17
18
19
20
21
22

% Grafica del vector y


subplot(2,1,1);
plot(t,x);
title(Secuencia Gaussiana: y_t ~ N(0,1));
xlabel(tiempo);
ylabel(y_t);
grid on;

23
24
25
26
27
28
29
30

% Grafica de Histograma
subplot(2,1,2);
[n, xout] = hist(x,xc);
bar(xout,n);
title(Histograma de y_t);
xlabel(y_t);
grid on;
EXPOSITOR: Miguel Ataurima Arellano

107

mataurimaa@uni.pe

31
33
34
35

% Superponemos la Grafica de los puntos centrales


hold on;
plot(xc,zeros(size(xc)), .r);
hold off;


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


4
2

yt

32

0
-2
-4

100

200

300

400

500
tiempo

600

700

800

900

1000

Histograma de y t
200
150
100
50
0
-5

-4

-3

-2

-1

0
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

z = f (x, y) = xex

y 2

sobre el rango 2 x 2, 2 y 3.
 graf2d021.m (script)

1 clc;
2 clear;

3
4
5

% Obtencin de las matrices dominio


[x,y] = meshgrid(-2:.01:2,-2:.01:3);

6
7
8

% Evaluacin de la funcin
z = x.*exp(-x.^2-y.^2);

9
10
11

% Obtencin del trazo de contorno


[C,h] = contour(x,y,z,-0.4:0.1:0.4);

12

17
18

2
1.5

-0 .1

0.
3

0.1

0.4

0.2

-0.4

.3
-0

-0 .2

0.5

0.1

0.2

16

0
-0.5

-0 .2

0.
3

0.1

-0
.1

-1

.3
-0

-0 .1

15

% Detalles
set(h, ShowText, on, ...
TextStep, get(h,LevelStep)*2, ...
EdgeColor, b);
set(gca, FontSize, 8);
axis([-2 2 -2 2]);


-0
.2

14

-0
.1

13

0.2

0.1

-1.5

-2
-2

-1.5

-1

EXPOSITOR: Miguel Ataurima Arellano

-0.5

109

0.5

1.5

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
5

% parmetros
A = 1; alfa = 0.5; beta = 0.5;

6
7
8

% Obtencin de las matrices dominio


[x,y] = meshgrid(0:.01:1,0:.01:1);

9
10
11

% Evaluacin de la funcin
z = A*x.^alfa.*y.^beta;

12
13
14

% Obtencin del trazo de contorno


[C,h] = contour(x,y,z,0.1:0.1:1);

15
17
18
19
20
21
22
23
24

% Detalles
set(h, ShowText, on, ...
TextStep, get(h,LevelStep)*2, ...
EdgeColor, b, ...
LineWidth, 2);
axis square;
xlabel(cantidad del bien x);
ylabel(cantidad del bien y);
title(Mapa de Curvas de Indiferencia)


Mapa de Curvas de Indiferencia


1
8
0.

0.9

0.9

0.6

0.4

0.2

0.8

0.
7

0.7
0.6

0.8

0.5

0.3

0.1

0.6

0.7

0.5

4
0.

0.2

cantidad del bien y

16

0.4

0.
3

0.3

0
0

0.1

0.1

0.2

EXPOSITOR: Miguel Ataurima Arellano

0.3

0.5

0.4

0.3

0.2

0.1

0.6

0.4

0.1

0.2

0.5

0. 3

0.2
0.1
0.4
0.5
0.6
cantidad del bien x

110

0.7

0.8

0.2
0.1
0.9
1

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 amplia 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 determinar 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
4
5

% Talla de la muestra
T = 10;
t = (1:T);

6
7

x = 2.^t;

8
9

subplot(1,2,1);

EXPOSITOR: Miguel Ataurima Arellano

111

mataurimaa@uni.pe

10
11
12
13
14
15
16
17

plot(t, x, o-, LineWidth, 2, ...


MarkerFaceColor, r, ...
MarkerEdgeColor, none, ...
MarkerSize, 5);
title(Representacin Lineal);
xlabel(tiempo);
grid on;
set(gca, FontSize, 8);

18
19
20
21
22
23
24
25
26
27
28

subplot(1,2,2);
plot(t,x);
semilogy(t, x, o-, LineWidth, 2, ...
MarkerFaceColor, r, ...
MarkerEdgeColor, none, ...
MarkerSize, 5);
title(Representacin Semilogartmica);
xlabel(tiempo);
grid on;
set(gca, FontSize, 8);


Representacin Lineal

Representacin Semilogartmica

1200

10

1000
3

10
800

600

10

400
1

10
200

10

10

tiempo

10

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
4
5

% Talla de la muestra
T = 10;
t = (1:T);

6
7

x = 5 *t.^3;

8
9
10
11
12
13
14
15
16
17

subplot(1,2,1);
plot(t, x, o-, LineWidth, 2, ...
MarkerFaceColor, r, ...
MarkerEdgeColor, none, ...
MarkerSize, 5);
title(Representacin Lineal);
xlabel(tiempo);
grid on;
set(gca, FontSize, 8);

18
19
20
21
22
23
24
25
26
27
28

subplot(1,2,2);
plot(t,x);
loglog(t, x, o-, LineWidth, 2, ...
MarkerFaceColor, r, ...
MarkerEdgeColor, none, ...
MarkerSize, 5);
title(Representacin logartmica);
xlabel(tiempo);
grid on;
set(gca, FontSize, 8);


Representacin Lineal

5000

Representacin logartmica

10

4500
4000

10
3500
3000

2500

10

2000
1500

10
1000
500
0

10

tiempo

EXPOSITOR: Miguel Ataurima Arellano

10
0
10

10
tiempo

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)

15

15

10

10

0
12

4.3.3.

scatter(x,y,z)

10

0
12

8
8

6
6

4
4

2
2

10

8
8

6
6

4
4

2
2

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 independiente.


>> 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
0
-10
-20

4.3.4.

-10

10

20

-20

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
(x, y)

R
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
-3
-3
-3
-3

-2
-2
-2
-2
-2

-1
-1
-1
-1
-1

0
0
0
0
0

1
1
1
1
1

2
2
2
2
2

3
3
3
3
3

-2
-1
0
1
2

-2
-1
0
1
2

-2
-1
0
1
2

-2
-1
0
1
2

-2
-1
0
1
2

-2
-1
0
1
2

-2
-1
0
1
2

y =

Estas matrices sern usadas para


f (x, y) = x2 + y 2

>> z = x.^2 + y.^2;
z =
13
8
5
4
10
5
2
1
9
4
1
0
10
5
2
1
13
8
5
4


evaluarlas funciones. Por ejemplo evaluemos la funcin z =




5
2
1
2
5

8
5
4
5
8

13
10
9
10
13

Gracamos la supercie utilizando las funciones MATLAB de trazado desupercies/mallas tridimensionales. Por ejemplo, usando surf obtendremos


>> surf(x,y,z);



15

10

Grfica de la funcin
5
0
2
1
0
-1
-2 -4

-2

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
4

% Establecimiento de parmetros
A = 1; alfa = 0.5; beta = 0.5;

EXPOSITOR: Miguel Ataurima Arellano

116

mataurimaa@uni.pe

% Establecimiento del dominio matricial


[x,y] = meshgrid(0:0.1:1, 0:0.1:1);

7
8
9

% Establecimiento del rango matricial


z = A*x.^alfa.*y.^beta;

10
11
12

% Grficas
subplot(1,3,1); mesh(x,y,z);
title(Grfica de superficie usando mesh);
xlabel(eje X); ylabel(eje Y); zlabel(eje Z);
set(gca, FontSize, 8)
axis equal;

13
14
15
16
17
18
19

subplot(1,3,2); surf(x,y,z);
title(Grfica de superficie usando surf);
xlabel(eje X); ylabel(eje Y); zlabel(eje Z);
set(gca, FontSize, 8)
axis equal;

20
21
22
23
24
25

subplot(1,3,3); surfl(x,y,z);
title(Grfica de superficie usando surfl);
xlabel(eje X); ylabel(eje Y); zlabel(eje Z);
set(gca, FontSize, 8)
axis equal;


26
27
28
29

Grfica de superficie usando surf

Grfica de superficie usando mesh

Grfica de superficie usando surfl

0.8

0.8

0.8

0.6

0.6

0.6

0.4

0.2

eje Z

eje Z

eje Z

0.4

0.2

0
1

0.2

0
1

0
1
0.8

1
0.6

0.8

1
0.6

0.8

eje X

eje Y

1
0.6

0.8

eje X

0.4

0.2

0.2
0

0.6

0.4

0.4

0.2

0.2
0

0.8

0.6

0.4

0.4

0.2
eje Y

0.8

0.6

0.4

0.4

eje Y

0.2
0

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
4

% Establecimiento de parmetros
A = 1; alfa = 0.5; beta = 0.5;

5
6
7

% Establecimiento del dominio matricial


[x,y] = meshgrid(0:0.01:1, 0:0.01:1);

8
9
10

% Establecimiento del rango matricial


z = A*x.^alfa.*y.^beta;

11
12
13

% Grafica de la superficie con surfl


h = surfl(x,y,z);

14

EXPOSITOR: Miguel Ataurima Arellano

117

mataurimaa@uni.pe

15
16
17

% Configuracin de color y eliminacin de bordes


set(h, FaceColor, [0.3 0.3 1], ...
EdgeColor, none);

18
19
20

% Iluminacin
camlight left;

21
22
23

% Algoritmo de renderizacin
lighting phong;

24
25
26
27
28

% Detalles
title(Grfica de superficie Cobb-Douglas);
xlabel(eje X); ylabel(eje Y); zlabel(eje Z);
axis equal;


EJEMPLO: Modique el cdigo anterior mostrando 10 lneas de contorno (curvas de nivel) equiespaciadas y con nfasis los niveles z = {0,2; 0,65; 0,7}.
 graf3d003.m (script)

1 clc; clear; clf;

2
3
4

% Establecimiento de parmetros
A = 1; alfa = 0.5; beta = 0.5;

5
6
7

% Establecimiento del dominio matricial


[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
13

% Grafica de la superficie con surfl


h = surfl(x,y,z);

14
15
16

% Congelamos la grfica
hold on;

17
18
19

% Grafica de 10 lineas de contorno equiespaciadas


[C1,hc1] = contour3(x,y,z,10);

20
21
22
23

% Grafica de las lineas de contorno 0.2, 0.5 y 0.6


[C2,hc2] = contour3(x,y,z,[0.2 0.5 0.6], red);
set(hc2, LineWidth, 1.5);

24
25
26

% Descongelamos la grfica
hold off;

27
28
29
30
31

% Configuracin de color y eliminacin de bordes


set(h, FaceColor, [0.3 0.3 1], ...
EdgeColor, none, ...
FaceAlpha, 0.6);

32
33
34

% Iluminacin
camlight left;

35
36
37

% Algoritmo de renderizacin
lighting phong;

38
39
40
41
42

% Detalles
title(Grfica de superficie Cobb-Douglas);
xlabel(eje X); ylabel(eje Y); zlabel(eje Z);
axis equal;


EXPOSITOR: Miguel Ataurima Arellano

119

mataurimaa@uni.pe

EJEMPLO: Modique el cdigo anterior mostrando 10 lneas de contorno (curvas de nivel) equiespaciadas y con nfasis los niveles z = {0,2; 0,65; 0,7} para los siguientes casos:
Tipo de Rendimiento
Decreciente ( + < 1)
Constante ( + 1)
Crecientes ( + > 1)

Caso I

0.2 0.6
0.2 0.8
1.6 0.8

Caso II

0.6 0.2
0.8 0.2
0.8 1.6

Caso III

0.4 0.4
0.5 0.5
1.2 1.2

 graf3d003.m (script)

1 function grafica3d03rpta
2 clc; clear; clf;

3
4
5
6

subplot(3,3,1); grafica(1,0.2,0.6);
subplot(3,3,2); grafica(1,0.6,0.2);
subplot(3,3,3); grafica(1,0.4,0.4);

7
8
9
10

subplot(3,3,4); grafica(1,0.2,0.8);
subplot(3,3,5); grafica(1,0.8,0.2);
subplot(3,3,6); grafica(1,0.5,0.5);

11
12
13
14

subplot(3,3,7); grafica(1,1.6,0.8);
subplot(3,3,8); grafica(1,0.8,1.6);
subplot(3,3,9); grafica(1,1.2,1.2);

15
16
17
18

function grafica(A, alfa, beta)


% Establecimiento del dominio matricial
[x,y] = meshgrid(0:0.01:1, 0:0.01:1);

19
20
21

% Establecimiento del rango matricial


z = A*x.^alfa.*y.^beta;

22
23
24

% Grafica de la superficie con surfl


h = surfl(x,y,z);

25
26
27

% Congelamos la grfica
hold on;

28
29
30

% Grafica de 10 lineas de contorno equiespaciadas


contour3(x, y, z, 10);

31
32
33
34

% Grafica de las lineas de contorno 0.2, 0.5 y 0.6


[C2,hc2] = contour3(x, y, z,[0.2 0.5 0.6], red);
set(hc2, LineWidth, 1.5);

35
36
37

% Descongelamos la grfica
hold off;

38
39
40
41
42

% Configuracin de color y eliminacin de bordes


set(h, FaceColor, [0.3 0.3 1], ...
EdgeColor, none, ...
FaceAlpha, 0.6);

43
44
45

% Iluminacin
camlight left;

46
47

% Algoritmo de renderizacin
EXPOSITOR: Miguel Ataurima Arellano

120

mataurimaa@uni.pe

48

lighting phong;

49
50
51
52
53
54
55
56

% Detalles
strtitulo = [A= num2str(A) , \alpha= num2str(alfa) ...
, \beta= num2str(beta)];
title(strtitulo);
xlabel(eje X); ylabel(eje Y); zlabel(eje Z);
axis equal;
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
(u, v)

R3
(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
4
5

% Parmetros del Toroide


a = 10;
r = 4.5;

6
7
8

% Dominio matricial de los parametros u y v


[u,v] = meshgrid(0:pi/64:2*pi);

9
10
11
12
13

% Ecuaciones paramtricas de la superficie


x = (a+r*cos(v)).*cos(u);
y = (a+r*cos(v)).*sin(u);
z = r*sin(v);

14
15
16

% Grafica de la superficie
h = surfl(x,y,z);

17
18
19
20

% Establecimiento de propiedades de la superficie


set(h, FaceColor, [0.7 0.7 1], ...
EdgeColor, none);

21
22
23

% Iluminacin
camlight left;

24
25
26

% Algoritmo de renderizacin
lighting phong;

27
28
29
30
31
32
33

% Detalles
title(sprintf(Toroide circular (a = %5.2f, r = %5.2f), a, r));
xlabel(eje x);
ylabel(eje y);
zlabel(eje z);
axis equal;

EXPOSITOR: Miguel Ataurima Arellano

122


mataurimaa@uni.pe

EXPOSITOR: Miguel Ataurima Arellano

123

mataurimaa@uni.pe

You might also like