From a39c26060eb48b85dd036cc63231707391fbdf34 Mon Sep 17 00:00:00 2001 From: Marco Ratto <marco.ratto@jrc.ec.europa.eu> Date: Wed, 10 Jun 2015 15:57:30 +0200 Subject: [PATCH] Fix bug for models with leads and legs in exo variables --- matlab/getH.m | 6 +++--- matlab/identification_analysis.m | 4 ++-- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/matlab/getH.m b/matlab/getH.m index afdb8e1698..fdf84c4e9e 100644 --- a/matlab/getH.m +++ b/matlab/getH.m @@ -130,7 +130,7 @@ else dyssdtheta=zeros(length(oo_.dr.ys),M_.param_nbr); d2yssdtheta=zeros(length(oo_.dr.ys),M_.param_nbr,M_.param_nbr); [residual, gg1] = feval([M_.fname,'_static'],oo_.dr.ys, oo_.exo_steady_state', M_.params); -df = feval([M_.fname,'_params_derivs'],yy0, oo_.exo_steady_state', ... +df = feval([M_.fname,'_params_derivs'],yy0, repmat(oo_.exo_steady_state',[M_.maximum_exo_lag+M_.maximum_exo_lead+1]), ... M_.params, oo_.dr.ys, 1, dyssdtheta, d2yssdtheta); dyssdtheta = -gg1\df; if nargout>5, @@ -192,9 +192,9 @@ if nargout>5, % g22 = get_all_2nd_derivs(gpp,m,nelem,M_.param_nbr); % g22 = g22(:,:,indx,indx); else - [df, gp] = feval([M_.fname,'_params_derivs'],yy0, oo_.exo_steady_state', ... + [df, gp] = feval([M_.fname,'_params_derivs'],yy0, repmat(oo_.exo_steady_state',[M_.maximum_exo_lag+M_.maximum_exo_lead+1,1]), ... M_.params, oo_.dr.ys, 1, dyssdtheta,d2yssdtheta); - [residual, g1, g2 ] = feval([M_.fname,'_dynamic'],yy0, oo_.exo_steady_state', ... + [residual, g1, g2 ] = feval([M_.fname,'_dynamic'],yy0, repmat(oo_.exo_steady_state',[M_.maximum_exo_lag+M_.maximum_exo_lead+1,1]), ... M_.params, oo_.dr.ys, 1); [nr, nc]=size(g2); end diff --git a/matlab/identification_analysis.m b/matlab/identification_analysis.m index 6e5e9521c0..7eac2d1999 100644 --- a/matlab/identification_analysis.m +++ b/matlab/identification_analysis.m @@ -75,7 +75,7 @@ if info(1)==0, tau=[oo_.dr.ys(oo_.dr.order_var); vec(A); dyn_vech(B*M_.Sigma_e*B')]; yy0=oo_.dr.ys(I); [residual, g1 ] = feval([M_.fname,'_dynamic'],yy0, ... - oo_.exo_steady_state', M_.params, ... + repmat(oo_.exo_steady_state',[M_.maximum_exo_lag+M_.maximum_exo_lead+1]), M_.params, ... oo_.dr.ys, 1); vg1 = [oo_.dr.ys(oo_.dr.order_var); vec(g1)]; @@ -118,7 +118,7 @@ if info(1)==0, ide_strength_J_prior=NaN(1,nparam); if init, %~isempty(indok), normaliz = abs(params); - if prior_exist, + if prior_exist, if ~isempty(estim_params_.var_exo), normaliz1 = estim_params_.var_exo(:,7)'; % normalize with prior standard deviation else -- GitLab