Wolfram Language

Perform nBody Simulations of Asteroids

Minor planets, especially those in the main asteroid belt, can be significantly influenced by Jupiter. Several groups of minor planets are well known for exhibiting interesting orbital dynamics as a result.

First, define the primary gravitational influences.

The Hilda group of minor planets has an orbital period near 2/3 that of Jupiter. They are named after the prototype of the group, 153 Hilda.

You can find other members of this dynamical group by using implicit entity classes with constraints placed on several orbital parameters.

Jupiter Trojan and Greek asteroids have nearly the same orbital period as Jupiter.

You also need to select a date and an integration period.

To determine initial velocities, you need to measure the distance between asteroid positions over some time interval, say one day.

Compute initial positions and velocities for the given date.

Then, prepare associations to represent the data needed by NBodySimulation for the asteroids.

The variant of NBodySimulation used here ignores the interasteroid forces. Since they are so small, they should have little to no effect on each other, so the problem can be simplified. In the following variation, only the effects of Jupiter and the Sun on each asteroid are considered.

Next, define a simulation function.

You can then generate separate simulations for each group of asteroids.

The simulation running time can be extracted as follows.

You can define a convenience function to convert from meters to astronomical units.

Finally, you can generate a visual representation of the system at a specified time instant.

show complete Wolfram Language input

If you iterate the simulation over the full time range, a movie can be created.

Related Examples