37 lines
1.1 KiB
Matlab
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')
|