Professional Documents
Culture Documents
Grcas
4.1.
4.1.1.
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.
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
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.
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
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
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.
Alinea objetos
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.
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:
>> 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);
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
plot
1
2
:
n1
1
2
:
:
n2
x2, y2 , ... )
:
:
:
:
eje y
eje y
1
2
:
n1
plot( x1, y1 ,
eje x
eje x
79
mataurimaa@uni.pe
1 x 2
1
e 2 ( )
2
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
80
mataurimaa@uni.pe
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
81
mataurimaa@uni.pe
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
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.
82
mataurimaa@uni.pe
TIPO LNEA
TIPO MARCADOR
Especificador
Estilo de lnea
Especificador
Tipo de Marcador
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
Verde
Azul
>
Cyan
<
Magenta
'pentagram' o p
Amarillo
'hexagram' o h
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
12
13
14
15
16
17
18
19
20
21
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,
0.35
0.3
Eje Y
0.25
0.2
0.15
0.1
0.05
0
10
12
14
Eje X
3
4
5
% Dominio
t = (0:0.01:10);
6
7
8
% Instante de cambio
tau = 2;
9
10
11
12
13
14
15
16
17
18
19
20
21
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
5
tiempo
85
10
mataurimaa@uni.pe
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
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
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
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)
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
6
7
8
9
10
11
% Semilla pre-establecida
randn(seed, 123);
12
13
14
15
16
17
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
300
350
400
450
500
3
4
5
6
7
8
9
10
11
12
13
% Semilla pre-establecida
randn(seed, 123);
14
15
16
17
18
19
20
21
22
23
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)
30
20
10
0
-10
-20
-30
50
100
150
200
250
tiempo
300
350
400
450
500
plot( x , Y )
:
...
eje y
1
2
:
n1
eje x
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
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
6
7
8
9
10
11
12
13
14
% Graficamos
plot(numFechas,DATOS(:,1:4), LineWidth, 2);
15
16
17
18
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)
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
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)
ejes
(gca)
figura
(gcf)
92
mataurimaa@uni.pe
y adems:
Para obtener todas las propiedades de un objeto:
M = get(objeto)
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);
16
17
18
19
20
21
22
23
24
25
26
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));
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
5
tiempo
95
10
mataurimaa@uni.pe
4.2.5.
Establece los lmites del actual eje basndose en los valores mnimos y mximos de los datos.
axis tight
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
96
mataurimaa@uni.pe
title(axes_handle,...)
Funciona igual que las anteriores aadiendo la posiblidad de especicar pares propiedad/valor.
xlabel(cadena) ylabel(cadena)
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,...)
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)
Muestra una leyenda en los ejes actuales usando las cadenas especicadas que etiquetarrn cada
conjunto de datos.
97
mataurimaa@uni.pe
4.2.6.
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
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
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
29
8
7.5
10
15
20
25
30
u(c(t))
28
5.8
5.7
5.6
10
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
(1 ) kt + it
It
donde it =
1+n
Ht
y = A0 k
c = (1 ) y
Regla de oro
m
ax
c = (1 ) y = A0 f (k) ( + n) k
( + n) k
y
c = (1 ) y
100
mataurimaa@uni.pe
(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);
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
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);
103
mataurimaa@uni.pe
10
11
% Valores centrales
xc = (-4:0.5:4);
12
13
14
15
16
17
18
19
20
21
22
23
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
15
16
17
18
19
20
21
22
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;
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
-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
12
13
14
15
16
17
18
19
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
-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
15
16
17
18
19
20
21
22
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
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
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
6
7
8
% Evaluacin de la funcin
z = x.*exp(-x.^2-y.^2);
9
10
11
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
-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
9
10
11
% Evaluacin de la funcin
z = A*x.^alfa.*y.^beta;
12
13
14
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)
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
16
0.4
0.
3
0.3
0
0
0.1
0.1
0.2
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
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
2
3
4
5
% Talla de la muestra
T = 10;
t = (1:T);
6
7
x = 2.^t;
8
9
subplot(1,2,1);
111
mataurimaa@uni.pe
10
11
12
13
14
15
16
17
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
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
10
0
10
10
tiempo
113
mataurimaa@uni.pe
4.3.
4.3.1.
Malla
y Barra
rea
y objetos
constructivos
Superficie
Direccin
Volumtrico
4.3.2.
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
114
mataurimaa@uni.pe
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
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 =
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
% Establecimiento de parmetros
A = 1; alfa = 0.5; beta = 0.5;
116
mataurimaa@uni.pe
7
8
9
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
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
% Establecimiento de parmetros
A = 1; alfa = 0.5; beta = 0.5;
5
6
7
8
9
10
11
12
13
14
117
mataurimaa@uni.pe
15
16
17
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
8
9
118
mataurimaa@uni.pe
10
z = A*x.^alfa.*y.^beta;
11
12
13
14
15
16
% Congelamos la grfica
hold on;
17
18
19
20
21
22
23
24
25
26
% Descongelamos la grfica
hold off;
27
28
29
30
31
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;
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
19
20
21
22
23
24
25
26
27
% Congelamos la grfica
hold on;
28
29
30
31
32
33
34
35
36
37
% Descongelamos la grfica
hold off;
38
39
40
41
42
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)
121
mataurimaa@uni.pe
R3
(u, v) = (x (u, v) , y (u, v) , z (u, v))
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
6
7
8
9
10
11
12
13
14
15
16
% Grafica de la superficie
h = surfl(x,y,z);
17
18
19
20
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
123
mataurimaa@uni.pe