From 20c00d5a02657f606c722f94fa3213f3aa27b2b8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?S=C3=A9bastien=20Villemot?= Date: Fri, 29 Jan 2021 10:46:19 +0100 Subject: [PATCH] dynare_minimize_objective: fix analytic derivatives in mode_compute=13 for Octave and MATLAB < R2016a --- matlab/optimization/dynare_minimize_objective.m | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/matlab/optimization/dynare_minimize_objective.m b/matlab/optimization/dynare_minimize_objective.m index 18e19c7a3..5069f1806 100644 --- a/matlab/optimization/dynare_minimize_objective.m +++ b/matlab/optimization/dynare_minimize_objective.m @@ -552,7 +552,11 @@ switch minimizer_algorithm optim_options.Display='off'; end if options_.analytic_derivation || (isfield(options_,'mom') && options_.mom.analytic_jacobian==1) - optim_options.SpecifyObjectiveGradient=true; + if isoctave || matlab_ver_less_than('9.0') % Option names changed in MATLAB R2016a + optim_options.Jacobian = 'on'; + else + optim_options.SpecifyObjectiveGradient = true; + end func = @(x) analytic_gradient_wrapper(x,objective_function,varargin{:}); [opt_par_values,Resnorm,fval,exitflag,OUTPUT,LAMBDA,JACOB] = ... lsqnonlin(func,start_par_value,bounds(:,1),bounds(:,2),optim_options);