Model d’estabilització d’un medicament ====================================== Un medicament s’acumula progressivament al cos d’un pacient. La seva concentració augmenta cada dia segons un model que depen de la concentració del medicament al cos en el dia `n` (:math:`y_n`), un paràmetre que controla la taxa d'acumulació (:math:`k`) i la concentració incial del medicament (:math:`y_0`). .. math:: \begin{aligned} y_0 &= \text{concentració inicial}, \quad 0 < y_0 < 1 \\ y_{n+1} &= y_n + k \cdot y_n \cdot (1 - y_n) \end{aligned} Per exemple, si tenim una concentració inicial de :math:`0.4` i :math:`k=2`, els primers termes de la successió són: .. math:: \begin{align*} y_0 &= 0.4 \\ y_1 &= 0.88 \\ y_2 &= 1.0912 \\ y_3 &= 0.89216512 \\ \end{align*} Es considera que `la concentració s’ha estabilitzat` quan dos valors consecutius són iguals segons la tolerància donada: Dissenya la següent funció i desa-la al fitxer ``medicament.py``: .. py:function:: estabilitzacio(y0, k, epsilon) Retorna l'índex (el nombre de dies)) de l'últim terme de la succesió de concentració perquè arribi a un valor estable segons la tolerància ``epsilon``. :param float y0: Concentració inicial del medicament (0 < y0 < 1) :param float k: Paràmetre positiu d’acumulació :param float epsilon: Tolerància per considerar la concentració estable :return: Índex de l'últim terme de la successió perquè arribi a un valor estable segons *epsilon*. :rtype: int Els següents doctests mostren exemples del que ha de fer la funció: .. literalinclude:: test-estabilitzacio.txt :language: python3 :lines: 3-6 Disposeu de més tests al fitxer :download:`test-estabilitzacio.txt` Disposes de solucions al fitxer :download:`medicament.py`.