Blanchard & Kahn conditions are not satisfied: indeterminacy due

Hi everyone;
When I run the shiyan.mod file in dynare, there is a trouble I don’t know how to solve it.

There are 10 eigenvalue(s) larger than 1 in modulus for 10 forward-looking variable(s)
The rank condition ISN’T verified!

Error using print_info
Blanchard & Kahn conditions are not satisfied: indeterminacy due to rank failure.

Error in stoch_simul (line 119)
print_info(info, options_.noprint, options_);

Error in JEEM2024.driver (line 1073)
[info, oo_, options_, M_] = stoch_simul(M_, options_, oo_, var_list_);

Error in dynare (line 310)
evalin(‘base’,[fname ‘.driver’]);

JEEM2024.rar (3.6 KB)

can anyone help me?
many thanks

usually it is because the timing issue. In dynare, make sure you get the timing right, variables are denoted in the time they are chosen.

Thank you for your reply, but I checked the timing condition of the variables, there was no problem, but it still gives the Blanchard Kahn error

@jpfeifer I look forward to your guidance

It’s hard to tell. Are you sure that

S(+1)=(1-Delta)*S+Z;

is correct, i.e. S should not be predetermined?

Thanks for your reply, no I modified the equation as below…

S=(1-Delta)*S(-1)+Z;

but I still get the error
There are 10 eigenvalue(s) larger than 1 in modulus for 9 forward-looking variable(s)
The rank condition ISN’T verified!

Error using print_info
Blanchard & Kahn conditions are not satisfied: no stable equilibrium.

Error in stoch_simul (line 119)
print_info(info, options_.noprint, options_);

Error in JEEM2024.driver (line 1051)
[info, oo_, options_, M_] = stoch_simul(M_, options_, oo_, var_list_);

Error in dynare (line 310)
evalin(‘base’,[fname ‘.driver’]);

Now the error message clearly shows there is still a timing problem in your model.

Good morning,
I’m trying to analyse the post-shock responses of an overlapping two generations model (without growth). The basic version runs correctly in dynare (file
basic_main.mod (2.2 KB)
).
However, when I add a transfer to individuals (called g for young people and g1 for old people) I get an error of indeterminacy (the code is in
UBI_main.mod (2.3 KB)

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

The rank condition ISN’T verified!

Error using print_info
Blanchard & Kahn conditions are not satisfied: indeterminacy.
Error in stoch_simul (line 120)
print_info(info, options_.noprint, options_);
Error in UBI_main.driver (line 231)
[info, oo_, options_, M_] = stoch_simul(M_, options_, oo_, var_list_);
Error in dynare (line 281)
evalin(‘base’,[fname ‘.driver’]);

The two versions of Equation “3) Households f.o.c. for labour” (one of them commented //) are the same. I was trying whether giving more a worked out version helps.

I solved the problem changing the initial values with the steady state values of the basic_main version of the code.

Is there a way to authomatically adjust the initial values with the last encountered steady state so you can avoid this problem?

Note: the current steady state values are not very realistic, with so high interest rate… I need to see how to adjust it.

Thank you.

From what you describe, your model features multiple steady states and you need the correct one for the model to work. In my experience, the only consistent way out is to manually compute the steady state using pencil and paper and then provide it to Dynare.

Sidenote: I don’t think you have a consistently correct timing. Shouldn’t it be

y = (k(-1)^alp)*(z*L)^(1-alp);

as well?

Thank you Johannes! I will try to do that.
And yes, you are right. In y, I should have k(-1) too.

Another question: I want to introduce a permanent shock (on g) and see how the economy moves/transitions to a new steady state, could you help me finding an example for it with Dynare, please? I read I should use endval block, but I do not find a full example for it…

Are you doing stochastic simulations with stoch_simul? In that case, you can simply define a unit root shock.

Yes, I use stock_simul. I added this equation

//10) Shock process for g: permanent shock (unitroot)
g = g(-1) + eg;

I think this is what we needed. Thank you so much.

I would like to check, also, the behaviour of the economy when it has exogenous growth. I saw the options to use

trend_var (growth_factor=gz) z;

I try to follow the example in fs2000_nonstationary.mod, but I do not fully understand how it works and I get an error in my code:

ERROR: trends not compatible with balanced growth path; the second-order cross partial of equation 1 (line 37) w.r.t. trend variable z and endogenous variable gz is not null (abs. value = 0.165123). If you are confident that your trends are correctly specified, you can raise the value of option ‘balanced_growth_test_tol’ in the ‘model’ block.

Error using dynare
Dynare: preprocessing failed

The mod-file is
UBIexogenousgrowth_main2.mod (2.3 KB)
.
I hope I am not abusing this entry post too much with the change of topic. Thank you so much.