diff --git a/zeros/point_fixe.ipynb b/zeros/point_fixe.ipynb
index 69f4b62311d5a780a9738009bb20f176827e504b..8f8ac98c91a507a64b572a4eae427d8d92122991 100644
--- a/zeros/point_fixe.ipynb
+++ b/zeros/point_fixe.ipynb
@@ -17,7 +17,7 @@
   {
    "cell_type": "markdown",
    "metadata": {},
-   "source": "## Etude de la convergence\n\nA chaque itération on construit la prochaine valeur de la suite avec \n\n$$x_{n}=g(x_{n-1})$$\n\nPrenons deux point successifs $x_{n-1}$ et $x_{n}$. Si la fonction est continument dérivable, on a que d'après le théorème des acroissements finis qu'il existe un point $\\xi$ dans l'intervalle délimité par $x_{n}$ et $x_{n-1}$ telle que\n\n$$\\frac{g\\left( x_{n}\\right)-g\\left( x_{n-1}\\right)}{x_{n}-x_{n-1}}=g'\\left( \\xi \\right)$$\n\nmais comme $g\\left( x_{n}\\right)=x_{n+1}$ et $g\\left( x_{n-1}\\right)=x_{n}$, on a \n\n$$\\frac{x_{n+1}-x_{n}}{x_{n}-x_{n-1}}=g'\\left( \\xi \\right)\n\\Leftrightarrow \nx_{n+1}-x_{n} = g'\\left( \\xi \\right)\\cdot  \\left( x_{n}-x_{n-1} \\right)\n$$\n\nSi on prend les valeurs absolu on aura l'égalité \n\n$$\\lvert x_{n+1}-x_{n} \\rvert = \\lvert g'\\left( \\xi \\right) \\rvert \\cdot \\lvert x_{n}-x_{n-1} \\rvert $$\n\nDonc si $\\lvert g'\\left( \\xi \\right) > 1 $ la distance entre $x_{n+1}$ et $x_{n}$ va augmenter (la suite va avoir tendance à diverger), tandis que si $\\lvert g'\\left( \\xi \\right) < 1 $ la distance entre $x_{n+1}$ et $x_{n}$ va dimunuer (la suite va avoir tendance à converger).\n\nPar conséquent, l'étude de $g'$ va nous permettre de déterminer si la suite $\\left(x_{n}\\right)_{n\\in \\mathbf{N}}$ converge ou pas.\n\n!!! note Définition\nSoit $a$ un point fixe d'une fonction $g$. On dit que le point fixe $a$ est **attractif** si $|g′(a)|<1$, tandis qu'il est dit **répulsif** si $|g′(a)|>1$.\n!!!\n"
+   "source": "## Etude de la convergence\n\nA chaque itération on construit la prochaine valeur de la suite avec \n\n$$x_{n}=g(x_{n-1})$$\n\nPrenons deux point successifs $x_{n-1}$ et $x_{n}$. Si la fonction est continument dérivable, on a que d'après le théorème des acroissements finis qu'il existe un point $\\xi$ dans l'intervalle délimité par $x_{n}$ et $x_{n-1}$ telle que\n\n$$\\frac{g\\left( x_{n}\\right)-g\\left( x_{n-1}\\right)}{x_{n}-x_{n-1}}=g'\\left( \\xi \\right)$$\n\nmais comme $g\\left( x_{n}\\right)=x_{n+1}$ et $g\\left( x_{n-1}\\right)=x_{n}$, on a \n\n$$\\frac{x_{n+1}-x_{n}}{x_{n}-x_{n-1}}=g'\\left( \\xi \\right)\n\\Leftrightarrow \nx_{n+1}-x_{n} = g'\\left( \\xi \\right)\\cdot  \\left( x_{n}-x_{n-1} \\right)\n$$\n\nSi on prend les valeurs absolu on aura l'égalité \n\n$$\\lvert x_{n+1}-x_{n} \\rvert = \\lvert g'\\left( \\xi \\right) \\rvert \\cdot \\lvert x_{n}-x_{n-1} \\rvert $$\n\nDonc si $\\lvert g'\\left( \\xi \\right) \\rvert > 1 $ la distance entre $x_{n+1}$ et $x_{n}$ va augmenter (la suite va avoir tendance à diverger), tandis que si $\\lvert g'\\left( \\xi \\right) \\rvert < 1 $ la distance entre $x_{n+1}$ et $x_{n}$ va dimunuer (la suite va avoir tendance à converger).\n\nPar conséquent, l'étude de $g'$ va nous permettre de déterminer si la suite $\\left(x_{n}\\right)_{n\\in \\mathbf{N}}$ converge ou pas.\n\n!!! note Définition\nSoit $a$ un point fixe d'une fonction $g$. On dit que le point fixe $a$ est **attractif** si $|g′(a)|<1$, tandis qu'il est dit **répulsif** si $|g′(a)|>1$.\n!!!\n"
   },
   {
    "cell_type": "markdown",
@@ -31,7 +31,7 @@
     "trusted": true
    },
    "outputs": [],
-   "source": "from matplotlib import pyplot as plt\n\n\ndef plot_point_fixe(f, x0, a, b, n =10):\n    '''\n    Permet d'afficher un graphique qui montre l'évolution des points\n    par la méthode du point fixe ou x_{n+1} :=  f(x_{n}) sur \n    l'intervalle [a,b]\n    Args:\n        - f (function) : la fonction pour laquelle on cherche un point fixe\n        - x0 (float)   : le point de départ\n        - a  (float)   : le debut de l'intervalle sur lequel on affiche la fonction\n        - a  (float)   : la fin de l'intervalle sur lequel on affiche la fonction\n        - n  (int)     : le nombre d'itérations de la méthode du point fixe (par\n                         défaut n vaut 100)\n    '''\n    X = np.linspace(a, b, 100) # 100 points entre a et b\n    Y = [f(x) for x in X]\n    \n    fig, ax = plt.subplots()\n    \n    # calcul les coordonnées des points pour la méthode du point fixe\n    xs = [x0]\n    ys = [0]\n    for i in range(1,2*n+1):\n        if i % 2 == 0:\n            xs.append(ys[-1])\n            ys.append(ys[-1])\n        else:\n            xs.append(xs[-1])\n            ys.append(f(xs[-1]))\n    ax.plot(xs, ys, 'k--', lw=2.0)\n\n    \n    ax.plot(X, X, '0.4', lw=2.0, ) # affiche la droite y=x\n    ax.plot(X, Y, 'r', lw=2.0) # affiche y=f(x\n    \n    ax.set_xlabel('$x$')\n    ax.set_ylabel('$f(x)$')\n    \n    ax.axhline(linewidth=2, color=\"k\")\n    ax.axvline(linewidth=2, color=\"k\")\n\n    plt.xlim(a, b)\n    \n    plt.grid()\n    plt.show()\n\n\ndef g(x):\n    return 8*x/(1 + 2*x)\n    \nplot_point_fixe(g, 0.5, 0, 4)"
+   "source": "from matplotlib import pyplot as plt\nimport numpy as np\n\n\ndef plot_point_fixe(f, x0, a, b, n =10):\n    '''\n    Permet d'afficher un graphique qui montre l'évolution des points\n    par la méthode du point fixe ou x_{n+1} :=  f(x_{n}) sur \n    l'intervalle [a,b]\n    Args:\n        - f (function) : la fonction pour laquelle on cherche un point fixe\n        - x0 (float)   : le point de départ\n        - a  (float)   : le debut de l'intervalle sur lequel on affiche la fonction\n        - a  (float)   : la fin de l'intervalle sur lequel on affiche la fonction\n        - n  (int)     : le nombre d'itérations de la méthode du point fixe (par\n                         défaut n vaut 100)\n    '''\n    X = np.linspace(a, b, 100) # 100 points entre a et b\n    Y = [f(x) for x in X]\n    \n    fig, ax = plt.subplots()\n    \n    # calcul les coordonnées des points pour la méthode du point fixe\n    xs = [x0]\n    ys = [0]\n    for i in range(1,2*n+1):\n        if i % 2 == 0:\n            xs.append(ys[-1])\n            ys.append(ys[-1])\n        else:\n            xs.append(xs[-1])\n            ys.append(f(xs[-1]))\n    ax.plot(xs, ys, 'k--', lw=2.0)\n\n    \n    ax.plot(X, X, '0.4', lw=2.0, ) # affiche la droite y=x\n    ax.plot(X, Y, 'r', lw=2.0) # affiche y=f(x\n    \n    ax.set_xlabel('$x$')\n    ax.set_ylabel('$f(x)$')\n    \n    ax.axhline(linewidth=2, color=\"k\")\n    ax.axvline(linewidth=2, color=\"k\")\n\n    plt.xlim(a, b)\n    \n    plt.grid()\n    plt.show()\n\n\ndef g(x):\n    return 8*x/(1 + 2*x)\n    \nplot_point_fixe(g, 0.5, 0, 4)"
   },
   {
    "cell_type": "markdown",
@@ -105,7 +105,7 @@
     "trusted": true
    },
    "outputs": [],
-   "source": "import numpy as np\nimport matplotlib.pyplot as plt\nfrom math import exp\n\ndef h(x):\n    return exp(x)-x-3\n\ndef dh(x):\n    return exp(x)-1\n\na, b = -6, 6 # l'intervalle sur lequel on trace le graphique\n\nX = np.linspace(a, b, 100)\nY = [h(x) for x in X]\nDY = [dh(x) for x in X]\n\nfig, ax = plt.subplots()\n\nplt.plot(X, Y, label=\"y=h(x)\")\nplt.plot(X, X)\nplt.plot(X, DY, label=\"y=h'(x)\")\nplt.xlim(a, b)\nplt.ylim(-8, 5)\n\nax.axhline(linewidth=2, color=\"k\")\nax.axvline(linewidth=2, color=\"k\")\n\nplt.xticks(np.arange(a, b, step=1))\nplt.yticks(np.arange(-8, 5, step=1))\n\nplt.grid(True)\n\nplt.legend(loc=\"lower right\")\n\nplt.title(\"$h:x\\mapsto e^x-x-3$\")\n\nplt.show()"
+   "source": "import numpy as np\nimport matplotlib.pyplot as plt\nfrom math import exp\n\ndef h(x):\n    return exp(x)-x-3\n\na, b = -6, 6 # l'intervalle sur lequel on trace le graphique\n\nX = np.linspace(a, b, 100) # le valeurs possibles de x pour le graphique\nY = [h(x) for x in X]# le images f(x)  pour le graphique\n\ndeltaX = 0.001 # pour calculer une approximation de la dérivée\nDY = [(h(x+deltaX)-h(x))/deltaX for x in X] # la dérivée de manière approximative\n\nfig, ax = plt.subplots()\n\nplt.plot(X, Y, label=\"y=h(x)\")\nplt.plot(X, X)\nplt.plot(X, DY, label=\"y=h'(x)\")\nplt.xlim(a, b)\nplt.ylim(-8, 5)\n\nax.axhline(linewidth=2, color=\"k\")\nax.axvline(linewidth=2, color=\"k\")\n\nplt.xticks(np.arange(a, b, step=1))\nplt.yticks(np.arange(-8, 5, step=1))\n\nplt.grid(True)\n\nplt.legend(loc=\"lower right\")\n\nplt.title(\"$h:x\\mapsto e^x-x-3$\")\n\nplt.show()"
   },
   {
    "cell_type": "markdown",
@@ -120,7 +120,7 @@
     "trusted": true
    },
    "outputs": [],
-   "source": "import numpy as np\nimport matplotlib.pyplot as plt\nfrom math import log\n\ndef h(x):\n    return log(2*x+3)\n\ndef dh(x):\n    return 1/(2*x+3)\n\na, b = -1.49, 6 # l'intervalle sur lequel on trace le graphique\n\nX = np.linspace(a, b, 100)\nY = [h(x) for x in X]\nDY = [dh(x) for x in X]\n\nfig, ax = plt.subplots()\n\nplt.plot(X, Y, label=\"y=h(x)\")\nplt.plot(X, X)\nplt.plot(X, DY, label=\"y=h'(x)\")\nplt.xlim(a, b)\nplt.ylim(-8, 5)\n\nax.axhline(linewidth=2, color=\"k\")\nax.axvline(linewidth=2, color=\"k\")\n\nplt.xticks(np.arange(a, b, step=1))\nplt.yticks(np.arange(-8, 5, step=1))\n\nplt.grid(True)\n\nplt.legend(loc=\"lower right\")\n\nplt.title(\"$h:x\\mapsto \\log(2x+3)$\")\n\nplt.show()"
+   "source": "import numpy as np\nimport matplotlib.pyplot as plt\nfrom math import log\n\ndef h(x):\n    return log(2*x+3)\n\na, b = -1.49, 6 # l'intervalle sur lequel on trace le graphique\n\nX = np.linspace(a, b, 100)\nY = [h(x) for x in X]\n\ndeltaX = 0.001 # pour calculer une approximation de la dérivée\nDY = [(h(x+deltaX)-h(x))/deltaX for x in X] # la dérivée de manière approximative\n\nfig, ax = plt.subplots()\n\nplt.plot(X, Y, label=\"y=h(x)\")\nplt.plot(X, X)\nplt.plot(X, DY, label=\"y=h'(x)\")\nplt.xlim(a, b)\nplt.ylim(-8, 5)\n\nax.axhline(linewidth=2, color=\"k\")\nax.axvline(linewidth=2, color=\"k\")\n\nplt.xticks(np.arange(a, b, step=1))\nplt.yticks(np.arange(-8, 5, step=1))\n\nplt.grid(True)\n\nplt.legend(loc=\"lower right\")\n\nplt.title(\"$h:x\\mapsto \\log(2x+3)$\")\n\nplt.show()"
   },
   {
    "cell_type": "markdown",
@@ -134,7 +134,7 @@
     "trusted": true
    },
    "outputs": [],
-   "source": "def point_fixe(h, x0, tol=0.001, iter_max=100):\n    '''\n    Cherche un point fixe x de la fonction h (i.e. un solution de h(x)=x)e\n    n utilisant la méthode itérative du point fixe\n    Args:\n      - f (function) : la fonction pour laquelle on cherche le point\n                         fixe.\n      - x0 (float)   : la valeur de démarrage de la méthode.\n      - tol (float)  : l'erreur minimal à partir de laquelle on\n                       arrête la recherche (|x_n-x_{n+1}|<tol).\n                       Par défaut tol = 0.001\n      - iter_max(int): Le nombre d'itérations maximal dans le cas où \n                       la méthode diverge ou converge trop lentement\n                       \n    return:\n        - x1(float) : une approximation du point fixe qui se trouve à\n                      distance tol de la solution ou le iter_max termes\n                      si la méthode diverge.\n    \n    '''\n    x1 = x0\n    for _ in range(iter_max):\n        x0 = x1\n        x1 = h(x0)\n        \n        # print(x1)\n        \n        # on stop la recherche si on est suffisament proche de la solution\n        if abs(x0-x1) < tol:\n            return x1\n\n    return x1\n\nprint(\"il y a deux solution à l'équation ex eˣ -2x-3=0 \")\n\n\n# première solution avec h\ndef h(x):\n    return exp(x)-x-3\n\nprint(\"une première solution en x = \",point_fixe(h, -1))\n\n# Deusième solution avec ĥ\ndef h(x):\n    return log(2*x+3)\n\nprint(\"une seconde solution en x = \",point_fixe(h, 1))"
+   "source": "def point_fixe(h, x0, tol=0.001, iter_max=100):\n    '''\n    Cherche un point fixe x de la fonction h (i.e. un solution de h(x)=x)e\n    n utilisant la méthode itérative du point fixe\n    Args:\n      - f (function) : la fonction pour laquelle on cherche le point\n                         fixe.\n      - x0 (float)   : la valeur de démarrage de la méthode.\n      - tol (float)  : l'erreur minimal à partir de laquelle on\n                       arrête la recherche (|x_n-x_{n+1}|<tol).\n                       Par défaut tol = 0.001\n      - iter_max(int): Le nombre d'itérations maximal dans le cas où \n                       la méthode diverge ou converge trop lentement\n                       \n    return:\n        - x1(float) : une approximation du point fixe qui se trouve à\n                      distance tol de la solution ou None \n                      si la méthode n'a pas convergé.\n    \n    '''\n    x1 = x0\n    for _ in range(iter_max):\n        x0 = x1\n        x1 = h(x0)\n        \n        # print(x1)\n        \n        # on stop la recherche si on est suffisament proche de la solution\n        if abs(x0-x1) < tol:\n            return x1\n\n    return None # si la méthode n'a pas convergé après iter_max itérations\n\nprint(\"il y a deux solution à l'équation ex eˣ-2x-3=0 \")\n\n\n# première solution avec h\ndef h(x):\n    return exp(x)-x-3\n\nprint(\"une première solution en x = \",point_fixe(h, -1))\n\n# Deusième solution avec ĥ\ndef h(x):\n    return log(2*x+3)\n\nprint(\"une seconde solution en x = \",point_fixe(h, 1))"
   },
   {
    "cell_type": "markdown",
diff --git a/zeros/point_fixe_corrige.ipynb b/zeros/point_fixe_corrige.ipynb
new file mode 100644
index 0000000000000000000000000000000000000000..0dc14701e844dbcae63921c34e779a5f1a9933b9
--- /dev/null
+++ b/zeros/point_fixe_corrige.ipynb
@@ -0,0 +1,442 @@
+{
+ "cells": [
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": "# Méthode du Point fixe\n\n\nSoit $x \\mapsto g(x)$ une fonction continue. Tout nombre réel $a$ tel que $g(a)=a$ est appelé **point fixe** de $g$.\n\nPour une valeur de démarrage $x_0$ donnée, la méthode qui consiste à construire la suite de nombres\n\n$$x_1 = g (x_0 ),\\ x_2 = g(x_1),\\ x_3 = g(x_2),\\ x_4 = g(x_3 ), \\ldots$$\n\nest appelée **méthode itérative du point fixe**. La fonction $g$ est appelée fonction d'itération.\n\nDans la suite nous allons montrer que si la suite  $\\left(x_{n}\\right)_{n\\in \\mathbf{N}}$ converge vers un nombre $a$, cela a pour conséquence que $g(a) = a$ (ceci est garanti uniquement si $g$ est continue), autrement dit que $a$ est une solution de l'équation $x = g(x)$.\n\n\n## Motivation\n\nLa résolution d'une équation du type ($f(x) = 0$ peut se ramener à la recherche d'un point fixe. En effet, on peut définir une fonction $ g $ telle que $g(x) = f(x) + x $. Si on trouve un point fixe $ x$  de $g $ alors par définition on a\n\n$$ g(x) = x \\Leftrightarrow f(x) + x = x \\Leftrightarrow f(x) = 0. $$\n\nIl est crucial de choisir une fonction $g$ non seulement pour reformuler le problème en termes de recherche de point fixe, mais aussi pour s'assurer que la méthode itérative converge ( voir plus bas.\n\n\n## Interprétation graphique\n\nGraphiquement les points fixes de $g$ sont situés sur l'intersection de la courbe $y=g(x)$ avec la droite $y=x$.\n\n### Exemple\nLa fonction $g:x\\mapsto x^2+2x-6$ possède deux point fixe en $x=-3$ et $x=2$.\n\nOn peut vérifier cette affirmation en résolvant \n$$g(x)=x \\Leftrightarrow x^2+2x-6=x \\Leftrightarrow x^2+x-6=0 \\Leftrightarrow (x-2)(x+3)=0 \\Leftrightarrow \\  x=2 \\text{ ou }x=-3$$\n\nCe sont bien les abscisses des point d'intersection de la courbe $y=g(x)$ avec la droite $y=x$, comme on peut le voir en exécutant le progragge suivant:"
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 1,
+   "metadata": {
+    "trusted": false
+   },
+   "outputs": [
+    {
+     "data": {
+      "application/javascript": "element.append(window._basthonBypassBus.pop(0));"
+     },
+     "metadata": {},
+     "output_type": "display_data"
+    }
+   ],
+   "source": "import numpy as np\nimport matplotlib.pyplot as plt\n\na, b = -6, 6 # l'intervalle sur lequel on trace le graphique\n\ndef f(x):\n    return x**2+2*x-6\n\nX = np.linspace(a, b, 100)\nY = [f(x) for x in X]\n\nfig, ax = plt.subplots()\n\nplt.plot(X, Y)\nplt.plot(X, X)\nplt.xlim(a, b)\nplt.ylim(-8, 5)\n\nax.axhline(linewidth=2, color=\"k\")\nax.axvline(linewidth=2, color=\"k\")\n\nplt.xticks(np.arange(a, b, step=1))\nplt.yticks(np.arange(-8, 5, step=1))\n\nplt.grid(True)\n\nplt.title(\"$h:x\\mapsto x^2+2x-6$\")\n\nplt.show()"
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": "## Etude de la convergence\n\nA chaque itération on construit la prochaine valeur de la suite avec \n\n$$x_{n}=g(x_{n-1})$$\n\nPrenons deux point successifs $x_{n-1}$ et $x_{n}$. Si la fonction est continument dérivable, on a que d'après le théorème des acroissements finis qu'il existe un point $\\xi$ dans l'intervalle délimité par $x_{n}$ et $x_{n-1}$ telle que\n\n$$\\frac{g\\left( x_{n}\\right)-g\\left( x_{n-1}\\right)}{x_{n}-x_{n-1}}=g'\\left( \\xi \\right)$$\n\nmais comme $g\\left( x_{n}\\right)=x_{n+1}$ et $g\\left( x_{n-1}\\right)=x_{n}$, on a \n\n$$\\frac{x_{n+1}-x_{n}}{x_{n}-x_{n-1}}=g'\\left( \\xi \\right)\n\\Leftrightarrow \nx_{n+1}-x_{n} = g'\\left( \\xi \\right)\\cdot  \\left( x_{n}-x_{n-1} \\right)\n$$\n\nSi on prend les valeurs absolu on aura l'égalité \n\n$$\\lvert x_{n+1}-x_{n} \\rvert = \\lvert g'\\left( \\xi \\right) \\rvert \\cdot \\lvert x_{n}-x_{n-1} \\rvert $$\n\nDonc si $\\lvert g'\\left( \\xi \\right) \\rvert > 1 $ la distance entre $x_{n+1}$ et $x_{n}$ va augmenter (la suite va avoir tendance à diverger), tandis que si $\\lvert g'\\left( \\xi \\right) \\rvert < 1 $ la distance entre $x_{n+1}$ et $x_{n}$ va dimunuer (la suite va avoir tendance à converger).\n\nPar conséquent, l'étude de $g'$ va nous permettre de déterminer si la suite $\\left(x_{n}\\right)_{n\\in \\mathbf{N}}$ converge ou pas.\n\n!!! note Définition\nSoit $a$ un point fixe d'une fonction $g$. On dit que le point fixe $a$ est **attractif** si $|g′(a)|<1$, tandis qu'il est dit **répulsif** si $|g′(a)|>1$.\n!!!\n"
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": "### Point fixe attractif en $x=a$ avec $0<g'(a)<1$\n\nPrenons un point fixe attractif en $x=a$ avec $0<g'(a)<1$. Supposons que l'on parte d'un point $x_0 $ qui se situe dans un voisinage $I$ de $a$ où $\\forall x \\in I $ on a $0<g'(x)\\leq K$ avec $0<K<1$.\n\nAprès chaque itération $x_n=f \\left( x_{n-1}\\right)$, d'après le théorème des acroissements finis, il existe un $\\xi$ dans l'intervalle délimité par $a$ et $x_n$ telle que\n\n$$  g(a) - g(x_n) = g'(\\xi) \\left(a - x_n \\right)$$\n\nmais comme $ 0< g'(\\xi)\\leq K <1$ et que $g(a) = a$ et $g(x_n)=x_{n+1}$ on a \n\n$$  a - x_{n+1} < K \\left( a - x_n \\right)$$\n\nPar récurrence, on peut montrer que \n\n$$  a - x_{n+1} < K^n \\left( a - x_0 \\right)$$\n\nDans ce cas la suite $\\left(x_{n}\\right)_{n\\in \\mathbf{N}}$ va converger vers $a$. De plus si, $x_0<a$ alors la suite sera strictement croissante tandis que si $x_0>a$ la suite sera strictement décroissante\n\n#### Exemple avec $x_0 < a$ "
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {
+    "trusted": false
+   },
+   "outputs": [],
+   "source": "from matplotlib import pyplot as plt\n\n\ndef plot_point_fixe(f, x0, a, b, n =10):\n    '''\n    Permet d'afficher un graphique qui montre l'évolution des points\n    par la méthode du point fixe ou x_{n+1} :=  f(x_{n}) sur \n    l'intervalle [a,b]\n    Args:\n        - f (function) : la fonction pour laquelle on cherche un point fixe\n        - x0 (float)   : le point de départ\n        - a  (float)   : le debut de l'intervalle sur lequel on affiche la fonction\n        - a  (float)   : la fin de l'intervalle sur lequel on affiche la fonction\n        - n  (int)     : le nombre d'itérations de la méthode du point fixe (par\n                         défaut n vaut 100)\n    '''\n    X = np.linspace(a, b, 100) # 100 points entre a et b\n    Y = [f(x) for x in X]\n    \n    fig, ax = plt.subplots()\n    \n    # calcul les coordonnées des points pour la méthode du point fixe\n    xs = [x0]\n    ys = [0]\n    for i in range(1,2*n+1):\n        if i % 2 == 0:\n            xs.append(ys[-1])\n            ys.append(ys[-1])\n        else:\n            xs.append(xs[-1])\n            ys.append(f(xs[-1]))\n    ax.plot(xs, ys, 'k--', lw=2.0)\n\n    \n    ax.plot(X, X, '0.4', lw=2.0, ) # affiche la droite y=x\n    ax.plot(X, Y, 'r', lw=2.0) # affiche y=f(x\n    \n    ax.set_xlabel('$x$')\n    ax.set_ylabel('$f(x)$')\n    \n    ax.axhline(linewidth=2, color=\"k\")\n    ax.axvline(linewidth=2, color=\"k\")\n\n    plt.xlim(a, b)\n    \n    plt.grid()\n    plt.show()\n\n\ndef g(x):\n    return 8*x/(1 + 2*x)\n    \nplot_point_fixe(g, 0.5, 0, 4)"
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": "#### Exemple avec $x_0 > a$"
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {
+    "scrolled": true,
+    "trusted": false
+   },
+   "outputs": [],
+   "source": "from math import log\n\ndef g(x):\n    return log(x)+1\n\nplot_point_fixe(g, 4, 0.1, 4.2)"
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": "### Point fixe attractif en $x=a$ avec $-1<g'(a)<0$\n\nPrenons un point fixe attractif en $x=a$ avec $-1<g'(a)<0$. Supposons que l'on parte d'un point $x_0 < a $ qui se situe dans un voisinage $I$ de $a$ où $\\forall x \\in I $ on a $K\\leq g'(x) < 0$ avec $-1<K<0$.\n\nComme auparavant on aura\n$$  a - x_{n+1} = g'(\\xi) \\left(a - x_n \\right)$$\n\nmais ici $ -1<K\\leq g'(\\xi)<0$. Donc à chaque itération, on aura que le signe de  $a - x_{n+1}$ va changer. Cepandant la convergence sera assuré car en prenant les valeurs absolu on aura\n\n$$ \\lvert a - x_{n+1} \\rvert  < \\lvert K \\rvert \\cdot \\lvert a - x_n \\rvert$$\n\nDe même que\n\n$$ \\lvert a - x_{n+1} \\rvert  < \\lvert K \\rvert ^n \\cdot \\lvert a - x_0 \\rvert$$\n\nPar conséquent, on aura une suite convergente dont les termes vont osciller autour de $a$"
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {
+    "scrolled": true,
+    "trusted": false
+   },
+   "outputs": [],
+   "source": "def g(x):\n    return -8*x/(1 + 2*x+1)\n    \nplot_point_fixe(g, -3, -8, -2)"
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": "### Point fixe répulsif en $x=a$ avec $g'(a)>1$\n\nPrenons un point fixe répulsif en $x=a$ ce qui veut dire que $\\lvert g'(a)\\rvert >1$. Supposons que l'on parte d'un point $x_0 $ qui se situe dans un voisinage $I$ de $a$ où $\\forall x \\in I $ on a $ g'(x) \\geq K$ avec $K>1$.\n\nComme auparavant on aura\n$$  a - x_{1} = g'(\\xi) \\left(a - x_0 \\right)$$\n\nmais ici $g'(\\xi) \\geq K > 1$. Donc à la première itération, on aura que le point $x_1$ s'éloigne de $a$ car\n\n$$ \\lvert a - x_{1} \\rvert  > \\lvert K \\rvert \\cdot \\lvert a - x_0 \\rvert$$\n\nDonc à priori, mis-à-part le cas où la suite devient stationnaire, c'est-à-dire si \"par chance\" on obtient un point $x_n$ où $f(x_n)$ la suite ne convergera pas vers $a$.\n\n### Exemple de divergence"
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {
+    "trusted": false
+   },
+   "outputs": [],
+   "source": "def g(x):\n    return x**2+2*x-6\n    \nplot_point_fixe(g, 2.1, -4, 8,3)"
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": "### Exemple d'une suite stationnaire\n\nOn reprend l'exemple de la fonction $g:x\\mapsto x^2+2x-6$ qui a deux points fixes $a=2$ et $a=-3$. Si on part de $x_0=-4$ alors $x_1 = \\underbrace{g(-4)}_{=2}$ est un point fixe."
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {
+    "trusted": false
+   },
+   "outputs": [],
+   "source": "def g(x):\n    return x**2+2*x-6\n    \nplot_point_fixe(g, -4, -5, 3,3)"
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {
+    "trusted": true
+   },
+   "source": "## Influence de le fonction auxilaire $h$ dans la convergence\n\nOn sait maintenant que pour que la métode itérative du point fixe converge, il faut que le point fixe $g(a)=a$ soit attractif, et que le point de départ $x_0$ soit situé dans un intervalle $I$ contenant $a$ tel que $\\lvert f'(x) \\rvert <1$ pout tout $x\\in I$.\n\nSi l'on souhaite résoudre un problème de recherche de zéro d'une fonction $f$ en utilisant la méthode du point fixe sur une foction $g$ définie à partir de $f$, alors on cherchera à construire $g$ de telle manière que la dérivée autour du point fixe soit, en valeur absolu, plus petite que 1. On peux par exemple tracer le graphique de $g$, $g'$ et de la droite $y=x$ pour estimer cette condition.\n\n### Exemple\n\nOn souaiterésoudre l'équation $e^x -2x-3=0$, ce qui est équivalent à trouver les zéros de $f:x\\mapsto e^x -2x-3$. Si on définit la fonction auxiliaire $g$ avec $g(x)=f(x)+x=e^x -x-3$, alors comme observé sur la représentation graphique ci-dessous, on aurra un point fixe répulsif en $x\\approx 1.9$ et un point fixe attractif en $x\\approx -1.5$."
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 1,
+   "metadata": {
+    "trusted": true
+   },
+   "outputs": [
+    {
+     "data": {
+      "application/javascript": "element.append(window._basthonBypassBus.pop(0));"
+     },
+     "metadata": {},
+     "output_type": "display_data"
+    }
+   ],
+   "source": "import numpy as np\nimport matplotlib.pyplot as plt\nfrom math import exp\n\ndef h(x):\n    return exp(x)-x-3\n\na, b = -6, 6 # l'intervalle sur lequel on trace le graphique\n\nX = np.linspace(a, b, 100) # le valeurs possibles de x pour le graphique\nY = [h(x) for x in X]# le images f(x)  pour le graphique\n\ndeltaX = 0.001 # pour calculer une approximation de la dérivée\nDY = [(h(x+deltaX)-h(x))/deltaX for x in X] # la dérivée de manière approximative\n\nfig, ax = plt.subplots()\n\nplt.plot(X, Y, label=\"y=h(x)\")\nplt.plot(X, X)\nplt.plot(X, DY, label=\"y=h'(x)\")\nplt.xlim(a, b)\nplt.ylim(-8, 5)\n\nax.axhline(linewidth=2, color=\"k\")\nax.axvline(linewidth=2, color=\"k\")\n\nplt.xticks(np.arange(a, b, step=1))\nplt.yticks(np.arange(-8, 5, step=1))\n\nplt.grid(True)\n\nplt.legend(loc=\"lower right\")\n\nplt.title(\"$h:x\\mapsto e^x-x-3$\")\n\nplt.show()"
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": "Prenons un choix différent pour $h$. Par exemple, on a \n\n$$e^x -2x-3=0 \\Leftrightarrow e^x =2x+3  \\Leftrightarrow x = \\ln \\left( 2x+3 \\right)$$\n\nDonc les solutions de l'équation sont les points fixes de la fonction $\\hat{h}:x\\mapsto \\ln \\left( 2x+3 \\right)$. La fonction $\\hat{h}$ possède les mêmes point fixe que $h$ mais comme on peut le voir sur le graphique ci-dessous, la situation est inversée. Le point fixe en $x\\approx 1.9$ est maintenant attractif tandi que le point fixe en $x\\approx -1.5$ est devenu répulsif.\n\n\n*Remarque : pour tracer le graphique on a besoin de voir que $D_\\hat{h} = ]-3/2, + \\infty[$.*"
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 19,
+   "metadata": {
+    "scrolled": true,
+    "trusted": true
+   },
+   "outputs": [
+    {
+     "data": {
+      "application/javascript": "element.append(window._basthonBypassBus.pop(0));"
+     },
+     "metadata": {},
+     "output_type": "display_data"
+    }
+   ],
+   "source": "import numpy as np\nimport matplotlib.pyplot as plt\nfrom math import log\n\ndef h(x):\n    return log(2*x+3)\n\na, b = -1.49, 6 # l'intervalle sur lequel on trace le graphique\n\nX = np.linspace(a, b, 100)\nY = [h(x) for x in X]\n\ndeltaX = 0.001 # pour calculer une approximation de la dérivée\nDY = [(h(x+deltaX)-h(x))/deltaX for x in X] # la dérivée de manière approximative\n\nfig, ax = plt.subplots()\n\nplt.plot(X, Y, label=\"y=h(x)\")\nplt.plot(X, X)\nplt.plot(X, DY, label=\"y=h'(x)\")\nplt.xlim(a, b)\nplt.ylim(-8, 5)\n\nax.axhline(linewidth=2, color=\"k\")\nax.axvline(linewidth=2, color=\"k\")\n\nplt.xticks(np.arange(a, b, step=1))\nplt.yticks(np.arange(-8, 5, step=1))\n\nplt.grid(True)\n\nplt.legend(loc=\"lower right\")\n\nplt.title(\"$h:x\\mapsto \\log(2x+3)$\")\n\nplt.show()"
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": "Pour résumer un utilisera $h$ et $\\hat{h}$ pour trouver les solutions de $e^x -2x-3=0$."
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 22,
+   "metadata": {
+    "trusted": true
+   },
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": "il y a deux solution à l'équation ex eˣ-2x-3=0 \nune première solution en x =  -1.373799270699159\nune seconde solution en x =  1.923729843806448\n"
+    }
+   ],
+   "source": "def point_fixe(h, x0, tol=0.001, iter_max=100):\n    '''\n    Cherche un point fixe x de la fonction h (i.e. un solution de h(x)=x)e\n    n utilisant la méthode itérative du point fixe\n    Args:\n      - f (function) : la fonction pour laquelle on cherche le point\n                         fixe.\n      - x0 (float)   : la valeur de démarrage de la méthode.\n      - tol (float)  : l'erreur minimal à partir de laquelle on\n                       arrête la recherche (|x_n-x_{n+1}|<tol).\n                       Par défaut tol = 0.001\n      - iter_max(int): Le nombre d'itérations maximal dans le cas où \n                       la méthode diverge ou converge trop lentement\n                       \n    return:\n        - x1(float) : une approximation du point fixe qui se trouve à\n                      distance tol de la solution ou None \n                      si la méthode n'a pas convergé.\n    \n    '''\n    x1 = x0\n    for _ in range(iter_max):\n        x0 = x1\n        x1 = h(x0)\n        \n        # print(x1)\n        \n        # on stop la recherche si on est suffisament proche de la solution\n        if abs(x0-x1) < tol:\n            return x1\n\n    return None # si la méthode n'a pas convergé après iter_max itérations\n\nprint(\"il y a deux solution à l'équation ex eˣ-2x-3=0 \")\n\n\n# première solution avec h\ndef h(x):\n    return exp(x)-x-3\n\nprint(\"une première solution en x = \",point_fixe(h, -1))\n\n# Deusième solution avec ĥ\ndef h(x):\n    return log(2*x+3)\n\nprint(\"une seconde solution en x = \",point_fixe(h, 1))"
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": "## Exercices\n\n### Exercice 87\nOn désire fabriquer une canette en aluminium qui ait la forme d’un cylindre circulaire droit de hauteur h et de rayon r fermé aux deux extrémités, d'un volume de 33 cl (voir les figures).\n\n![Image de canette](https://githepia.hesge.ch/info_sismondi/3AM.OS/-/raw/main/zeros/figures/fig_canette.png)\n\nEn utilisant le calcul différentiel, répondre aux questions suivantes :\n\n1. Quelles sont les cotes h et r en cm qui minimisent le coût de la canette si l'aluminium employé pour les disques coûte 0,002 Fr/cm2 et celui utilisé pour le cylindre circulaire droit, 0,001 Fr/cm² ?\n\n    Quelle est son coût minimum ?"
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": "**Correction**\n\nOn veut exprimer le coût en fonction des dimensions de la nanette \n\n$$C = \\frac{2}{1000}2\\pi r^2 + \\frac{1}{1000}2\\pi r h$$\n\nPour exprimer ce coût comme une fonction d'une variable on utilisa la contrainte que les canettes doivent avoir toutes le même volume de 330 cm³. Comme le volume est donné par $V = \\pi \\cdot r^2 \\cdot h$, on peut exprimer $h$ en fonction de $r$ :\n\n$$ 330 = \\pi \\cdot r^2 \\cdot h \\Leftrightarrow h = \\frac{330}{\\pi \\cdot r^2}$$\n\nSi on substitue $h = \\frac{330}{\\pi \\cdot r^2}$ dans l'expression de $C$, on a\n\n$$C=\\frac{2}{1000}2\\pi r^2 + \\frac{1}{1000}2\\pi r \\frac{330}{\\pi \\cdot r^2} =\\frac{\\pi r^2}{250} + \\frac{330}{500r}\n=\\frac{2\\pi r^3 + 330}{500\\cdot r}$$\n\nOn va chercher à minimiser un fonction $f:\\mathbb{R}_+ ^* \\rightarrow \\mathbb{R}_+ ^*$ définie par\n\n$$ f(r)= \\frac{2\\pi r^3 + 330}{500\\cdot r}$$\n\nSont graphique est représentée ci-dessous:"
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 17,
+   "metadata": {
+    "trusted": true
+   },
+   "outputs": [
+    {
+     "data": {
+      "application/javascript": "element.append(window._basthonBypassBus.pop(0));"
+     },
+     "metadata": {},
+     "output_type": "display_data"
+    }
+   ],
+   "source": "from math import pi\nimport numpy as np\nimport matplotlib.pyplot as plt\n\na, b = 0, 6 # l'intervalle sur lequel on trace le graphique\n\ndef f(r):\n    return (2*pi* r**3 + 330)/(500* r)\n\nX = np.linspace(a, b, 100)\n#Y = [f(x) for x in X]\n\nfig, ax = plt.subplots()\n\nplt.plot(X, Y)\n#plt.plot(X, X)\nplt.xlim(a, b)\nplt.ylim(-8, 5)\n\nax.axhline(linewidth=2, color=\"k\")\nax.axvline(linewidth=2, color=\"k\")\n\nplt.xticks(np.arange(a, b, step=1))\nplt.yticks(np.arange(-8, 5, step=1))\n\nplt.grid(True)\n\nplt.title(r'$f:x\\mapsto \\frac{2\\pi r^3 + 330}{500\\cdot r}$')\n\nplt.show()\n"
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": "On remarque que sont minimun se situe autour du point $x=3$. Le minumum se situe là où la dérivée s'annule. On va utiliser la méthode du point fixe pour trouver un zéro de la dérivée.\n\nL'expression de la dérivée de $f$ vaut \n\n$$f'(r) = \\left( \\frac{2\\pi r^3 + 330}{500\\cdot r} \\right)'\n= \\frac{\\left( 2\\pi r^3 \\right)' \\cdot \\left( 500\\cdot r\\right) - \\left( 2\\pi r^3 \\right) \\cdot \\left( 500\\cdot r\\right)' }{\\left( 500\\cdot r\\right)^2} \n= \\frac{ 6\\pi r^2  \\cdot \\left( 500\\cdot r\\right) - \\left( 2\\pi r^3 \\right) \\cdot 500 }{ 500 ^2 \\cdot r^2}\n= \\frac{ 2\\pi r^3-165 }{ 250 \\cdot r^2}\n$$\n\nDonc on cherche à trouver le zéro de $f'(r)$ autour du point $x_0 = 3$. Il faut transformer notre problème (recherche  de zéro) en un problème de recherche de point fixe avec la bonne fonction auxiliaire $h$. \n\n\n**Approche 1 :**\nOn définit la fonction $h$ avec $h(r)=f(r)+r$. La fonction $h$ avec sa dérivée est représentée ci-dessous :"
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 27,
+   "metadata": {
+    "trusted": true
+   },
+   "outputs": [
+    {
+     "data": {
+      "application/javascript": "element.append(window._basthonBypassBus.pop(0));"
+     },
+     "metadata": {},
+     "output_type": "display_data"
+    }
+   ],
+   "source": "# Afficher la fonction d'intérêt pour estimer la localisation \n# du/des point(s) fixe(s)\n\nimport numpy as np\nimport matplotlib.pyplot as plt\nfrom math import log\n\ndef h(r):\n    return (2*pi*r**3 - 165)/(250* r**2) + r\n\ndef dh(r):\n    ''' la dérivée de h '''\n    return 1/(2*x+3)\n\na, b = 1, 6 # l'intervalle sur lequel on trace le graphique\n\ndeltaX = 0.001\n\nX = np.linspace(a, b, 100)\nY = [h(x) for x in X]\nDY = [(h(x+deltaX)-h(x))/deltaX for x in X]\n\nfig, ax = plt.subplots()\n\nplt.plot(X, Y, label=\"y=h(x)\")\nplt.plot(X, X)\nplt.plot(X, DY, label=\"y=h'(x)\")\nplt.xlim(a, b)\nplt.ylim(-1, 5)\n\nax.axhline(linewidth=2, color=\"k\")\nax.axvline(linewidth=2, color=\"k\")\n\nplt.xticks(np.arange(a, b, step=1))\nplt.yticks(np.arange(-1, 5, step=1))\n\nplt.grid(True)\n\nplt.legend(loc=\"lower right\")\n\nplt.title(\"$h:r\\mapsto f(r) + r$\")\n\nplt.show()"
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": "Elle possède bien un point fixe autour de $x=3$ mais à ce point la dérivée est plus grande que 1 donc c'est un point répulsif et la méthode du point de ne va pas converger comme on peut le voir ci-dessous."
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 28,
+   "metadata": {
+    "trusted": true
+   },
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": "un point fixe en x= None\n"
+    }
+   ],
+   "source": "def h(r):\n    return (2*pi*r**3 - 165)/(250* r**2) + r\n\nx_min = point_fixe(h, 3, tol=0.001, iter_max=100)\n\nprint(\"un point fixe en x=\", x_min)"
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": "*Rappel : la fonction `point_fixe` retourne `None` si il n'y pas convergence*.\n\n**Approche 2 :** transfromer l'équation $f'(r)=0$ pour avoir une équation de la forme $h(r)=r$.\n\nOn a \n\n$$ \\begin{aligned}\nf'(r)= 0 &\\Leftrightarrow \\frac{ 2\\pi r^3-165 }{ 250 \\cdot r^2} = 0 \\\\\n&\\Leftrightarrow \\frac{ 2\\pi r }{ 250}-\\frac{ 165 }{ 250 \\cdot r^2} = 0\\\\\n&\\Leftrightarrow \\frac{ 2\\pi r }{ 250}=\\frac{ 165 }{ 250 \\cdot r^2}\\\\\n&\\Leftrightarrow r = \\frac{165}{2\\pi \\cdot r^2}\n\\end{aligned}$$\nCe qui suggère de prendre comme fonction auxiliaire la fonction $\\hat{h}$ définie par \n\n$$\n\\hat{h}(r)=\\frac{165}{2\\pi \\cdot r^2}\n$$\n\nLa fonction $\\hat{h}$ avec sa dérivée est représentée ci-dessous :"
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 41,
+   "metadata": {
+    "trusted": true
+   },
+   "outputs": [
+    {
+     "data": {
+      "application/javascript": "element.append(window._basthonBypassBus.pop(0));"
+     },
+     "metadata": {},
+     "output_type": "display_data"
+    }
+   ],
+   "source": "# Afficher la fonction d'intérêt pour estimer la localisation \n# du/des point(s) fixe(s)\n\nimport numpy as np\nimport matplotlib.pyplot as plt\nfrom math import log\n\ndef h(r):\n    return (165/(2*pi*r**2))\n\n\na, b = 1, 6 # l'intervalle sur lequel on trace le graphique\n\ndeltaX = 0.001\n\nX = np.linspace(a, b, 100)\nY = [h(x) for x in X]\nDY = [(h(x+deltaX)-h(x))/deltaX for x in X]\n\nfig, ax = plt.subplots()\n\nplt.plot(X, Y, label=\"y=h(x)\")\nplt.plot(X, X, label=\"y=x\")\nplt.plot(X, DY, label=\"y=h'(x)\")\nplt.xlim(a, b)\nplt.ylim(-8, 5)\n\nax.axhline(linewidth=2, color=\"k\")\nax.axvline(linewidth=2, color=\"k\")\n\nplt.xticks(np.arange(a, b, step=1))\nplt.yticks(np.arange(-8, 5, step=1))\n\nplt.grid(True)\n\nplt.legend(loc=\"lower right\")\n\nplt.title(r\"$ \\hat{h}:x\\mapsto \\frac{165}{2\\pi \\cdot r^2}$\")\n\nplt.show()"
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": "On remarque que $|\\hat{h}'(x)|>1$ au voisinage de 3, donc les point fixe est encore répulsif.\n\n**Approche 2 :** Autre transformation de l'équation.\n\nOn reprend la dernière égalité de $f'(x)$ et on propose une autre expression pour $r$ :\n\n$$\n r = \\frac{165}{2\\pi \\cdot r^2} \\Leftrightarrow r^2 = \\frac{165}{2\\pi \\cdot r}\n \\Leftrightarrow r = \\sqrt{\\frac{165}{2\\pi \\cdot r}}\n$$\n\nLa dernière équivalence à lieu car $r>0$.\n\nCette expression suggère de prendre comme fonction auxiliaire la fonction $\\tilde{h}$ définie par \n\n$$\n\\tilde{h}(r)=\\sqrt{\\frac{165}{2\\pi \\cdot r}}\n$$\n\nLa fonction $\\tilde{h}$ avec sa dérivée est représentée ci-dessous :"
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 40,
+   "metadata": {
+    "scrolled": true,
+    "trusted": true
+   },
+   "outputs": [
+    {
+     "data": {
+      "application/javascript": "element.append(window._basthonBypassBus.pop(0));"
+     },
+     "metadata": {},
+     "output_type": "display_data"
+    }
+   ],
+   "source": "# Afficher la fonction d'intérêt pour estimer la localisation \n# du/des point(s) fixe(s)\n\nimport numpy as np\nimport matplotlib.pyplot as plt\nfrom math import sqrt\n\ndef h(r):\n    return sqrt(165/(2*pi*r))\n\n\na, b = 1, 6 # l'intervalle sur lequel on trace le graphique\n\ndeltaX = 0.001\n\nX = np.linspace(a, b, 100)\nY = [h(x) for x in X]\nDY = [(h(x+deltaX)-h(x))/deltaX for x in X]\n\nfig, ax = plt.subplots()\n\nplt.plot(X, Y, label=\"y=h(x)\")\nplt.plot(X, X, label=\"y=x\")\nplt.plot(X, DY, label=\"y=h'(x)\")\nplt.xlim(a, b)\nplt.ylim(-8, 5)\n\nax.axhline(linewidth=2, color=\"k\")\nax.axvline(linewidth=2, color=\"k\")\n\nplt.xticks(np.arange(a, b, step=1))\nplt.yticks(np.arange(-8, 5, step=1))\n\nplt.grid(True)\n\nplt.legend(loc=\"lower right\")\n\nplt.title(r\"$\\tilde{h}:x\\mapsto \\sqrt{\\frac{165}{2\\pi \\cdot r}}$\")\n\nplt.show()"
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": "La fonction possède bien un point fixe autour de 3 car au voisinage de 3, on a $|\\tilde{h}'(x)| <1 $.\n\nDéterminons ce point fixe, ainsi les le coût minimum et les dimensions de la canette"
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 39,
+   "metadata": {
+    "scrolled": true,
+    "trusted": true
+   },
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": "Le point fixe est en r= 2.9723613396712794\nCe qui donne une hauteur h= 11.889425207849524\nPur un coût de  0.3330687107547926  Fr\n"
+    }
+   ],
+   "source": "def h(r):\n    return (165/(2*pi*r))**0.5\n\nr_min = point_fixe(h, 3, tol=0.00001, iter_max=100)\n\nprint(\"Le point fixe est en r=\", r_min)\nprint(\"Ce qui donne une hauteur h=\", 330/(pi * r_min**2))\nprint(\"Pur un coût de \",(2*pi* r_min**3 + 330)/(500* r_min), \" Fr\")\n"
+  },
+  {
+   "cell_type": "raw",
+   "metadata": {},
+   "source": "Réponse: Le coût minumum d'une canette est d'environ 0.33 Fr et il faut que h=11.89 [cm] et r=2.97 [cm] "
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": "2. Par souci d'écologie, le fabriquant aimerait construire cette canette avec un minimum d'aluminium. Est-ce compatible avec un coût minimum ? "
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": "**Réponse :**\n\nProbablement pas, car la fonction de coût sera différente, ce sera maintenant la surface $S$ qu'on veut minimiser et qui est donnée par\n\n$$\nS(r) = 2\\pi r^2 + 2\\pi r\\cdot h(r) = 2\\pi r^2 + \\frac{660}{  r}\n$$\n\nSon graphique est donné ci-dessous"
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 54,
+   "metadata": {
+    "scrolled": true,
+    "trusted": true
+   },
+   "outputs": [
+    {
+     "data": {
+      "application/javascript": "element.append(window._basthonBypassBus.pop(0));"
+     },
+     "metadata": {},
+     "output_type": "display_data"
+    }
+   ],
+   "source": "# Afficher la fonction d'intérêt pour estimer la localisation \n# du/des point(s) fixe(s)\n\nimport numpy as np\nimport matplotlib.pyplot as plt\nfrom math import sqrt\n\ndef h(r):\n    return 2*pi*r**2 + 660/r\n\n\na, b = 1, 6 # l'intervalle sur lequel on trace le graphique\n\ny_min, y_max = 0, 1000\n\ndeltaX = 0.001\n\nX = np.linspace(a, b, 100)\nY = [h(x) for x in X]\n\nfig, ax = plt.subplots()\n\nplt.plot(X, Y, label=\"y=S(x)\")\nplt.xlim(a, b)\nplt.ylim(y_min, y_max)\n\nax.axhline(linewidth=2, color=\"k\")\nax.axvline(linewidth=2, color=\"k\")\n\nplt.xticks(np.arange(a, b, step=1))\nplt.yticks(np.arange(y_min, y_max, step=50))\n\nplt.grid(True)\n\nplt.legend(loc=\"lower right\")\n\nplt.title(r\"$S:x\\mapsto 2\\pi r^2 + \\frac{660}{  r}$\")\n\nplt.show()"
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 49,
+   "metadata": {
+    "trusted": true
+   },
+   "outputs": [
+    {
+     "data": {
+      "text/plain": "265.5309649148734"
+     },
+     "execution_count": 49,
+     "metadata": {},
+     "output_type": "execute_result"
+    }
+   ],
+   "source": "2*pi*4**2 + 660/4"
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": "Sa dérivée vaut\n$$\nS'(r) = 4\\pi r - \\frac{660}{  r^2}  = \\frac{4\\pi r^3 - 660}{  r^2}\n$$\nPour avoir $S'(r)=0$, on a:\n\n$$S'(r)=0 \\Leftrightarrow \\frac{4\\pi r^3 - 660}{  r^2} = 0 \n\\Leftrightarrow 4\\pi r^3 - 660 = 0 \n\\Leftrightarrow  r^3 = \\frac{660}{4\\pi} \n\\Leftrightarrow r = \\sqrt[3]{\\frac{660}{4\\pi} }\n$$"
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 56,
+   "metadata": {
+    "scrolled": true,
+    "trusted": true
+   },
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": "Le minimum est en r =  3.744938504039213\nPour un coût de fabrication de  0.352475747886454 Fr\n"
+    }
+   ],
+   "source": "r_min = (660 / (4*pi))** (1/3) # pour la racine cubique on utilise puissance 1/3\nprint(\"Le minimum est en r = \", r_min)\n\n# le coût dans ce cas \nC = (2*pi* r_min**3 + 330)/(500* r_min)\n\nprint(\"Pour un coût de fabrication de \", C, \"Fr\")\n"
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": "**Le coût est supérieur.**"
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": "### Exercice 90\n\nEstimer, avec une précision de 6 chiffres après la virgule toutes les solutions de l'équation \n\n$$ x^3 = \\sqrt{x+2} .$$"
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {
+    "trusted": false
+   },
+   "outputs": [],
+   "source": "# Estimer graphiquement où se situe les solutions\n"
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {
+    "trusted": false
+   },
+   "outputs": [],
+   "source": "# Définir une (ou plusieurs) fonction(s) h et utiliser la méthode\n# du point fixe pour trouver les solutions de l'équation.\n"
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": "### Exercice 91\n\nUn nageur se trouve à une distance de $0,57$ kilomètres du rivage et aimerait rejoindre sa cabane.\n \nIl est positionné tel que le point $A$ est sa projection orthogonale sur le rivage et la distance séparant le point $A$ de la cabane est de $2,8\\; km$.\n\n\nLe nageur peut nager a une vitesse de $3\\;km/h$ et marcher sur le rivage à une vitesse de $5km/h$.\n\n![Image de nageur](https://githepia.hesge.ch/info_sismondi/3AM.OS/-/raw/main/zeros/figures/fig_nageur.png)\n\nOn souhaite déterminer à quelle distance de la cabane doit se trouver le point $P$, correspondant à l'endroit où le nageur doit sortir de l'eau, pour rejoindre la cabane en un minimum de temps."
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {
+    "trusted": false
+   },
+   "outputs": [],
+   "source": "# Afficher la fonction d'intérêt pour estimer la localisation \n# du/des point(s) fixe(s)\n\n"
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {
+    "trusted": false
+   },
+   "outputs": [],
+   "source": "# Trouver le(s) point(s) fixe(s)\n\n"
+  },
+  {
+   "cell_type": "raw",
+   "metadata": {},
+   "source": "Réponse: La cabane de trouve à .... [km] du point $P$."
+  }
+ ],
+ "metadata": {
+  "kernelspec": {
+   "display_name": "Python 3",
+   "language": "python",
+   "name": "python3"
+  }
+ },
+ "nbformat": 4,
+ "nbformat_minor": 2
+}