Problem I : The Solar System †問題概要 †太陽系のある惑星 A の軌道の長半径 a1、短半径 b1、周期 t1 と、別の惑星 B の軌道の長半径 a2、短半径 b2 が与えられる。これらの値とケプラーの法則から時刻 t における惑星 B の座標を計算する。ただし次を仮定する。
解法 †二分法など。 時刻 t を惑星 B の周期 T で割った余りを t' とする。時刻 t における惑星の位置と時刻 t' における惑星の位置は同じであるから、今後は時刻 t' における位置 (x,y) = (a cosθ, b sinθ) を考えることにする(0≦θ<2π)。 時刻 0 から t' までの間に惑星と太陽が結ぶ線分が掃く面積を S とすると S = (1/2)abθ - (1/2)bFsinθ … (1) ただし F は焦点の x 座標で F = √(a^2-b^2)。一方、ケプラーの第二法則から S = πab(t'/T) … (2) 式(1)と式(2)から θ に関する方程式が得られるから、あとは数値計算によって根を求めればよい。式(1)は単調増加な関数だから根は 1 つしかない。なお、惑星 B の周期は直接には与えられないのでケプラーの第三法則から計算する。 根の計算は二分法で十分だと思うが、(1) は θ に関して微分可能だから Newton-Raphson 法も利用できる。 議論・その他 †
ファイルを添付する †izumi_solar.cpp 1385件 [詳細] |