Ramsey Policy

Dear All

When I modified existing Ramsey code in a meaningful way, it crashes and the diagnostics is

STEADY: numerical initial values incompatible with the following equations
1 3

??? Error using ==> dynare_solve
exiting …

It seems obvious that Dynare uses some initial values when it solves non-linear system for the steady state. I guess this is where it becomes unhappy. How can I control for these values? Suppose the names of endogenous variables are name1 and name 2.

Many thanks.


Hi Tanya,

The default value for the initialization of the endogenous variables is zero… So if you have something like the inverse of a variable, Dynare will crash. You can initialize the solver using the block initval before the commands steady or stoch_simul. For instance:

name1 = 1;
name2 = sqrt(2);

The difficulty is then to choose good starting values…

Best, Stéphane.

Dear Stephane

The previous step has been passed with your help. Many thanks again. Now, if I change the discount factor in (relatively complex) model (I attach the file), it complains about the Blanchard-Kahn conditions. I believe that fully optimal policy (either commitment or timeless perspective) always exists and unique in the class of models with terminal conditions that require variables do not grow faster than 1/sqrt(beta) where beta = discount factor in objective. I suspect that Dynare imposes the biggest eigenvalue should not exceed one. How can I change that into 1/sqrt(beta) in the appropriate place?

Actually I think it is reasonable to have default version of the biggest eigenvalue as 1/sqrt(beta) for all applications.

In the attached file the discount factor is set to 0.9. The model solves for conventional 0.99 and around, but crashes for smaller numbers of discount factor. Although 0.9 might seem unrealistic, it is a good test value. The attached model is a simplified version of what I want, and a more complex model reaches the boundary much quicker. So I do want to fix this problem.

Many thanks,

Also, can I ask about the diagnostics on the screen. Suppose I run something and get (see below).

Did it pass the steady state computation? The oo_ structure does contain “steady_state” but it is not clear what tolerance was achieved. It says below “SOLVE: maxit has been reached”. Does this refer to the steady state computation or to something else? If it refers to the steady state, how can I change options?

Also, to plot what I want I need POLICY AND TRANSITION FUNCTIONS. Where can these be found in oo_ variables?

Many many thanks


Starting Dynare …
Starting preprocessing of the model file …
9 equation(s) found
Processing derivation …
Processing Order 1… done
Processing Order 2… done
1 equation(s) found
Processing derivation …
Processing Order 1… done
Processing Order 2… done
Processing outputs …
Preprocessing completed.
Starting Matlab computing …

SOLVE: maxit has been reached
??? Error using ==> print_info
Blanchard Kahn conditions are not satisfied: no stable equilibrium

Error in ==> stoch_simul at 44

Error in ==> ramsey_policy at 25
info = stoch_simul(var_list);

Error in ==> unconstrainedDurableOmega at 187

Error in ==> dynare at 102
evalin(‘base’,fname) ;

Further problems with Ramsey policy.

It seems that in the statement “planner discount = X” it wants X to be a number. I want to compute it within the text. Can I make Dynare eat the following, for example:
b = 0.99;
X = sqrt(a*b);

Coming back to the previous suggestion: can the user be given a control on what to consider as an explosive eigenvalue for a QZ decomposition or Blanchard-Kahn formula and like? For example, can they be based on some “cutoff” number which is provided by a user? If needed a warning message can be displayed, but there is no need to crash the problem - I can see later whether my solution delivers convergence in conventional sense or not.

Dear All

I am closing the question, I understood how to change what I want.

Moreover, I am happy how Dynare Ramsey_policy works after various tests I have done with it.


Hello Tanya,

I saw you posted in the forum about Blanchard Khan Condition Problem . I am having the same problem and I was wondering how you solved. In your posts there was not any explanation but just stated that it was solved.

My matlab screen error is the following:

There are 13 eigenvalue(s) larger than 1 in modulus
for 12 forward-looking variable(s)

The rank condition ISN’T verified!

??? Error using ==> print_info at 21
Blanchard Kahn conditions are not satisfied: no stable equilibrium

I know you had this problem in the past but any help is appreciated very much.


I had problems when Dynare was not finding the steady state properly. It would converge to steady state with complex numbers and then complain about the BK conditions.

What you post has nothing to do with steady state, I have seen similar things though. I think your version of dynare “does not know” that you should have less equations for Ramsey policy than usual. I would check that you use appropriate version of Dynare.

I shouild say that I found that dynare is sensitive to matlab vesrsion and sometimes gives bizarre messages out of the blue. Also, different dynare versions often complain about different things with no reason.

Thank you Tanya.
I have not started with Ramsey Policy yet. My problem occurs when I am trying to solve the model and get the irfs.
I have tried version and version 4 of dynare and I have Matlab R2007 a. Both versions of dynare gives me the same error. And I do not have a clue as to why this problem occurs. Do you know or have any idea what I should check to see where the problem comes from?

Hi Tanya,

I am getting steady states with complex numbers too. I see you had the same problem. How did you rectify? Any suggestion would be enormously helpful.