function Muller_2(fx,x0,x1,x2)
% Método de Muller      
%
 tol=eps('double');
 fx0=fx(x0); fx1=fx(x1); fx2=fx(x2); iter=1;
 while abs(fx2)>tol
    c=fx2; d0=x0-x2; d1=x1-x2; det=d0*d1*(x0-x1);
    b=(d0*d0*(fx1-fx2)-d1*d1*(fx0-fx2))/det;
    a=(d1*(fx0-fx2)-d0*(fx1-fx2))/det;
    di=sqrt(b*b-4*a*c);
    isig=1; if b<0 isig=-1; end
    z=(-2)*c/(b+isig*di);
    x3=x2+z;
    if abs(x3-x1)<abs(x3-x0)
       u=x1; x1=x0; x0=u;
       u=fx1; fx1=fx0; fx0=u;
    end
    if abs(x3-x2)<abs(x3-x1)
       u=x2; x1=u;
       u=fx2; fx1=u;
    end
    x2=x3; fx2=fx(x2);
    if ~isreal(x2)
       fprintf('%17.14f+%17.14fi %23.15f %4.0f\n',real(x2),imag(x2),fx2,iter);
    else
       fprintf('%17.15f %23.15e %4.0f\n',x2,fx2,iter);
    end
    iter=iter+1;
 end
end
