Commit da063b2e authored by Marco Ratto's avatar Marco Ratto

bug fix in optimizer 5 [newrat] for dsge_var_likelihood objective function. Fixes #1494

parent 0565c4aa
...@@ -235,7 +235,7 @@ if ~isequal(options_.mode_compute,0) && ~options_.mh_posterior_mode_estimation ...@@ -235,7 +235,7 @@ if ~isequal(options_.mode_compute,0) && ~options_.mh_posterior_mode_estimation
[junk1, junk2,junk3, junk4, hh] = feval(objective_function,xparam1, ... [junk1, junk2,junk3, junk4, hh] = feval(objective_function,xparam1, ...
dataset_,dataset_info,options_,M_,estim_params_,bayestopt_,bounds,oo_); dataset_,dataset_info,options_,M_,estim_params_,bayestopt_,bounds,oo_);
options_.analytic_derivation = ana_deriv_old; options_.analytic_derivation = ana_deriv_old;
elseif ~isnumeric(options_.mode_compute) || ~(isequal(options_.mode_compute,5) && newratflag~=1) elseif ~isnumeric(options_.mode_compute) || ~(isequal(options_.mode_compute,5) && newratflag~=1 && strcmp(func2str(objective_function),'dsge_likelihood'))
% with flag==0, we force to use the hessian from outer product gradient of optimizer 5 % with flag==0, we force to use the hessian from outer product gradient of optimizer 5
if options_.hessian.use_penalized_objective if options_.hessian.use_penalized_objective
penalized_objective_function = str2func('penalty_objective_function'); penalized_objective_function = str2func('penalty_objective_function');
......
...@@ -154,7 +154,7 @@ while norm(gg)>gtol && check==0 && jit<nit ...@@ -154,7 +154,7 @@ while norm(gg)>gtol && check==0 && jit<nit
if length(find(ig))<nx if length(find(ig))<nx
ggx=ggx*0; ggx=ggx*0;
ggx(find(ig))=gg(find(ig)); ggx(find(ig))=gg(find(ig));
if analytic_derivation if analytic_derivation || ~outer_product_gradient,
hhx=hh; hhx=hh;
else else
hhx = reshape(dum,nx,nx); hhx = reshape(dum,nx,nx);
......
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