Programmation Python :
( on peut facilement ajouter d'autres planètes et prendre en compte leurs interactions )
# orbite de la planete
# donnees
x0 = 1.
y0 = 0.
vx0 = 0.1
vy0 = 1.3
dt = 0.1
GM = 1.
n = 400
# tableau des resultats
x = (n+1) * [0.]
y = (n+1) * [0.]
# temps 0 pour x, y, vx, vy
x[0] = x0
y[0] = y0
vx = vx0
vy = vy0
# premier demi pas de temps pour passer de v(0) a v(1/2)
dt_vitesse = dt / 2
for i in range(n) :
# r(n) et acceleration(n)
r2 = x[i] * x[i] + y[i] * y[i]
r = math.sqrt( r2 )
ax = - GM * x[i] / (r2 * r)
ay = - GM * y[i] / (r2 * r)
# v(n+1/2)
vx = vx + ax * dt_vitesse
vy = vy + ay * dt_vitesse
# r(n+1)
x[i+1] = x[i] + vx * dt
y[i+1] = y[i] + vy * dt
# pour les pas de temps suivants
dt_vitesse = dt
# affichage
orbite0 = pylab.plot(x,y)
pylab.show()