1 minute read

This is the first post on my summer research about three-body problems. Today, we will find out what happens if three planets are influenced by each others’ gravitational forces?

Mechanism behind Python Code

Between two planets, the force is given by:

\[\mathbf{F}_{12} = -\frac{G m_1 m_2 (\mathbf{r}_1 - \mathbf{r}_2)}{|\mathbf{r}_1 - \mathbf{r}_2|^3}.\]

We simply add up the contribution from the other two planets to obtain the total force.

To simulate the positions and velocities of planets over time, we can use the Verlet Integration Scheme:

  • Update the positions: \(x_{i+1} = x_i + v_i t + \frac{\mathbf{F}_1 t^2}{2m}\)

  • Calculate the new forces (\(\mathbf{F}_2\)) at the new positions.

  • Update the velocities using both the original force \(\mathbf{F}_1\) and the new force \(\mathbf{F}_2\): \(v_{i+1} = v_i + \frac{(F_1 + F_2)t}{2m}\)

This is done iteratively over a time period, then the result is plotted in an animation.

Results

The process of waching them flying around each other is highly entertaining. Here is an example:

Planets “fly off” very fast whenever they are too close to each to other, due to an extremely high force when two particles are too close to each other. This phenonmenon can be manipulated by space probes to pick up speed (See gravity assist).

Figure-Eight Orbits

Most Three-Body systems are very chaotic and don’t follow any pattern. However it has been found out in the recent decades that it is possible to create “Figure-Eight Orbits”, in which the three planets “chase” each others’ orbits. This is illustrated below:

Research Progress

Today is Day One of my summer research journey. The first \(2\) hours went quite well until I “wasted” \(3\) hours unsucessfully trying to implement RK4 into my code. I spent around an hour writing this post, and another hour trying to figure out different types of figure-8 orbits. Overall, quite a fruitful day.

In fact, I have found out later that RK4 isn’t a sympletic integrator. Therefore I can safely exclude it from my code.

Credits

I would like to thank Dr Jenni Smillie for her guidance and support duing this project.

Tag Styling Example

Updated: