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

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

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

統計
0
天体数
0
時間(年)
全エネルギー
最大質量
プリセット
天体タイプ
⭐ 星
🪐 惑星
🌑 小惑星
物理パラメータ
表示オプション

理論メモ

各天体 i に働く力:

F_i = Σⱼ G·mᵢ·mⱼ/(r²+ε²) · r̂ᵢⱼ

ε: 軟化長(数値発散防止)
積分法: Velocity Verlet
衝突: 運動量保存で合体

figure-8解(Chenciner-Montgomery 2000): 等質量3体が8の字を描く安定周期軌道。カオス的な三体問題の中の特殊解。

CAE応用: 分子動力学、SPH粒子法、DEM離散要素法

天体数: 0
経過時間: 0.00 yr
全エネルギー:
最大質量体:
クリック: 天体配置 / ドラッグ: 初速度付き配置

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

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

物理モデルと主要な数式

全ての計算の基礎は、ニュートンの万有引力の法則と運動の第2法則です。天体$i$が天体$j$から受ける重力は以下の式で表されます。

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

ここで、$G$は万有引力定数、$m_i, m_j$は各天体の質量、$\vec{r}_{ij}= \vec{r}_j - \vec{r}_i$は天体$j$から$i$へのベクトル、$\hat{r}_{ij}$はその方向の単位ベクトルです。引力なので、$i$から$j$を引く方向に力が働きます。

天体$i$の運動は、他の全ての天体から受ける力の合力$\vec{F}_i$によって決まり、次の運動方程式に従います。

$$ m_i \frac{d^2 \vec{r}_i}{dt^2}= \vec{F}_i = \sum_{j \neq i}\vec{F}_{ij} $$

この微分方程式を、コンピュータで微小時間ステップ$\Delta t$ごとに位置と速度を更新する「数値積分法」(このシミュレーターではシンプレクティック法などが使われることが多い)で解くことで、N体の軌道が時間発展します。3体以上ではこの方程式の一般的な解析解は存在しません。

実世界での応用

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

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

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

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

よくある誤解と注意点

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

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

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

関連する工学分野

この重力計算の技術は、天体物理学以外の様々な「粒子系」シミュレーションとアルゴリズムを共有しています。例えば、分子動力学法(MD)では、原子や分子間に働く分子間力(ライナード・ジョーンズポテンシャルなど)を、重力と同様に粒子間で計算します。クーロン力も距離の2乗に反比例するので、計算の骨格は同じ。違いはポテンシャルの式と、はるかに短い時間・空間スケールです。

また、流体解析(CFD)における粒子法、例えばSPH法(Smoothed Particle Hydrodynamics)も、流体を粒子の集合体として扱い、粒子間の相互作用を計算します。ここでは重力に加えて、圧力勾配や粘性力が主要な力となります。N体シミュレーションで培った「近接粒子探索」の高速化技術は、粒子法でもそのまま応用可能です。

さらに意外なところでは、集団行動のシミュレーション(群衆・魚群・鳥群)があります。個体間の「引力」(集まりたい力)と「斥力」(衝突回避の力)、そして目標への「推進力」を組み合わせたモデルは、まさに多体力学の応用と言えます。銀河の形成と鳥の群れのパターンが数式の上では類似しているのは興味深いですね。

発展的な学習のために

まず次の一歩は、このシミュレーターの「ブラックボックス」を開けることです。具体的には、プログラミング言語(Pythonがおすすめ)で、2体問題(地球と太陽)の軌道計算を自分で書いてみましょう。オイラー法から始めて、そのエネルギー保存の悪さを確認し、次に精度の高いルンゲ・クッタ法やシンプレクティック法を実装してみてください。この体験が、数値計算ソフトウェアの出力を批判的に見る力を養います。

数学的背景としては、ニュートン力学から「解析力学」の視点に上がることが鍵です。運動方程式を力($F=ma$)ではなく、エネルギー(ラグランジアンやハミルトニアン)の観点から記述する方法を学びましょう。ここで出会う正準変換の概念が、先ほど出たシンプレクティック積分法の「なぜ長期的な安定性が高いのか」を理解する土台になります。式は一見難解ですが、物理の本質をより深く捉えることができます。

最後に、現実の宇宙シミュレーションに触れるなら、「ダークマター」と「N体シミュレーション」をキーワードに調べてみましょう。観測される銀河の回転曲線を再現するためには、目に見えない質量(ダークマター)の分布を仮定してN体計算を行う必要があります。このシミュレーターで無数の粒子を放り込んで銀河のような構造が形成される様子は、現代宇宙論の最前線を支える根幹技術なのです。