On s’intéresse à l’équation : \[\begin{equation} x = -\ln(x) \end{equation}\]
d’inconnue \(x \in ]0;+\infty[\).
Montrer que cette équation admet une unique solution \(\ell \in \left[\frac{1}{10} ; 1\right]\).
On considère la méthode numérique définie ci après (où log permet de calculer le logarithme népérien) :
x0 = 0.5
maxiter = 1000
for i in range(maxiter):
x = - log(x)
print(x)
Expliquer pourquoi cette méthode n’est pas convergente.
Soit la fonction \(\varphi \colon x \mapsto e^{-x}\) définie sur \(\R_+^*\). Vérifier que \(\ell\) est un point fixe de la fonction \(\varphi\) puis que \(\varphi\left(\left[\frac{1}{10} ; 1\right]\right) \subset \left[\frac{1}{10} ; 1\right]\).
On considère une autre méthode numérique définie ci dessous :
x0 = 0.5
maxiter = 1000
for i in range(maxiter):
x = exp( - x)
print(x)
Démontrer que cette méthode converge vers la solution \(\ell\) de l’équation et donner l’ordre de convergence.
On souhaite approcher la solution \(\ell\) par la suite \((x_k)\) avec une précision donnée \(\varepsilon >0\), et donc arrêter les itérations lorsque cette précision est atteinte.
En se basant sur l’inégalité des accroissements finis, majorer le nombre d’itérations à réaliser.
Soit la fonction \(h \colon x \mapsto x - e^{-x}\). En complétant le programme ci-dessous, expliciter une méthode de Newton permettant de calculer \(\ell\).
x0 = 0.5
maxiter = 1000
for i in range(maxiter):
x = ...
print(x)