% data:
load('lin_regression.mat')

% gradient descent:
pstart = [-2. 10.];
[params, errors] = descent(x, y, pstart);

% lsqcurvefit:
line = @(p, x)  x.* p(1) + p(2);
cparams = lsqcurvefit(line, pstart, x, y);

% polyfit:
pparams = polyfit(x, y, 1);

% comparison:
fprintf('descent:     %6.3f  %6.3f\n', params(1), params(2));
fprintf('lsqcurvefit: %6.3f  %6.3f\n', cparams(1), cparams(2));
fprintf('polyfit:     %6.3f  %6.3f\n', pparams(1), pparams(2));