From 0e204673fd53727e591f4a43387feed8afa4f40d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?S=C3=A9bastien=20Villemot?= Date: Thu, 10 Apr 2014 16:01:23 +0200 Subject: [PATCH] Correctly set oo_.deterministic_simulation.status in sim1_purely_{backward,forward}.m. --- matlab/sim1_purely_backward.m | 19 +++++++++++++------ matlab/sim1_purely_forward.m | 19 +++++++++++++------ 2 files changed, 26 insertions(+), 12 deletions(-) diff --git a/matlab/sim1_purely_backward.m b/matlab/sim1_purely_backward.m index 173444a06..288796b7c 100644 --- a/matlab/sim1_purely_backward.m +++ b/matlab/sim1_purely_backward.m @@ -1,7 +1,7 @@ function sim1_purely_backward() % Performs deterministic simulation of a purely backward model -% Copyright (C) 2012-2013 Dynare Team +% Copyright (C) 2012-2014 Dynare Team % % This file is part of Dynare. % @@ -36,15 +36,22 @@ function sim1_purely_backward() model_dynamic = str2func([M_.fname,'_dynamic']); + oo_.deterministic_simulation.status = 1; + for it = 2:options_.periods+1 yb = oo_.endo_simul(:,it-1); % Values at previous period, also used as guess value for current period yb1 = yb(iyb); - tmp = solve1(model_dynamic, [yb1; yb], 1:M_.endo_nbr, nyb+1:nyb+ ... - M_.endo_nbr, 1, options_.gstep, ... - options_.solve_tolf,options_.solve_tolx, ... - options_.simul.maxit,options_.debug,oo_.exo_simul, ... - M_.params, oo_.steady_state, it); + [tmp, check] = solve1(model_dynamic, [yb1; yb], 1:M_.endo_nbr, nyb+1:nyb+ ... + M_.endo_nbr, 1, options_.gstep, ... + options_.solve_tolf,options_.solve_tolx, ... + options_.simul.maxit,options_.debug,oo_.exo_simul, ... + M_.params, oo_.steady_state, it); + + if info + oo_.deterministic_simulation.status = 0; + end + oo_.endo_simul(:,it) = tmp(nyb+1:nyb+M_.endo_nbr); end \ No newline at end of file diff --git a/matlab/sim1_purely_forward.m b/matlab/sim1_purely_forward.m index bd89adf1a..e4ba8a709 100644 --- a/matlab/sim1_purely_forward.m +++ b/matlab/sim1_purely_forward.m @@ -1,7 +1,7 @@ function sim1_purely_forward() % Performs deterministic simulation of a purely forward model -% Copyright (C) 2012 Dynare Team +% Copyright (C) 2012-2014 Dynare Team % % This file is part of Dynare. % @@ -29,15 +29,22 @@ function sim1_purely_forward() model_dynamic = str2func([M_.fname,'_dynamic']); + oo_.deterministic_simulation.status = 1; + for it = options_.periods:-1:1 yf = oo_.endo_simul(:,it+1); % Values at next period, also used as guess value for current period yf1 = yf(iyf); - tmp = solve1(model_dynamic, [yf; yf1], 1:M_.endo_nbr, 1:M_.endo_nbr, ... - 1, options_.gstep, options_.solve_tolf, ... - options_.solve_tolx, options_.simul.maxit, ... - options_.debug,oo_.exo_simul, M_.params, oo_.steady_state, ... - it); + [tmp, info] = solve1(model_dynamic, [yf; yf1], 1:M_.endo_nbr, 1:M_.endo_nbr, ... + 1, options_.gstep, options_.solve_tolf, ... + options_.solve_tolx, options_.simul.maxit, ... + options_.debug,oo_.exo_simul, M_.params, oo_.steady_state, ... + it); + + if info + oo_.deterministic_simulation.status = 0; + end + oo_.endo_simul(:,it) = tmp(1:M_.endo_nbr); end \ No newline at end of file