Category ArchivePython

Marche aléatoire et Python

Dans un livre de spécialité Math niveau 1ère, j’ai vu un exercice assez intéressant, que je décide de vous exposer ici. Il concerne la marche aléatoire d’une puce dans un plan rapporté à un repère orthonormé.

Distance moyenne entre deux points aléatoires d’un carré

Considérons un carré de côté 1 et plaçons en son intérieur deux points de manière aléatoire, et intéressons-nous à la distance moyenne entre les deux points.

Différentes façons de calculer 1²+2²+…+n² en Python

La programmation, c’est comme l’amour : il y a plusieurs façons de pratiquer! Et aujourd’hui, j’avais envie d’explorer différentes façons de calculer la somme:$$S_n=1^2+2^2+\cdots+n^2=\sum_{k=1}^n k^2.$$

Déterminer une valeur approchée de Pi à l’aide des probabilités (méthode de Monte -Carlo sous Python)

\(\pi\) est la constante définie comme étant le rapport de la circonférence d’un cercle et de son diamètre. Et on arrive à démontrer que l’aire du disque défini par ce cercle est égale à : $$\mathcal{A}=\pi \times r^2.$$Nous allons voir dans cet article comme utiliser cette dernière égalité afin de trouver une valeur approchée de \(\pi\) en passant par les probabilités.

Mesure principale d’un angle avec Python

Dans les programmes de 1ère Spécialité Math, il est question de trigonométrie… Et c’est la période de l’année où les professeur.e.s peuvent aborder cette notion avec leurs élèves. J’ai donc voulu écrire un programme Python permettant de trouver la mesure principale d’un angle s’écrivant sous la forme \(\displaystyle\frac{a\pi}{b}\), c’est-à-dire la mesure comprise dans l’intervalle \(]-\pi;\pi]\) équivalente à celle donnée modulo \(2\pi\).

Un beau sapin de Noël en Python

Pour illustrer cette période de Noël, et pour rester tout de même dans la thématique de mon site, rien de tel qu’un code Python pour faire uh beau sapin de Noël… Mais là, je ne vous parle pas du sapin pourri du genre:

Sapin de Noël bien pourri

Créer un GIF avec \(\LaTeX\), Python et ImageMagick

Le résultat à obtenir

Dans un article précédent, je vous expliquais comment créer un GIF avec \(\LaTeX\), et avec une manipulation Gimp. Trouvant la dernière étape un peu… (comment dire pour rester poli ?) … pénible, je vous propose un combi \(\LaTeX\) + Python + ImageMagick.

Une enveloppe astroïdale obtenue en Python avec Turtle

L’enveloppe de cette famille de cercles est une astroïde

L’objectif de cet article est de construire cette suite de cercles rouges à l’aide de Python et de son module Turtle.

Approche mathématique

Avant toute chose, il est nécessaire de comprendre comment sont obtenus tous les cercles rouges.

Si on regarde et analyse bien la figure, les tracés suggèrent que pour un angle \(\alpha\) donné, exprimé en degré, on trace un segment d’origine O (si on se place dans un repère, c’est l’origine) et d’angle \(\alpha\), qui coupe l’un des côté du carré inscrit dans le cercle principal.

Prenons le côté en haut à droite (donc dans le cadran x > 0 et y > 0 si on se ramène à un repère). Il a pour équation \(y=-x+R\) si on considère que le cercle principal a pour rayon \(R\). Notons I le point d’intersection de la droite d’équation \(y = x\tan(\alpha)\), qui forme un angle de \(\alpha\) avec l’horizontale, avec le segment d’équation \(y=-x+R\). Alors, ses coordonnées vérifient:$$\begin{cases}y_I=-x_I+R\\y_I=x_I\tan(\alpha)\end{cases} $$Donc:$$x_I\tan(\alpha)=-x_I+R$$d’où:$$x_I=\frac{R}{\tan(\alpha)+R}.$$

Une fois les coordonnées de I connues, on calcule la longueur IM, où M est le point du cercle principal de coordonnées \(R\cos\alpha;R\sin\alpha)\), à l’aide de la formule vue en classe de Seconde:$$IM = \sqrt{(x_I-x_M)^2 + (y_I-y_M)^2}.$$On peut alors tracer le cercle de centre I et de rayon IM : c’est un des cercles rouges.

Avec Turtle

Il faut faire appel à quelques méthodes du module Turtle; inutile donc d’écrire:

from turtle import *

En effet, le mieux est de n’importer que les méthodes qui nous intéressent. Il en est de même pour le module math, où seules les méthodes sin, cos, tan et pi sont nécessaires (pour la racine carrée, on élève à la puissance 0.5).

On commence donc par tracer un cercle (avec Turtle, c’est un peu… comment dire poliment ? … je trouve pas ! Désolé !) en se déplaçant d’abord en bas de la fenêtre puis en traçant le cercle. Ensuite, on en profite pour tracer le carré inscrit dans le cercle (avec “goto”, comme le stylo est déjà baissé, ça trace les segments).

Maintenant, on fait une boucle itérative sur l’angle variant de 0 à 359. Si vous observez bien, je ne me suis pas embêté avec les cas où l’angle est égal à 90°, 180° et 270° car ça n’a que peu d’importance au final du point de vue visuel). En fait 180° ne pose pas de problème pour la tangente, mais peu importe… Ouais, je suis une grosse feignasse !…

Remarquez aussi que j’ai pris \(R=300\) car la fenêtre par défaut fait 800×800. “300” me semblait un bon compromis. Voilà donc le programme:

Alors là, les plus observateurs.trices. d’entre vous me diront : “t’es qu’un charlatant ! Le GIF n’est pas exactement ce que fait ce programme…” et c’est vrai ! C’est en fait un ancien GIF qui traînait sur mon disque dur… quand je vous disais que j’étais une grosse feignasse !

En attendant, si vous souhaitez télécharger le programme directement plutôt que de vous embêter à le réécrire à la main, c’est sur cette page.

Saut, parabole et physique

Cet article est principalement destiné aux élèves de 1ère Math Spécialité.

Parlons dans cet article de mathématiques, et plus précisément du second degré. Alors, vous allez me dire : “oui, mais bon ! C’est super simple, il suffit de connaître les formules et on sait tout faire.” Ce n’est pas totalement faux… mais ce n’est pas suffisant ! Il y a beaucoup de situations qui font intervenir le second degré, notamment ce problème…

Les classes en Python

Dans le programme de Terminale NSI, la notion de classes apparaît. En 1ère, on ne doit pas en parler car la Première est une classe d’initiation avancée. Comment se présente une classe ? Et en quoi peut-elle aider ? Voici quelques éléments de réponse.