function[G] = getGber(zSS,pstar,F); % % create G matrix for observer vector Y = G*X % Burnside, Eichenbaum and Rebelo Model % % Y = [ q c i g k h n1 ]' % global TE nx A=zSS(2); g=zSS(3); k=zSS(4); n1=zSS(5); n1p1=zSS(6); w=zSS(7); kp1=zSS(8); alpha=pstar(1,1); beta=pstar(2,1); delta=pstar(3,1); muA=pstar(4,1); muG=pstar(5,1); rhoA=pstar(6,1); rhoG=pstar(7,1); h1=pstar(8,1); v=pstar(9,1); xi=pstar(10,1); gamma=pstar(11,1); nz = length(zSS); np = length(pstar); e = [ 1 0 0 0 0]; f = [eye(nx); -F ]; % % load in derivative matricies from script file % derscript % % take Taylor approximations % dq_dz = dq_dzp(1:nz,1); qss = log(exp(A)*exp(k)^(1-alpha)*h1*(exp(w)*exp(n1))^alpha); G_q = (qss - dq_dz'*zSS)*e + dq_dz'*f; di_dz = di_dzp(1:nz,1); iss = log(gamma*exp(kp1)-(1-delta)*exp(k)); G_i = (iss - di_dz'*zSS)*e + di_dz'*f; dc_dz = dc_dzp(1:nz,1); css = log(exp(qss) - exp(g) - exp(iss)); G_c = (css - dc_dz'*zSS)*e + dc_dz'*f; G_g = [ 0 0 1 0 0]; G_k = [ 0 0 0 1 0]; dh_dz = dh_dzp(1:nz,1); hss = log(h1*exp(n1)); G_h = (hss - dh_dz'*zSS)*e + dh_dz'*f; G_n1 = [ 0 0 0 0 1]; G_w = -F(2,:); G_apl = G_q - G_h; G_A = [ 0 1 0 0 0 ]; G_solow = G_q - (1-alpha)*G_k - alpha*G_n1; G_solow = G_solow - [ log(h1) 0 0 0 0 ]; G_varhrs = G_h + G_w; G = [ G_q; G_c; G_i; G_g; G_k; G_h; G_n1; G_w; G_apl; G_A; G_solow; G_varhrs];