Commit 8282e76d authored by Johannes Pfeifer's avatar Johannes Pfeifer
Browse files

Add more explicit information in case of singularity problem

parent 07137e80
......@@ -646,7 +646,7 @@ if ~options_.mh_posterior_mode_estimation && options_.cova_compute
disp('POSTERIOR KERNEL OPTIMIZATION PROBLEM!')
disp(' (minus) the hessian matrix at the "mode" is not positive definite!')
disp('=> posterior variance of the estimated parameters are not positive.')
disp('You should try to change the initial values of the parameters using')
disp('You should try to change the initial values of the parameters using')
disp('the estimated_params_init block, or use another optimization routine.')
params_at_bound=find(xparam1==ub | xparam1==lb);
if ~isempty(params_at_bound)
......
......@@ -85,6 +85,7 @@ end
%
% singular Jacobian of static model
%
singularity_problem = 0;
if ~isfield(M,'block_structure_stat')
nb = 1;
else
......@@ -107,6 +108,7 @@ for b=1:nb
end
rank_jacob = rank(jacob);
if rank_jacob < size(jacob,1)
singularity_problem = 1;
disp(['model_diagnostic: the Jacobian of the static model is ' ...
'singular'])
disp(['there is ' num2str(endo_nbr-rank_jacob) ...
......@@ -143,4 +145,9 @@ for b=1:nb
end
end
end
if singularity_problem
fprint('The presence of a singularity problem typically indicates that there is one\n')
fprint('redundant equation entered in the model block, while another non-redundant equation\n')
fprint('is missing. The problem often derives from Walras Law.\n')
end
......@@ -36,7 +36,8 @@ if ~noprint
case 2
error(['The generalized Schur (QZ) decomposition failed. ' ...
'For more information, see the documentation for Lapack function dgges: info=' ...
int2str(info(2)) ', n=' int2str(info(3))])
int2str(info(2)) ', n=' int2str(info(3)) ...
'. You can also run model_diagnostics to get more information on what may cause this problem.'])
case 3
error(['Blanchard Kahn conditions are not satisfied: no stable' ...
' equilibrium'])
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment