function h=esfera(Pe,R,rhoa,eps)
% Esta función calcula la porción sumergida de una esfera en agua
% ARGUMENTOS DE ENTRADA:
% rhoa: densidad del agua (especificada en gr/ml)
% Pe: peso de la esfera (en gramos)
% R: radio de la esfera (en cm)
% eps: error de aproximación
% SALIDA:
% h: altura (en cm) sumergida en el agua. 
% EJEMPLO DE LLAMADA:
% Para una esfera que pese 450 gramos, tenga un radio de 11 cm , siendo la
% densidad del agua de mar rhoa=1.026 gr/ml, para eps=1e-6:
% >> esfera(450,11,1.026,1e-6)
% se obtiene como resultado h=3.7844 cm.
%
    dif = @(h) rhoa*pi*h^2*(3*R-h)/3-Pe;
    densidad=Pe/((4/3)*pi*R^3);
    if densidad>rhoa
        disp('La esfera se hunde');
        h=NaN;
    else
        h0=0;
        h1=2*R;
        dh0=dif(h0);
        dh1=dif(h1);
        if dh0==0
            h=h0;
        elseif dh1==0
            h=h1;
        else
            hM=(h0+h1)/2
            dhM=dif(hM);
            while dhM~=0&abs(hM-h0)>=eps
              if sign(dhM)==sign(dh0)
                  h0=hM;
              else
                  h1=hM;
              end
              hM=(h0+h1)/2;
              dhM=dif(hM);
            end
            h=hM;
        end
    end
end