Optimal policy_steady state

Dear professor,
I am working on optimal fiscal problem with two tax instruments: consumption tax and capital income tax . with a RBC framework. I successfully run the stochastic version of the model setting the two tax rates as parameters and the steady state solution are quite consistent.
However, when i run the same code with ramsey_model, it can’t find the steady state. I got the error message as follows:
Using 64-bit preprocessor
Starting Dynare (version 4.6.1).
Calling Dynare with arguments: none
Starting preprocessing of the model file …
Ramsey Problem: added 11 Multipliers.
Found 11 equation(s).
Found 24 FOC equation(s) for Ramsey Problem.
Evaluating expressions…done
Computing static model derivatives (order 1).
Computing dynamic model derivatives (order 2).
Computing static model derivatives (order 3).
Processing outputs …
Preprocessing completed.

Error using print_info (line 32)
Ramsey: The steady state file does not solve the static first order conditions conditional on the instruments.

Error in stoch_simul (line 103)
print_info(info, options_.noprint, options_);

Error in Benin_opt.driver (line 333)
[info, oo_, options_, M_] = stoch_simul(M_, options_, oo_, var_list_);

Error in dynare (line 293)
evalin(‘base’,[fname ‘.driver’]) ;
What could be the reason for that?

You most probably did not write a correct steady state file that provides the steady state conditional on the value of the instruments.

Dear Professor,
I do not understand the exact thing to do in this case. I mean writing the steady state conditional on instrument. I wrote the steady state equation in a steady_state_block not in a steadystate.m file separately. So in this case, how should I got about writing the steady state conditional on instruments?

Usually, you set the value of all variables. But now you are not allowed to set the value of the specified instrument. Rather, for any possible value of the instrument given by Dynare, you need to specify the steady state of all other variables.

Dear Professor,
I follow the steps as you mentioned by solving the static steady state recursively conditional on instruments and coding the analytical solution in the steady_state_model block. However, it could not find the steady state conditional on instruments though it solved for the steady state when I run the same code considering the instruments ( tax rate) as parameters in the model. I have attached the .mod file.optimal_fiscal.mod (4.2 KB)

Using resid results in

Residuals of the static equations:

Equation number 1 : 0
Equation number 2 : 1.6746
Equation number 3 : 0
Equation number 4 : 0
Equation number 5 : 0
Equation number 6 : 0
Equation number 7 : -1.6908
Equation number 8 : 0
Equation number 9 : 0
Equation number 10 : 0
Equation number 11 : 0
Equation number 12 : 0
Equation number 13 : 0

Dear professor,
I have run the same code a got instead something different from yours as follows:
Residuals of the static equations:

Equation number 1 : 0
Equation number 2 : NaN
Equation number 3 : NaN
Equation number 4 : NaN
Equation number 5 : 0
Equation number 6 : NaN
Equation number 7 : -1.6908
Equation number 8 : NaN
Equation number 9 : 0
Equation number 10 : NaN
Equation number 11 : 0
Equation number 12 : NaN
Equation number 13 : NaN.

I tagged the equation to identify without ambiguity the problematic ones but the tags don’t appear with the resid outcome.
My question is how come the outcome sends out more equations than I have in the model block? I tried to understand the reason and why I could not get the respective tags of equations but I could not figure out the reason and nothing about it mentioned in the manual in optimal policy section. I wonder whether Dynare considers the two instruments as equations.
I finally changed the ordering of equations in the model block but the same message comes meaning that the residual problem is not related to a particular equation. I could not understand the reason .

  1. Here, the order matters. I called resid manually in Matlab after the error message.
  2. There are more equations because you are using Ramsey with instruments. There are as many equations as unknowns.