Merge pull request #768 from JohannesPfeifer/model_diagnostics
Improvements to model diagnosticstime-shift
commit
dc319a973c
|
@ -169,6 +169,18 @@ for b=1:nb
|
|||
end
|
||||
|
||||
if singularity_problem
|
||||
try
|
||||
options_check=options;
|
||||
options_check.noprint=1;
|
||||
[eigenvalues_] = check(M, options_check, oo);
|
||||
if any((abs(eigenvalues_)-1)<1e-6)
|
||||
fprintf('MODEL_DIAGNOSTICS: The singularity seems to be (partly) caused by the presence of a unit root\n')
|
||||
fprintf('MODEL_DIAGNOSTICS: as the absolute value of one eigenvalue is in the range of +-1e-6 to 1.\n')
|
||||
fprintf('MODEL_DIAGNOSTICS: If the model is actually supposed to feature unit root behavior, such a warning is expected,\n')
|
||||
fprintf('MODEL_DIAGNOSTICS: but you should nevertheless check whether there is an additional singularity problem.\n')
|
||||
end
|
||||
catch
|
||||
end
|
||||
fprintf('MODEL_DIAGNOSTICS: The presence of a singularity problem typically indicates that there is one\n')
|
||||
fprintf('MODEL_DIAGNOSTICS: redundant equation entered in the model block, while another non-redundant equation\n')
|
||||
fprintf('MODEL_DIAGNOSTICS: is missing. The problem often derives from Walras Law.\n')
|
||||
|
@ -192,7 +204,7 @@ if options.order == 1
|
|||
[junk,jacobia_] = feval([M.fname '_dynamic'],z(iyr0),exo_simul, ...
|
||||
M.params, dr.ys, it_);
|
||||
end;
|
||||
elseif options.order == 2
|
||||
elseif options.order >= 2
|
||||
if (options.bytecode)
|
||||
[chck, junk, loc_dr] = bytecode('dynamic','evaluate', z,exo_simul, ...
|
||||
M.params, dr.ys, 1);
|
||||
|
|
Loading…
Reference in New Issue