あなたは本質的に答えを持っています-0.5の係数は必要ありません。
基本的に、1次ODEの2次元システムがあり:
ここで、おそらくを除くすべてが時間の関数であり、ドットは時間微分を示します。これらの単純な前方オイラー風の1次差分を行うと、
または
ここでは、タイムステップにインデックスを付けています。mx n + 1 −xn
バツ˙v˙= v= Fm、
mxn+1バツn + 1− xnΔ トンvn + 1− vnΔ トン= vn= Fnm、
nバツn + 1vn + 1= xn+ Δ T ⋅ Vn= vn+ Δ T Fnm。
n
ただし、forward-Eulerは本質的に不安定です。幸いなことに、角を曲がったところにシンプレクティックな方法があります。(リンクされた物品は、よりスタブであり、それはいくつかの有用なリンクを含む可能性がある。)キーから前進位置にあるに速度を用いに。つまり、各パーティクルにとが与えられたと仮定します。次に、
時間内に統合します。これはリープフロッグ法として知られていますtntn + 1tN + 1 / 2バツ0v1 / 2
バツn + 1vN + 1 / 2= xn+ Δ T ⋅ VN + 1 / 2= vN - 1 / 2を+ Δ T Fnm
。これにより、システムはある種のエネルギーを節約し、軌道は、丸め誤差の指数関数的増加により無限に飛ぶ可能性が低くなります。
おそらくから始めるので、唯一の問題はを取得する方法。そこでは、書くのと同じくらい正確なスキームを使用する必要があります。4次のRunge-Kuttaが一般的な選択肢です。長期的には不安定かもしれませんが、半分のタイムステップで導入するエラーはそれほど多くなく、そのエラーはリープフロッグスキームによってその後小さく保たれます。v1 / 2v0
最後に、この答えは、一般的なニュートン重力シミュレーションに適用されます。質問の通過で述べたように、完全な円が本当に必要な場合は、惑星同士が相互作用せず、初期条件が適切に選択される理想的なシステムを除き、それらを取得できません。その場合、そのようなオブジェクトの角速度(単位時間あたりのラジアン)は単にであるため、統合する必要はありません
ここで、中心物体の質量であり、、軌道の半径です。これは、シミュレーションの精度をテストするために使用できます。
ω = G Mr3−−−−√、
Mr