% Define environment (functions, gradients etc...) GivenEnv % Define parameters max_iter = 1000; % Maximum iterations tol = 1e-4; % Tolerance % Point x0 = (1, 1) % ========================================================================= point = 1; x0 = [5, -5]'; point_str = "[" + x0(1) + ", " + x0(2) + "]"; f = fun(x0); gf = grad_fun(x0); hf = hessian_fun(x0); fprintf('Initial point (%d, %d), f = %f, grad = [%f;%f], hessian = [%f %f ; %f %f]=> Method applicable\n', x0, f, gf, hf); for g=[0.1, 0.3, 0.5, 3, 5] gamma_fixed_step = g; [x_fixed, f_fixed, kk] = method_SteepDesc(fun, grad_fun, x0, tol, max_iter, 'fixed'); fprintf('Fixed step g=%f: Initial point (%f, %f), steps:%d, Final (x1,x2)=(%f, %f), f(x1,x2)=%f\n', g, x0, kk, x_fixed(:, end), f_fixed(end)); if g <= 1 plotPointsOverContour(x_fixed, fun, XSetLimmits(1, :), XSetLimmits(2, :), 100, point_str + ": Steepest descent $\gamma$ = " + gamma_fixed_step, ""); else plotPointsOverContour(x_fixed, fun, [-500, 500], [-500, 500], 100, point_str + ": Steepest descent $\gamma$ = " + gamma_fixed_step, ""); end end