iconEuler Examples

2-Body Problem

We start with two bodies in space. The function test3body uses an
adaptive Runge method to solve the Newtonian equations for the
movements of bodies under gravitation.

  3-body Documentation
>load 3body;
In the first example, we take two bodies with equal weight, starting
with equals speed. The initial positions and speed vectors are

Three-Body Problem

Three-Body Problem

The time interval is one second, and this interval is subdivided into
n=100 subintervals by default.

Euler animates the movement of the planets. To save time, the
animation is very coarse.
>test2body([-2,0, 2,0, 0,-0.3, 0,0.3],tmax=30):

Three-Body Problem

The next example has two different masses. For a smoother animation,
we take a time interval of 0.1.
>test2body([0,0, 2,0, 0,-0.2, 0,2],m1=10,m2=1,tmax=5,h=0.1):

Three-Body Problem

The display can be centered at the first mass. We change the initial
speed of the second mass a bit.
>test2body([0,0, 2,0, 0,0, 0,1],m1=10,m2=1,tmax=5,>fixed):

Three-Body Problem

3-Body Problem

With three bodies, the movements get chaotic.
>test3body([-2,0, 2,0, 0,2, 0.1,-0.2, -0.2,0.2, 0.1,0],n=100):
One body left definition area!

Three-Body Problem

The accuracy is critical here, since the bodies get very close to each
other. If you like try n=1000. Then the behaviour does not change
much, so we assume that the computation is accurate.

The next example has two starts of mass 1 and 2, and a plante of mass
0.1. The planet will run around the larger star until the smaller one
catches the planet for a short time.
>test3body([0,0, 2,0, 1,0, 0,0, 0,1.3, 0,1.2], ...
   m1=2,m2=1,m3=0.1,>fixed,tmax=50):

Three-Body Problem

With slightly different initial conditions the small planet gets
kicked out of the system very soon.
>test3body([0,0, 2,0, 1,0, 0,0, 0,1, 0,0.5], ...
   m1=2,m2=1,m3=0.1,>fixed,tmax=10):

Three-Body Problem

Examples Homepage