If you use ‘divide and conquer’ (I just put a post about it) you can now solve Carroll (1997) both faster and using much larger grids. Easily large enough to get very accurate MPCs
[Actually, LifeCycleModel_withze.m is just a lightly edited version of the Carroll (1997) example code. It is identical until you get to the step of solving the value function iteration, and then you can see how to use divide-and-conquer and that it gives the same solution.]