% x, y, slopes, intercepts, ii, ss, and error_surface from exercise 8.3 qslopes = 1.0:0.5:4.0; qintercepts = -150:50:150; gradient_m = zeros(length(qintercepts), length(qslopes)); gradient_b = zeros(length(qintercepts), length(qslopes)); for i = 1:length(qintercepts) for j = 1:length(qslopes) grad = meanSquaredGradient(x, y, [qslopes(j), qintercepts(i)]); gradient_m(i,j) = grad(1); gradient_b(i,j) = grad(2); end end figure() hold on contour(ss, ii, error_surface, 70); [qss, qii] = meshgrid(qslopes, qintercepts); quiver(qss, qii, gradient_m, gradient_b, 0.01) xlabel('Slope m') ylabel('Intercept b') zlabel('Mean squared error') %set(gcf, 'paperunits', 'centimeters', 'papersize', [15, 10.5], ... % 'paperposition', [0., 0., 15, 10.5]) %saveas(gcf, 'error_gradient', 'pdf')