Chaotic behaviour in Hénon–Heiles system
  July 2, 2024


Hénon–Heiles system is an interesting toy model for deterministic chaos. It doesn’t require too much math to understand and exhibits very interesting and complex behaviour.

Overview

Hénon–Heiles system has been first described in 1964 where it emerged from idea of finding the third integral of a galactic motion [Henon_1964]. It can also be derived for a simple mechanical system of 3 balls on a loop connected with springs. I might update this post with the derivation if I feel like it. For now let’s consider the effective system of equations governing the behaviour of the system. It is described with 2 generalized coordinates q1 and q2 and two generalized velocities (momenta) defined as p1=q1˙ and p2=q2˙. The system of equations is defined as follows:

q1¨ =q12q1q2,
q2¨ =q2q12+q22.

Poincaré map

We have 4 parameters – to visualize the chaotic behaviour we use the Poincaré cut. Every time the we reach q1=0 we put a corresponding point on a q2p2 plane. This plane is called a Poincaré map.

Software

Some time ago I made this bloated program in gtkmm that simulates and visualizes Hénon–Heiles system. It was a project for a class led by a professor of an ”older date”. His way of life was making java applets with nice buttons and slides. That’s why I chose to make a GUI application for that. It came out nice but that kind of effort would be completely unfounded in normal science work.
The program in question can be found here. To clone the repo execute following command:

torsocks git clone git://lightingtexfqcor.onion/henon.git

Read README.md for installation instructions.

Usage

Refer to caption
Figure 1: Program user interface

When you run the program you will see two empty interactive plots. First one is configuration space (q1q2 plane) and second is Poincaré map (q2p2 plane). On the right you can set up initial conditions for up to 3 objects – useful for showing the sensitivity to initial conditions in chaotic regimes. When you run the simulation with default setup you will see a trace of a simulated object. Every time the object crosses the red line a point is placed on a Poincaré map. Default values for the initial conditions give a chaotic regime where points on a Poincaré map form a so called ergodic trajectory. That means in the limit of t points on Poincaré map will fill a non-zero area.

Refer to caption
Figure 2: Chaotic map for q1=0.21, q2=0.1, p1=0.45 and p2=0.1

For smaller energies Poincaré map will consist of closed curves.

Refer to caption
Figure 3: Normal map for q1=0.3, q2=0.2, p1=0 and p2=0.2
Refer to caption
Figure 4: Map for q1=0.21, q2=0.1, p1=0.32 and p2=0.1,
this might remind you of something if you’s seen my repositories :)

In clips directory you will find some additional examples which showcase features of the system such as sensitivity to initial conditions or self-similarity of Poincaré map in some regime. I encourage you to experiment with initial parameters and explore all the weird behaviours of this system.