close all clear m = 50; arange = linspace(0,1,m); brange = linspace(.5,1.5, m); [A,B] = meshgrid(arange, brange); E = 0*A; x = linspace(-5,5,20); y = .5*x + 1 + randn(1, length(x)); U = 0*A; V = 0*A; for i = 1:m for j = 1:m E(i,j) = lserr([A(i,j), B(i,j)], x, y); grad = lserr_gradient([A(i,j), B(i,j)], x, y); U(i,j) = grad(1); V(i,j) = grad(2); end end colormap('gray'); subplot(1,2,1); hold on surf(A,B,E, 'FaceAlpha',.5); shading interp pause subplot(1,2,2); plot(x,y,'ok'); %% t = linspace(-5,5,100); param0 = [1,1]; step = 0.01; param = param0; for i = 1:100 err = lserr(param, x, y); derr = lserr_gradient(param, x, y); subplot(1,2,1); plot3(param(1), param(2), err,'or'); subplot(1,2,2); hold off plot(x,y,'ok'); hold on plot(t, param(1)*t + param(2), '--k', 'LineWidth',2); pause(0.2); param = param - step*derr; end hold off