Fix the call to scipy.optimize.fmin_tnc such that it actually kind of works.  It currently gets stuck at local minima---is this just due to the fact that we're asking it to approximate the gradient?