多体重力シミュレーター(N体問題) 戻る
宇宙物理 / 軌道力学

多体重力シミュレーター(N体問題)

星・惑星・小惑星を配置し、重力による軌道運動・衝突・合体をリアルタイム可視化。figure-8軌道・太陽系・連星・銀河プリセット付き。

統計
プリセット
天体タイプ
⭐ 星
🪐 惑星
🌑 小惑星
物理パラメータ
表示オプション
計算結果
0
天体数
0
時間(年)
全エネルギー
最大質量
シミュレーション
天体数: 0
経過時間: 0.00 yr
全エネルギー:
最大質量体:
クリック: 天体配置 / ドラッグ: 初速度付き配置
理論・主要公式

$$\mathbf{F}_{ij} = G\frac{m_i m_j}{|\mathbf{r}_{ij}|^2}\hat{\mathbf{r}}_{ij}$$

万有引力:\(G = 6.674\times10^{-11}\) N·m²/kg²、\(\mathbf{r}_{ij} = \mathbf{r}_j - \mathbf{r}_i\)

$$\ddot{\mathbf{r}}_i = \sum_{j \neq i} \frac{G m_j}{|\mathbf{r}_{ij}|^2 + \epsilon^2}\hat{\mathbf{r}}_{ij}$$

ソフトニングパラメータ \(\epsilon\):近接時の発散を防止

$$E = \frac{1}{2}\sum_i m_i v_i^2 - \sum_{i<j}\frac{G m_i m_j}{r_{ij}} = \text{const}$$

力学的エネルギー保存:数値精度の検証に使用

多体重力シミュレーター(N体問題)とは

🙋
N体問題って何ですか?太陽と地球みたいな2つの星なら軌道が計算できるって聞いたけど、3つ以上だとどうなるんですか?
🎓
大まかに言うと、3つ以上の天体が重力で引っ張り合う運動は、数学的に答えを公式で書き下せない「カオス」な問題なんだ。2体問題はケプラーの法則で綺麗に解けるけど、3体目が加わると途端に複雑になる。だから、コンピュータで少しずつ未来の位置を計算する「数値シミュレーション」が必須なんだよ。このシミュレーターで「カオス三体」のプリセットを選んで、軌道トレイルをONにすると、予測不能な美しい軌道が見られるぞ。
🙋
え、そうなんですか!でも、銀河みたいに星が何億個もあると、全部の星の重力を計算するのって大変じゃないですか?
🎓
その通り!素直に計算すると、N個の星に対して$N^2$回の計算が必要で、すぐに限界が来る。実務で使われるCAEソフトでは、遠くの星の重力はまとめて近似計算する「Barnes-Hut木法」や「高速多重極法」といった賢いアルゴリズムが使われているんだ。このシミュレーターでも、星をたくさん配置して「力ベクトル」表示をONにすると、星同士が互いに引っ張り合う様子が矢印で見えるよ。その複雑さを実感できる。
🙋
プリセットにある「figure-8軌道」って聞き慣れないです。あの8の字はどうやって発見されたんですか?
🎓
これは面白い話で、2000年になるまで誰も知らなかった、等しい質量の3つの星が描く安定した周期軌道なんだ。理論ではなく、コンピュータシミュレーションで探し当てられたんだよ。このシミュレーターで「figure-8」を選んで、速度ベクトルを表示してみて。各星の速度と受ける力の向きが、絶妙なバランスで8の字を維持しているのがわかる。こういう発見こそ、シミュレーションの醍醐味だね。

よくある質問

はい、可能です。キャンバス上で星や惑星を自由に配置し、初期速度(ベクトル)を設定することで、任意の軌道をシミュレートできます。figure-8軌道などの安定軌道を再現したい場合は、既知の初期条件を参考にすると良いでしょう。
時間刻み幅が大きすぎるか、天体同士が極端に接近した際の計算誤差が原因です。シミュレーション設定で時間刻みを小さくするか、適応的ステップ幅を有効にすることで安定性が向上します。また、質量比が極端な場合も注意が必要です。
デフォルトでは衝突した天体は合体し、質量と運動量が保存された新しい1つの天体になります。合体後の速度は運動量保存則に従って計算されます。設定で衝突時の合体を無効にし、反発させることも可能です。
可能ですが、現実の惑星の質量・軌道半径・初期速度を正確に入力する必要があります。ただし、計算誤差の蓄積により長期間の安定再現は難しいため、短期的な軌道の可視化や力学的な理解を目的とすることをお勧めします。

実世界での応用

天体物理学・宇宙シミュレーション:太陽系の長期的な安定性の調査、小惑星帯の運動、連星系の進化、銀河の形成と衝突など、宇宙の構造を理解するための根本的なツールです。観測データと組み合わせて、ダークマターの分布推定にも用いられます。

宇宙機の軌道設計:地球、月、太陽の重力をすべて考慮した「三体問題」の枠組みは、低エネルギー遷移軌道(例えば、はやぶさ2の往路軌道)の設計に不可欠です。重力アシストの精密な計画にも役立ちます。

CAE(計算支援工学)の基礎技術:N体問題の高速計算アルゴリズムは、分子動力学法(MD)での原子間相互作用、粒子法(SPH)での流体粒子間力、離散要素法(DEM)での粉体粒子の接触力の計算など、多様な分野の数値シミュレーションの基盤技術となっています。

教育と可視化:本シミュレーターのように、複雑な物理現象を直感的に理解し、パラメータを変えて即座に結果を見られることは、物理学や工学の教育において非常に強力な手段です。理論だけでは掴みにくい「カオス」や「安定性」の概念を体感できます。

よくある誤解と注意点

まず、「リアルタイムで動いているから結果は正確」と思いがちですが、それは大きな誤解です。このシミュレーターは、計算速度と可視化のわかりやすさを優先しています。例えば、時間ステップΔtを大きくしすぎると、エネルギーが保存されず、軌道がどんどん膨らんだり、逆に中心に落ち込んだりする「数値的不安定性」が発生します。実務では、惑星の公転周期の1/1000以下のステップを使うなど、現象に合わせた慎重な設定が必要です。

次に、初期条件のわずかな差が結果を大きく変える「カオス性」を軽視しないでください。例えば、地球の位置を1メートルだけずらしてシミュレーションを走らせると、数百年後には軌道が完全に変わってしまう可能性があります。これはシミュレーターのバグではなく、三体問題に内在する本質的な性質です。再現性が必要な実験では、初期条件の値を厳密に記録・管理することが鉄則です。

最後に、「衝突」の扱いについて。このツールでは星が重なると合体しますが、現実の天体衝突はもっと複雑です。単純な合体ではなく、破砕や蒸発、破片の散乱などが起きます。シミュレーターの結果をそのまま現実と解釈するのは危険で、衝突現象を専門に扱う「スペースガード」の分野では、より詳細な物質モデルを用いた別のシミュレーションが必要になります。

使い方ガイド

  1. slMassNum で天体数を2~100個の範囲で設定し、sl-mass で各天体の質量を0.5~500太陽質量で指定する
  2. slVelNum で初期速度を秒速1~100km/sの範囲で調整し、slGNum で重力定数G=6.674×10⁻¹¹m³/(kg·s²)を確認する
  3. sl-dt でタイムステップを0.001~0.1日単位で設定してシミュレーション精度を制御し、再生ボタンで軌道計算を開始する

具体的な計算例

太陽質量1.989×10³⁰kgの中心星、地球質量5.972×10²⁴kgの惑星3個で初期設定した場合、slVelNum=29.8km/sで地球型軌道が安定する。sl-dt=0.01日(14.4秒)の刻み幅でLeapfrog法による計算を実行すると、100年間の軌道遷移をリアルタイムで追跡でき、木星質量の天体による摂動による近日点移動が1度/1000年の精度で検出される。

実務での注意点

  1. sl-dt が0.1日を超えるとエネルギー保存則の誤差が5%以上増加するため、軌道離脱の危険がある多体系は0.01日以下に設定する
  2. slMassNum で50個以上の天体を配置する場合、計算負荷がO(N²)に増加するため、CPUの温度監視が必要である
  3. 惑星衝突シナリオでは衝突検出半径をsl-mass の立方根に比例させ、太陽系形成モデルでは5×10⁶年のタイムスケールでダストディスク内の微惑星集積を再現する