I have a Bellman Equation and I am trying to estimate its expected value, EV, by iteration. My first guess for this value is EV=0, and from that I am supposed to estimate another guess as follows:

And iterate until convergence. Here, x and i are endogenous variables (with x being continuous and i a dummy with value either 0 or 1), y is the future value of x and j the future value of i. θ is the set of parameters, which is known. Function u is also known and is linear. P is a four by four transition matrix, composed of some of the parameters included in θ. I am trying to code this in Dynare:

*var EV;*

*parameters beta RC theta_11 theta_30 theta_31 theta_32 theta_33;*

*beta = 0.9999;*

*RC = 9.7687;*

*theta_11 = 1.3428;*

*model;*

*P = [1 1 1 1; 1 1 1 1; 1 1 1 1; 1 1 1 1];*

*EV = integral(log(exp(-theta_11*x + beta*EV(+1))+exp(-RC + beta*EV(+1))))*P;*

*end;*

*initval;*

*EV = 0;*

*end;*

*steady;*

However, I run into a number of problems with this:

- Dynare won’t create matrix P so I think I will need to add P in matlab and then multiplicate the function. This is fine by me, but if someone has a simpler approach, I would love to hear it.
- As you can see from the intitial equation, EV is a function of i and x and I don’t think the simplified version in my code is capturing this correctly, but it’s the best I knew how to do. Does anyone know how to make the value function depend on two values?
- MOST IMPORTANTLY: when I run this code in Dynare, an error occurs reading “To use an external function (integral) within the model block, you must first declare it via the external_function() statement.” I tried to solve this by using

ThemeCopy

external_function (integral)

And putting it at different places throughout the code. However, the error message or a similar one always shows up. Does anyone know what to do?

Thanks in advance!