Loading [MathJax]/jax/output/CommonHTML/jax.js
Back
Close

Recueil d'exercices pour apprendre Python au lycée

M_C
300.8K views

Approximation de π par des polygones réguliers

Difficulté : Moyenne
Prérequis : Suites, Trigonométrie (pour les justifications)

Le but de cette page est de présentée la méthode d'Archimède pour approximer la valeur de π en utilisant des polygones réguliers inscrits dans le cercle.
L'idée est de considérer un cercle de rayon 1. Son périmètre est alors de 2π. Si on trace un polygone régulier inscrit dans ce cercle, avec un nombre de coté suffisamment grand, son périmètre devrait alors être proche de la valeur 2π. Image

Première méthode

En partant de la remarque précédente, nous allons donc calculer le périmètre d'un polygone régulier inscrit dans un cercle de rayon 1 en fonction de son nombre de côté pour obtenir une approximation de 2π puis diviser le résultat par 2 pour obtenir celle de π.

Question mathématique : On peut trouver sur Wikipédia que la mesure d'un côté d'un polygone à n côtés est c=2sin(πn).
Prouver le puis en déduire la valeur du périmètre en fonction de n.

Créer un programme utilisant la formule ci-dessus qui prend en entrée un entier n et donne en sortie une approximation de π. (Penser à diviser par 2 le périmètre !)

Première méthode
def ma_fonction(n):
# Ne pas toucher ce qui précède
# Les valeurs pour les variables en entrée seront automatiquement données
# Ecrire ci-dessous en n'oubliant pas d'indenter et d'utiliser return pour renvoyer un résultat
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

Remarques :

Cette première méthode était plus un échauffement informatique qu'une réelle méthode car elle est totalement abérrante : En effet, pour approximer π, on utilise une formule où il faut connaitre π ... Cependant c'est une méthode qui pourrait correspondre à un reflexe : on a une idée (utiliser les périmètres des polygones pour approximer celui du cercle), on cherche sur internet des formules déjà existantes et on les utilise dans notre programme. Comme python possède en mémoire une approximation de π, on ne se rend même pas compte du problème...


La méthode d'Archimède

L'idée d'Archimède est de partir d'un polygone régulier (par exemple le carré) et trouver un lien entre le périmètre de ce polygone et celui d'un polygone qui aurait deux fois plus de coté et aurait un sommet sur deux en commun avec le polygone précédent. Figure

Ainsi, si on part d'un carré, on va construire une suite de polygones ayant 4 cotés puis 8 puis 16... c'est à dire des puissances de 2. On notera, pour n>1, cn la longueur du polygone régulier à 2n cotés inscrits dans le cercle de rayon 1.

Question mathématique : Montrer qu'on a la relation de récurrence suivante, pour n>1 : cn+1=c2n4+(11c2n4)2.

Créer une fonction qui prend en entrée n et donne en sortie une approximation de π en utilisant cn pour calculer le demi-périmètre.

Remarques : Faire bien attention aux différents pièges : La suite commence par c2=2 et le nombre de côtés est 2n.

Première méthode
def ma_fonction(n):
# Ne pas toucher ce qui précède
# Les valeurs pour les variables en entrée seront automatiquement données
# Ecrire ci-dessous en n'oubliant pas d'indenter et d'utiliser return pour renvoyer un résultat
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

Approfondissement possibles

On ne peut pas dépasser 15 décimales de base en python mais il est possible d'importer des modules qui augmentent la précision des calculs. Faites des recherches sur internet pour trouver un module adapté puis créer un programme qui permet d'afficher les 100 premières décimales de π en utilisant la méthode d'Archimède.

Create your playground on Tech.io
This playground was created on Tech.io, our hands-on, knowledge-sharing platform for developers.
Go to tech.io
codingame x discord
Join the CodinGame community on Discord to chat about puzzle contributions, challenges, streams, blog articles - all that good stuff!
JOIN US ON DISCORD
Online Participants