function [s, damp,sigma] = seek(xi,df) xo = xi(:); nv = length(xo); f = df(xo); s(1,:)=xo'; damp(1,1)=0; sigma(1,1)=norm(f); k=1; fprintf('%2s %10s %8s %8s\n','n','sigma','pmin','%step'); fprintf('%2d %10.4g\n',k,sigma(1,1)); for k=2:20 [A fz] = calculate_derivatives(df,xo); dv=-A\fz; [pmin fval]=fminbnd(@func,0,2,[],df,xo,dv); xo = xo+pmin*dv; f = df(xo); fval = norm(f); s(k,:)=xo'; damp(k,1)=pmin; sigma(k,1)=fval; fprintf('%2d %10.4g %8.4f %8.3f\n',k,fval,pmin,100.0*pmin*norm(dv)/norm(xo)); if (fval<1e-10) break; end end hold on; plot(s(:,1),s(:,2),'ko-','LineWidth',1.5); hold off;