%RAMSEY_FOC.M function foc = ramsey_foc; %foc = ramsey_foc: first-order conditions of the Ramsey problem in ``Optimal, Simple, and Implementable Monetary and Fiscal Rules,'' by S. Schmitt-Grohe and Martin Uribe (2006) %(c) Stephanie Schmitt-Grohe and Martin Uribe, May 2006 %Notes % x_cu=x_t and x_cup=x_{t+1} % x_fu1=x_{t+1} %x_fu1p=x_{t+2} % x_ba1=x_{t-1} % x_ba1p=x_t % x_ba2=x_{t-2} and x_ba2p=x_{t-1} %define symbolic variables allsyms %Utility function objective_cu = ((c_cu * (1-h_cu)^GAMA )^(1-SIGMA) - 1) / (1-SIGMA); [constraints_cu, constraints_ba1, constraints_fu1] = constraints; %The Lagrange Multipliers xi_cu = [xi1_cu xi2_cu xi3_cu xi4_cu xi5_cu xi6_cu xi7_cu xi8_cu xi9_cu xi10_cu xi11_cu xi12_cu xi13_cu xi14_cu xi15_cu xi16_cu]; xi_fu1 = [xi1_fu1 xi2_fu1 xi3_fu1 xi4_fu1 xi5_fu1 xi6_fu1 xi7_fu1 xi8_fu1 xi9_fu1 xi10_fu1 xi11_fu1 xi12_fu1 xi13_fu1 xi14_fu1 xi15_fu1 xi16_fu1]; xi_ba1 = [xi1_ba1 xi2_ba1 xi3_ba1 xi4_ba1 xi5_ba1 xi6_ba1 xi7_ba1 xi8_ba1 xi9_ba1 xi10_ba1 xi11_ba1 xi12_ba1 xi13_ba1 xi14_ba1 xi15_ba1 xi16_ba1]; %The Lagrangian lagrangian = BETTA^(-1) * (xi_ba1 * constraints_ba1) + (objective_cu+xi_cu * constraints_cu) + BETTA * (xi_fu1 * constraints_fu1); endogvar_cu = [k_cup iv_cu c_cu h_cu la_cu w_cu q_cu u_cu pai_cu mc_cu m_cu ptil_cu x1_cu x2_cu output_cu s_cup r_cu ]; endogvar_cu=endogvar_cu(:); endogvar_ba1p = [k_fu1 iv_ba1p c_ba1p h_ba1p la_ba1p w_ba1p q_ba1p u_ba1p pai_ba1p mc_ba1p m_ba1p ptil_ba1p x1_ba1p x2_ba1p output_ba1p s_fu1 r_ba1p]; endogvar_ba1p=endogvar_ba1p(:); foc = [jacobian(lagrangian,xi_cu) jacobian(lagrangian,endogvar_cu)+jacobian(lagrangian,endogvar_ba1p)]; foc = foc(:);