Lire, modifier ou créer un algorithme programmé en Python

Soit  $x>0$. D'après les propriétés de la fonction $\ln$, on a :

$ln\left(\sqrt{x}\right)=\dfrac{1}{2}ln(x)$, c'est-à-dire : $ln\left(x^{\frac{1}{2}}\right)=\dfrac{1}{2}ln(x)$. De même, $ln\left(x^{\frac{1}{4}}\right)=ln\left(\sqrt{\sqrt{x}}\right)=\dfrac{1}{2}ln\left(\sqrt{x}\right)=\dfrac{1}{4}ln(x)$.

En réitérant le procédé, on obtient : $ln\left(x^{\frac{1}{2^n}}\right)=\dfrac{1}{2^n}ln(x)$.\\

Pour $n$ suffisamment grand, $\dfrac{1}{2^n}ln(x)$ sera proche de 0, $ln\left(x^{\frac{1}{2^n}}\right)$ également et donc $x^{\frac{1}{2^n}}$ sera proche de 1.

Pour $x>0$ et $n$ assez grand, on peut écrire : $x^{\frac{1}{2^n}} = 1 + h$ (*), qui s'écrit aussi $h=x^{\frac{1}{2^n}} - 1 $ (**), avec $h$ proche de 0

or  $\displaystyle \lim_{h \to 0}  \dfrac{ln(1+h)}{h} =ln'(1)=\dfrac{1}{1}=1$ , on en déduit que lorsque $h$ est proche de 0 :

$ln(1+h) \approx h$, donc d'après (*) et (**) : $ln\left(x^{\frac{1}{2^n}}\right) \approx x^{\frac{1}{2^n}} - 1$ d'où : $\dfrac{1}{2^n}ln(x) \approx x^{\frac{1}{2^n}}-1$

d'où finalement : $ln(x) \approx 2^n \times \left(x^{\frac{1}{2^n}} - 1\right) $ pour $n$ suffisamment grand.

 

L'algorithme de Briggs consiste donc à calculer $\sqrt{\sqrt{...\sqrt{x}}}$ un nombre de fois $n$ assez grand pour approcher 1 à une précision $p$ donnée, retrancher 1 au résultat trouvé puis de multiplier ce dernier nombre par $2^n$. Il permet ainsi de déterminer une approximation de $ln(x)$.

1. Copier et coller le script suivant dans l’éditeur python

from math import *

def ln(?,?):
    n=?
    while abs(x-1) ? 10**(-p):
        n=n+1
        x=?
    return ?

 

2. Remplacer les "?" afin que le programme détermine une approximation du logarithme népérien par l'algorithme de Briggs

3. Tester votre script ainsi modifié en appelant la fonction ln()dans la console python

4. Envoyer le script à votre enseignant.