|
123456789101112131415161718192021222324252627282930313233343536 |
- % 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;
|