function [x,y,z] = minimumSearch(u) global del g; del = 10e-6; tol = 10e-4; delta = tol +1; nmax = 10; n = 0; x = 0; y = 0; z = 0; g = u; fprintf('\n Iteration %d : error = %14.7e, objective = %14.7e ',n,max(abs(delta)),u(x,y,z)) while abs(norm(delta)) >= tol & n <= nmax n = n+1; delta = -f(x,y,z) / dfdx(x,y,z); x = x + delta(1); y = y + delta(2); z = z + delta(3); fprintf('\n Iteration %d : error = %14.7e, objective = %14.7e ',n,max(abs(delta)),u(x,y,z)) end end function f = f(x,y,z) global del g; gg = g(x,y,z); f(1) = (g(x+del,y,z) - gg)/del; f(2) = (g(x,y+del,z) - gg)/del; f(3) = (g(x,y,z+del) - gg)/del; end function dfdx = dfdx(x,y,z) global del g; ff = f(x,y,z); dfdx(1,:) = (f(x+del,y,z) - ff)/del; dfdx(2,:) = (f(x,y+del,z) - ff)/del; dfdx(3,:) = (f(x,y,z+del) - ff)/del; end