"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()"
"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": "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 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()"
},
{
...
...
@@ -193,17 +129,11 @@
},
{
"cell_type": "code",
"execution_count": 31,
"execution_count": null,
"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"
}
],
"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))"
},
{
...
...
@@ -218,7 +148,7 @@
"trusted": true
},
"outputs": [],
"source": "# Afficher la fonction d'intérêt pour estimer la localisation \n# du point fixe\n"
"source": "# Afficher la fonction d'intérêt pour estimer la localisation \n# du/des point(s) fixe(s)\n\n"
},
{
"cell_type": "code",
...
...
@@ -227,7 +157,7 @@
"trusted": true
},
"outputs": [],
"source": "# Trouver le point fixe\n"
"source": "# Trouver le(s) point(s) fixe(s)\n"
},
{
"cell_type": "raw",
...
...
@@ -243,7 +173,7 @@
"cell_type": "code",
"execution_count": null,
"metadata": {
"trusted": false
"trusted": true
},
"outputs": [],
"source": ""
...
...
@@ -256,7 +186,30 @@
{
"cell_type": "markdown",
"metadata": {},
"source": "### Exercice 90\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\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."
"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": true
},
"outputs": [],
"source": "# Estimer graphiquement où se situe les solutions\n"
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"trusted": true
},
"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\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",
...
...
@@ -265,7 +218,7 @@
"trusted": true
},
"outputs": [],
"source": "# Afficher la fonction d'intérêt pour estimer la localisation \n# du point fixe\n\n"
"source": "# Afficher la fonction d'intérêt pour estimer la localisation \n# du/des point(s) fixe(s)\n\n"
},
{
"cell_type": "code",
...
...
@@ -274,7 +227,7 @@
"trusted": true
},
"outputs": [],
"source": "# Trouver le point fixe\n\n"
"source": "# Trouver le(s) point(s) fixe(s)\n\n"
},
{
"cell_type": "raw",
...
...
%% Cell type:markdown id: tags:
# Méthode du Point fixe
Soit $x \mapsto g(x)$ une fonction continue. Tout nombre réel $a$ tel que $g(a)=a$ est appelé **point fixe** de $g$.
Pour une valeur de démarrage $x_0$ donnée, la méthode qui consiste à construire la suite de nombres
est appelée **méthode itérative du point fixe**. La fonction $g$ est appelée fonction d'itération.
Dans 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)$.
## Motivation
La 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
$$ g(x) = x \Leftrightarrow f(x) + x = x \Leftrightarrow f(x) = 0. $$
Il 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.
## Interprétation graphique
Graphiquement les points fixes de $g$ sont situés sur l'intersection de la courbe $y=g(x)$ avec la droite $y=x$.
### Exemple
La fonction $g:x\mapsto x^2+2x-6$ possède deux point fixe en $x=-3$ et $x=2$.
Ce 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 id: tags:
``` python
importnumpyasnp
importmatplotlib.pyplotasplt
a,b=-6,6# l'intervalle sur lequel on trace le graphique
deff(x):
returnx**2+2*x-6
X=np.linspace(a,b,100)
Y=[f(x)forxinX]
fig,ax=plt.subplots()
plt.plot(X,Y)
plt.plot(X,X)
plt.xlim(a,b)
plt.ylim(-8,5)
ax.axhline(linewidth=2,color="k")
ax.axvline(linewidth=2,color="k")
plt.xticks(np.arange(a,b,step=1))
plt.yticks(np.arange(-8,5,step=1))
plt.grid(True)
plt.title("$h:x\mapsto x^2+2x-6$")
plt.show()
```
%% Output
%% Cell type:markdown id: tags:
## Etude de la convergence
A chaque itération on construit la prochaine valeur de la suite avec
$$x_{n}=g(x_{n-1})$$
Prenons 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
Donc 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).
Par 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.
!!! note Définition
Soit $a$ un point fixe d'une fonction $g$. On dit que le point fixe $a$ est **attractif** si $|g′(a)|<1$,tandisqu'ilestdit**répulsif**si$|g′(a)|>1$.
!!!
%% Cell type:markdown id: tags:
### Point fixe attractif en $x=a$ avec $0<g'(a)<1$
Prenons 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$.
Aprè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
mais comme $ 0< g'(\xi)\leq K <1$ et que $g(a) = a$ et $g(x_n)=x_{n+1}$ on a
$$ a - x_{n+1} < K \left( a - x_n \right)$$
Par récurrence, on peut montrer que
$$ a - x_{n+1} < K^n \left( a - x_0 \right)$$
Dans ce cas la suite $\left(x_{n}\right)_{n\in \mathbf{N}}$ va converger vers $a$. De plus si, $x_0<a$alorslasuiteserastrictementcroissantetandisquesi$x_0>a$ la suite sera strictement décroissante
#### Exemple avec $x_0 < a$
%% Cell type:code id: tags:
``` python
frommatplotlibimportpyplotasplt
defplot_point_fixe(f,x0,a,b,n=10):
'''
Permet d'afficher un graphique qui montre l'évolution des points
par la méthode du point fixe ou x_{n+1} := f(x_{n}) sur
l'intervalle [a,b]
Args:
- f (function) : la fonction pour laquelle on cherche un point fixe
- x0 (float) : le point de départ
- a (float) : le debut de l'intervalle sur lequel on affiche la fonction
- a (float) : la fin de l'intervalle sur lequel on affiche la fonction
- n (int) : le nombre d'itérations de la méthode du point fixe (par
défaut n vaut 100)
'''
X=np.linspace(a,b,100)# 100 points entre a et b
Y=[f(x)forxinX]
fig,ax=plt.subplots()
# calcul les coordonnées des points pour la méthode du point fixe
xs=[x0]
ys=[0]
foriinrange(1,2*n+1):
ifi%2==0:
xs.append(ys[-1])
ys.append(ys[-1])
else:
xs.append(xs[-1])
ys.append(f(xs[-1]))
ax.plot(xs,ys,'k--',lw=2.0)
ax.plot(X,X,'0.4',lw=2.0,)# affiche la droite y=x
ax.plot(X,Y,'r',lw=2.0)# affiche y=f(x
ax.set_xlabel('$x$')
ax.set_ylabel('$f(x)$')
ax.axhline(linewidth=2,color="k")
ax.axvline(linewidth=2,color="k")
plt.xlim(a,b)
plt.grid()
plt.show()
defg(x):
return8*x/(1+2*x)
plot_point_fixe(g,0.5,0,4)
```
%% Output
%% Cell type:markdown id: tags:
#### Exemple avec $x_0 > a$
%% Cell type:code id: tags:
``` python
frommathimportlog
defg(x):
returnlog(x)+1
plot_point_fixe(g,4,0.1,4.2)
```
%% Output
%% Cell type:markdown id: tags:
### Point fixe attractif en $x=a$ avec $-1<g'(a)<0$
Prenons 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$.
Comme auparavant on aura
$$ a - x_{n+1} = g'(\xi) \left(a - x_n \right)$$
mais 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
$$ \lvert a - x_{n+1} \rvert < \lvert K \rvert \cdot \lvert a - x_n \rvert$$
De même que
$$ \lvert a - x_{n+1} \rvert < \lvert K \rvert ^n \cdot \lvert a - x_0 \rvert$$
Par conséquent, on aura une suite convergente dont les termes vont osciller autour de $a$
%% Cell type:code id: tags:
``` python
defg(x):
return-8*x/(1+2*x+1)
plot_point_fixe(g,-3,-8,-2)
```
%% Output
%% Cell type:markdown id: tags:
### Point fixe répulsif en $x=a$ avec $g'(a)>1$
Prenons 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$.
Comme auparavant on aura
$$ a - x_{1} = g'(\xi) \left(a - x_0 \right)$$
mais ici $g'(\xi) \geq K > 1$. Donc à la première itération, on aura que le point $x_1$ s'éloigne de $a$ car
$$ \lvert a - x_{1} \rvert > \lvert K \rvert \cdot \lvert a - x_0 \rvert$$
Donc à 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$.
### Exemple de divergence
%% Cell type:code id: tags:
``` python
defg(x):
returnx**2+2*x-6
plot_point_fixe(g,2.1,-4,8,3)
```
%% Output
%% Cell type:markdown id: tags:
### Exemple d'une suite stationnaire
On 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 id: tags:
``` python
defg(x):
returnx**2+2*x-6
plot_point_fixe(g,-4,-5,3,3)
```
%% Output
%% Cell type:markdown id: tags:
## Influence de le fonction auxilaire $h$ dans la convergence
On 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$.
Si 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.
### Exemple
On 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 id: tags:
``` python
importnumpyasnp
importmatplotlib.pyplotasplt
frommathimportexp
defh(x):
returnexp(x)-x-3
defdh(x):
returnexp(x)-1
a,b=-6,6# l'intervalle sur lequel on trace le graphique
X=np.linspace(a,b,100)
Y=[h(x)forxinX]
DY=[dh(x)forxinX]
fig,ax=plt.subplots()
plt.plot(X,Y,label="y=h(x)")
plt.plot(X,X)
plt.plot(X,DY,label="y=h'(x)")
plt.xlim(a,b)
plt.ylim(-8,5)
ax.axhline(linewidth=2,color="k")
ax.axvline(linewidth=2,color="k")
plt.xticks(np.arange(a,b,step=1))
plt.yticks(np.arange(-8,5,step=1))
plt.grid(True)
plt.legend(loc="lower right")
plt.title("$h:x\mapsto e^x-x-3$")
plt.show()
```
%% Output
%% Cell type:markdown id: tags:
Prenons un choix différent pour $h$. Par exemple, on a
Donc 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.
*Remarque : pour tracer le graphique on a besoin de voir que $D_\hat{h} = ]-3/2, + \infty[$.*
%% Cell type:code id: tags:
``` python
importnumpyasnp
importmatplotlib.pyplotasplt
frommathimportlog
defh(x):
returnlog(2*x+3)
defdh(x):
return1/(2*x+3)
a,b=-1.49,6# l'intervalle sur lequel on trace le graphique
X=np.linspace(a,b,100)
Y=[h(x)forxinX]
DY=[dh(x)forxinX]
fig,ax=plt.subplots()
plt.plot(X,Y,label="y=h(x)")
plt.plot(X,X)
plt.plot(X,DY,label="y=h'(x)")
plt.xlim(a,b)
plt.ylim(-8,5)
ax.axhline(linewidth=2,color="k")
ax.axvline(linewidth=2,color="k")
plt.xticks(np.arange(a,b,step=1))
plt.yticks(np.arange(-8,5,step=1))
plt.grid(True)
plt.legend(loc="lower right")
plt.title("$h:x\mapsto \log(2x+3)$")
plt.show()
```
%% Output
%% Cell type:markdown id: tags:
Pour résumer un utilisera $h$ et $\hat{h}$ pour trouver les solutions de $e^x -2x-3=0$.
%% Cell type:code id: tags:
``` python
defpoint_fixe(h,x0,tol=0.001,iter_max=100):
'''
Cherche un point fixe x de la fonction h (i.e. un solution de h(x)=x)e
n utilisant la méthode itérative du point fixe
Args:
- f (function) : la fonction pour laquelle on cherche le point
fixe.
- x0 (float) : la valeur de démarrage de la méthode.
- tol (float) : l'erreur minimal à partir de laquelle on
arrête la recherche (|x_n-x_{n+1}|<tol).
Par défaut tol = 0.001
- iter_max(int): Le nombre d'itérations maximal dans le cas où
la méthode diverge ou converge trop lentement
return:
- x1(float) : une approximation du point fixe qui se trouve à
distance tol de la solution ou le iter_max termes
si la méthode diverge.
'''
x1=x0
for_inrange(iter_max):
x0=x1
x1=h(x0)
# print(x1)
# on stop la recherche si on est suffisament proche de la solution
ifabs(x0-x1)<tol:
returnx1
returnx1
print("il y a deux solution à l'équation ex eˣ -2x-3=0 ")
# première solution avec h
defh(x):
returnexp(x)-x-3
print("une première solution en x = ",point_fixe(h,-1))
# Deusième solution avec ĥ
defh(x):
returnlog(2*x+3)
print("une seconde solution en x = ",point_fixe(h,1))
```
%% Output
il y a deux solution à l'équation ex eˣ -2x-3=0
une première solution en x = -1.373799270699159
une seconde solution en x = 1.923729843806448
%% Cell type:markdown id: tags:
## Exercices
### Exercice 87
On 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).

En utilisant le calcul différentiel, répondre aux questions suivantes :
1. 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² ?
Quelle est son coût minimum ?
%% Cell type:code id: tags:
``` python
# Afficher la fonction d'intérêt pour estimer la localisation
# du point fixe
# du/des point(s) fixe(s)
```
%% Cell type:code id: tags:
``` python
# Trouver le point fixe
# Trouver le(s) point(s) fixe(s)
```
%% Cell type:raw id: tags:
Réponse: Le coût minumum d'une canette est de ... Fr et il faut que h=.... [cm] et r=....[cm]
%% Cell type:markdown id: tags:
2. Par souci d'écologie, le fabriquant aimerait construire cette canette avec un minimum d'aluminium. Est-ce compatible avec un coût minimum ?
# Définir une (ou plusieurs) fonction(s) h et utiliser la méthode
# du point fixe pour trouver les solutions de l'équation.
```
%% Cell type:markdown id: tags:
### Exercice 91
Un nageur se trouve à une distance de $0,57$ kilomètres du rivage et aimerait rejoindre sa cabane.
Il 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$.
Le nageur peut nager a une vitesse de $3\;km/h$ et marcher sur le rivage à une vitesse de $5km/h$.

On 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 id: tags:
``` python
# Afficher la fonction d'intérêt pour estimer la localisation
# du point fixe
# du/des point(s) fixe(s)
```
%% Cell type:code id: tags:
``` python
# Trouver le point fixe
# Trouver le(s) point(s) fixe(s)
```
%% Cell type:raw id: tags:
Réponse: La cabane de trouve à .... [km] du point $P$.