function K = gradask(K0,phi) %del = 0.001; del0 = 1; K = K0; N = 1; %for t=1:1000 %while (N>0.00001) goN = 1; while goN K = K/max(abs(K)); nd = ndrat(K,phi); N = sum(abs(nd)); goN = (N>0.00001); if goN nd = nd(:); del = del0; y0 = myrat(K,phi); good = 0; K1 = K; while ~good K1 = K1 + del*nd; y1 = myrat(K1,phi); good = (y1>=y0); del = del/2; end K = K1; fprintf('|dK| = %1.9f \n',sum(abs(nd))); end end return