% Basic RCK model

close all;
clc;
format short;

% To save output file
 delete('RCK_NL_Unexpectd_Change.txt');
 diary on;
 diary('RCK_NL_Unexpectd_Change.txt');



% Number of variables: 5
    var  k, y, c, w, r; 

% Exogenous variables that will be shocked.
% In this case, the TFP, denoted by A
  varexo A;


% List of parameters
    parameters beta, sigma, delta, alpha, n;
	beta = 0.95;
	sigma = 1.5;
	delta = 0.02;
	alpha = 0.25;
	n = 0.0;

% Steady state for the initial value of A, i.e. 1
kss = ((alpha*1)/((1/beta) - (1 - delta)))^(1/(1 - alpha));
yss = 1*(kss^(alpha));
css = yss - kss*(n + delta);
wss = (1 - alpha)*yss;
rss = alpha*1*(kss^(alpha - 1)) - delta;

	

% Model description	
model;  

	% Number of equations: 5
	% i) Resource constraint
	% ii) Euler equation
	% iii) Production function
	% iv) Wage rate equation
	% v) Interest rate equation

	% i) Resource constraint
	
		y = k*(1 + n) - (1 - delta)*k(-1) + c;
	
	% ii) Euler equation
	    # aux = 1 - delta + alpha*A*(k^(alpha - 1));
		# u_1 = 1/c^(sigma);
		# u_2 = 1/c(+1)^(sigma);
		u_1 = beta*u_2*aux;
			
	% iii) Production function
	
		y = A*(k(-1)^(alpha));
	
	% iv) Wage rate equation
	
		w = (1 - alpha)*A*(k(-1)^(alpha));
	
	% v) Interest rate equation
	
		r = alpha*A*(k(-1))^(alpha - 1) - delta;

end;


% Initial values (5 + 1)
initval; 
	A = 1.0; % *******
 	k = kss;
	y = yss;
	c = css;
	w = wss;
	r = rss;
end;
steady (solve_algo = 0); 
check;   






%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%% endval   
%%%%%%%%%%%%%%%

% Permanent Shocks, from t = 10
	initval; 
		k = 0.1; % ******* 
		A = 1;
		y = A*(k^(alpha));
		c = y - k*(n + delta);
		w = (1 - alpha)*y;
		r = alpha*A*(k^(alpha - 1)) - delta;
	end;
 	endval; % 5 + 1
		A = 1.5;
 		k = ((alpha*A)/((1/beta) -  (1 - delta)))^(1/(1 - alpha));
		y = A*(k^(alpha));
		c = y - k*(n + delta);
		w = (1 - alpha)*y;
		r = alpha*A*(k^(alpha - 1)) - delta; 
 	end;
	
%steady (solve_algo = 0);
%check; 
 
   



%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%% shocks
%%%%%%%%%%%%%%%


% Permanent Shock, from t = 10 onwards
 	 
  
 	 shocks;
          var A;
          periods 1:10;
          values 1.0;
 	 end;
 	
 
 
   
 


simul (periods = 90);


% Saving mat files and series
% Mat files can be retrieved with "load" command

    dynatype (RCK_NL_OUTPUT_UC);
	XY_UC =  [oo_.exo_simul, oo_.endo_simul'];
	save RCK_NL_Results_UC  XY_UC;


% Graph
vec_time = 0:1:91;


	load RCK_NL_Results_UC;
	vec_k = XY_UC(:,2);
	vec_y = XY_UC(:,3);
	vec_c = XY_UC(:,4);
	vec_w = XY_UC(:,5);
	vec_r = XY_UC(:,6);
	figure;
	z = plot(vec_time, vec_k, vec_time, vec_c);
	set(z,'LineWidth',2.5);
	z = legend('k_{t}', 'c_{t}', 'Location', 'Best');
	set(z, 'FontSize', 12);
	vline(10, 'r');
	axis tight;
	xlabel('t', 'FontSize', 12);
	ylabel('k, c');
	title('Permanent TFP Shock at t = 10 ', 'FontSize', 12);
	% print -depsc2 -tiff RCK_NL_Permanent_10.eps;






diary off;


