MATLAB para el Análisis Económico Guía de Laboratorio No.4 Miguel Ataurima Arellano 7 de marzo de 2013
I. Grá…cas en dos dimensiones 1. Implemente un programa que permita gra…car la función y = e todo x [ 3;3] con 3;3] con un paso de x = 0 ;01. 01.
x2
Gráfica de función bidimensional
para
1
2
2 f(x) = e-x
0.9
grafica2d01.m (script)
0.8
01. 02. 03. 04. 05. 06. 07.
clc; clear; clear; 0.7
x = (-3:0.01: (-3:0.01:3)’; 3)’; y = exp(-x exp(-x.^2 .^2); );
0.6 Y e j E
plot(x,y); plot(x,y); grid on;
0.5 0.4 0.3 0.2
Ejecución:
0.1
>> grafica2d01
0 -3
-2
-1
0 Eje X
1
2
3
1
0.9
3. Añada el código necesario al script anterior para restringir el area de visualización
0.8
Eje x : [ 4;4]
Eje y : [ 0;5; 1;5]
0.7
0.6
0.5
grafica2d03.m (script)
0.4
01. 02. 03. 04. 05. 06. 07. 08. 09. 10. 11. 12. 13. 14.
0.3
0.2
0.1
0 -3
-2
-1
0
1
2
3
2. Añada el código necesario al script anterior de manera que la gra…ca disponga de:
Título
clc; clear; clear; x = (-3:0.01: (-3:0.01:3)’; 3)’; y = exp(-x exp(-x.^2 .^2); ); plot(x,y) plot(x,y); ; grid on; title(’Gr title(’Grafic afica a de funcion funcion bidimensio bidimensional’ nal’); ); xlabel(’E xlabel(’Eje je X’); ylabel(’E ylabel(’Eje je Y’); legend(’f legend(’f(x) (x) = e^{-x^2}’ e^{-x^2}’); ); axis([ axis([-4 -4 4 -0.5 -0.5 1.5]); 1.5]);
Ejecución:
Rótulos en los ejes
>> grafica2d grafica2d03 03
Leyenda Gráfica de función bidimensional 1.5 grafica2d02.m (función)
01. 02. 03. 04. 05. 06. 07. 08. 09. 10. 11. 12.
f(x) = e-x
2
clc; clear; clear; 1
x = (-3:0.01: (-3:0.01:3)’; 3)’; y = exp(-x exp(-x.^2 .^2); ); plot(x,y); plot(x,y); grid on;
Y e j E
title(’Gra title(’Grafica fica de funcion funcion bidimensio bidimensional’) nal’); ; xlabel(’Ej xlabel(’Eje e X’); ylabel(’Ej ylabel(’Eje e Y’); legend(’f( legend(’f(x) x) = e^{-x^2}’) e^{-x^2}’); ;
0.5
0
-0.5 -0.5 -4
Ejecución:
>> grafica2d02
1
-3
-2
-1
0 Eje X
1
2
3
4
UNIVERSIDAD NACIONAL MAYOR DE SAN MARCOS Facultad de Ciencias Económicas
MATLAB para el Análisis Económico Módulo Básico
4. Implemente un script que permita gra…car en una misma ventana las fun-
Ejecución:
ciones f 1 (x) = e
x2
f 2 (x) = 3e
>> grafica2d05
x2
para todo x [ 3;3] con un paso de x = 0;01. La grá…ca deberá estar rotulada convenientemente y con una restricción de visualización:
2
Gráfica de función bidimensional 1.5
Eje x : [ 4;4]
Eje y : [ 0;5; 1;5]
2 f(x) = e-x
1
grafica2d04.m (script)
01. 02. 03. 04. 05. 06. 07. 08. 09. 10. 11. 12. 13. 14. 15.
clc; clear; Y e j E
x = (-3:0.01:3)’; y1 = exp(-x.^2); y2 = exp(-3*x.^2); plot(x, y1, x, y2); grid on;
0.5
0
title(’Grafica de funcion bidimensional’); xlabel(’Eje X’); ylabel(’Eje Y’); legend(’f_1(x) = e^{-x^2}’, ’f_2(x) = e^{-3x^2}’);
-0.5 -4
-3
-2
-1
0 Eje X
1
2
3
4
axis([-4 4 -0.5 1.5]);
Ejecución:
6. Codi…que un script que gra…que la función de densidad normal
>> grafica2d04 Gráfica de función bidimensional
f x; ;
1.5 f (x) = e-x
2
1
2 f (x) = e-3x
2
2
1 = exp 2
p
! 1 2
x
2
para el juego de parámetros = 0; 2 = 1 y un intervalo (rango) de la variable independiente x en [ 3 : 3] con un paso de x = 0;01.
1
Añada a la grá…ca los detalles que crea conveniente. Y e j E
0.5 grafica2d06.m (script)
0
-0.5 -4
-3
-2
-1
0 Eje X
1
2
3
01. 02. 03. 04. 05. 06. 07. 08. 09. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21.
4
5. Modi…car el script del problema 3 de manera que se añadan la grá…ca los
ejes de las ordenadas y abscisas. grafica2d05.m (script)
01. 02. 03. 04. 05. 06. 07. 08. 09. 10. 11. 12. 13. 14. 15. 16.
clc; clear; x = (-3:0.01:3)’; y = exp(-x.^2); plot(x, y, ’-r’,... [-4 4], [0 0], ’-k’, ... [0 0], [-0.5 1.5], ’-k’); grid on;
% f(x) % eje horizontal % eje vertical
clc; clear; mu = 0; sigma = 1; x = (-3:0.01:3)’; % Calculo de y = f(x) densidad normal con x~N(0,1) y = (1/(sigma*sqrt(2*pi)))*exp(-0.5*((x-mu)/sigma).^2); plot(x, y, ’-b’,... [-4 4], [0 0], ’-k’, ... [0 0], [0 0.5], ’--r’); grid on;
% f(x) % eje horizontal % eje vertical (media)
title(’Grafica de la funcion de densidad normal’); xlabel(’Eje X’); ylabel(’Eje Y’); legend(’y = f(x) : x ~N(0,1)’); axis([-4 4 0 0.5]);
title(’Grafica de funcion bidimensional’); xlabel(’Eje X’); ylabel(’Eje Y’); legend(’f(x) = e^{-x^2}’); axis([-4 4 -0.5 1.5]);
Ejecución:
>> grafica2d06 EXPOSITOR: Miguel Ataurima Arellano
2
[email protected]
UNIVERSIDAD NACIONAL MAYOR DE SAN MARCOS Facultad de Ciencias Económicas
MATLAB para el Análisis Económico Módulo Básico grafica2d08.m (script)
01. 02. 03. 04. 05. 06. 07. 08.
Gráfica de la función de densidad normal 0.5 y = f(x) : x ~ N(0,1) 0.45 0.4 0.35
Y e 0.25 j E
0.2 0.15 0.1 0.05
-3
-2
-1
0 Eje X
1
2
3
4
7. Modi…que el script anterior de manera que se gra…que la función de densidad normal para el juego de parámetros = 5; 2 = 1 .
Añada a la grá…ca los detalles que crea conveniente. grafica2d07.m (script)
01. 02. 03. 04. 05. 06. 07. 08. 09. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21.
mu = 5; sigma = 1; x = (-4+mu:0.01:4+mu)’;
% Funcion Anonima fnormal = f(x) % densidad normal con x~N(mu,sigma\U{b2}) 09. fnormal = @(x,mu,sigma) ... (1/(sigma*sqrt(2*pi)))*exp(-0.5*((x-mu)/sigma).^2); 10. 11. % Varios f(x) empaquetados por columna en una matriz 12. y = [fnormal(x,mu,sigma) ... fnormal(x,mu,sigma+0.5) ... fnormal(x,mu,sigma+2)]; 13. 14. plot(x, y, ... % varios f(x) 15. [-4+mu 4+mu], [0 0], ’-k’, ... % eje horizontal 16. [mu mu], [0 0.5], ’--r’); % eje vertical 17. grid on; 18. 19. title(’Grafica de la funcion de densidad normal’); 20. xlabel(’Eje X’); 21. ylabel(’Eje Y’); 22. legend( [ ’y_1 = f(x) : x ~N(’ num2str(mu) ’,’ ... num2str(sigma) ’^2)’ ] , ... 23. [ ’y_2 = f(x) : x ~N(’ num2str(mu) ’,’ ... num2str(sigma+0.5) ’^2)’ ] , ... 24. [ ’y_3 = f(x) : x ~N(’ num2str(mu) ’,’ ... num2str(sigma+2) ’^2)’ ] );
0.3
0 -4
clc; clear;
clc; clear; mu = 5; sigma = 1; x = (-3+mu:0.01:3+mu)’;
Ejecución:
% Calculo de y = f(x) densidad normal con x~N(0,1) y = (1/(sigma*sqrt(2*pi)))*exp(-0.5*((x-mu)/sigma).^2); plot(x, y, ’-b’,... [-4+mu 4+mu], [0 0], ’-k’, ... [mu mu], [0 0.5], ’--r’); grid on;
>> grafica2d07
% f(x) % eje horizontal % eje vertical
Gráfica de la función de densidad normal 0.5 y = f(x) : x ~ N(5,1²) 1
0.45
y = f(x) : x ~ N(5,1.5²) 2
0.4
title(’Grafica de la funcion de densidad normal’); xlabel(’Eje X’); ylabel(’Eje Y’); legend(’y = f(x) : x ~N(5,1)’);
y = f(x) : x ~ N(5,3²) 3
0.35 0.3 Y e j E
axis([-4+mu 4+mu 0 0.5]);
0.25 0.2
Ejecución:
0.15
>> grafica2d07
0.1 0.05 Gráfica de la función de densidad normal
0.5
0
y = f(x) : x ~ N(5,1)
1
2
3
4
0.45
5 Eje X
6
7
8
9
0.4
9. Implemente un script que gra…que una secuencia
0.35
aleatoria
0.3
t
tipo caminata
t
yt = 50 +
Y e 0.25 j E
X
xt
k=1
0.2
con x t N (0; 1). Utilice una secuencia aleatoria gaussiana con semilla 123.
0.15 0.1
grafica2d09.m (script)
0.05 0
T t=1
fy g
1
2
3
4
5 Eje X
6
7
8
01. 02. 03. 04. 05. 06. 07. 08. 09. 10.
9
8. Modi…que el script anterior de manera que se gra…que la función de densidad
normal mediante el uso de una función anónima para el juego de parámetros con media y desviaciones estándar , + 0 ;5 y + 0 ;7. Añada a la grá…ca los detalles que crea conveniente.Considere = 5 y = 1.
EXPOSITOR: Miguel Ataurima Arellano
3
clc; clear; % Talla de la muestra T = 500; % Intervalo de tiempo t = (1:T)’; % Especificacion de semilla rng(123);
[email protected]
UNIVERSIDAD NACIONAL MAYOR DE SAN MARCOS Facultad de Ciencias Económicas
11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22.
MATLAB para el Análisis Económico Módulo Básico
31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41.
% x~N(0,1) x = randn(T,1); % y : Caminata Aleatoria y = 50 + cumsum(x); % Grafica plot(t,y); xlabel(’t’); ylabel(’y_t’); grid on;
legend(’x_t: GWN’, ’y_t: RW’); grid on; subplot(2,1,2); plot( t(2:T), 100*dpy1, ’b-’, ... t(2:T), 100*dpy2, ’r--’); title(’Variacion Porcentual’); xlabel(’t’); ylabel(’\Delta%y_t’); legend(’\Delta%y_t’, ’log(y_t/y_{t-1})’); grid on;
Ejecución:
>> grafica2d10
Ejecución:
>> grafica2d09
Variables en Niveles 65
x : GWN
80
t
y : RW t
60
60
55
t
y , t x
t
y
50
40 20 0
45
-20 40 0
50
100
150
200
250
300
350
400
450
0
50
100
150
200
500
250 t
300
350
400
450
500
t
Variación Porcentual
∆%y t
10
log(y /y t
10. Modi…que el script anterior de manera se visualice la ventana dividida en
una matriz de 2
t
y %
En la 1era. subgrá…ca se visualice la grá…ca del ruido blanco Gaussiano del ejemplo anterior
-5
Exacta: %y = yy 1 para todo t = 2 ;:::;T t
-10
t
t1
t
yt yt 1
0
∆
En la 2da. subgrá…ca se visualice la grá…ca de las variaciones porcentuales:
Aproximada: %y ln
)
5
1 de tal manera que:
t-1
0
50
100
150
200
250 t
300
350
400
450
500
para todo t = 2;:::;T
11. Modi…que el script anterior de manera que se visualice con lineas puntedas grafica2d10.m (script)
01. 02. 03. 04. 05. 06. 07. 08. 09. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30.
el nivel medio en el que se desarrolla la caminata aleatoria.
clc; clear;
grafica2d11.m (script)
% Talla de la muestra T = 500;
01. 02. 03. 04. 05. 06. 07. 08. 09. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28.
% Intervalo de tiempo t = (1:T)’; % Especificacion de semilla rng(123); % x~N(0,1) x = randn(T,1); % y : Caminata Aleatoria y = 50 + cumsum(x); % Variacion porcentual de y dpy1 = y(2:T)./y(1:T-1)-1; % Aprox. de la Variacion porcentual de y dpy2 = log( y(2:T)./y(1:T-1) ); % Graficas subplot(2,1,1); plot(t, x, ... % GWN: Ruido Blanco Gaussiano t, y); % RW: Caminata Aleatoria title(’Variables en Niveles’); xlabel(’t’); ylabel(’x_t, y_t’);
EXPOSITOR: Miguel Ataurima Arellano
4
clc; clear; % Talla de la muestra T = 500; % Intervalo de tiempo t = (1:T)’; % Especificacion de semilla rng(123); % x~N(0,1) x = randn(T,1); % y : Caminata Aleatoria y = 50 + cumsum(x); % Variacion porcentual de y dpy1 = y(2:T)./y(1:T-1)-1; % Aprox. de la Variacion porcentual de y dpy2 = log( y(2:T)./y(1:T-1) ); % Graficas subplot(2,1,1); plot(t, x, ... % GWN: Ruido Blanco Gaussiano t, y, ... % RW: Caminata Aleatoria [0 T], [50 50], ’:r’);
[email protected]
UNIVERSIDAD NACIONAL MAYOR DE SAN MARCOS Facultad de Ciencias Económicas
29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42.
MATLAB para el Análisis Económico Módulo Básico
title(’Variables en Niveles’); xlabel(’t’); ylabel(’x_t, y_t’); legend(’x_t: GWN’, ’y_t: RW’); grid on;
29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42.
subplot(2,1,2); plot( t(2:T), 100*dpy1, ’b-’, ... t(2:T), 100*dpy2, ’r--’); title(’Variaci\U{f3}n Porcentual’); xlabel(’t’); ylabel(’\Delta%y_t’); legend(’\Delta%y_t’, ’log(y_t/y_{t-1})’); grid on;
title(’Variables en Niveles’); xlabel(’t’); ylabel(’x_t, y_t’); legend(’x_t: GWN’, ’y_t: RW’); grid on; subplot(2,1,2); plot( t(2:T), 100*dpy1, ’b-’, ... t(2:T), 100*dpy2, ’r--’); title(’Variaci\U{f3}n Porcentual’); xlabel(’t’); ylabel(’\Delta%y_t’); legend(’\Delta%y_t’, ’log(y_t/y_{t-1})’); grid on;
Ejecución:
Ejecución:
>> grafica2d12
>> grafica2d11
Variables en Niveles
x : GWN
Variables en Niveles
x : GWN
t
150
t
100
y : RW t
y : RW t
t
y , t x
100
50
t
y , t x
0
-50
50 0 -50
0
50
100
150
200
250 300 t Variación Porcentual
350
400
450
500 ∆%y t
10
log(y /y t
0
50
100
150
200
250 300 t Variación Porcentual
350
400
450
500 ∆%y t
5
log(y /y t
)
t-1
)
t-1
5 t
y % 0
t
y %
0
∆
∆
-5 -10
-5 0
50
100
150
200
250 t
300
350
400
450
500
xt
grafica2d12.m (script)
200
250 t
300
350
400
450
500
Gra…que los ciclos de la serie del PBI real de EEUU.
clc; clear;
Gra…que las variaciones porcentuales del PBI real de EEUU.
% Talla de la muestra T = 500;
grafica2d13.m (script)
% Intervalo de tiempo t = (1:T)’;
01. 02. 03. 04. 05. 06. 07. 08. 09. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23.
% Especificacion de semilla rng(123); % x~N(0,1) x = randn(T,1); % y : Caminata Aleatoria y = 50 + 0.1*t + cumsum(x); % Variacion porcentual de y dpy1 = y(2:T)./y(1:T-1)-1; % Aprox. de la Variacion porcentual de y dpy2 = log( y(2:T)./y(1:T-1) ); % Graficas subplot(2,1,1); plot(t, x, ... % GWN: Ruido Blanco Gaussiano t, y, ... % RW: Caminata Aleatoria [0 T], [50 50+0.1*T], ’:r’);
EXPOSITOR: Miguel Ataurima Arellano
150
Gra…que la serie del PBI real de EEUU en billones de US$ del 2000, con una frecuencia trimestal comprendida en el periodo 1947Q1 al 2005Q3 junto a al PBI tendencial.
k=1
01. 02. 03. 04. 05. 06. 07. 08. 09. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28.
100
Descomponga la serie del PBI de EEUU en ciclo y tendencia mediante el …ltro de Hodrick y Prescott.
t
X
50
13. Crear un script que:
12. Modi…que el script anterior de manera que la caminata aleatoria contenga el término tendencial 0 ;1t
yt = 50 + 0 ;1t +
0
5
clc; clear; % Cargamos datos % PBI de EEUU en billones de US$ del 2000 % Frecuencia: Trimestal % Periodo: 1947Q1 - 2005Q3 load Data_GNP; % Obtenemos fechas (trimestrales) gnpdate = dates; % Obtenemos al serie PBI real realgnp = Dataset.GNPR; % Descompocision Tendencia - Ciclo % mediante el us del Filtro Hodrick-Prescott [Tendencia, Ciclo] = hpfilter(realgnp, 1600); % Grafica figure(1); subplot(3,1,1); plot(gnpdate, realgnp, ... gnpdate, Tendencia, ’r’);
% Serie GNP % Tendencia GNP
[email protected]
UNIVERSIDAD NACIONAL MAYOR DE SAN MARCOS Facultad de Ciencias Económicas
24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45.
MATLAB para el Análisis Económico Módulo Básico
xlabel(’tiempo (Trimestres)’); ylabel(’Billones de US$ del 2000’); legend(’PBI real’, ’PBI potencial (Tendencia)’); grid on;
04. 05. 06. 07. 08. subplot(3,1,2); 09. plot(gnpdate, Ciclo, ... % Ciclo GNP 10. [gnpdate(1) gnpdate(end)], [0 0], ’-k’); 11. xlabel(’tiempo (Trimestres)’); 12. ylabel(’Billones de US$ del 2000’); 13. legend(’Ciclo del PBI real’); 14. grid on; 15. 16. subplot(3,1,3); 17. T = length(dates); 18. dprealgnp = realgnp(5:T)./realgnp(1:T-4) - 1; 19. plot(gnpdate(5:T), 100*dprealgnp, ... % Var. porcentual del GNP 20. [gnpdate(1) gnpdate(end)], [0 0], ’-k’); 21. xlabel(’tiempo (Trimestres)’); 22. ylabel(’Variacion Porcentual Trimestral’); 23. legend(’\Delta_4%PBI real’); 24. grid on; 25. 26. 27. 28. 29. Ejecución:
T = 1000; t = (1:T)’; % Semilla rng(123); % Valores centrales xc = (-4:0.5:4)’; % Vector aleatorio y~N(0,1) x = randn(T,1); % 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; % Grafica de Histograma subplot(2,1,2); hist(x,xc); title(’Histograma de y_t’); xlabel(’y_t’); grid on;
>> grafica2d13 Ejecución:
>> grafica2d14 15000 0 0 0 2 l e d 10000 $ S U e d s 5000 e n o l l i B
0 1940
PBI real Secuencia Gaussiana: y ~ N(0,1)
PBI potencial (Tendencia)
t
4 2 t
y
1950
1960
1970 1980 tiempo (Trimestres)
1990
2000
0 -2
2010
-4
0
100
200
300
400 0 0 0 2 l 200 e d $ S 0 U e d s e -200 n o l l i B
-400 1940
l a 15 r t s e m i r 10 T l a u t n 5 e c r o P n 0 ó i c a i r a V -5
1940
Ciclo del PBI real
400
500 600 tiempo Histograma de y
700
800
900
1000
2
3
4
5
t
200 150 100 50 1950
1960
1970 1980 tiempo (Trimestres)
1990
2000
0 -5
2010
-4
-3
-2
-1
0 y
1
t
∆4%PBI
15. Modi…car el script anterior de manera que el color de las barras sea azul
real
y el de los bordes sea blanco. grafica2d15.m (script)
1950
1960
1970 1980 tiempo (Trimestres)
1990
2000
01. 02. 03. 04. 05. 06. 07. 08. 09. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20.
2010
14. Crear un script que gra…que una secuencia gaussiana
N (0; 1)
yt
y su respectivo histograma con subintervalos centrados entre -4 y 4 con un paso de 0.5. grafica2d14.m (script)
01. clc; clear; 02. 03. % Talla de la muestra EXPOSITOR: Miguel Ataurima Arellano
6
clc; clear; % Talla de la muestra T = 1000; t = (1:T)’; % Semilla rng(123); % Valores centrales xc = (-4:0.5:4)’; % Vector aleatorio y~N(0,1) x = randn(T,1); % Grafica del vector y subplot(2,1,1); plot(t,x); title(’Secuencia Gaussiana: y_t ~N(0,1)’); xlabel(’tiempo’);
[email protected]
UNIVERSIDAD NACIONAL MAYOR DE SAN MARCOS Facultad de Ciencias Económicas
21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36.
MATLAB para el Análisis Económico Módulo Básico
ylabel(’y_t’); grid on;
30. 31. 32. 33. 34.
% 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;
grid on; % Superponemos la Grafica de los puntos centrales hold on; plot(xc,zeros(size(xc)), ’.r’); hold off;
Ejecución:
>> grafica2d16
Secuencia Gaussiana: y t ~ N(0,1) 4 2 t
y
Ejecución:
-2
>> grafica2d15
-4
200
300
400
500 600 tiempo Histograma de y t
-4
-3
-2
-1
700
800
900
1000
2
3
4
5
100
0
50
-2 -4
100
150
2 y
0
200
Secuencia Gaussiana: y t ~ N(0,1) 4
t
0
0 -5 0
100
200
300
400
500 600 tiempo Histograma de y t
700
800
900
1000
0 yt
1
17. Modi…car el script anterior de manera que se gra…que el histograma considerando el intervalo de variación de x dividido en 20 subintervalos.
200 150
grafica2d17.m (script)
100
01. 02. 03. 04. 05. 06. 07. 08. 09. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27.
50 0 -5
-4
-3
-2
-1
0 yt
1
2
3
4
5
16. Modi…car el script anterior de manera que la grá…ca del histograma se
realice mediante barras. grafica2d16.m (script)
01. 02. 03. 04. 05. 06. 07. 08. 09. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29.
clc; clear; % Talla de la muestra T = 1000; t = (1:T)’; % Semilla rng(123); % Valores centrales xc = (-4:0.5:4)’; % Vector aleatorio y~N(0,1) x = randn(T,1); % 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;
clc; clear; % Talla de la muestra T = 1000; t = (1:T)’; % Semilla rng(123); % Vector aleatorio y~N(0,1) x = randn(T,1); % 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; % Grafica de Histograma subplot(2,1,2); nsub = 10; hist(x, nsub); title(’Histograma de y_t’); xlabel(’y_t’); grid on;
% Grafica de Histograma subplot(2,1,2); [n, xout] = hist(x,xc); bar(xout,n); title(’Histograma de y_t’); xlabel(’y_t’);
EXPOSITOR: Miguel Ataurima Arellano
7
[email protected]
UNIVERSIDAD NACIONAL MAYOR DE SAN MARCOS Facultad de Ciencias Económicas
MATLAB para el Análisis Económico Módulo Básico
El boxplot de caballos de potencia agrupado por numero de cilindros.
Ejecución:
>> grafica2d17 grafica2d19.m (script)
01. 02. 03. 04. 05. 06. 07. 08. 09. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23.
Secuencia Gaussiana: y t ~ N(0,1) 4 2 t
y
0 -2 -4
0
100
200
300
400
500 600 tiempo Histograma de y t
700
800
900
1000
300 200 100 0 -4
-3
-2
-1
0 yt
1
2
3
4
clc; clear; load carsmall; subplot(2,2,1); boxplot( MPG, Origin); xlabel(’Pais de Origen’); ylabel(’Numero de Millas’); subplot(2,2,2); boxplot( Acceleration, Model_Year+1900); xlabel(’Anio de Fabricacion’); ylabel(’Aceleracion’); subplot(2,2,3); boxplot( MPG, Cylinders); xlabel(’Numero de Cilindros’); ylabel(’Numero de Millas’); subplot(2,2,4); boxplot( Horsepower, Cylinders); xlabel(’Numero de Cilindros’); ylabel(’Caballos de Potencia’);
18. Obtener la gra…ca boxplot de dos series de tiempo gaussianas. grafica2d18.m (script)
01. 02. 03. 04. 05. 06. 07. 08. 09. 10. 11. 12.
Ejecución:
clc; clear;
>> grafica2d19
T = 100; rng(12345);
25
xA = randn(T,1); xB = randn(T,1); X = [xA xB];
40 s a l l i M 30 e d o r e m 20 ú N
boxplot( X, {’Serie A’, ’Serie B’} ); xlabel(’Series’); ylabel(’Valores’);
20
n ó i c a r e l e 15 c A
10 10 USA
France
Japan
Germany Sweden
Italy
1970
Pais de Origen
Ejecución:
>> grafica2d18
40
200
s a l l i M 30 e d o r e m 20 ú N
a i c n e t o 150 P e d s o l l 100 a b a C
10
2.5
1976 Año de Fabricación
1982
50 4
6 Número de Cilindros
8
4
6 Número de Cilindros
8
2 1.5 1 s e r o l a V
0.5 0 -0.5 -1 -1.5 -2 -2.5 Serie A
Serie B Series
19. Cargar la base de datos carsmall (que trae MATLAB por defecto) y gra…car
El boxplot de numero de millas agrupado por paises. El boxplot de aceleracion agrupado por año de fabricación El boxplot de numero de millas agrupado por numero de cilindros. EXPOSITOR: Miguel Ataurima Arellano
8
[email protected]
UNIVERSIDAD NACIONAL MAYOR DE SAN MARCOS Facultad de Ciencias Económicas
MATLAB para el Análisis Económico Módulo Básico
20. Implementar un script que gra…que la oferta y demanda del mercado
19. 20. 21. 22. 23. 24. 25. 26. 27. 28.
Demanda : q d = a bp Oferta : q s = cp
donde a; b y c son parámetros. Considere el caso a = 25, b = 2;5 y c = 2. Personalice la visualización para valores en el eje horizontal que varíen entre 0 y 25 y valores en el eje vertical que varíen entre 0 y 15. Haga uso de funciones anónimas para la especi…cación de las funciones de oferta y demanda. grafica2d20.m (script)
01. clc; clear; 02. 03. % Precios 04. p = (0:25)’; 05. 06. % Demanda de Mercado 07. a = 25; 08. b = 2.5; 09. q_d = @(p) a - b*p; 10. 11. % Oferta de Mercado 12. c = 2; 13. q_s = @(q) c*p; 14. 15. % Grafica 16. plot(q_d(p), p, ... 17. q_s(p), p); 18. 19. xlabel(’q: Cantidad’); 20. ylabel(’u.m./producto’); 21. 22. axis([0 25 0 15]);
% Grafica plot(q_d(p), p, ... q_s(p), p, ... [qstar qstar], [0 pstar], ’.:k’, ... [0 qstar], [pstar pstar], ’.:k’); xlabel(’q: Cantidad’); ylabel(’u.m./producto’); axis([0 25 0 15]);
Ejecución:
>> grafica2d21
15
10 o t c u d o r p / . m . u
5
0
0
5
10 15 q: Cantidad
20
25
22. Implementar un script que permita:
Ejecución:
1. Modelar una función de costos por medio de una polinomio de grado tres.
>> grafica2d20
c(q ) = cf + x 1 q + x2 q 2 + x 3 q 3
donde x 1 , x 2 , x 3 son parámetros que se de…nen considerando como dados el costo …jo cf , el costo total c 0 y marginal m en el punto de in‡exión q 0 de la curva de costos.
15
A partir de esta función modelar las siguientes funciones: o t c u d o r p / . m . u
10
Costo Variable : cv (q ) = x 1 q + x2 q 2 + x 3 q 3 c (q ) Costo Medio : cme (q ) = Costo Variable Medio
5
Costo Fijo Medio
q cv (q ) : cfme (q ) = q cf : cfme (q ) = q
Costo Marginal : cm (q ) = x 1 + 2 x2 q + 3 x3 q 2 0
0
5
10 15 q: Cantidad
20
25
habiendo primero de…nido a la función de costos totales. 2. Modelar una función inversa lineal de mercado
21. Modi…car el script anterior de manera que se visualice el equilibrio de
mercado. Considere las sentencias de trazado convenientes.
p (q ) = a
grafica2d21.m (script)
y a partir de ella de…nir las funciones
01. clc; clear; 02. 03. % Precios 04. p = (0:25); 05. 06. % Demanda Inversa 07. a = 25; 08. b = 2.5; 09. q_d = @(p) a - b*p; 10. 11. % Oferta 12. c = 2; 13. q_s = @(q) c*p; 14. 15. % Equilibrio 16. pstar = a/(b+c); 17. qstar = a-b*pstar; 18. EXPOSITOR: Miguel Ataurima Arellano
bq
Ingreso Total : it (q ) = p (q ) q
Ingreso Marginal : im (q ) = a 2bq Bene…cio : beneficio (q ) = it (q )
c (q ) cm (q )
Bene…cio Marginal : beneficiom (q ) = im (q ) 3. Efectue los cálculos pertinentes que permitan obtener La cantidad q 1 en la que cm(q 1 ) = cme (q 1 )
La cantidad q c en la que cvme(q c ) = cm (q c )
La cantidad q optima en la que
im(q ) = cm (q )
9
[email protected]
UNIVERSIDAD NACIONAL MAYOR DE SAN MARCOS Facultad de Ciencias Económicas
MATLAB para el Análisis Económico Módulo Básico
Las cantidades q b1 y q b2 extremo de la funcion de bene…cios
074. 075. 076. 077. 078. 079. 080. 081. 082. 083. 084. 085. 086. 087. 088. 089. 090. 091. 092. 093. 094. 095. 096. 097. 098. 099. 100. 101. 102. 103. 104. 105. 106. 107. 108. 109. 110. 111. 112. 113. 114. 115. 116. 117. 118. 119. 120. 121. 122. 123. 124. 125. 126. 127. 128. 129. 130. 131. 132. 133. 134. 135. 136. 137. 138. 139. 140. 141. 142. 143. 144. 145. 146. 147.
4. Gra…que todas las funciones obtenidas, considerando las cantidades obtenidas en el item 3. grafica2d22.m (script)
001. clc; clear; 002. 003. %% PARAMETROS 004. 005. % Parametros de la curva de costos c(q) 006. % c(q) = cf + x(1).q + x(2).q^2 + x(3).q^3 007. cf = 40; 008. m = 1; 009. c0 = 50; 010. q0 = 5; 011. 012. % Parametros de la Demanda inversa de mercado 013. % p = @(q) a-b*q; 014. a = 14; 015. b = 0.4; 016. 017. % Obtencion de los coeficientes de c(q) 018. % x = [ x(1) x(2) x(3) ]’ 019. A = [ q0 q0^2 q0^3; ... 020. 1 2*q0 3*q0^2; ... 021. 0 2 6*q0 ]; 022. B = [c0-cf; m; 0]; 023. x = A\B; 024. 025. %% FUNCIONES 026. 027. % Funciones de Costo 028. c = @(q) cf + x(1)*q + x(2)*q.^2 + x(3)*q.^3; 029. cv = @(q) c(q) - cf; 030. cme = @(q) c(q)./q; 031. cvme = @(q) cv(q)./q; 032. cfme = @(q) cf./q; 033. cm = @(q) x(1) + 2*x(2)*q + 3*x(3)*q.^2; 034. 035. % Demanda inversa de mercado 036. p = @(q) a-b*q; 037. 038. % Funciones de Ingreso 039. it = @(q) p(q).*q; 040. im = @(q) a-2*b*q; 041. 042. % Beneficio Total 043. beneficio = @(q) it(q) - c(q); 044. 045. % Beneficio Marginal 046. beneficiom = @(q) im(q) - cm(q); 047. 048. %% CALCULOS 049. 050. % Calculo de q1 : cm(q1) = cme(q1) 051. r = roots( [2*x(3) x(2) 0 -cf] ); 052. q1 = r(imag(r)==0); 053. 054. % Calculo del punto de cierre: cvme(q)=cm(q) 055. qc = -x(2)/(2*x(3)); % NOTA: x(2)<0, x(3)>0 056. 057. % Dominio de graficas 058. q = (0:0.5:30)’; 059. 060. % Dominio del punto de cierre 061. qcm = (qc:0.5:30)’; 062. 063. % optimo 064. r = roots([3*x(3) 2*(x(2)+b) x(1)-a]); 065. qstar = r(r>0); 066. 067. % extremos beneficio 068. r = roots([x(3) x(2)+b x(1)-a cf]); 069. qb = sort(r(r>0)); 070. 071. %% GRAFICAS 072. subplot(2,3,1); 073. plot(q, c(q), ... EXPOSITOR: Miguel Ataurima Arellano
q, cv(q), ’--b’, ... [0 q(end)], [cf cf], ’--k’, ... [0 q(end)], [0 q(end)*cme(q1)], ’:r’, ... [q0 q0], [0 c0], ’:.k’, ... [q1 q1], [0 c(q1)], ’:.k’); xlabel(’q: Cantidad’); ylabel(’u.m.’); legend(’c(q)’, ’cv(q)’, ’cf’); axis([0 25 0 200]); subplot(2,3,4); plot(q, cm(q), ... q, cme(q), ... q, cvme(q), ... q, cfme(q), ... [qc qc], [0 cm(qc)], [q0 q0], [0 cm(q0)], [q1 q1], [0 cm(q1)], xlabel(’q: Cantidad’); ylabel(’u.m./producto’); legend(’cm(q)’, ’cme(q)’, axis([0 25 0 15]);
’:.b’, ... ’:.k’, ... ’:.k’);
’cvme(q)’, ’cfme(q)’);
subplot(2,3,2); plot(q, c(q), ... q, it(q), ... [qstar qstar], [0 c(qstar)], ’.:k’, ... [qstar qstar], [c(qstar) it(qstar)], ’.-k’, ... [qstar qstar], [0 c(qstar)], ’.:k’, ... [qb(1) qb(1)], [0 c(qb(1))], ’.:k’, ... [qb(2) qb(2)], [0 c(qb(2))], ’.:k’, ... [qc qc qc], [0 c(qc) it(qc)], ’.:b’); xlabel(’q: Cantidad’); ylabel(’u.m.’); legend(’c(q)’, ’it(q)’, ’\pi(q)^*’); axis([0 25 0 200]); subplot(2,3,5); plot(qcm, cm(qcm), ... q, cme(q), ... q, p(q), ’r’, ... q, im(q) , ’:r’, ... [qc qc], [0 cm(qc)], ’:.b’, ... [qstar qstar], [0 cm(qstar)], ’.:k’, ... [qstar qstar], [0 p(qstar)], ’.:k’, ... [0 qstar], [cm(qstar) cm(qstar)], ’.:k’, ... [0 qstar], [p(qstar) p(qstar)], ’.:k’ ); xlabel(’q: Cantidad’); ylabel(’u.m./producto’); axis([0 25 0 15]); legend(’cm(q)’, ’cme(q)’, ’p(q)’, ’im(q)’); subplot(2,3,3); plot(q, beneficio(q), ... [qstar qstar], [0 beneficio(qstar)], ’.-k’, ... [qc qc], [0 beneficio(qc)], ’.:b’, ... [qb(1) qb(2)], [0 0], ’.k’, ... [0 q(end)], [0 0], ’-k’); xlabel(’q: Cantidad’); ylabel(’u.m.’); legend(’\pi(q)’, ’\pi(q)^*’); axis([0 25 -50 150]); subplot(2,3,6); plot(q, beneficiom(q), ... [qc qc], [0 beneficiom(qc)], ’.:b’, ... qstar, 0, ’.k’, ... [qb(1) qb(1)], [0 beneficiom(qb(1))], ’.:k’, ... [qb(2) qb(2)], [0 beneficiom(qb(2))], ’.:k’, ... [0 q(end)], [0 0], ’-k’); xlabel(’q: Cantidad’); ylabel(’u.m./producto’); legend(’\pi’’(q)’); axis([0 25 -20 20]);
Ejecución:
>> grafica2d22
10
[email protected]