Output from Matlab: Code: clc; close all; clear all; format long; disp('Steepest Descent Method'); disp('============='); %Starting points x01=-1; x02=0; %Function F in Symbolic Format a='(x^2*y - 2*x*y^2 + 3*x*y + 4)'; %Insert the desired magnitude of final direction vector (0.0001 is fine) eserror=0.0001; %Leave the rest unchanged %================================= syms x y % Hessian Of F fprintf('Function = %s\n', a); A=[diff(diff(a,x),x),diff(diff(a,x),y);... diff(diff(a,y),x),diff(diff(a,y),y)]; %First Order Derivative of F B=[diff(a,x);diff(a,y)]; disp 'Hessian......'; pretty(simplify(A)) disp 'Gradient......'; pretty(simplify(B)) disp('Eigen Values'); [v,d]=eig(A); disp(d); num_of_iterations=1; syms alpha f=(subs(subs(a,x,x01),y,x02)); fprintf('f(x0)=%f\n',f); while (num_of_iterations<7) disp('_________________________________________'); fprintf('Iteration = %d\n', num_of_iterations); temp=(subs(subs(B,x,x01),y,x02)); fprintf('Gradient of X%d\n', num_of_iterations-1); disp(temp); temp4=([x01;x02]); fprintf('X%d =\n', num_of_iterations-1); disp(temp4); temp = temp4-alpha.*(temp); fprintf('X%d - alpha. gradient(X%d) =\n', num_of_iterations-1, num_of_iterations-1); disp(temp); f_alpha= subs(subs(a,x, temp(1,1)), y, temp(2,1)); fprintf('f(X%d - alpha. gradient(X%d)) =\n', num_of_iterations-1, num_of_iterations-1); disp(f_alpha); diff_f_alpha = diff(f_alpha,alpha); fprintf('diff(f(X%d - alpha. gradient(X%d)))/diff alpha =\n', num_of_iterations-1, num_of_iterations-1); disp(diff_f_alpha); alphaval=solve(diff_f_alpha, 'alpha'); alphaval2=eval(alphaval); if alphaval2<0 disp 'Diverges'; break; end newxkplus1 = [x01;x02]-alphaval2.*(subs(subs(B,x,x01),y,x02)); x01 = newxkplus1(1,1); x02 = newxkplus1(2,1); fprintf('x%d =\n',num_of_iterations); disp(newxkplus1) num_of_iterations=num_of_iterations+1; f=(subs(subs(a,x,x01),y,x02)); fprintf('f(x%d)=%f\n',num_of_iterations,f); end