M
星の質量がすべての惑星の総質量よりもはるかに大きいと仮定すると、それは非常に簡単ですsum(m[i])
。これにより、星を座標系の中心に固定できるため、問題が単純化されます。また、すべての惑星の運動が同一平面上にあると仮定する方がはるかに簡単です。これにより、問題の次元がさらに 2D に縮小されます。
r[i]
最初に、半径ベクトル(軌道の半径)の大きさを考慮して、円軌道速度の大きさを決定します。上記の仮定により、星の質量のみに依存v[i] = sqrt(mu / r[i])
しmu
ますmu = G * M
。
phi[i]
から均一にサンプリングすることにより、ランダムな軌道位相パラメーターを選択します[0, 2*pi)
。次に、デカルト座標での惑星の初期位置は次のとおりです。
x[i] = r[i] * cos(phi[i])
y[i] = r[i] * sin(phi[i])
円軌道では、速度ベクトルは常に動径ベクトルに対して垂直です。つまり、その方向はphi[i] +/- pi/2
(+pi/2
反時計回り (CCW) 回転の場合と-pi/2
時計回り回転の場合) です。例として、CCW 回転を考えてみましょう。惑星の速度のデカルト座標は次のとおりです。
vx[i] = v[i] * cos(phi[i] + pi/2) = -v[i] * sin(phi[i])
vy[i] = v[i] * sin(phi[i] + pi/2) = v[i] * cos(phi[i])
z[i] = 0
これは、とを追加することで同一平面上の 3D 運動に簡単に拡張できますがvz[i] = 0
、Z 方向には力がなく、したがってz[i]
とvz[i]
が永久に等しいままであるため、意味がありません0
(つまり、完全な 3D 空間の 2D 部分空間問題を解くことになります)。 )。
各惑星がランダムに傾斜した初期軌道で移動する完全な 3D シミュレーションを使用すると、次のように作業できます。
このステップは、2D の場合のステップ 1 と同じです。
単位球面の初期位置を選択する必要があります。一様にランダムな方法でそれを行う方法の例については、こちらを参照してください。次に、単位球座標を の大きさでスケーリングしr[i]
ます。
3D の場合、2 つの可能な垂直ベクトルの代わりに、惑星の速度が存在する接平面全体があります。接平面の法線ベクトルは、半径ベクトル および と同一線上にありdot(r[i], v[i]) = 0 = x[i]*vx[i] + y[i]*vy[i] + z[i]*vz[i]
ます。r[i]
たとえば、 に垂直な任意のベクトルを選択できe1[i] = (-y[i], x[i], 0)
ます。これにより、極でヌル ベクトルが生成されるため、代わりにそこを選択できe1[i] = (0, -z[i], y[i])
ます。r[i]
次に、との外積をとることによって、別の垂直ベクトルを見つけることができe1[i]
ます
e2[i] = r[i] x e1[i] = (r[2]*e1[3]-r[3]*e1[2], r[3]*e1[1]-r[1]*e1[3], r[1]*e1[2]-r[2]*e1[1])
。e1[i]
とe2[i]
は、それらをノルムで割ることによって正規化
n1[i] = e1[i] / ||e1[i]||
n2[i] = e2[i] / ||e2[i]||
できます||a|| = sqrt(dot(a, a)) = sqrt(a.x^2 + a.y^2 + a.z^2)
。接平面に直交ベクトル基底ができたので、ランダムな角度を 1 つ選択omega
し[0, 2*pi)
て、速度ベクトルを次のように計算できます。v[i] = cos(omega) * n1[i] + sin(omega) * n2[i]
、またはデカルト コンポーネント:
vx[i] = cos(omega) * n1[i].x + sin(omega) * n2[i].x
vy[i] = cos(omega) * n1[i].y + sin(omega) * n2[i].y
vz[i] = cos(omega) * n1[i].z + sin(omega) * n2[i].z
。
omega
構造上、手順 3 の基底は半径ベクトルに依存しますが、ランダムな方向 ( ) が追加されるため、これは重要ではありません。
単位の選択に関しては、シミュレーション科学では常に物事を自然単位に保つ傾向があります。つまり、計算されたすべての量が無次元で[0, 1]
、少なくとも 1 ~ 2 桁以内に保持される単位です。 -ポイント表現を使用できます。星の質量を太陽質量の単位で、距離を AU で、時間を年で表すと1
、太陽に似た星の周りの AU にある地球に似た惑星の場合、軌道速度の大きさは次のようになります。2*pi
(AU/yr) で、半径ベクトルの大きさは1
(AU) になります。