From be61de1367ac2f263d57f23242bc6d327191d9d5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?St=C3=A9phane=20Adjemian=20=28Charybdis=29?= Date: Thu, 8 Jun 2017 11:52:32 +0200 Subject: [PATCH] Account for negative steady state in case of log-linearization. --- matlab/cli/prior.m | 3 +++ matlab/prior_sampler.m | 6 ++++++ 2 files changed, 9 insertions(+) diff --git a/matlab/cli/prior.m b/matlab/cli/prior.m index b090aba76..703297d73 100644 --- a/matlab/cli/prior.m +++ b/matlab/cli/prior.m @@ -103,6 +103,9 @@ if ismember('simulate', varargin) % Prior simulations (BK). disp(['mjdgges crash share = ' num2str(results.dll.problem_share)]) disp(['Steady state problem share = ' num2str(results.ss.problem_share)]) disp(['Complex steady state share = ' num2str(results.ss.complex_share)]) + if options_.loglinear + disp(['Nonpositive steady state share = ' num2str(results.ss.nonpositive_share)]) + end disp(['Analytical steady state problem share = ' num2str(results.ass.problem_share)]) skipline(2) donesomething = true; diff --git a/matlab/prior_sampler.m b/matlab/prior_sampler.m index b49523634..e846cd021 100644 --- a/matlab/prior_sampler.m +++ b/matlab/prior_sampler.m @@ -49,6 +49,7 @@ count_complex_steadystate = 0; count_nan_steadystate = 0; count_nan_params = 0; count_complex_params = 0; +count_nonpositive_steadystate = 0; count_unknown_problem = 0; NumberOfSimulations = options_.prior_mc; NumberOfParameters = length(bayestopt_.p1); @@ -135,6 +136,8 @@ while iteration < NumberOfSimulations count_complex_params = count_complex_params + 1 ; case 24 count_nan_params = count_nan_params + 1 ; + case 26 + count_nonpositive_steadystate = count_nonpositive_steadystate + 1; otherwise count_unknown_problem = count_unknown_problem + 1 ; end @@ -162,6 +165,7 @@ results.dll.problem_share = count_dll_problem/loop_indx; results.ss.problem_share = count_no_steadystate/loop_indx; results.ss.complex_share = count_complex_steadystate/loop_indx; results.ass.problem_share = count_steadystate_file_exit/loop_indx; +results.ss.nonpositive_share = count_nonpositive_steadystate/loop_indx; results.jacobian.problem_share = count_complex_jacobian/loop_indx; results.garbage_share = ... results.bk.indeterminacy_share + ... @@ -170,6 +174,8 @@ results.garbage_share = ... results.dll.problem_share + ... results.ss.problem_share + ... results.ass.problem_share + ... + results.ss.complex_share + ... + results.ss.nonpositive_share + ... results.jacobian.problem_share + ... count_unknown_problem/loop_indx ; results.prior.mean = sampled_prior_expectation;