From e001d448b8172ac613be8f8a072366227df1c583 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?St=C3=A9phane=20Adjemian=20=28Scylla=29?= Date: Fri, 29 Sep 2017 10:17:33 +0200 Subject: [PATCH] Return an error if Newton fails when simulating a backward model. --- matlab/backward/simul_backward_nonlinear_model_.m | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/matlab/backward/simul_backward_nonlinear_model_.m b/matlab/backward/simul_backward_nonlinear_model_.m index 9a3e66c9d..9839442c3 100644 --- a/matlab/backward/simul_backward_nonlinear_model_.m +++ b/matlab/backward/simul_backward_nonlinear_model_.m @@ -48,7 +48,11 @@ end for it = initialconditions.nobs+(1:samplesize) ylag = DynareOutput.endo_simul(iy1,it-1); % Set lagged variables. y = DynareOutput.endo_simul(:,it-1); % A good guess for the initial conditions is the previous values for the endogenous variables. - DynareOutput.endo_simul(:,it) = dynare_solve(model_dynamic_s, y, DynareOptions, model_dynamic, ylag, DynareOutput.exo_simul, DynareModel.params, DynareOutput.steady_state, it); + [DynareOutput.endo_simul(:,it), info, fvec] = dynare_solve(model_dynamic_s, ... + y, DynareOptions, model_dynamic, ylag, DynareOutput.exo_simul, DynareModel.params, DynareOutput.steady_state, it); + if info + error('Newton failed!') + end end ysim = DynareOutput.endo_simul(1:DynareModel.orig_endo_nbr,:);