From 9d90a204f76de451b6129b01496a377d837b91e4 Mon Sep 17 00:00:00 2001 From: Johannes Pfeifer Date: Sun, 30 Aug 2015 11:16:26 +0200 Subject: [PATCH] Clean up evaluate_planner_objective.m --- matlab/evaluate_planner_objective.m | 19 ++++--------------- 1 file changed, 4 insertions(+), 15 deletions(-) diff --git a/matlab/evaluate_planner_objective.m b/matlab/evaluate_planner_objective.m index e6f80f9bd..69f24c6e5 100644 --- a/matlab/evaluate_planner_objective.m +++ b/matlab/evaluate_planner_objective.m @@ -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 . 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;