1) Added steady state to moments;
2) use of oo_.dr.ys (always updated) in place of oo_.steady_state (not always updated). git-svn-id: https://www.dynare.org/svn/dynare/trunk@3030 ac1d8469-bf42-47a9-8791-bf33cf982152time-shift
parent
54c6dbd708
commit
33f0f84f89
|
@ -1,4 +1,4 @@
|
||||||
function [H, dA, dOm, info] = getH(A, B, M_,oo_,kronflag,indx,indexo)
|
function [H, dA, dOm, Hss, info] = getH(A, B, M_,oo_,kronflag,indx,indexo)
|
||||||
|
|
||||||
% computes derivative of reduced form linear model w.r.t. deep params
|
% computes derivative of reduced form linear model w.r.t. deep params
|
||||||
%
|
%
|
||||||
|
@ -25,18 +25,19 @@ if nargin<5 | isempty(indexo), indexo = [];, end,
|
||||||
|
|
||||||
|
|
||||||
[I,J]=find(M_.lead_lag_incidence');
|
[I,J]=find(M_.lead_lag_incidence');
|
||||||
yy0=oo_.steady_state(I);
|
yy0=oo_.dr.ys(I);
|
||||||
% yy0=[];
|
% yy0=[];
|
||||||
% for j=1:size(M_.lead_lag_incidence,1);
|
% for j=1:size(M_.lead_lag_incidence,1);
|
||||||
% yy0 = [ yy0; oo_.steady_state(find(M_.lead_lag_incidence(j,:)))];
|
% yy0 = [ yy0; oo_.dr.ys(find(M_.lead_lag_incidence(j,:)))];
|
||||||
% end
|
% end
|
||||||
[df, gp] = feval([M_.fname,'_params_derivs'],yy0, oo_.exo_steady_state', M_.params, 1);
|
[df, gp] = feval([M_.fname,'_params_derivs'],yy0, oo_.exo_steady_state', M_.params, 1);
|
||||||
[residual, g1 ] = feval([M_.fname,'_dynamic'],yy0, oo_.exo_steady_state', M_.params,1);
|
[residual, g1 ] = feval([M_.fname,'_dynamic'],yy0, oo_.exo_steady_state', M_.params,1);
|
||||||
|
|
||||||
[residual, g1, g2 ] = feval([M_.fname,'_dynamic'],yy0, oo_.exo_steady_state', M_.params,1);
|
[residual, g1, g2 ] = feval([M_.fname,'_dynamic'],yy0, oo_.exo_steady_state', M_.params,1);
|
||||||
[residual, gg1] = feval([M_.fname,'_static'],oo_.steady_state, oo_.exo_steady_state', M_.params);
|
[residual, gg1] = feval([M_.fname,'_static'],oo_.dr.ys, oo_.exo_steady_state', M_.params);
|
||||||
% df = feval([M_.fname,'_model_derivs'],yy0, oo_.exo_steady_state', M_.params, 1);
|
% df = feval([M_.fname,'_model_derivs'],yy0, oo_.exo_steady_state', M_.params, 1);
|
||||||
dyssdtheta = -gg1\df;
|
dyssdtheta = -gg1\df;
|
||||||
|
Hss = dyssdtheta(oo_.dr.order_var,indx);
|
||||||
dyssdtheta = dyssdtheta(I,:);
|
dyssdtheta = dyssdtheta(I,:);
|
||||||
[nr, nc]=size(g2);
|
[nr, nc]=size(g2);
|
||||||
nc = sqrt(nc);
|
nc = sqrt(nc);
|
||||||
|
@ -249,6 +250,8 @@ if kronflag==1, % kronecker products
|
||||||
y = DmPl*reshape(y,m*m,param_nbr);
|
y = DmPl*reshape(y,m*m,param_nbr);
|
||||||
H = [x;y];
|
H = [x;y];
|
||||||
|
|
||||||
|
H = [ [zeros(M_.endo_nbr,length(indexo)) Hss]; H];
|
||||||
|
|
||||||
elseif kronflag==-1, % perturbation
|
elseif kronflag==-1, % perturbation
|
||||||
fun = 'thet2tau';
|
fun = 'thet2tau';
|
||||||
params0 = M_.params;
|
params0 = M_.params;
|
||||||
|
@ -307,6 +310,7 @@ else % generalized sylvester equation
|
||||||
% y = y(nauxe+1:end,nauxe+1:end);
|
% y = y(nauxe+1:end,nauxe+1:end);
|
||||||
% H(:,j) = [x(:); vech(y)];
|
% H(:,j) = [x(:); vech(y)];
|
||||||
% end
|
% end
|
||||||
|
H = [[zeros(M_.endo_nbr,length(indexo)) Hss]; H];
|
||||||
|
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue