Steady States: Linearization vs. Log Linearization

I wrote a non-linear model and could find the steady states (and run it in levels). However, when I want to have a log-linearized solution, I cannot find the steady states of the same model. Here’s what I did:

Convert all variables x as exp(x). Put the initial values of steady states as log(x_ss) where x_ss is the corresponding steady state from the level version. I considered when x includes both endogenous and exogenous variables and also a version where x includes only the endogenous variables leaving the exogenous variables that evolve in logs as they were. Please help.

When you log-linearise a model, you express each variable in deviation from the steady-state. Thus, at the steady-state the deviation is zero and each variable’s steady-state is zero! Thats the advantage of putting the model directly in log-linear form in Dynare, you do not have to compute the steady-state, care about initial conditions etc…


Actually, I want to solve the model using second order. So I am not log linearizing by hand and then throw it in dynare as a linear model in which case I will get exactly what you suggest. My goal was to write as a non-linear model and then solve the model using 2nd order but as log-deviations instead of levels. Does this make sense?

why don’t you create new variables setting them equal to x_new = x_level - x_steady ?

The way you proceed seems to be correct. If you perform a variable substitution, the steady state values have to be replaced by log(x_ss) as you say. If you use a numerical solver in Dynare to find the SS, Dynare may have numerical problems. In this case, try giving better starting values or use the level version that finds the steady state to generate the log of the true steady state values as starting values. If these values do not solve the log version of the model, there is still a mistake in the mod-file and the variable substitution.
Finally, remember that you cannot substitute for variables with steady state less or equal to 0.