%
% Resolución de ecuación algebraica por el método de bisección.
%
epsilon = 1e-12;
x1 = 1;
x2 = 9;
%
sg1 = sign(expln(x1))
sg2 = sign(expln(x2))
%
if (sg1 == sg2)
  fprintf('Ambos signos iguales ??!!\n');
  return;
end
%
while (abs(x1 - x2) >= epsilon)
  x = (x1 + x2) / 2;
  sgx = sign(expln(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;
fprintf('Solución: x = %.12g\n', x);
