
Un programme possible est le suivant:

\begin{python}
from math import log

g = lambda x : x-(x+1)*(3*x-2+log(x+1))/(3*x+4)

u = 1
v = f(1)

while abs(u-v) > 10**(-12):
    u = v
    v = g(u)
    print(v)
\end{python}

Ici, la ligne \og \texttt{g = lambda x : x-(x+1)*(3*x-2+log(x+1))/(3*x+4)} \fg{} permet de définir une fonction $g$ telle que $g(x)=x-\dfrac{f(x)}{f'(x)}$ car $u_{n+1}=g(u_n)$. Mais on aurait pu aussi écrire :

\begin{python}
def g(x):
	return x-(x+1)*(3*x-2+log(x+1))/(3*x+4)
\end{python}

C'est d'ailleurs cette syntaxe que j'ai choisi d'adopter dans tous les autres programmes Python car elle est plus naturelle... Après tout, nous ne sommes pas en NSI !

On initialise ensuite deux termes consécutifs $u=u_0$ et $v=u_1$, puis on calcule les termes successifs tant que $|u-v|>10^{-12}$.

Le programme s'arrête assez vite (seulement 4 affichages !) et donne:

\begin{console}
0.5258167668648809
0.5258221966299376
0.5258221966316697
0.5258221966316697
\end{console}

Cela signifie que la convergence est très rapide (ce qui est d'ailleurs une caractéristique de la méthode de Newton).
