Advertisement
Guest User

Untitled

a guest
Sep 3rd, 2015
71
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.22 KB | None | 0 0
  1. c_lo = 0;
  2. c_hi = A*k(1)^a;
  3. i = 0;
  4. dist_k = tol + 1;
  5. dist_c = tol + 1;
  6. while (i < I) & (dist_k > tol | dist_c > tol);
  7. c(1) = (c_lo + c_hi)/2;
  8. for t = 1:T-1;
  9. k(t+1) = del_t*(A*k(t)^a - d*k(t) - c(t)) + k(t);
  10. c(t+1) = del_t*c(t)/s*(a*A*k(t)^(a-1) - p - d) + c(t);
  11. if c(t+1) > A*k(t+1)^a
  12. c(t+1) = A*k(t+1)^a;
  13. elseif c(t+1) < 0
  14. c(t+1) = 0;
  15. end
  16. end
  17. if k(T) > k_ss & c(T) < c_ss
  18. c_lo = c(1);
  19. elseif k(T) < k_ss & c(T) < c_ss
  20. c_hi = c(1);
  21. elseif k(T) < k_ss & c(T) > c_ss
  22. c_hi = c(1);
  23. end
  24. dist_k = abs(k(T) - k(T-1));
  25. dist_c = abs(c(T) - c(T-1));
  26. i = i + 1;
  27. end
  28.  
  29. % differential equations with y(1) = k, y(2) = c
  30. dy = @(t,y) [A*y(1)^a - d*y(1) - y(2); ... % dk/dt;
  31. y(2)/s*(a*y(1)^(a-1) - p - d)]; % dc/dt
  32. % boundary conditions
  33. bc = @(y0,yT) [y0(1) - k0; % initial condition
  34. yT(2) - c_ss]; % terminal condition
  35.  
  36. solinit = bvpinit(linspace(0,T,10), [k0 c0]); % initital guess
  37. sol = bvp4c(dy, bc, solinit); % call solver
  38. t = linspace(0,T)'; % time axis
  39. y = deval(sol,t)'; % call solution values
  40. k = y(:,1); % transform variables
  41. c = y(:,2); % transform variables
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement