diff --git a/matlab/dsge_likelihood.m b/matlab/dsge_likelihood.m index 0aaee721588b1c48a90ed4158dc1e58ff66ce908..c6ab3ccd90d67856ec5cb5136615667893d68274 100644 --- a/matlab/dsge_likelihood.m +++ b/matlab/dsge_likelihood.m @@ -427,6 +427,13 @@ switch DynareOptions.lik_init T,R,Q,H1,Z,mmm,pp,rr); diffuse_periods = length(dlik); end + if isnan(dLIK), + fval=dLIK; + info = 45; + exit_flag = 0; + return + end + case 4% Start from the solution of the Riccati equation. if kalman_algo ~= 2 kalman_algo = 1; diff --git a/matlab/kalman/likelihood/univariate_kalman_filter_d.m b/matlab/kalman/likelihood/univariate_kalman_filter_d.m index e983fd820d74c00f5f9b476d41a2c07494d4fd99..7bf16ef5754a3f622d706b3a20ff6905cfd16242 100644 --- a/matlab/kalman/likelihood/univariate_kalman_filter_d.m +++ b/matlab/kalman/likelihood/univariate_kalman_filter_d.m @@ -155,8 +155,8 @@ while newRank && (t<=last) end if (t>last) - error(['univariate_diffuse_kalman_filter:: There isn''t enough information to estimate the initial conditions of the nonstationary variables']); - LIK = NaN; + warning(['univariate_diffuse_kalman_filter:: There isn''t enough information to estimate the initial conditions of the nonstationary variables']); + dLIK = NaN; return end