function x = bisecsolve(F, a, b)
%
% Resolución de ecuación algebraica por el método de bisección.
%
% Constantes
epsilon = 1e-12;
%
x1 = a;
x2 = b;
%
sg1 = sign(F(x1));
sg2 = sign(F(x2));
%
if (sg1 == sg2)
  fprintf('Ambos signos iguales ??!!\n');
  return;
end
%
while (abs(x1 - x2) >= epsilon)
  x = (x1 + x2) / 2;
  sgx = sign(F(x));
%  fprintf('x1=%16.14f x2=%16.14f x=%16.14f sg1=%2d sg2=%2d sgx=%2d\n', ...
%           x1, x2, x, sg1, sg2, sgx);
  if (sgx == sg1)
    x1 = x;
  elseif (sgx == sg2)
    x2 = x;
  else
    break;
  end
end
x = (x1 + x2) / 2;
end

