% biseccionP(f, a, b, e, N)
% dada f continua, que se supone que cambia de signo entre a y b
% devuelve un numero r:
% si |f(c)|< e antes de N pasos, entonces c = r
% si no, c = -inf
%
% Dibuja los puntos que va calculando
% esta funcion NO COMPRUEBA que f cambie de signo
function [c n] = biseccionP(f, a, b, e, N)
  % necesito dibujar sobre lo ya existente
  hold on
  % vale empezar en 1 o en 0, no pasa nada
  n = 1;
  c = (b + a)/2;
  yline(0);
  plot(c, 0, '*');
  line([c c],[0,f(c)],'Color','b');
  % valor absoluto: abs
  while (abs(f(c)) > e && n < N)
    if (f(c)*f(a) < 0)
      b = c;
    else
      a = c;
    end
    c = (b + a)/2;
    plot(c, 0, '*');
    line([c c],[0,f(c)],'Color','b');
    n = n + 1;
  end
  % OJO: lo contrario de n<N es n>=N
  if n >= N
    c = -inf;
  end
end
