Cette page présente mon approche du problème du pendule et des trois aimants. Cette étude a été réalisée à l'origine dans le cadre d'un cours sur les fractales et les phénomènes chaotiques, suivi en 2002, lorsque j'étais étudiant à Supélec.
La première version du programme était une applet Java. Pour donner plus de souplesse aux utilisateurs, la nouvelle version est basée sur Java Web Start.
Un pendule est accroché en un point fixe. Ce pendule est magnétique. Sous le pendule sont disposés trois aimants aux sommets d'un triangle équilatéral.
A l'instant initial, on lâche le pendule en un point arbitrairement choisi, à vitesse nulle.
On constate que la trajectoire dudit pendule est chaotique : pour de très faibles fluctuations de la position d'origine, les trajectoires obtenues sont complètement différentes.
Afin de simplifier les calculs, je considère que le pendule se déplace dans un plan. Ce plan sera confondu avec le plan des trois aimants.
Le pendule est alors soumis aux forces suivantes :
On prend un pendule de masse unitaire. Le Principe Fondamental de la Dynamique s'écrit alors :
On a donc à résoudre numériquement les deux équations suivantes :
On va procéder à une intégration numérique, à $\Delta t$ constant (méthode d'Euler). On obtient alors les relations de récurrence suivantes :
Le programme se doit de remplir les objectifs suivants :
Une fois la modélisation et les méthodes de calculs (exposées ci-avant) choisies, l'implémentation de cet algorithme en langage Java est relativement aisée.
J'ai été amené à définir les classes suivantes :
extends JFrame
) : gestion de l'interface utilisateur de l'applet ;extends JSlider
: implémente un type de curseur Swing utilisable pour régler des valeurs réelles.Au départ, une applet était intégrée dans cette page. Ceci provoquait d'importants temps d'attente, liés au chargement de la machine virtuelle Java, et ce que l'utilisateur souhaite ou non utiliser le programme. Désormais, le programme est exécutable par Java Web Start : il suffit de cliquer sur le lien ci-dessous.
<div class="startbutton">
<a href="aimants.jnlp">Démarrer le simulateur</a>
</div>
Il suffit de cliquer sur la zone noire pour tracer une trajectoire à partir de la position du curseur. L'intervalle d'intégration est réglable.
En mode de tracé des bassins d'attractions, il est possible de limiter le nombre d'instants maximal. La luminance de la couleur attribuée à chaque point est d'autant plus faible que le temps de convergence a été long pour le point en question.
Si le pas de tracé des bassins d'attractions est une puissance de deux, la fractale est calculée plus finement de façon automatique, par raffinements successifs.
Cette Archive JAR contient à la fois une version compilée du programme (exécutable par
java -jar
) et les fichiers source. Le code source est fourni, sans garantie d'aucune sorte, sous la
licence GNU LGPL.
On constate que la forme des bassins d'attractions est fractale.