I am trying to run a medium scale model, and have some doubts as to how I;
- Should approach numerical approximation of the steady state. (and how to implement fsolve)
- Run a first period temporary productivity shock and at the same time a permanent change of a structural parameter (policy change).
As for the first point, the non-linear model consists of around 60 equations, and Dynare is not able to find the steady state with the steady command, even if I tried adjusting initial guess values provided in an Initval block. However, I am able to provide some of the variables analytically. Given them I can also isolate a smaller system of ten variables in ten equations (to solve by fsolve), and given these in turn provide analytical expressions or isolate other smaller systems of the remaining variables. Do I seem to be on the right track?
The manual states that the easiest way to do it is through a steady_state_model block. It does not, as far as I can see, specify how to call fsolve functions inside. Can I find some guide for that anywhere? I have doubts on both syntax (Matlabs fsolve page not really helpful) and to how approach initial guess values (x0).
Also, in the steady_state_model example in the manual, a temporary variable is created, usefull for long expressions. It does not look like this variable has been declared anywhere else. Will Dynare itself be able to figure out, that a variable name which has not been declared in the variable block is a temporary variable?
As for point two:
I assume the way to do it is through running a deterministic simulation (simul or perfect_forecast, with stack_solve_algo=6), where the system is in steady state in period 0 and then in period 1 hit by contemporaneus shocks.
How do I approach the permanent change to a structural parameter? Do I need to declare it as an exogenous variable and use initval and endval?
Also, the manual reads: “Note that if some variables, endogenous or exogenous, are NOT mentioned in the endval block, the value assumed is that of the last initval block or steady command (if present).”
Does this also carry over when the steady state is given by a steady_state_model block instead of calculated by a steady command?
I apologize for the vagueness of the questions. Hopefully, a little guidance can go a long way. I appreciate all suggestions.
Thanks in advance, and nice summer to all!