How to solve steady state in large scale DSGE models

In Dynare User Guide, it says we can use matlab codes to find steady state. But for large scale DSGE model, I find it always difficult to calculate the steady state manually. And if we don’t put correct numbers in the “initval” block, we can’t use dynare to solve the model. Is there any better approach to find steady state for large scale DSGE models, i.e., thirty equations for the model. Thanks a lot, my best.

Even if you are not able (or if it is not possible) to get a closed form solution for the steady state, you can help Dynare. A first approach, as you mention it, is to provide a sensible initial guess for the Newton solver (through the initval block). But this is in general far from obvious, especially when it comes to estimation (since the fixed initial condition of the solver might be very far from the solution, depending on the current values of the deep parameters). Another approach is to concentrate the problem. Suppose that you can partition the vector of endogenous variables y as (y_1', y_2')' so that at the steady state you must have y_2 = \varphi(y_1). Then you can rewrite the nonlinear problem defining the steady state:

f(y) = 0


f(y_1, \varphi(y_1)) \equiv g(y_1) = 0

This way you have reduced the size of the nonlinear problem to be solved. My experience is that even in models with thousands of variables, it is possible (with some work) to reduce the problem to a small set of nonlinear equations. All this can be done in a steady state file, where you first compute y_1^{\star} by solving g(y_1)=0 and then compute the remaining variables y_2^{\star} = \varphi(y_1^{\star}). The first step, solving for y_1^{\star} can be done with a matlab solver of your choice. If you search for steadystate on the forum you should find all you need to implement this.


Thanks a lot, Professor Stephane. I will try to do in your suggested way. And your words would inspire me in my study and research. Thank you so much, my best. Zhenlong.