function [params, errors] = descent(xdata, ydata, pstart) mingradient = 0.1; eps = 0.01; errors = []; params = pstart; count = 1; gradient = [100.0, 100.0]; while norm(gradient) > mingradient gradient = lsqGradient(params, xdata, ydata); errors(count) = lsqError(params, xdata, ydata); params = params - eps .* gradient; count = count + 1; end end