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