Max operator in Value Function Iteration leads to Rank condition failure


I am new to Dynare. I am doing a value function iteration where I have to use a max operator in the forward looking variables. It is of the form (simplified here):

v(s,d) = alpha1 + beta1 * max(v(s’=1,d’=1) + v(s’=2,d’=1))
+ alpha2 + beta2 * max(v(s’=1,d’=2) + v(s’=2,d’=2))

where s (state) and d (decision) each can be 1 or 2.

But adding the max operator in this equation leads to rank condition failure.

I do not calculate v(s) directly as there would be a kink in the function v(s) which I don’t want.

What can I do to fix this?


Dynare does not do value function iterations, so I don’t know what you are doing. The rank condition is based on a local/linear approximation. Your equation is non-differentiable, so it does not make sense.

I am modifying Thomas Winberry’s " Method for Solving and Estimating Heterogeneous Agent Macro Models" according to my model. This part is where Chebyshev polynomials are used to approximate value functions. The coefficients on these polynomials give rise to forward looking equations.

Where I am facing an error is:
If I have equations like
“v1=u+bmax(v1(+1),v2(+1))", the rank condition is verified,
but if I change it to
(p1* max(v1(+1),v2(+1)) + p2*max(v1(+1),v2(+1)))”, the rank condition is not verified any more.

Any explanation why that happens?

Thank you!

You may have to ask the original author. Providing support for external toolkits is usually not feasible for us.