diff --git a/matlab/dr1.m b/matlab/dr1.m index ddeecda09e9d46d8483861cf1a41ee3f3ce2359a..f92d6fb721c3bfbeb616a00634e14e9ad0bd6465 100644 --- a/matlab/dr1.m +++ b/matlab/dr1.m @@ -368,6 +368,11 @@ else % use original Dynare solver if ~exist('OCTAVE_VERSION') dr.eigval = eig(e,d); end + for i=1:nd + if abs(ss(i,i)) < 1e-6 && abs(tt(i,i)) < 1e-6 + info(7) = 1; + end + end return end @@ -402,7 +407,7 @@ else % use original Dynare solver % derivatives with respect to dynamic state variables % forward variables w1 =w(1:n3,n2:nd); - if ~isfloat(w1) && (condest(w1) > 1e9) + if ~isscalar(w1) && (condest(w1) > 1e9) % condest() fails on a scalar under Octave info(1) = 5; info(2) = condest(w1); diff --git a/matlab/print_info.m b/matlab/print_info.m index 7c1a3bd1672a8eed64fe2146da05ea02c5532525..a509aff50e15c9193574968f0033066b4e4ced8f 100644 --- a/matlab/print_info.m +++ b/matlab/print_info.m @@ -45,7 +45,11 @@ if ~noprint error(['Blanchard Kahn conditions are not satisfied:' ... ' indeterminacy due to rank failure']) case 6 - error('The jacobian matrix evaluated at the steady state is complex') + error(['The Jacobian matrix evaluated at the steady state contains elements ' ... + 'that are not real or are infinite']) + case 7 + error(['One of the eigenvalue is is close to 0/0 (the absolute ' ... + 'value of numerator and denominator is smaller than 1e-6).']) case 19 error('The steadystate file did not compute the steady state (inconsistent deep parameters).') case 20 @@ -89,4 +93,4 @@ if ~noprint otherwise error('This case shouldn''t happen. Contact the authors of Dynare') end -end \ No newline at end of file +end