Did you try running any of the individual lines? There’s a very obvious bug 
where you refer to kgrid(i).

 — John

On Nov 23, 2014, at 3:39 PM, Pileas <[email protected]> wrote:

> OK, I have the following model in which I try to solve the Bellman equation 
> through function iteration. However somewhere I am wrong.
> 
> This is the code:
> 
> =========================================================================
> sigma = 1.5;             # utility parameter
> delta = 0.1;             # depreciation rate
> beta = 0.95;             # discount factor
> alpha = 0.30;            # capital elasticity of output
> nbk = 1000;              # number of data points in t
> crit = 1;                # convergence criterion
> epsi = 1e-6;             # convergence parameter
> ks = ((1-beta*(1-delta))/(alpha*beta))^(1/(alpha-1));
> dev = 0.9;               # maximal deviation from ste
> kmin = (1-dev)*ks;       # lower bound on the grid
> kmax = (1+dev)*ks;       # upper bound on the grid
> dk = (kmax-kmin)/(nbk-1);          # implied increment
> kgrid = linspace(kmin,kmax,nbk)';  # builds the grid
> v = zeros(nbk,1);                  # value function
> dr = zeros(nbk,1);                 # decision rule (will contain indices)
> 
> while crit > epsi;
>     for i = 1:nbk
> 
>         #compute indexes for which consumption is positive
>         tmp = (kgrid(i)^alpha+(1-delta)*kgrid(i)-kmin);
>         imax = min(floor(tmp/dk)+1,nbk);
> 
>         #consumption and utility
>         c = kgrid(i)^alpha+(1-delta)*kgrid(i)-kgrid(1:imax);
>         util = (c.^(1-sigma)-1)/(1-sigma);
> 
>         # find value function
>         (tv(i),dr(i)) = max(util+beta*v(1:imax));
>     end;
> 
>     crit = max(abs(tv-v));          # Compute convergence criterion
>     v = tv;                         # Update the value function
> end
> 
> # Final solution
> 
> kp = kgrid(dr);
> c = kgrid.^alpha+(1-delta)*kgrid-kp;
> util= (c.^(1-sigma)-1)/(1-sigma);
> ======================================================================
> 
> It gives me the following error: ERROR: invalid assignment location
> 

Reply via email to