From 22247c809f0f4b7b441615f8c288668a38087be9 Mon Sep 17 00:00:00 2001 From: michel Date: Tue, 11 Dec 2007 15:41:48 +0000 Subject: [PATCH] v4: correcting bug with deterministic exogenous variables in stochastic models git-svn-id: https://www.dynare.org/svn/dynare/dynare_v4@1485 ac1d8469-bf42-47a9-8791-bf33cf982152 --- matlab/dr1.m | 7 ++----- matlab/forecast.m | 4 ++-- matlab/set_shocks.m | 2 +- 3 files changed, 5 insertions(+), 8 deletions(-) diff --git a/matlab/dr1.m b/matlab/dr1.m index 7c3a2dd1e..c94dac4c9 100644 --- a/matlab/dr1.m +++ b/matlab/dr1.m @@ -169,20 +169,17 @@ else oo_.exo_steady_state = [] ; end - tempex = oo_.exo_simul; it_ = M_.maximum_lag + 1; z = repmat(dr.ys,1,klen); z = z(iyr0) ; if options_.order == 1 - [junk,jacobia_] = feval([M_.fname '_dynamic'],z,tempex); + [junk,jacobia_] = feval([M_.fname '_dynamic'],z,[oo_.exo_simul ... + oo_.exo_det_simul]); elseif options_.order == 2 [junk,jacobia_,hessian] = feval([M_.fname '_dynamic'],z,... [oo_.exo_simul ... oo_.exo_det_simul]); end - - oo_.exo_simul = tempex ; - tempex = []; end if options_.debug diff --git a/matlab/forecast.m b/matlab/forecast.m index 84af3acdf..844f55968 100644 --- a/matlab/forecast.m +++ b/matlab/forecast.m @@ -22,10 +22,10 @@ function forecast(var_list) exo_det_length = size(oo_.exo_det_simul,1); if options_.periods > exo_det_length ex = zeros(options_.periods,M_.exo_nbr); - oo_.ex_det_simul = [ oo_.exo_det_simul;... + oo_.exo_det_simul = [ oo_.exo_det_simul;... repmat(oo_.exo_det_steady_state',... options_.periods- ... - ex_det_length,1)]; + exo_det_length,1)]; %ex_det_length,1),1)]; elseif options_.periods < exo_det_length ex = zeros(exo_det_length,M_.exo_nbr); diff --git a/matlab/set_shocks.m b/matlab/set_shocks.m index dcf9e2626..3b61a8394 100644 --- a/matlab/set_shocks.m +++ b/matlab/set_shocks.m @@ -9,7 +9,7 @@ function set_shocks(flag,k,ivar,values) if k(end) > n1 & flag <= 1 oo_.exo_simul = [oo_.exo_simul; repmat(oo_.exo_steady_state',k(end)-n1,1)]; elseif k(end) > n2 & flag > 1 - oo_.exo_det_simul = [oo_.exo_det_simul; repmat(oo_.exo_steady_state',k(end)-n2,1)]; + oo_.exo_det_simul = [oo_.exo_det_simul; repmat(oo_.exo_det_steady_state',k(end)-n2,1)]; end switch flag