diff --git a/matlab/DsgeLikelihood.m b/matlab/DsgeLikelihood.m index 40f4e223b..3e08aaa90 100644 --- a/matlab/DsgeLikelihood.m +++ b/matlab/DsgeLikelihood.m @@ -21,7 +21,7 @@ function [fval,cost_flag,ys,trend_coeff,info] = DsgeLikelihood(xparam1,gend,data % SPECIAL REQUIREMENTS % -% Copyright (C) 2004-2009 Dynare Team +% Copyright (C) 2004-2009, 2010 Dynare Team % % This file is part of Dynare. % @@ -314,7 +314,11 @@ if (kalman_algo==4)% Univariate Diffuse Kalman Filter no_more_missing_observations); end end -if imag(LIK) ~= 0 +if isnan(LIK) + cost_flag = 0; + return +end +if imag(LIK)~=0 likelihood = bayestopt_.penalty; else likelihood = LIK; diff --git a/matlab/kalman/likelihood/diffuse_kalman_filter.m b/matlab/kalman/likelihood/diffuse_kalman_filter.m index e6464cbe3..16623486e 100644 --- a/matlab/kalman/likelihood/diffuse_kalman_filter.m +++ b/matlab/kalman/likelihood/diffuse_kalman_filter.m @@ -23,7 +23,7 @@ function [LIK, lik] = diffuse_kalman_filter(T,R,Q,H,Pinf,Pstar,Y,start,Z,kalman_ % Models", S.J. Koopman and J. Durbin (2003, in Journal of Time Series % Analysis, vol. 24(1), pp. 85-98). -% Copyright (C) 2004-2008 Dynare Team +% Copyright (C) 2004-2008, 2010 Dynare Team % % This file is part of Dynare. % @@ -95,7 +95,9 @@ while rank(Pinf,kalman_tol) && (t