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 and and two generalized velocities (momenta) defined as and . The system of equations is defined as follows:
Poincaré map
We have 4 parameters – to visualize the chaotic behaviour we use the Poincaré cut. Every time the we reach we put a corresponding point on a – 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

When you run the program you will see two empty interactive plots. First one is configuration space (– plane) and second is Poincaré map (– 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 points on Poincaré map will fill a non-zero area.

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


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.