# Distinguishing Stable vs. Unstable Steady States in a Non-Linear DSGE Model

**URL:** https://forum.dynare.org/t/distinguishing-stable-vs-unstable-steady-states-in-a-non-linear-dsge-model/27508
**Category:** Steady state
**Created:** [26 April 2025 06:28 UTC](https://forum.dynare.org/t/distinguishing-stable-vs-unstable-steady-states-in-a-non-linear-dsge-model/27508 "2025-04-26T06:28:24Z")
**Posts on this page:** 8
**Page:** 1

<div class="post-metadata">

### Author: ![mjamour](https://forum.dynare.org/letter_avatar_proxy/v4/letter/m/d2c977/32.png) [@mjamour](https://forum.dynare.org/u/mjamour)
#### Post date: [26 April 2025 06:28 UTC](https://forum.dynare.org/t/distinguishing-stable-vs-unstable-steady-states-in-a-non-linear-dsge-model/27508/1 "2025-04-26T06:28:25Z")

</div>

Hi,

I’m working with a non-linear DSGE model that has two steady states. Depending on the initial values, the steady-state outcome changes. I need to differentiate between stable and unstable steady states for different parameter values and visualize them on a graph (similar to the attached example). Could anyone assist me with this?

 ![image.png (2)](https://forum.dynare.org/uploads/default/original/3X/9/8/9853a23d4c4c0a292eeae60136432c6b14640ad1.jpeg)

---

<div class="post-metadata">

### Author: ![jpfeifer](https://forum.dynare.org/user_avatar/forum.dynare.org/jpfeifer/32/5044_2.png) [@jpfeifer](https://forum.dynare.org/u/jpfeifer)
#### Post date: [26 April 2025 15:41 UTC](https://forum.dynare.org/t/distinguishing-stable-vs-unstable-steady-states-in-a-non-linear-dsge-model/27508/2 "2025-04-26T15:41:33Z")

</div>

You need to elaborate a bit more what you are trying to do and where the challenge is. Determinacy is usually a local property, not a global one. Do you want to alter the approximation point or how do you deal with nonlinearity?

---

<div class="post-metadata">

### Author: ![mjamour](https://forum.dynare.org/letter_avatar_proxy/v4/letter/m/d2c977/32.png) [@mjamour](https://forum.dynare.org/u/mjamour)
#### Post date: [26 April 2025 20:07 UTC](https://forum.dynare.org/t/distinguishing-stable-vs-unstable-steady-states-in-a-non-linear-dsge-model/27508/3 "2025-04-26T20:07:00Z")

</div>

Thank you for your response.  
The issue is that in my code, there are two steady-state solutions. We need to select one of them. Naturally, one of the criteria is determining which solution is stable and which is unstable for different parameter values.  
We have also solved the model nonlinearly. So it is possible to have stable and unstable steady states.  
Thanks.

---

<div class="post-metadata">

### Author: ![jpfeifer](https://forum.dynare.org/user_avatar/forum.dynare.org/jpfeifer/32/5044_2.png) [@jpfeifer](https://forum.dynare.org/u/jpfeifer)
#### Post date: [28 April 2025 10:32 UTC](https://forum.dynare.org/t/distinguishing-stable-vs-unstable-steady-states-in-a-non-linear-dsge-model/27508/4 "2025-04-28T10:32:12Z")

</div>

Is this a Dynare question? Here I wouldn’t know how to implement this. What do you mean with

> [@mjamour](#):
>
> We need to select one of them.

?  
And how did you solve the model nonlinearly?

---

<div class="post-metadata">

### Author: ![mjamour](https://forum.dynare.org/letter_avatar_proxy/v4/letter/m/d2c977/32.png) [@mjamour](https://forum.dynare.org/u/mjamour)
#### Post date: [1 May 2025 18:20 UTC](https://forum.dynare.org/t/distinguishing-stable-vs-unstable-steady-states-in-a-non-linear-dsge-model/27508/5 "2025-05-01T18:20:55Z")

</div>

Let me elaborate further.  
When solving our steady-state (SS) model using Dynare or MATLAB, we encounter **two steady-state solutions**. This occurs because the model is nonlinear, and we intentionally avoided linearizing it to preserve certain nonlinear dynamics.  
I understand that **determinacy is a local property** , and we need to identify the parameter ranges for which the model remains stable around each steady-state. One approach is to linearize the model around each steady-state and compute the eigenvalues as functions of the parameters. However, deriving an analytical solution for this is challenging.  
To address this, we need to develop a Dynare or MATLAB code to numerically determine the stability conditions and **plot the stability regions** in a graph based on two key parameters. This visualization would help illustrate how stability depends on these parameters across both steady-states.

Thank you!

---

<div class="post-metadata">

### Author: ![jpfeifer](https://forum.dynare.org/user_avatar/forum.dynare.org/jpfeifer/32/5044_2.png) [@jpfeifer](https://forum.dynare.org/u/jpfeifer)
#### Post date: [5 May 2025 13:51 UTC](https://forum.dynare.org/t/distinguishing-stable-vs-unstable-steady-states-in-a-non-linear-dsge-model/27508/6 "2025-05-05T13:51:25Z")

</div>

An example in Dynare is at [DSGE\_mod/Ascari\_Sbordone\_2014 at master · JohannesPfeifer/DSGE\_mod · GitHub](https://github.com/JohannesPfeifer/DSGE_mod/tree/master/Ascari_Sbordone_2014)

---

<div class="post-metadata">

### Author: ![mjamour](https://forum.dynare.org/letter_avatar_proxy/v4/letter/m/d2c977/32.png) [@mjamour](https://forum.dynare.org/u/mjamour)
#### Post date: [8 May 2025 15:29 UTC](https://forum.dynare.org/t/distinguishing-stable-vs-unstable-steady-states-in-a-non-linear-dsge-model/27508/7 "2025-05-08T15:29:32Z")

</div>

It seems to be the answer to my question but when I run the code with " define determinacy\_plot=1", the following error will be shown.  
“Error using resol  
Too many input arguments.  
Error in Ascari\_Sbordone\_2014.driver (line 522)  
[dr,info]=resol(0,M\_,options\_,oo\_.dr, oo\_.steady\_state, oo\_.exo\_steady\_state, oo\_.exo\_det\_steady\_state);  
Error in dynare (line 278)  
evalin(‘base’,[fname ‘.driver’]);”  
How can I fix it?  
Thanks

---

<div class="post-metadata">

### Author: ![jpfeifer](https://forum.dynare.org/user_avatar/forum.dynare.org/jpfeifer/32/5044_2.png) [@jpfeifer](https://forum.dynare.org/u/jpfeifer)
#### Post date: [9 May 2025 07:00 UTC](https://forum.dynare.org/t/distinguishing-stable-vs-unstable-steady-states-in-a-non-linear-dsge-model/27508/8 "2025-05-09T07:00:17Z")

</div>

Did you use Dynare 6?
