% Ramsey Stochastic growth model - Two Sector and No Adjustment Costs
% u(c) = lnc, f(k) = exp(Ai)*ki^alpha, Ai= rho*Ai(-1) + ei, i= s, f 

var	k, ks, kf, c, cs, cf, r, p, y, ys, yf, i_f, i_s, qf, qs, A, As, Af, mu; 
varexo	e, ef, es;

parameters alphaf, alphas, beta, delta, phi, phif, phis, rho, sigma, theta, ach;

alphaf = 0.6;
alphas = 0.3;
beta  = 0.98;
delta = 0; //Note: no depreciation
phi = 0.5;
phif   = 0.9;
phis = 0.5;
sigma = 0.01;//Note: the hihger the uncertainty and the lower the elasticity of intertemporal substitution is
theta = 0.6;
ach = 1;

model;
1/c = beta * 1/c(+1) * ((r + 1 - delta)/(1 + theta * p))^sigma;
cf = (1 - theta)*C;
cs = (theta/p)*C;
yf = exp(A)*exp(Af) * kf(-1)^alphaf;
y = yf + ys;
ys = exp(A)*exp(As) * ks(-1)^alphas;
k =(y - c + (1 - delta) * k(-1));
kf = i_f - (1 - delta) * kf(-1);
ks = i_s - (1 - delta) * ks(-1);
i_f = ((qf - 1)/ach) * kf(-1);
i_s = ((qs - 1)/ach) * ks(-1);
qf = (1/(1 + r)) * (exp(Af(+1)) * alphaf * kf^(alphaf - 1) + (ach/2)*(i_f(+1)/kf)) * qf(+1); 
qs = ((1 + p(+1))/(1 + r))*(exp(As(+1)) * alphas * ks^(alphas - 1) + (ach/2)*(i_s(+1)/ks)) * qs(+1); 
r = exp(Af(+1)) * alphaf * kf^(alphaf - 1);
p = ((1 - alphaf)/(1 - alphas))*(exp(Af)/exp(As))*((kf)^alphaf)*((ks)^(- alphas));
A = phi * A(-1) + e;
Af = phif * Af(-1) + ef;//positive shock in f-sector
As = phis * As(-1) + es;
mu = ys/y;
end;

initval;
k = 0.1; //Note: if wrong values are given there is a message error saying that there is no steady state
kf = 0.04;
ks = 0.06;
c = 1;
cf = 0.4;
cs = 0.6;
y = 1;
yf = 0.4;
ys = 0.6;
i_f = 0;
i_s = 0;
qf = 1;
qs = 1;
p = 1;
r = 0.98;
A = 0;
Af = 0;
As = 0;
e = 0;
ef = 0;
es = 0;
end;

steady;

shocks;
var ef;
stderr 0.05;
var es;
stderr 0;
var e;
stderr 0;
end;

stoch_simul(order=1, periods=200, irf=50) c, cs, cf, p, mu; 

//rplot c k y mu; 
