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;