回り合う3つの天体は、なぜめったに繰り返さないのか
等しい質量が3つ、働くのは重力だけ。ほとんどの軌道はばらばらに壊れ、ごくわずかな軌道だけが永遠に繰り返されます。
クリックするとYouTubeから再生されます。
なぜそうなるのか
重力で引き合う2つの天体は、同じ楕円の上をいつまでも回り続けます。同じ質量の3つ目を加えると、ほとんどの出発点はもつれた動きに終わり、たいていはひとつが外へ放り出されます。それでも、ごくわずかな出発点は自分自身に戻って繰り返します。8の字のように。
aᵢ = G · Σⱼ≠ᵢ mⱼ · (rⱼ − rᵢ) ÷ |rⱼ − rᵢ|³8の字:3つの等しい質量、角運動量ゼロ
自分で作る
Python 3 · numpy · matplotlib発表された初期値からの8の字軌道を、小さなリープフロッグ法のステップで3周期分。
"""Three bodies: the figure-eight orbit, from the starting values computed by Carles Simo
(in Chenciner and Montgomery, 2000). G = 1, three masses of 1.
Run: python three-body-orbits.py (needs: pip install numpy matplotlib)
"""
import numpy as np
import matplotlib.pyplot as plt
plt.style.use("dark_background")
x1 = np.array([0.97000436, -0.24308753])
V = np.array([-0.93240737, -0.86473146]) # the velocity of body 3
pos = np.array([x1, -x1, [0.0, 0.0]])
vel = np.array([-V / 2, -V / 2, V])
period, dt = 6.32591398, 0.0005
turn = 0 # degrees to turn the first velocity by (the film breaks the eight with 15)
a = np.radians(turn)
vel[0] = [vel[0, 0] * np.cos(a) - vel[0, 1] * np.sin(a), vel[0, 0] * np.sin(a) + vel[0, 1] * np.cos(a)]
def pull(p):
"""Each body's acceleration: the sum of the other two's gravity, G*m / r**2 towards each"""
acc = np.zeros_like(p)
for i in range(3):
for j in range(3):
if i != j:
d = p[j] - p[i]
acc[i] += d / np.linalg.norm(d) ** 3
return acc
track = []
acc = pull(pos)
for _ in range(int(3 * period / dt)): # three periods, leapfrog steps (they keep the energy well)
vel += acc * dt / 2
pos += vel * dt
acc = pull(pos)
vel += acc * dt / 2
track.append(pos.copy())
track = np.array(track)
colours = ["#5eead4", "#f0abfc", "#f5c76b"]
plt.figure(figsize=(7, 4))
for body in range(3): # all three run along the same track, a third of a period apart
plt.plot(track[:, body, 0], track[:, body, 1], color=colours[body], linewidth=1)
plt.scatter(track[-1, :, 0], track[-1, :, 1], c=colours, s=80, zorder=3)
plt.axis("equal")
plt.axis("off")
plt.show()
# Try: turn = 15 -> the three tracks no longer close; the eight falls apart
試してみよう: 動画と同じように turn = 15 にしてみましょう。3つの軌跡は、もう閉じなくなります。
動画が語る数学
動画の解説を読む(YouTubeより、英語)
Three equal masses pull on each other with nothing but Newton's gravity. For two bodies the motion is an ellipse, forever; for three there is no formula at all, and almost every start ends in a tangle — one body is usually flung away. Yet a handful of starting conditions close on themselves exactly.
The first act is the figure-eight, found numerically by Cris Moore in 1993 and proved to exist by Chenciner and Montgomery in 2000: three bodies chasing each other around one figure-eight track, always equally spaced in time. Then one body's velocity is nudged by 15 degrees. Nothing else changes, but the orbit is unstable to that nudge, so within seconds the ballet becomes chaos — and that is the normal state of three bodies.
From the chaos the film gathers them into two more of the periodic solutions catalogued by Šuvakov and Dmitrašinović in 2013, the "moth" and the "yin-yang", each broken again by the same nudge, before the figure-eight returns. Everything is integrated with an adaptive 8th-order method at relative tolerance 1e-9; the periodic orbits were checked to return to their starting state to about one part in a thousand after one period. The small white dot is the centre of mass — it never moves, because the total momentum is zero.
次の動画の説明より: Three-Body Problem: The Rare Orbits That Never Break(英語).
Shorts
出典
- Three-body problem (Wikipedia)
- A. Chenciner, R. Montgomery, “A remarkable periodic solution of the three-body problem in the case of equal masses”, Annals of Mathematics 152 (2000)
- M. Šuvakov, V. Dmitrašinović, “Three classes of Newtonian three-body planar periodic orbits”, Physical Review Letters 110 (2013)