This repository has been archived on 2021-05-17. You can view files and clone it, but cannot push or open issues or pull requests.
scientificComputing/regression/code/errorGradient.m

37 lines
1.1 KiB
Matlab

% x, y, slopes, and intercepts from exercise 8.3
slopes = -5:0.25:5;
intercepts = -30:1:30;
error_surface = zeros(length(slopes), length(intercepts));
for i = 1:length(slopes)
for j = 1:length(intercepts)
error_surf(i,j) = meanSquaredError([slopes(i), intercepts(j)], x, y);
end
end
error_surface = zeros(length(slopes), length(intercepts));
gradient_m = zeros(size(error_surface));
gradient_b = zeros(size(error_surface));
for i = 1:length(slopes)
for j = 1:length(intercepts)
error_surface(i,j) = meanSquaredError([slopes(i), intercepts(j)], x, y);
grad = meanSquaredGradient([slopes(i), intercepts(j)], x, y);
gradient_m(i,j) = grad(1);
gradient_b(i,j) = grad(2);
end
end
figure()
hold on
[N, M] = meshgrid(intercepts, slopes);
%surface(M, N, error_surface, 'FaceAlpha', 0.5);
contour(M, N, error_surface, 50);
quiver(M, N, gradient_m, gradient_b)
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')