Obtaining steady-state with one but not another method

Hello,

When I solve for steady state of my model with default settings, Dynare finds it.
If I select fsolve (solve_algo=0), it returns the following:

*Equation solved, fsolve stalled.

fsolve stopped because the relative size of the current step is less than the
selected value of the step size tolerance squared and the vector of function values
is near zero as measured by the selected value of the function tolerance.*

Moreover, it reports that Blanchard-Kahn condition is not satisfied after showing that it does satisfy it. (SIC!)

*There are 2 eigenvalue(s) larger than 1 in modulus
for 2 forward-looking variable(s)

The rank condition ISN’T verified!

??? Error using ==> print_info at 48
Blanchard Kahn conditions are not satisfied: indeterminacy due to rank failure
*

Any thoughts?
Especially, is it safe to proceed with the default method?
What is going on with the rank condition?

Thanks!

You are confusing two things. Even when the eigenvalues conform with the BK condition, the rank condition (singularity of the matrix that needs to be inverted) can fail.

Regarding steady state finding: numerically finding a steady state can be tricky. Be happy if one solver finds it. While not knowing your model, are you sure a unique steady state exists? Or do the two solvers converge to different ones? If yes, you might want to check which one makes more economic sense.

[quote=“jpfeifer”]You are confusing two things. Even when the eigenvalues conform with the BK condition, the rank condition (singularity of the matrix that needs to be inverted) can fail.
[/quote]

Thanks for pointing out my confusion, I should definitely slow down and read the output more carefully.

Yes, I am sure the steady state exists.
Solvers 1 through 4 yield identical steady states.
Fsolve (solver 0) produces nonsense. I am confused that it is fsolve that has trouble finding it. Thought it is the most reliable solver.

UPDATE: turned out fsolve has hard time, as compared to other solvers, if initial values of state variables are further away from steady state. Once I changed one of my state variable initial values, it obtained the same steady state as other solvers.

I would not call fsolve the most reliable solver. From my experience, there exists no such thing. Different tools perform well in different circumstances.

Thanks, Johannes.