parent
9be5c31761
commit
1a9aa17c9e
|
@ -194,7 +194,7 @@ while fpar<B
|
||||||
end
|
end
|
||||||
if MAX_nirfs_dsgevar
|
if MAX_nirfs_dsgevar
|
||||||
IRUN = IRUN+1;
|
IRUN = IRUN+1;
|
||||||
[fval,info,cost_flag,junk1,junk2,SteadyState,junk3,PHI,SIGMAu,iXX] = dsge_var_likelihood_1(deep',dataset_,dataset_info,options_,M_,estim_params_,bayestopt_,bounds,oo_);
|
[fval,junk1,junk2,cost_flag,SteadyState,junk3,info,PHI,SIGMAu,iXX] = dsge_var_likelihood(deep',dataset_,dataset_info,options_,M_,estim_params_,bayestopt_,bounds,oo_);
|
||||||
dsge_prior_weight = M_.params(strmatch('dsge_prior_weight',M_.param_names));
|
dsge_prior_weight = M_.params(strmatch('dsge_prior_weight',M_.param_names));
|
||||||
DSGE_PRIOR_WEIGHT = floor(dataset_.nobs*(1+dsge_prior_weight));
|
DSGE_PRIOR_WEIGHT = floor(dataset_.nobs*(1+dsge_prior_weight));
|
||||||
SIGMA_inv_upper_chol = chol(inv(SIGMAu*dataset_.nobs*(dsge_prior_weight+1)));
|
SIGMA_inv_upper_chol = chol(inv(SIGMAu*dataset_.nobs*(dsge_prior_weight+1)));
|
||||||
|
|
|
@ -117,9 +117,9 @@ ana_deriv = DynareOptions.analytic_derivation;
|
||||||
DynareOptions.analytic_derivation=0;
|
DynareOptions.analytic_derivation=0;
|
||||||
if ~isequal(DynareOptions.mode_compute,11) || ...
|
if ~isequal(DynareOptions.mode_compute,11) || ...
|
||||||
(isequal(DynareOptions.mode_compute,11) && isequal(DynareOptions.order,1))
|
(isequal(DynareOptions.mode_compute,11) && isequal(DynareOptions.order,1))
|
||||||
[fval,a,b,c,d] = objective_function(xparam1,DynareDataset,DatasetInfo,DynareOptions,Model,EstimatedParameters,BayesInfo,BoundsInfo,DynareResults);
|
[fval,junk1,junk2,a,b,c,d] = feval(objective_function,xparam1,DynareDataset,DatasetInfo,DynareOptions,Model,EstimatedParameters,BayesInfo,BoundsInfo,DynareResults);
|
||||||
else
|
else
|
||||||
a=0;
|
b=0;
|
||||||
fval = 0;
|
fval = 0;
|
||||||
end
|
end
|
||||||
if DynareOptions.debug
|
if DynareOptions.debug
|
||||||
|
@ -127,10 +127,10 @@ if DynareOptions.debug
|
||||||
end
|
end
|
||||||
DynareOptions.analytic_derivation=ana_deriv;
|
DynareOptions.analytic_derivation=ana_deriv;
|
||||||
|
|
||||||
if strcmp(func2str(objective_function),'non_linear_dsge_likelihood')
|
if DynareOptions.dsge_var || strcmp(func2str(objective_function),'non_linear_dsge_likelihood')
|
||||||
info = d;
|
info = b;
|
||||||
else
|
else
|
||||||
info = a;
|
info = d;
|
||||||
end
|
end
|
||||||
|
|
||||||
% if DynareOptions.mode_compute==5
|
% if DynareOptions.mode_compute==5
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
function [g, badg] = numgrad5_(fcn,f0,x,penalty,epsilon,varargin)
|
function [g, badg] = numgrad5(fcn,f0,x,epsilon,varargin)
|
||||||
% Computes the gradient of the objective function fcn using a five points
|
% Computes the gradient of the objective function fcn using a five points
|
||||||
% formula if possible.
|
% formula if possible.
|
||||||
%
|
%
|
||||||
|
@ -48,13 +48,13 @@ for i=1:n
|
||||||
xiold = x(i);
|
xiold = x(i);
|
||||||
h = step_length_correction(xiold,scale,i)*delta;
|
h = step_length_correction(xiold,scale,i)*delta;
|
||||||
x(i) = xiold+h;
|
x(i) = xiold+h;
|
||||||
[f1,junk1,junk2,cost_flag1] = penalty_objective_function(x, fcn, penalty, varargin{:});
|
[f1,junk1,junk2,cost_flag1] = feval(fcn, x, penalty, varargin{:});
|
||||||
x(i) = xiold-h;
|
x(i) = xiold-h;
|
||||||
[f2,junk1,junk2,cost_flag2] = penalty_objective_function(x, fcn, penalty, varargin{:});
|
[f2,junk1,junk2,cost_flag2] = feval(fcn, x, penalty, varargin{:});
|
||||||
x(i) = xiold+2*h;
|
x(i) = xiold+2*h;
|
||||||
[f3,junk1,junk2,cost_flag3] = penalty_objective_function(x, fcn, penalty, varargin{:});
|
[f3,junk1,junk2,cost_flag3] = feval(fcn, x, penalty, varargin{:});
|
||||||
x(i) = xiold-2*h;
|
x(i) = xiold-2*h;
|
||||||
[f4,junk1,junk2,cost_flag4] = penalty_objective_function(x, fcn, penalty, varargin{:});
|
[f4,junk1,junk2,cost_flag4] = feval(fcn, x, penalty, varargin{:});
|
||||||
if f0<f1 && f1<f3 && f0<f2 && f2<f4
|
if f0<f1 && f1<f3 && f0<f2 && f2<f4
|
||||||
g0 = 0;
|
g0 = 0;
|
||||||
else
|
else
|
||||||
|
|
Loading…
Reference in New Issue