DM 2024-25 : ellipses#

Présentation du sujet#

Ce devoir contient deux parties relativement indépendantes, ayant pour thème commun les ellipses. Dans la première partie, on construit une ellipse passant par \(5\) points génériques du plan. Dans la seconde, on modélise le déplacement d’une boule dans un billard de forme elliptique.

Passons aux définitions formelles. Une ellipse est un cas particulier de conique. Une conique est une courbe du plan, qui a été historiquement introduite comme l’intersection d’un plan et d’un cône de révolution.

On distingue 3 familles principales de coniques (et quelques cas dégénérés). Ces familles se différencient par un paramètre réel positif appelé l’excentricité.

  1. Les hyperboles sont des coniques d’excentricité \(e > 1\), elles sont formées de deux branches infinies.

  2. Les paraboles sont des coniques d’excentricité \(e = 1\), elles sont formées d’une unique branche infinie.

  3. Les ellipses sont des coniques d’excentricité \(e < 1\), elles sont formées d’une branche de longueur finie.

Dans ce devoir, on s’intéressera uniquement au cas des ellipses.

Partie A : construction d’une conique passant par 5 points du plan#

L’objectif de cette partie est de réaliser concrètement, pour les ellipses, le théorème des cinq points de Pascal : « par cinq points génériques du plan passe une unique conique ».

Très généralement, une conique a pour équation cartésienne

\[ A x^2 + 2B xy + C y^2 + 2D x + 2E y + F = 0 \]

\((A, B, C, D, E, F)\) sont \(6\) paramètres réels dont au moins l’un des trois premiers est non-nul, et où \((x,y)\) est le couple abscisse/ordonnée d’un point de la conique.

Par exemple, le cercle unité d’équation \(x^2 + y^2 = 1\) est une conique de paramètres \((A, B, C, D, E, F) = (1, 0, 1, 0, 0, -1)\).

On peut démontrer qu’une conique est une ellipse si et seulement si les paramètres \((A, B, C, D, E, F)\) vérifient les deux contraintes suivantes :

\[ AC > B^2 \quad \text{ et } \quad (BD-AE)^2 > (D^2 -AF)(B^2-AC) \]

Question 1. Écrire une fonction est_ellipse qui prend en entrée une liste de \(6\) paramètres, et qui teste si ces paramètres définissent une ellipse.

# Votre réponse ici

La fonction implicit_plot permet de dessiner une courbe plane par une équation cartésienne implicite. Par exemple, les droites d’équation \(x = 1\) et \(5y + 3x + 7 = 0\) peuvent être dessinées de la sorte :

var('x')
var('y')
D1 = implicit_plot(x-1, (x, -3, 3), (y, -3, 3))
D2 = implicit_plot(5*y+3*x+7, (x, -3, 3), (y, -3, 3))
D1.show()
D2.show()
../_images/f28a2d4269eaad13b4db42269bee8b0b94c54c2a054a10019a68829ec68736b6.png ../_images/593eea2283d40680d4ca56d5170496cf0d32e8f6246e5c4fc2875f910b969561.png

Les arguments (x, -3, 3) et (y, -3, 3) précisent que, pour l’affichage, les variables \(x\) et \(y\) prennent des valeurs entre \(-3\) et \(3\).

Question 2. Pour les paramètres suivants, décider si la conique est une ellipse, et si c’est le cas, l’afficher grâce à la fonction implicit_plot.

  1. \((A, B, C, D, E, F) = (1, 0, 1, 0, 0, -4)\)

  2. \((A, B, C, D, E, F) = (0, 2, 0, 1, 1, -1)\)

  3. \((A, B, C, D, E, F) = (4, 1, 2, 1, 1, -4)\)

# Votre réponse ici

Le théorème des cinq points, démontré notamment par Blaise Pascal, affirme qu’il existe une unique conique passant par cinq points qui ne sont pas trois à trois alignés.

On rappelle que trois points \(P, Q, R\) du plan sont alignés si la matrice formée des vecteurs \(\overrightarrow{PQ}\) et \(\overrightarrow{PR}\) n’est pas inversible. Autrement dit, si l’égalité

\[ (x_Q-x_P)(y_R-y_P) = (y_Q-y_P)(x_R-x_P) \]

est satisfaite.

Question 3.

  1. Écrire une fonction qui teste si 3 points du plan \(P\), \(Q\) et \(R\) sont alignés.

  2. Écrire une fonction qui teste si une liste de 5 points contient, parmi ces 5 points, 3 points alignés.

  3. Afficher les \(5\) points du plan suivants (avec la fonction points vue en cours), puis vérifier que \(3\) des points sont bien alignés :

\[ P_1 = (0, 1) \quad P_2 = (2, -3) \quad P_3 = (3, 2) \quad P_4 = (-1, -4) \quad P_5 = (-3, 0) \]
# Votre réponse ici

Pour obtenir les paramètres \((A, B, C, D, E, F)\) de l’équation d’une conique qui passe par \(5\) points, il « suffit » de résoudre le système d’équations correspondant. Si les points sont notés \(P_i = (x_i, y_i)\) pour \(i = 1, ..., 5\), alors les \(5\) équations à satisfaire pour que l’ellipse passe par les \(5\) points sont :

\[ A \cdot x_i^2 + B \cdot 2x_i y_i + C \cdot y_i^2 + D \cdot 2x_i + E \cdot 2y_i + F = 0, \quad \forall i \in \{ 1, \dots, 5 \} \]

où les inconnues du système sont les paramètres \((A, B, C, D, E, F)\) de l’ellipse.

Question 4. Écrire une fonction qui prend en entrée \(5\) points que l’on suppose non trois-à-trois alignés, et qui retourne une solution du système linéaire décrit plus haut.

# Votre réponse ici

Question 5. Déduire des questions précédentes une fonction qui, étant donné cinq points du plan, retourne l’équation d’une ellipse (donc, un cas particulier de conique) passant par \(5\) points, et ce uniquement lorsqu’elle est unique, c’est-à-dire :

  • lorsque les 5 points donnés ne contiennent pas 3 points alignés,

  • lorsque la conique construite forme bien une ellipse. Votre fonction retournera None si les conditions ci-dessus ne sont pas respectées.

# Votre réponse ici

Question 6. Construire l’ellipse passant par les points : \((0,-1), (0,1), (0.8, -0.9), (1,0), (-1,0)\). Puis, afficher sur un même graphique ces \(5\) points (en rouge) et l’ellipse correspondant (en bleu).

# Votre réponse ici

On pourra également construire les ellipses associées aux points suivants :

  • \((-2,-1), (-1,-1.1), (1, -0.6), (1,0.8), (0,1.2)\) ;

  • \((-0.2, 2.6), (0.3, 1.8), (0.4, 0.1), (0.2, -1.9), (-0.1,-1)\).

Partie B : billard elliptique#

Le but de cette partie est de répondre à la problématique suivante. On se donne un billard de forme elliptique, et on lance une boule au hasard, en supposant que le roulement est parfait (elle ne s’arrête jamais) et que les rebonds sur les bords du billard sont idéaux. Cette boule passera-t-elle par toutes les régions du billard ?

rebonds-billard-1 rebonds-billard-2

Pour simplifier les calculs, on se place dans le contexte d’un ellipse centrée et réduite, c’est-à-dire telle que le centre de l’ellipse se trouve à l’origine du plan, et telle que les axes principaux de l’ellipse sont les axes des abscisses et des ordonnées.

L’équation cartésienne d’une telle ellipse peut alors s’écrire plus simplement :

\[ \frac{x^2}{a^2} + \frac{y^2}{b^2} = 1 \]

avec par exemple \(a > b > 0\) deux paramètres réels. On note \(E_{a, b}\) cette ellipse.

Question 7. Écrire une fonction point_aleatoire(a, b) qui retourne un point aléatoire de l’ellipse \(E_{a,b}\). On ne cherchera pas à rendre ce tirage uniforme. Puis, afficher en noir \(10\) points tirés aléatoirement sur l’ellipse \(E_{2, 1}\), elle-même affichée en bleu.

# Votre réponse ici

Soit \(P = (x_P, y_P)\) un point de l’ellipse \(E_{a,b}\) et \({\bf v} = (v_1, v_2)\) un vecteur non-nul. Ces deux éléments définissent la droite passant par \(P\) et de vecteur directeur \({\bf v}\) : ce sont les points du plan de la forme \(P + t {\bf v}\), où \(t \in \mathbb{R}\).

Si le vecteur \({\bf v}\) n’est pas tangent à l’ellipse, alors cette droite coupe l’ellipse en un second point \(Q\). Les coordonnées de \(Q\) sont alors de la forme \((x_Q, y_Q) = (x_P + t v_1, y_Q + t v_2)\) avec \((x_Q/a)^2 + (y_Q/b)^2 = 1\).

Pour trouver les coordonnées de \(Q\), il suffit donc de résoudre l’équation du second degré en la variable réelle \(t\) :

\[ \left(\frac{x_P + t v_1}{a}\right)^2 + \left(\frac{y_P + t v_2}{b}\right)^2 = 1\,. \]

Cette équation peut être résolue par Sagemath, ou bien avec des calculs impliquant un discriminant et une racine carrée.

Question 8. Écrire une fonction intersection(a, b, P, v) qui, à partir d’un point \(P \in E_{a,b}\) et d’un vecteur \({\bf v}\) partant de \(P\) dirigé vers l’intérieur de l’ellipse, calcule les cooordonnées du second point d’intersection \(Q\) entre l’ellipse et la droite définie par le couple \((P, {\bf v})\).

Puis, tester la fonction par un affichage graphique des points \(P\) et \(Q\) et du segment \(PQ\), pour les valeurs suivantes : \(a = 2\), \(b = 1\), \(P = (-1, -\sqrt{3}/2)\), \({\bf v} = (1, 1)\).

Pour afficher un segment \(PQ\), on utilise la fonction d’affichage line([P, Q]).

# Votre réponse ici

On veut maintenant simuler un rebond de la boule de billard sur le bord de l’ellipse. Supposons que la boule parte d’un point \(P\), et se déplace rectilignement selon un vecteur directeur \({\bf v}\). À son arrivée au bord du billard (disons, en un point \(Q\) de l’ellipse), la boule rebondira de manière symétrique par rapport à la normale à l’ellipse, calculée en \(Q\). Ainsi, après rebond, le nouveau vecteur incident \({\bf v'}\) doit être tel que la droite normale à l’ellipse forme une médiatrice de l’angle obtenu par les vecteurs \({\bf v}\) et \({\bf v'}\) au point de contact avec l’ellipse.

image-rebond-billard

Pour effectuer la simulation du rebond, l’idée est d’exprimer le vecteur incident \({\bf v}\) dans la base orthogonale \(({\bf u}, {\bf n})\) donnée par le vecteur tangent \({\bf u}\) et le vecteur normal \({\bf n}\) au point de contact avec l’ellipse.

Ces vecteurs ont pour coordonnées

\[ {\bf u} = \left(-\frac{2 y_P}{b^2}, \frac{2 x_P}{a^2}\right) \quad \text{ et } \quad {\bf n} = \left(\frac{2 x_P}{a^2}, \frac{2 y_P}{b^2}\right)\]

Une fois \({\bf v}\) exprimé dans cette base, par exemple sous l’écriture \({\bf v} = \alpha {\bf u} + \beta {\bf n}\), un vecteur dirceteur du rebond est alors

\[ {\bf v'} = \alpha {\bf u} - \beta {\bf n}\,. \]

Rappelons enfin que pour exprimer \({\bf v}\) dans une base \(({\bf u}, {\bf n})\), il suffit de résoudre un système linéaire approprié.

Question 9. Écrire une fonction changement_base(a, b, P, v) qui retourne les coordonnées \((\alpha, \beta)\) de \({\bf v}\) dans la base orthogonale \(({\bf u}, {\bf n})\) définie ci-dessus. Pour tester sa solution, on pourra vérifier que les vecteurs \(\alpha {\bf u} + \beta {\bf n}\) et \({\bf v}\) sont égaux.

# Votre réponse ici

Question 10. Écrire une fonction reflexion(a, b, P, v) qui calcule \({\bf v'}\), la réflexion d’un vecteur d’incidence \({\bf v}\), au niveau d’un point \(P\) de l’ellipse \(E_{a,b}\). Illustrer la réflexion obtenue par un affichage graphique.

# Votre réponse ici

Question 11. À partir de toutes ces fonctions, écrire une procédure qui affiche les rebonds successifs d’une boule dans un billard elliptique. On affichera une vingtaine de rebonds.

# Votre réponse ici

Questions bonus.

  1. Essayer d’afficher plusieurs centaines de rebonds… Si cela ne fonctionne pas, il faudra peut-être passer par des approximations, et rendre plus explicites les calculs (éviter les solve) : pour cela, convertissez toutes vos données en des nombres flottants à grande précision (par exemple, \(1000\) bits).

  2. Les 2 foyers de l’ellipse sont les points de coordonnées \((-\sqrt{a^2-b^2}, 0)\) et \((\sqrt{a^2-b^2}, 0)\). Que se passe t-il si la boule passe par l’un des foyers de l’ellipse ?

  3. Répondre expérimentalement à la question d’origine : la boule de billard passera-t-elle par tous les points du billard ? Pour un billard et une position d’origine donnée (au bord du billard), on pourra identifier deux comportements typiques selon la première trajectoire.