Loading

Archimède, célèbre savant grec, a utilisé une astucieuse méthode afin d’encadrer le nombre pi (π). Nous allons voir cette méthode et l’utiliser pour écrire un programme Python permettant d’obtenir un tel encadrement.

Principe mathématique de la méthode d’Archimède pour encadrer pi

Introduction

Étant donné un cercle de centre O et de rayon R, on y inscrit un polygone régulier à n côtés. On construit alors un polygone à n côtés exinscrit à ce même cercle.

méthode d'Archimède pour encadrer pi
Exemple avec n = 6

Nous savons que le périmètre d’un cercle est égal à 2πR. Ainsi, en notant \(p_n\) le périmètre du polygone inscrit (rouge) et \(P_n\) celui du polygone exinscrit (vert), on a :$$p_n \leqslant 2\pi R \leqslant P_n.$$Il ne reste plus qu’à exprimer le périmètre des polygones…

Expression du périmètre du polygone inscrit

Polygone inscrit pour n = 6

Le polygone inscrit peut être divisé en n triangles isocèles en O (dans l’illustration, en 6 triangles isocèles de sommet O). Notons alors:

  • \(\alpha_n=\frac{360}{n}\) l’angle (exprimé en degrés) au sommet principal des triangles isocèles;
  • \(c_n\) la mesure des côtés opposés aux sommets principaux (côtés du polygone);
  • \(h_n\) la hauteur issue d’un sommet principal.

La hauteur \(h_n\) coupe le triangle isocèle en deux triangles rectangles; l’angle en O mesure alors \(\displaystyle\frac{\alpha_n}{2}=\frac{180}{n}\). On peut alors écrire:$$\sin\left(\frac{\alpha_n}{2}\right)=\frac{\frac{c_n}{2}}{R}$$soit:$$c_n=2R\sin\left(\frac{\alpha_n}{2}\right)=2R\sin\left(\frac{180}{n}\right).$$

En prenant R = 1 (par soucis de simplification), on obtient alors que le périmètre du polygone inscrit est :$$\boxed{p_n=2n\sin\left(\frac{180}{n}\right)}$$

Expression du périmètre du polygone exinscrit

méthode d'Archimède pour encadrer pi
Polygone exinscrit pour n = 6

Intuitivement, on peut penser que le polygone exinscrit est un agrandissement du polygone inscrit. Pour avoir le rapport d’agrandissement, il faut regarder la hauteur en orange \(h_n\) et la prolonger jusqu’au cercle: cela donne la hauteur d’un triangle isocèle découpé dans le polygone exinscrit.

Or, cette dernière hauteur est égale au rayon du cercle. Donc pour nous, cette hauteur vaut 1. Le rapport d’agrandissement est donc égal à :$$k_n=\frac{1}{h_n}.$$Or, dans le triangle rectangle que nous avons utilisé précédemment, on peut dire que:$$\cos\left(\frac{\alpha_n}{2}\right)=\frac{h_n}{R}=h_n.$$Par conséquent,$$k_n=\frac{1}{\cos\left(\frac{\alpha_n}{2}\right)}.$$

Le périmètre du polygone exinscrit est donc:$$P_n=k_n \times p_n$$soit:$$P_n=2n \sin \left( \frac{180}{n} \right) \times \frac{1}{ \cos \left( \frac{180}{n} \right) }$$que l’on peut aussi écrire:$$\boxed{P_n=2n\tan\left(\frac{180}{n}\right)}$$

Encadrement de pi

On peut alors déduire des calculs précédents que:$$ 2n \sin \left( \frac{180}{n} \right) \leqslant 2\pi \leqslant 2n\tan\left(\frac{180}{n}\right)$$En effet, le périmètre du cercle est \(2\pi R = 2\pi\times 1=2\pi\).

On peut simplifier par deux les membres de cet encadrement, ce qui donne :$$\boxed{n \sin \left( \frac{180}{n} \right) \leqslant \pi \leqslant n\tan\left(\frac{180}{n}\right)}$$

Méthode d’Archimède pour encadrer pi: programme Python

Voici un programme possible:

from math import sin, tan, radians

def archimede(p):
    a, b = 0, 1 # valeurs arbitraires
    n = 6
    while (b-a) > 10**(-p):
        a = n * sin( radians(180/n) )
        b = n * tan( radians(180/n) )
        n = n + 1
    return a,b

print (archimede(10))

La fonction archimede admet un entier pour argument: c’est la précision que l’on souhaite. Dans notre exemple, on veut un encadrement d’amplitude maximale \(10^{-10}\) donc on appelle archimede(10). Le retour est le suivant:

(3.1415926535564602, 3.1415926536564593)

Et n’oubliez pas que si vous avez des difficultés en maths, je peux vous aider par webcam !

3.5 13 votes
Évaluation de l'article
S’abonner
Notification pour
guest
3 Commentaires
Le plus ancien
Le plus récent Le plus populaire
Commentaires en ligne
Afficher tous les commentaires
Nedilko

Bonjour, j’aimerais savoir comment on passe de la méthode d’archimède au programme pyhton, je ne comprends pas vraiment la programmation. Merci !

Pierre

Attention, ce n’est pas vraiment la méthode d’Archimède !
En revanche, vous avez le principe: il faut calculer le périmètre des polygones…

En effet, les fonctions trigonométriques utilisent pi. Or, nous partons du principe que nous connaissons pas la valeur de pi ! Donc que les fonctions trigonométriques n’existent pas. C’est ce qu’Archimède à fait. Il est possible, via de multiples utilisation de Pythagore, de calculer 1 côté du polygone, puis de multiplier sa longueur par le nombre de côtés du polygone.

Archimède l’a fait et ça lui a pris du temps ! C’est une tâche qui semble fastidieuse au premier abord. Mais au jour d’aujourd’hui, il nous est possible d’accélérer le processus avec Python.

Il faut aussi savoir qu’il a trouvé que pi était compris dans intervalle: ]223/71; 22/7[.
Force est d’avouer que je n’ai pas effectué les calculs, pour avoir pris un polygone de 96 côtés, il a dû obtenir un encadrement qui diverge par rapport à celui véritablement attendu.
Il avait dû certainement faire des approximations de racine carrés et plusieurs troncatures / arrondis…

Dernière modification le 3 mois il y a par Pierre