Clean up evaluate_planner_objective.m
parent
c66ee8941a
commit
9d90a204f7
|
@ -11,7 +11,7 @@ function planner_objective_value = evaluate_planner_objective(M,options,oo)
|
|||
% SPECIAL REQUIREMENTS
|
||||
% none
|
||||
|
||||
% Copyright (C) 2007-2012 Dynare Team
|
||||
% Copyright (C) 2007-2015 Dynare Team
|
||||
%
|
||||
% This file is part of Dynare.
|
||||
%
|
||||
|
@ -29,19 +29,10 @@ function planner_objective_value = evaluate_planner_objective(M,options,oo)
|
|||
% along with Dynare. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
dr = oo.dr;
|
||||
endo_nbr = M.endo_nbr;
|
||||
exo_nbr = M.exo_nbr;
|
||||
nstatic = M.nstatic;
|
||||
nspred = M.nspred;
|
||||
lead_lag_incidence = M.lead_lag_incidence;
|
||||
beta = get_optimal_policy_discount_factor(M.params,M.param_names);
|
||||
if options.ramsey_policy
|
||||
i_org = (1:M.orig_endo_nbr)';
|
||||
else
|
||||
i_org = (1:M.endo_nbr)';
|
||||
end
|
||||
ipred = find(lead_lag_incidence(M.maximum_lag,:))';
|
||||
order_var = dr.order_var;
|
||||
|
||||
Gy = dr.ghx(nstatic+(1:nspred),:);
|
||||
Gu = dr.ghu(nstatic+(1:nspred),:);
|
||||
|
@ -51,11 +42,9 @@ gu(dr.order_var,:) = dr.ghu;
|
|||
|
||||
ys = oo.dr.ys;
|
||||
|
||||
u = oo.exo_simul(1,:)';
|
||||
|
||||
[U,Uy,Uyy] = feval([M.fname '_objective_static'],ys,zeros(1,exo_nbr), ...
|
||||
M.params);
|
||||
|
||||
%second order terms
|
||||
Uyy = full(Uyy);
|
||||
|
||||
[Uyygygy, err] = A_times_B_kronecker_C(Uyy,gy,gy,options.threads.kronecker.A_times_B_kronecker_C);
|
||||
|
@ -65,7 +54,7 @@ mexErrCheck('A_times_B_kronecker_C', err);
|
|||
[Uyygygu, err] = A_times_B_kronecker_C(Uyy,gy,gu,options.threads.kronecker.A_times_B_kronecker_C);
|
||||
mexErrCheck('A_times_B_kronecker_C', err);
|
||||
|
||||
Wbar =U/(1-beta);
|
||||
Wbar =U/(1-beta); %steady state welfare
|
||||
Wy = Uy*gy/(eye(nspred)-beta*Gy);
|
||||
Wu = Uy*gu+beta*Wy*Gu;
|
||||
Wyy = Uyygygy/(eye(nspred*nspred)-beta*kron(Gy,Gy));
|
||||
|
@ -75,7 +64,7 @@ mexErrCheck('A_times_B_kronecker_C', err);
|
|||
mexErrCheck('A_times_B_kronecker_C', err);
|
||||
Wuu = Uyygugu+beta*Wyygugu;
|
||||
Wyu = Uyygygu+beta*Wyygygu;
|
||||
Wss = beta*Wuu*M.Sigma_e(:)/(1-beta);
|
||||
Wss = beta*Wuu*M.Sigma_e(:)/(1-beta); % at period 0, we are in steady state, so the deviation term only starts in period 1, thus the beta in front
|
||||
|
||||
% initialize yhat1 at the steady state
|
||||
yhat1 = oo.steady_state;
|
||||
|
|
Loading…
Reference in New Issue