Problem on solving the Steady State


i’m trying to solve a basic newkeynesian model, agumented with a technology shock and a news shock.
With the steady-state, i always run into convergence problems, and the solve-function tells me: " maxit has been reached".
I added the model so you can have a look. I’m open to every question and would love if someone could give me a hint to solve this.
Nearly forgot it, i use Dynare3 on Matlab. Maybe this could be a Problem too.

Thanks to anyone who helps me.
Best regards.
modell1.mod (1.11 KB)

Maybe because there are 10 equations but 11 endogenous variables ???

You have a first problem with your code is that you use the variable “Tech” in var declaration and you don’t use it after.
This is the first problem, but is doesn’t solve your issue

I work on

Tech, that was another try to get a solution with another concept. Please ignore /delete it (i think there shouldn’t be a Problem with a declared Var i don’t use).

So endogeneous variables and equations should be the same.
If there are problems with understanding the model, please ask.


first the variable “Tech” you declared in the “var” statement doesn’t appear in the block model indeed. When I remove it (and also from the block initval) I deal with convergence issues. I suggest you to change some initial values since the steady-state of the following equations: 2, 4, 10, are not satisfied. You can see it by adding the instruction “resid(1);” just before “steady;”

Hope this helps.


Thanks for the nice support so far.

I updated the model, so that there are no more complains about the missleading “Tech”-variable. The steady state condition seemed plausible to me (y=yn; Output= natural Output which should be true in steady state) , for now i guessed a steady state value, think i have to write it down and solve it by hand if that still appears to be the problem.

But the convergence problemes, in my opinion come from the 2nd equation, the technology-process.
Just to give a intuition how the process should work:
ln A = A(-1) + g(-1) + e

So A denotes the technologyparameter, g the newsshockprocess and e the inovation to technology, so the technologyshock. While lower case letter denote logs.
Could it maybe come from the propertie of the newsshock that it should (if it would work) raise the steady state value of technology.

EDIT: I think i got found a way to solve the cenvergence problem: simply by taking first differences, so that the random walk becomes stationary. But i didn’t implemented it jet. I will report if that aproach work.
modell1.mod (1.11 KB)

I give up, i’ve got no clue how to get stationarity in this process.

Is there a way to let the random term stay in the equation. Or do i have to get it out?

I can’t figure for the life of me the intuition behind “a= exp(a(-1))+ g(-1)+e;” What is the exponential doing on one side and not the other.

Also, if you meant “a= a(-1)+ g(-1)+e;”, then you would have to write it as “a= 0.999999*a(-1))+ g(-1)+e;” to make it stationary.

Hope this helps,

Sorry, I just realized: “a= 0.999999*a(-1)) +e;” only make sense. To add “g(-1)”, you have to stationarize the whole model. “a”, “y”, “yn”, “ytilde”, “i”, “mg” and “pi” would appear has stationary versions of themselves.

You can’t hope to find stationarity in a non-stationary model, but stationarising a model is not that hard and it’s the standard practice.

Why that ln term is on one side but not on the other i can’t figure out well. I got that from a working paper on newsshocks but i will ask the autor, if that is just a writing error. In the case the process is log first difference then it makes no sence then it should be a= a(-1)+… .

The persistence parameter of the technologyprocess can’t be the solution (thought about that myself). that wuld change the behavior of technology itselfe.

I think you are right, i have to stationarising the model.