You could also reformulate the code using Manipulate to enable you to choose and change parameters.
See http://community.wolfram.com/groups/-/m/t/270507 for how to format code and text.
z[j_, n_] := (z[j, n] =... memoizes values, so they will not be recomputed. Better would be to make ity an explicit function of all parameters it uses, e.g. z[j_, n_, c_,...] := (z[j, n, c, ...] =...
z[j_, n_] := (z[j, n] =...
z[j_, n_, c_,...] := (z[j, n, c, ...] =...