% Given environment clear; % Setup the function under test syms x [2 1] real; fexpr = (1/3)*x(1)^2 +3*x(2)^2; title_fun = "$f(x) = \frac{1}{3}{x_1}^2 + 3{x_2}^2$"; XSetLimmits = [-10, 5 ; -8, 12]; % Calculate the gradient and Hessian grad_fexpr = gradient(fexpr, x); % Gradient of f hessian_fexpr = hessian(fexpr, x); % Hessian of f % Convert symbolic expressions to MATLAB functions fun = matlabFunction(fexpr, 'Vars', {x}); % Function grad_fun = matlabFunction(grad_fexpr, 'Vars', {x}); % Gradient hessian_fun = matlabFunction(hessian_fexpr, 'Vars', {x}); % Hessian % Minimum reference [Xmin, Fmin] = fminsearch(fun, [-1, -1]'); Xmin = round(Xmin, 3); Fmin = round(Fmin, 3); % Amijo globals global amijo_beta; % Step reduction factor in [0.1, 0.5] (typical range: [0.1, 0.8]) global amijo_sigma; % Sufficient decrease constant in [1e-5, 0.1] (typical range: [0.01, 0.3]) %fixed step size globals global gamma_fixed_step global image_width, global image_height; image_width = 960; image_height = 640;