diff --git a/matlab/dynare_estimation_init.m b/matlab/dynare_estimation_init.m index ff809094a70983fc92aa229f056f24c589492e52..c95e455b3b7680debebf3c6165aaf0a53a8fa42d 100644 --- a/matlab/dynare_estimation_init.m +++ b/matlab/dynare_estimation_init.m @@ -569,6 +569,33 @@ end if info(1) fprintf('\ndynare_estimation_init:: The steady state at the initial parameters cannot be computed.\n') + if options_.debug + M.params=params; + plist = list_of_parameters_calibrated_as_NaN(M); + if ~isempty(plist) + message = ['dynare_estimation_init:: Some of the parameters are NaN (' ]; + for i=1:size(plist,1) + if i<size(plist,1) + message = [message, deblank(plist(i,:)) ', ']; + else + message = [message, deblank(plist(i,:)) ')']; + end + end + end + fprintf('%s\n',message) + plist = list_of_parameters_calibrated_as_Inf(M); + if ~isempty(plist) + message = ['dynare_estimation_init:: Some of the parameters are Inf (' ]; + for i=1:size(plist,1) + if i<size(plist,1) + message = [message, deblank(plist(i,:)) ', ']; + else + message = [message, deblank(plist(i,:)) ')']; + end + end + end + fprintf('%s\n',message) + end print_info(info, 0, options_); end diff --git a/matlab/list_of_parameters_calibrated_as_Inf.m b/matlab/list_of_parameters_calibrated_as_Inf.m new file mode 100644 index 0000000000000000000000000000000000000000..d3776e1a227b0beaa4611dc87635a1e12a684ae6 --- /dev/null +++ b/matlab/list_of_parameters_calibrated_as_Inf.m @@ -0,0 +1,37 @@ +function list = list_of_parameters_calibrated_as_Inf(M_) +% The name of the function is explicit enough... +% +% INPUTS +% M_ [structure] Description of the (simulated or estimated) model. +% +% OUTPUTS +% list [char] n*p array of characters, each line is the name of parameter without value. +% +% ALGORITHM +% none +% +% SPECIAL REQUIREMENTS +% none + +% Copyright (C) 2017 Dynare Team +% +% This file is part of Dynare. +% +% Dynare is free software: you can redistribute it and/or modify +% it under the terms of the GNU General Public License as published by +% the Free Software Foundation, either version 3 of the License, or +% (at your option) any later version. +% +% Dynare is distributed in the hope that it will be useful, +% but WITHOUT ANY WARRANTY; without even the implied warranty of +% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +% GNU General Public License for more details. +% +% You should have received a copy of the GNU General Public License +% along with Dynare. If not, see <http://www.gnu.org/licenses/>. +idx = find(isinf(M_.params)); +nnn = length(idx); +list = []; +if nnn + list = M_.param_names(idx,:); +end \ No newline at end of file