diff --git a/matlab/optimization/dynare_minimize_objective.m b/matlab/optimization/dynare_minimize_objective.m index 452c6304af1a4af5f8d8b533a33efcf1ed62e58d..124a4bf3f87f6a12d07d5cf9c511e21bb609e316 100644 --- a/matlab/optimization/dynare_minimize_objective.m +++ b/matlab/optimization/dynare_minimize_objective.m @@ -78,7 +78,7 @@ switch minimizer_algorithm end % Set default optimization options for fmincon. optim_options = optimset('display','iter', 'LargeScale','off', 'MaxFunEvals',100000, 'TolFun',1e-8, 'TolX',1e-6); - if isfield(options_,'optim_opt') + if ~isempty(options_.optim_opt) eval(['optim_options = optimset(optim_options,' options_.optim_opt ');']); end if options_.analytic_derivation, @@ -96,7 +96,7 @@ switch minimizer_algorithm end % Set default optimization options for fminunc. optim_options = optimset('display','iter','MaxFunEvals',100000,'TolFun',1e-8,'TolX',1e-6); - if isfield(options_,'optim_opt') + if ~isempty(options_.optim_opt) eval(['optim_options = optimset(optim_options,' options_.optim_opt ');']); end if options_.analytic_derivation, @@ -117,7 +117,7 @@ switch minimizer_algorithm numgrad = options_.gradient_method; epsilon = options_.gradient_epsilon; % Change some options. - if isfield(options_,'optim_opt') + if ~isempty(options_.optim_opt) options_list = read_key_value_string(options_.optim_opt); for i=1:rows(options_list) switch options_list{i,1} @@ -156,8 +156,7 @@ switch minimizer_algorithm newratflag = options_.newrat.hess; %default end nit=options_.newrat.maxiter; - - if isfield(options_,'optim_opt') + if ~isempty(options_.optim_opt) options_list = read_key_value_string(options_.optim_opt); for i=1:rows(options_list) switch options_list{i,1} @@ -194,14 +193,14 @@ switch minimizer_algorithm error('Option mode_compute=7 requires the Optimization Toolbox') end optim_options = optimset('display','iter','MaxFunEvals',1000000,'MaxIter',6000,'TolFun',1e-8,'TolX',1e-6); - if isfield(options_,'optim_opt') + if ~isempty(options_.optim_opt) eval(['optim_options = optimset(optim_options,' options_.optim_opt ');']); end [opt_par_values,fval,exitflag] = fminsearch(objective_function,start_par_value,optim_options,varargin{:}); case 8 % Dynare implementation of the simplex algorithm. simplexOptions = options_.simplex; - if isfield(options_,'optim_opt') + if ~isempty(options_.optim_opt) options_list = read_key_value_string(options_.optim_opt); for i=1:rows(options_list) switch options_list{i,1} @@ -228,7 +227,7 @@ switch minimizer_algorithm H0 = 1e-4*ones(n_params,1); cmaesOptions = options_.cmaes; % Modify defaults - if isfield(options_,'optim_opt') + if ~isempty(options_.optim_opt) options_list = read_key_value_string(options_.optim_opt); for i=1:rows(options_list) switch options_list{i,1} @@ -252,7 +251,7 @@ switch minimizer_algorithm fval=BESTEVER.f; case 10 simpsaOptions = options_.simpsa; - if isfield(options_,'optim_opt') + if ~isempty(options_.optim_opt) options_list = read_key_value_string(options_.optim_opt); for i=1:rows(options_list) switch options_list{i,1}