Ramsey policy problem

Dear Dynare users,

I’ve built a two-country model, which works fine using “stoch_simul” command. But, I’m also interested in optimal monetary policy, I want to solve the Ramsey problem in dynare, taking interest rate i_R as instrument.

Unfortunately, it didn’t work. I’ve used both 4.4.3 and unstable (2016-08-08), I’ve got the same error message:

Warning: Rank deficient, rank = 59, tol = 1.178660e-12.
Blanchard Kahn conditions are not satisfied: no stable equilibrium.

I guess the problem is with the Ramsey steady state. I understand that Ramsey steady state may be different from my original steady state because we have to track many multipliers.

Is it because my steady state not stable? so when dynare solves Ramsey problem, assigning a value to i_R, dynare can’t find SS values for other variables and multipliers? But it works well with “stoch_simul”.

How can I solve the Ramsey problem?

I’ve attached both mod file and steady state file.

I’ve been working on this problem for a lot of time now. Could anyone help me for this?

I really appreciate your help! Thanks again!


P4_ss.m (1.74 KB)
P4.mod (6.19 KB)

1 Like

The problem is that a steady state solving the Ramsey problem is not necessarily unique. This is particularly problematic when working with instruments, but not providing an analytical steady state conditional on the instruments. As you can see from the warnings, Dynare has a hard time finding a steady state. And at the found steady state, there might not be uniqueness or stability, although there can be a different steady state where the BK conditions hold. At the current stage, I would recommend to try different starting values.

Hi Prof. Pfeifer,

Thank you so much for your reply. Sorry for not responding earlier.

Yes, dynare had a hard time finding my Ramsey steady state, which I believe is the current problem.

Just to be sure I understand your comments, by using different Starting Values, you meant to use different steady steady? instead of the deterministic steady state

Then, the question is:

Given the size of the model, I can’t provide analytical steady steady conditional on the instruments (so, I used a fsolve function), how can I deal with that?

Also, suppose I’ve managed to use a different steady state to find the Ramsey steady state, would that affect my previous results(since I use a different steady state)?

Many thanks.


  1. A conditional steady state just means that you can either provide the steady state within a steady_state_model-block or a steady state file. In the latter you can easily use fsolve (see the NK_baseline.mod in the examples folder).

  2. Dynare will try to find a steady state that involves both the instrument and the variables for which you provide a conditional steady state. By varying the starting value for the instrument (done via initval) you can sometimes find other steady states that involve different instrument values.

Many Thanks, Prof. Pfeifer, I’ll try.