最速下降法步长,最速下降法 步长( 三 )


x1(i) = x1(i-1)-step*dir1/dir; % 新的x1
x2(i) = x2(i-1)-step*dir2/dir; % 新的x2
fval(i) = 2*x1(i)^2+0.3*x2(i)^2;
if(abs(fval(i) - fval(i-1)) < epsilon)
break;
end;
i=i+1;
end;
x1 = x1(1:i-1);
x2 = x2(1:i-1);
fval = fval(1:i-1);
% 可视化
X=-5:0.05:5;
Y=-5:0.05:5;
[X,Y] = meshgrid(X,Y);
Z = 2*X.^2+0.3*Y.^2;
surf(X,Y,Z);
shading interp
hold on;
plot3(x1, x2, fval, 'linewidth', 2, 'color', 'black');
hold off;
xlabel('x_1', 'fontsize', 16);
ylabel('x_2', 'fontsize', 16);
set(gca, 'fontsize', 12);