From 8a56ed35ad20294b15e3c30021a514bfb8412c8c Mon Sep 17 00:00:00 2001 From: ratto Date: Fri, 23 Oct 2009 12:01:15 +0000 Subject: [PATCH] 1) Still some errors in dsgelikelihood are present that are not trapped: use try catch when evaluating target function; 2) proposal density should contain the jscale. git-svn-id: https://www.dynare.org/svn/dynare/trunk@3077 ac1d8469-bf42-47a9-8791-bf33cf982152 --- matlab/independent_metropolis_hastings_core.m | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/matlab/independent_metropolis_hastings_core.m b/matlab/independent_metropolis_hastings_core.m index a1ec1c05d..f585268ae 100644 --- a/matlab/independent_metropolis_hastings_core.m +++ b/matlab/independent_metropolis_hastings_core.m @@ -83,13 +83,17 @@ for b = fblck:nblck, while j <= nruns(b) par = feval(ProposalFun, xparam1, d * jscale, n); if all( par(:) > mh_bounds(:,1) ) & all( par(:) < mh_bounds(:,2) ) + try logpost = - feval(TargetFun, par(:),varargin{:}); + catch, + logpost = -inf; + end else logpost = -inf; end r = logpost - ilogpo2(b) + ... - log(feval(ProposalDensity, ix2(b,:), xparam1, d, n)) - ... - log(feval(ProposalDensity, par, xparam1, d, n)); + log(feval(ProposalDensity, ix2(b,:), xparam1, d * jscale, n)) - ... + log(feval(ProposalDensity, par, xparam1, d * jscale, n)); if (logpost > -inf) && (log(rand) < r) x2(irun,:) = par; ix2(b,:) = par;