物理 · 回転するリングの中のボール

リングを回しても、なぜ何も変わらないのか

ルール

回転するリングの中でボールが跳ね、リングのすき間は広がっていきます。回転は、すき間を運んでいるだけです。

クリックするとYouTubeから再生されます。

Bouncing Balls in a Spinning Circle Which One Escapes First?

なぜそうなるのか

重力のもと、すき間のあるリングの中でボールが跳ね、リングは回転しています。回転がボールを振り回すと思うかもしれませんが、摩擦のない回転リングは、止まったリングとまったく同じようにボールを跳ね返します。回転がしているのは、すき間をボールのそばへ運ぶことだけです。

跳ね返り:v → v − 2·(v · n)·n壁は t ⊥ n に沿って動くので、(v · n) は回転と関係ない

自分で作る

Python 3 · numpy · matplotlib

重力のもと、18°のすき間が4秒に1回転するリングの中のボール1個。抜け出すまで。

spinning-ring.py
"""A ball under gravity in a ring with a gap that spins; the bounces are elastic and without friction.
Run: python spinning-ring.py   (needs: pip install numpy matplotlib)
"""
import numpy as np
import matplotlib.pyplot as plt

plt.style.use("dark_background")

R, ball, g = 1.0, 0.05, 9.81  # ring radius (m), ball radius, gravity
gap, spin = np.radians(18), 2 * np.pi / 4  # an 18 degree gap, one turn every 4 seconds
p, v = np.array([0.3, 0.2]), np.array([1.8, 0.7])
dt, t, track = 0.0005, 0.0, []

while t < 60:
    v[1] -= g * dt
    p = p + v * dt
    t += dt
    track.append(p.copy())
    r = np.linalg.norm(p)
    if r > R - ball:  # the ball touches the wall, or is at the gap
        angle = np.arctan2(p[1], p[0])
        centre = -np.pi / 2 + spin * t  # where the gap is now
        off = abs((angle - centre + np.pi) % (2 * np.pi) - np.pi)
        if off < gap / 2 - ball / R:  # all of the ball fits through: out
            break
        normal = p / r
        v = v - 2 * np.dot(v, normal) * normal  # the bounce: the spin plays no part in it
        p = normal * (R - ball)

track = np.array(track)
print(f"escaped after {t:.1f} s" if t < 60 else "still inside after 60 s")
plt.figure(figsize=(6, 6))
plt.plot(track[:, 0], track[:, 1], color="#5eead4", linewidth=0.4)
plt.gca().add_patch(plt.Circle((0, 0), R, fill=False, color="white"))
plt.axis("equal")
plt.axis("off")
plt.show()

# Try: spin = 0 and centre = -np.pi / 2 (a still gap at the bottom): the bounces stay the same

試してみよう: spin = 0 にして、すき間を底に移してみましょう。跳ね返りは変わらず、変わるのは出口への道だけです。

このスクリプトを1行ずつ、練習問題とクイズで学ぶ → · Google Colabで実行(英語) →

動画が語る数学

動画の解説を読む(YouTubeより、英語)

Two balls bounce under gravity inside a circle that spins once every four bars of the music. Every bounce is perfectly elastic — no energy is lost, so the balls never calm down. One thing may surprise you: the spinning changes nothing about the bounces.

The wall of a rotating circle only ever moves sideways, along itself, so it cannot push a ball in or out; a frictionless spinning ring bounces exactly like a still one. The only thing the rotation does is carry the hole around — and because gravity keeps the balls near the bottom, their chances come each time the hole sweeps past the floor, once per revolution. The hole widens at the start of each round (8°, 12°, then 18°), and a ball only gets out if the whole of it fits through the gap at the moment it arrives.

The run you are watching was chosen from 500 simulated starting conditions for one reason: the first escape lands in the final seconds, and the other ball is still inside when the music ends.

次の動画の説明より: Bouncing Balls in a Spinning Circle(英語).

Shorts

出典