 Hi All,

I am working on an RBC model with a labor market search. I have solved for the steady-state by hand. Also, I used fsolve to compute for my steady-state. I observed that in my code, if
x = fsolve(func,baseline);
x2 = fsolve(func,x);
The solution for x = baseline=x2.

But if I have

x2 = fsolve(func,2*x);

The solution for some of the variables in x2 differs from x and the initial baseline guess.

Note: if I multiply x by values less than or equal to 1, I will get some solutions for x2; If I multiply x by values greater than 1, the solution differs for some variables.NewP2_fsolve_test.m (7.7 KB)

Thank you all for your suggestions.

Did you verify that the both x actually solve the function? If yes, it’s not too uncommon for nonlinear equations to have multiple solutions. Any quadratic equation will generally have two solutions. In that case, it’s important to have a good initial guess.

Thank you, Professor, for your response.

Please, how do I verify that both x solve the function? Do you mean that I use the solutions as my initial value in solving the DSGE model?

You may want to check the exitflag of fsolve.

1 Like

I checked the exitflag of solve and it gave me 1.

In this situation, what is the best explanation and intuition to support the multiple solution?

Is it wrong to go with any of the solutions?

Thank you.

Again, nonlinear equations often feature multiple solutions. But sometimes, only one of them makes economic sense. For example, the labor FOCs has sometimes has solutions for labor bigger than 1, which does not make sense.