Question: Steepest Descent Method

Hello, My name is Kostas and I am new in the forum. I am new in Matlab as well. I am trying to get some advice in executing a code that I found on a book "Numerical Methods using Matlab". The code is as follows: function [xo,fo] = opt_steep(f,x0,TolX,TolFun,alpha0,MaxIter) % minimize the function f by the steepest descent method. %input: f = ftn to be given as a string ’f’ % x0 = the initial guess of the solution %output: x0 = the minimum point reached % f0 = f(x(0)) if nargin < 6, MaxIter = 100; end %maximum # of iteration if nargin < 5, alpha0 = 10; end %initial step size if nargin < 4, TolFun = 1e-8; end %|f(x)| < TolFun wanted if nargin < 3, TolX = 1e-6; end %|x(k)- x(k - 1)| fx1+TolFun & fx1 < fx2 - TolFun %fx0 > fx1 < fx2 den = 4*fx1 - 2*fx0 - 2*fx2; num = den - fx0 + fx2; %Eq.(7.1.5) alpha = alpha*num/den; x = x - alpha*g; fx = feval(f,x); %Eq.(7.1.9) break; else alpha = alpha/2; end end if k1 >= kmax1, warning = warning + 1; %failed to find optimum step size else warning = 0; end if warning >= 2|(norm(x - x0) < TolX&abs(fx - fx0) < TolFun), break; end x0 = x; fx0 = fx; end xo = x; fo = fx; if k == MaxIter, fprintf(’Just best in %d iterations’,MaxIter), end %nm714 f713 = inline('x(1)*(x(1) - 4 - x(2)) + x(2)*(x(2)- 1)','x'); x0 = [0 0], TolX = 1e-4; TolFun = 1e-9; alpha0 = 1; MaxIter = 100; [xo,fo] = opt_steep(f713,x0,TolX,TolFun,alpha0,MaxIter) The problem occurs on line 15 where the grad is not defined as the error message says in matlab. I would appreciate your help, if somebody more familiar can spot out where the problem is. Many Thanks BRs Kostas
Please Wait...