Merge pull request #449 from JohannesPfeifer/linesearch_info

Provide additional debugging info before lnsrch1 crashes with error
time-shift
Sébastien Villemot 2013-07-27 10:09:29 -07:00
commit d392f97485
1 changed files with 18 additions and 0 deletions

View File

@ -50,6 +50,24 @@ x = xold;
nn = length(j2);
summ = sqrt(sum(p.*p)) ;
if ~isfinite(summ)
eq_number_string=[];
for ii=1:length(j1)-1
eq_number_string=[eq_number_string, num2str(j1(ii)), ', '];
end
eq_number_string=[eq_number_string, num2str(j1(end))];
var_string=[];
Model=evalin('base','M_');
for ii=1:length(j2)-1
var_string=[var_string, deblank(Model.endo_names(j2(ii),:)), ', '];
end
var_string=[var_string, deblank(Model.endo_names(j2(end),:))];
fprintf('\nAn infinite element was encountered when trying to solve equation(s) %s \n',eq_number_string)
fprintf('with respect to the variable(s): %s.\n',var_string)
fprintf('The values of the endogenous variables when the problem was encountered were:\n')
for ii=1:length(xold)
fprintf('%-s % 8.4g \n',Model.endo_names(ii,:),xold(ii));
end
skipline();
error(['Some element of Newton direction isn''t finite. Jacobian maybe' ...
' singular or there is a problem with initial values'])
end