Méthode d’Archimède et encadrement de Pi

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 à π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 \pi \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(\alpha_n)=\frac{\frac{c_n}{2}}{R}$$soit:$$c_n=2R\sin(\alpha_n)=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(\alpha_n)=\frac{h_n}{R}=h_n.$$Par conséquent,$$k_n=\frac{1}{\cos(\alpha_n)}.$$

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 2\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 !