A strange problem of solving my model in dynare

Dear all,

I am solving an international model using dynare. Here is one strange problem in my model, as follows:

In my model, there is a variable called fake , which I defined as minus lambda in line 70. The strange thing is that, if I comment out this redundant variable, the model will not solve. And if I had it in the model, dynare is able to solve the system and obtain a steady state. The fake variable is clearly redundant, so why would it change the result of the model?

Also, if I keep the fake variable I will be able to get the steady-state values – they all make sense and seem to be correct. However the dynare keep reporting

“One of the eigenvalues is close to 0/0 (the absolute value of numerator and denominator is smaller than 0.0000!”

how to fix this problem and proceed to produce IRF?

This is the mod fileFX_EZdynare_v1.mod (3.6 KB) , thank you for your help in advance!

There are two (probably unrelated) issues here.

  1. Your model has a unit root, i.e. there are infinitely many steady states. You are now asking Dynare to find one of them. Usually that does not work, because there is no numerical direction information for the solver. That explains why the steady state is only found with the fake variable: pure luck. You introduced a small numerical perturbation that was sufficient to find a steady state.
  2. There is a singularity here that may indicate a problem with the model or a numerical issue (you have many steady state values very close to 0 but not exactly zero)

Thank you for your reply, it is very helpful. May I ask two follow ups?

  1. how did you figure out that the model has a unit root? – is that what 0 eigenvalue implies?

  2. Lets say for now that the model works (I have solved a simpler version of it and it works well), does the numerical issue mean that I need to improve the precision somehow? I think the value that are close to zero should be exactly zero theoretically. So I wonder if there is a general treatment for situations like this (that is, ss values should be zero but has a e-7 deviation).

Thank you again!

  1. No, you have a unit eigenvalue. Figuring that out unfortunately requires checking the output of mjdgges in dyn_first_order_solver.m.
  2. I don’t know whether the problem is numerical. But if you want to exclude that the steady state is the issue, you should compute it analytically.