En tête general

(C) Copyright Franck CHEVRIER 2019-2020 http://www.python-lycee.com/

Pour exécuter une saisie Python, sélectionner la cellule et valider avec SHIFT+Entrée.

Algorithme de Briggs pour le calcul du logarithme

*Le but de l'activité est d'obtenir des valeurs approchées de logarithmes népérien à l'aide des opérations élémentaires et de la racine carrée.*

Sommaire

1. Principe de l'algorithme de Briggs
2. Implémentation en langage Python

1. Principe de l'algorithme de Briggs

On considère un réel $a>0$, et on souhaite évaluer $ln(a)$.



1.1. On pose $u_0=a$ et pour tout $n\in\mathbb{N}$, $u_{n+1}=\sqrt{u_n}$.
$\quad\;$a. Démontrer par récurrence que pour tout $n\in\mathbb{N}$, $u_n=e^{\;ln(a)/2^n}$.
$\quad\;$b. En déduire que $(u_n)_{n \geq 0}$ converge et que $\lim\limits_{n \to +\infty}{u_n}=1$

1.2.a. En calculant de deux façons le nombre dérivé de la fonction $ln$ en $1$, démontrer que $\lim\limits_{x \to 1}\frac{ln(x)}{x-1}=1$
$\quad\;$b. En déduire que $\lim\limits_{n \to +\infty}\frac{ln(u_n)}{u_n-1}=1$.
$\quad\;$c. Justifier que $2^n ln(u_n)=ln(a)$, et en déduire que pour $n$ suffisamment grand, on a $ln(a) \approx 2^n(u_n-1)$.

1.3. Dans cette question, on pose $a=2$.
$\quad\;$Recopier et compléter le tableau suivant jusqu'à obtenir une valeur $u_n$ telle que $\lvert u_n-1 \rvert<10^{-2}$ (c'est à dire $u_n$ "proche" de $1$).
$\quad\;$On pourra effectuer les calculs à la calculatrice ou à l'aide de la zone de saisie Python fournie plus bas.
$\quad\;$Quelle valeur approchée de $ln(2)$ peut-on en déduire ?

$n$ $u_n$ $\lvert u_n-1\rvert<10^{-2}$
0 2 Faux
1 1,414213562
2
........ ... ......................... ... ...............................
In [1]:
#Cette zone de saisie Python peut être utilisée pour le calcul des valeurs successives de la suite u
from math import sqrt #Cette syntaxe permet d'utiliser la fonction sqrt pour le calcul d'une racine carrée

2. Implémentation en langage Python

On considère un réel $a>0$ et un entier $m \in\mathbb{N}$, et on souhaite obtenir une valeur approchée de $ln(a)$ pour le rang $n$ tel que $\lvert u_n-1 \rvert<10^{-m}$.

2.1. Écrire une fonction Python Briggs qui reçoit en argument la valeur $a$ et l'entier $m$, et qui renvoie la valeur approchée de $ln(a)$ obtenue avec l'algorithme de Briggs.
La syntaxe from math import sqrt permet d'utiliser la fonction sqrt qui permet de calculer une racine carrée.
On peut utiliser la fonction abs pour le calcul d'une valeur absolue.

In [2]:
#Écrire ici la fonction Python Briggs
from math import sqrt


   

2.2. Utiliser la fonction Briggs avec $m=9$ pour obtenir une valeur approchée de $ln(2)$.

In [3]:
#Effectuer ici l'appel à la fonction Python Briggs
Out[3]:
0.6931471824645996

2.3. La syntaxe from math import log permet d'utiliser la fonction Python log qui correspond à la fonction mathématique $ln$.
$\quad\;$Effectuer une saisie pour obtenir la valeur de $ln(2)$. Vérifier la cohérence avec le résultat de la question précédente.

In [4]:
#Effectuer ici la saisie pour calculer ln(2)
from math import log
Out[4]:
0.6931471805599453

Table_logarithme

*La fonction étudiée dans ce TP est le logarithme népérien, mais c'est à l'aide de ce même algorithme que Henry Briggs a pu dresser des tables de la fonction logarithme décimal avec une précision de 14 décimales.*

Briggs

Henry Briggs (1560-1630)

(C) Copyright Franck CHEVRIER 2019-2020 http://www.python-lycee.com/