function x=grmerror(a,b,e) r=(sqrt(5)-1)/2; i=0; c=a+(1-r)*(b-a); d=a+r*(b-a); while (b-a)/2>e (b-a)/2; i=i+1; if fv(c)>fv(d) a=c; b=b; c=d; d=a+r*(b-a); else a=a; b=d; d=c; c=a+(1-r)*(b-a); endif endwhile i x=(a+b)/2 endfunction