71 lines
1.8 KiB
Modula-2
71 lines
1.8 KiB
Modula-2
% RBC model with irreversible investment constraint, implemented using MCP tag.
|
|
|
|
var k, y, L, c, A, a, mu, i;
|
|
|
|
varexo epsilon;
|
|
|
|
parameters beta, theta, tau, alpha, psi, delta, rho, Astar;
|
|
|
|
@#include "rbcii-calibration.inc"
|
|
|
|
model(use_dll);
|
|
a = rho*a(-1) + epsilon;
|
|
A = Astar*exp(a);
|
|
y = A*(alpha*k(-1)^psi+(1-alpha)*L^psi)^(1/psi);
|
|
k = y-c + (1-delta)*k(-1);
|
|
(1-theta)/theta*c/(1-L) - (1-alpha)*(y/L)^(1-psi);
|
|
(c^theta*(1-L)^(1-theta))^(1-tau)/c -mu =
|
|
beta*(c(+1)^theta*(1-L(+1))^(1-theta))^(1-tau)/c(+1)
|
|
*(alpha*(y(+1)/k)^(1-psi)+1-delta)+mu(+1)*(1-delta);
|
|
i=y-c;
|
|
[ mcp = 'i > 0' ]
|
|
mu = 0;
|
|
end;
|
|
|
|
|
|
steady_state_model;
|
|
a = epsilon/(1-rho);
|
|
A = Astar*exp(a);
|
|
Output_per_unit_of_Capital=((1/beta-1+delta)/alpha)^(1/(1-psi));
|
|
Consumption_per_unit_of_Capital=Output_per_unit_of_Capital-delta;
|
|
Labour_per_unit_of_Capital=(((Output_per_unit_of_Capital/A)^psi-alpha)
|
|
/(1-alpha))^(1/psi);
|
|
Output_per_unit_of_Labour=Output_per_unit_of_Capital/Labour_per_unit_of_Capital;
|
|
Consumption_per_unit_of_Labour=Consumption_per_unit_of_Capital
|
|
/Labour_per_unit_of_Capital;
|
|
% Compute steady state of the endogenous variables.
|
|
L=1/(1+Consumption_per_unit_of_Labour/((1-alpha)*theta/(1-theta)
|
|
*Output_per_unit_of_Labour^(1-psi)));
|
|
c=Consumption_per_unit_of_Labour*L;
|
|
k=L/Labour_per_unit_of_Capital;
|
|
y=Output_per_unit_of_Capital*k;
|
|
i=delta*k;
|
|
mu=0;
|
|
end;
|
|
|
|
steady;
|
|
|
|
shocks;
|
|
var epsilon;
|
|
stderr 0.10;
|
|
end;
|
|
|
|
extended_path(periods=200,lmmcp);
|
|
|
|
if any(oo_.endo_simul(strmatch('i',M_.endo_names,'exact'),:)<-1e-6)
|
|
error('lmmcp tag did not work.')
|
|
end
|
|
|
|
ds = dseries('rbcii-sim-data.mat');
|
|
if isoctave
|
|
tolerance=5e-5;
|
|
else
|
|
tolerance=1e-6;
|
|
end
|
|
|
|
if any(abs(transpose(oo_.endo_simul(strmatch('i',M_.endo_names,'exact'),:))-ds.Investment.data)>tolerance)
|
|
error('Simulation with lmmcp returns different results.')
|
|
end
|
|
|
|
delete rbcii-sim-data.mat
|