.. py:module:: bolzano Bisecció ======== El `mètode de Bisecció `__ és una aplicació del teorema de Bolzano que permet trobar aproximacions de les arrels d'una funció :math:`f` contínua dins d'un interval on està definida la funció. Aquest mètode consisteix en dividir l'interval de la definició de la funció :math:`[a,b]` per la meitat i seleccionar el subinterval que conté l'arrel que estem buscant. Un interval conté l'arrel si es compleix que :math:`f(a) \cdot f(b) \,{<}\, 0`. El mètode acaba quan la funció :math:`f` avaluada en el centre :math:`{c}` de l'interval :math:`[a,b]` val zero. Per comprovar la igualtat d'un valor :math:`{c}` amb zero, cal usar una tolerància epsilon, és a dir :math:`\left|f(c)\right| \,{<}\; \epsilon` .. image:: biseccio.svg :align: center :width: 400 El teorema de Bolzano estableix que si :math:`f(a) \cdot f(b) \,{<}\, 0` i :math:`f` és contínua en :math:`[a,b]` existeix un valor, :math:`{c}`, contingut en :math:`[a,b]` tal que :math:`f(c) = 0`. Per tant, inicialment haurem de buscar dos valors :math:`a` i :math:`b` dins del domini de la funció, que compleixin l'esmentada propietat i que seran els límits de l'interval inicial de cerca de l'arrel. En el fitxer :file:`bolzano.py` (mòdul :py:mod:`bolzano`) dissenyeu la funció recursiva: .. py:function:: bisecció(f, a, b, eps) A partir de la funció contínua `f`, els límits de l'interval on hi ha l'arrel `a` i `b`, i l'error mínim d'aproximació que es vol aconseguir `eps`, retorna l'arrel d'`f` en l'interval :math:`[a, b]` calculada segons el mètode de bisecció amb una tolerància `eps`. Per exemple: .. literalinclude:: test-biseccio.txt :language: python :lines: 1-14 .. note:: Disposeu de jocs de proves addicionals al fitxer :download:`test-biseccio.txt`. .. rubric:: Solució Disposeu d'una solució al fitxer :download:`bolzano.py `.