Unable to find steady state even though all residuals are very close to zero

Dear all,

I’m relatively new to Dynare and tried to code a simple model with a firm that produces output and an agent who owns the firms and consumes the output.

Unfortunately, the programme cannot find a steady state even though the residuals of the static equations are very close to zero. I checked my model again and tried to increase the precision as well as the iteration number, but nothing really helped.

What am I missing?

Thanks in advance for your help!

Simple_version.mod (1.7 KB)
Simple_version.log (866 Bytes)

Are you sure your model even has a well-defined unique steady state? Why is there a price level showing up? Usually, such models work for all price levels.

Dear @jpfeifer,

I am trying to find the steady state of the model hereafter, for which the sum of residuals is only 0.0001. I have re-checked equations a lot of times, and tried several initial values to ensure convergence.

Would you have any idea about how I could reach the steady state?

Thanks a lot!

Loic_calibration_1.mod (2.7 KB)

Are you sure your setup is correct. The model seems strange if l and pf are 0.

Thanks for your quick reply.

I think that the setup is correct, and that the difficulty lies in the initval block. That being said, I am no expert :slight_smile:

When it comes to the variables you mentioned, l (the labor force) is normalized to 1, which should not be a problem, and pf (the price of fossil fuel) is exogenously fixed 5 times below pg (the price of green energy). So I think those are consistent.

I see. So this will be a perfect foresight simulation?

Yes I think so: after having found the steady state, I intend on introducing a carbon tax that will increase pf, and subsequently decrease the use of fossil fuels.

But right now I am a bit puzzled not being able to make the model find its equilibrium.

Do you know if there is a way to jump from a sum of residuals of 0.0001 to steady state, by overruling Dynare at some point for instance?

You can set the tolerance with e.g.

steady(tolf=1e-3);

It does not work unfortunately, I still get the following message:

Error using print_info
Impossible to find the steady state (the sum of square residuals of the static
equations is 0.0001). Either the model doesn’t have a steady state, there are an
infinity of steady states, or the guess values are too far from the solution
Error in steady (line 102)
print_info(info,options_.noprint, options_);
Error in Loic_calibration_1.driver (line 425)
steady;
Error in dynare (line 278)
evalin(‘base’,[fname ‘.driver’]);

Is there a way to force Dynare to consider that the steady state is achieved given the low level of discrepancies, and to display steady state values?

I don’t have access to your file, but the message is about squared residuals, so your tolerance needs to be higher.