% dynare neil_taylor_attempt1.mod

% THIS CODE PERFORMS THE SIMULATION IN THE TEXT WIHT THE NON-LINEAR MODEL
%THAT IS STARTS FROM A STEADY STATE WHERE G=B=0, AND PAI=NU=1
% AND THEN INCREASE B PERMANENTLY
% Y IS NORMALIZED TO ONE IN THE INITIAL SS SO ALL THE VBLS ARE IN TERMS OF GDP

maxit_=100;


var C Z L V r i W X PSI PHI Y PAI S M MU T;
parameters PAISTAR0 ALPHA SIGMA THETA BETTA Q DELTHA EPSI CHI GSS0 BSS0 LSS0 PHIPAI ETA;
varexo B G PAISTAR ISTAR;

PAISTAR0 = 1;
ALPHA = 0.75;
SIGMA = 1;
THETA = 10;
BETTA = 0.96^0.25;
Q = 1-1/70;
DELTHA = 0.01;
EPSI = 2;
PHIPAI=1.5;
CHI = DELTHA*(BETTA^-1-Q)*(Q^-1-1) / (1-SIGMA*(THETA-1)*(1-DELTHA)/EPSI/THETA);

XSS0=((1-ALPHA*PAISTAR0^(THETA-1))/(1-ALPHA))^(1/(1-THETA));
SSS0=(1-ALPHA)*XSS0^(-THETA/SIGMA)/(1-ALPHA*PAISTAR0^(THETA/SIGMA));

RSS0 = 0.5 * ((BETTA^-1-1+CHI) + ((BETTA^-1-1+CHI)^2+4*CHI)^0.5);
ISTAR0=(1+RSS0)*PAISTAR0-1;
ZSS0 = DELTHA / (1-DELTHA) * (1 + RSS0)/ RSS0;
ETA = SIGMA * (THETA-1)* (1- DELTHA) / THETA * ZSS0^DELTHA;

YSS0=1;
GSS0 = 0;
BSS0 = 0;
LSS0 = SSS0*YSS0^(1/SIGMA);
CSS0 = YSS0;
MSS0 = CSS0 * ZSS0;
MUSS0 = PAISTAR0;
TSS0 = 0;
ISS0 = (1+RSS0) * PAISTAR0 -1;
WSS0 = (ZSS0^(-DELTHA)*ETA*LSS0^(EPSI-1))/(1-DELTHA);
VSS0 = MSS0/PAISTAR0 + BSS0;
PSISS0 = WSS0/SIGMA / (1-ALPHA*PAISTAR0^(THETA/SIGMA)/(1+RSS0));
PHISS0 = 1 /(1-ALPHA*PAISTAR0^(THETA-1)/(1+RSS0));

CHEK= (CSS0-ZSS0^(-DELTHA)*ETA*LSS0^EPSI )* (1-BETTA*(1+RSS0))/EPSI + (1-DELTHA)*(1-BETTA*Q)*(1/Q-1)*VSS0;


BSS1=0.1;



%MODEL

model;
C(+1)-Z(+1)^(-DELTHA)*(ETA/EPSI)*L(+1)^EPSI = BETTA*(1+r)*(C-Z^(-DELTHA)*(ETA/EPSI)*L^EPSI)-(1-DELTHA)*(1-BETTA*Q)*(1/Q-1)*V;
Z = DELTHA/(1-DELTHA)*(1+i)/i;
W = Z^(-DELTHA)*ETA*L^(EPSI-1)/(1-DELTHA);
V = M/PAI(+1)+B;
X^(1-THETA+THETA/SIGMA)*PHI = THETA * PSI / (1-THETA);
PSI = W*Y^(1/SIGMA)/SIGMA +  ALPHA*PAI(+1)^(THETA/SIGMA)* PSI(+1)/(1+r);
PHI = Y + ALPHA*PAI(+1)^(THETA-1)* PHI(+1)/(1+r);
1 = ALPHA * PAI^(THETA-1) + (1-ALPHA) * X^(1-THETA);
L = S*Y^(1/SIGMA);
S= (1-ALPHA)*X^(-THETA/SIGMA) + ALPHA*PAI^(THETA/SIGMA)*S(-1);
G-T =B/(1+r) -B(-1) +M -M(-1)/PAI;
(1+i) /(1+ISTAR)= (PAI/PAISTAR)^PHIPAI;
Y = C + G;
M = Z * C;
MU*M(-1) = M*PAI;
(1+r)*PAI(+1) = 1+i;
end;



initval;
C=CSS0;
Z=ZSS0;
L=LSS0;
V=VSS0;
r=RSS0;
i=ISTAR0+0.3;
W=WSS0;
X=XSS0;
PSI=PSISS0;
PHI=PHISS0;
Y=YSS0+10;
PAI=PAISTAR0;
S=SSS0;
M=MSS0;
MU=MUSS0;
T=TSS0;
B=BSS0;
G=GSS0;
PAISTAR=PAISTAR0;
ISTAR=ISTAR0;
end;

resid(1);

steady;
%check;


C1=-CSS0+ZSS0^(-DELTHA)*(ETA/EPSI)*LSS0^EPSI + BETTA*(1+RSS0)*(CSS0-ZSS0^(-DELTHA)*(ETA/EPSI)*LSS0^EPSI)-(1-DELTHA)*(1-BETTA*Q)*(1/Q-1)*VSS0
C2=-ZSS0+ DELTHA/(1-DELTHA)*(1+ISTAR0)/ISTAR0
C3=-WSS0 + ZSS0^(-DELTHA)*ETA*LSS0^(EPSI-1)/(1-DELTHA)
C4=-VSS0 +MSS0/PAISTAR0+BSS0
C5= -XSS0^(1-THETA+THETA/SIGMA)*PHISS0 + THETA * PSISS0 / (1-THETA);
C6= -PSISS0 + WSS0*YSS0^(1/SIGMA)/SIGMA +  ALPHA*PAISTAR0^(THETA/SIGMA)* PSISS0/(1+RSS0);
C7= -PHISS0+ YSS0 + ALPHA*PAISTAR0^(THETA-1)* PHISS0/(1+RSS0)
C8=-1 + ALPHA * PAISTAR0^(THETA-1) + (1-ALPHA) * XSS0^(1-THETA)
C9= -LSS0 + SSS0*YSS0^(1/SIGMA)
C10=-SSS0+ (1-ALPHA)*XSS0^(-THETA/SIGMA) + ALPHA*PAISTAR0^(THETA/SIGMA)*SSS0
C11=-GSS0+TSS0 +BSS0/(1+RSS0) -BSS0 +MSS0 -MSS0/PAISTAR0
C12=-(1+ISTAR0) /(1+ISTAR0)+ (PAISTAR0/PAISTAR0)^PHIPAI
C13=-YSS0 + CSS0 + GSS0
C14=-MSS0 + ZSS0 * CSS0
C15=MUSS0*MSS0 - MSS0*PAISTAR0
C16=-(1+RSS0)*PAISTAR0 + 1+ISTAR0

