連星の位置角・角距離を計算
『天文年鑑』などには、主な「連星」について、その年の角距離と位置角の値が掲げてあります。こうした表は、観測には便利ですが、いったい連星がどういう軌道を描いているのかについては、情報がえられません。今後、角距離が離れていくのか、それとも近付いていくのか、といった情報を自分で得たい場合にこのプログラムが便利です。
このプログラムは、連星の軌道要素と、計算したい年、計算回数、計算間隔(年単位)を入力すると、日付、角距離、位置角が出力されます。
プログラムは、ケプラーの方程式を計算する関数と、角距離および位置角を計算する関数、この二つの関数を引用する main 関数からなっています。このうち main 関数は、テスト用に作ったもので、各自で自由に書き換えてください。グラフィックを使って、主星のまわりりを回る伴星の姿を描くのも面白いのではないか、と思います。
ケプラーの方程式を解く関数では、初期値としていつも180°を使用していますが、この値は変更しないほうが良いでしょう。連星の場合、離心率(e)が1に近いものがあり、この場合、通常使用されている、初期値を平均近点離角(M)にする方法では、収束しなかったり、収束までにかなり時間がかかったりする場合があるからです。
連星の位置角と角距離を計算する関数 Binaly は、引数として、ELEMENTS 構造体と、 double 型の time を必要とします。また、この関数の返し値は、BINARY 構造体です。
この引数のうち、ELEMENTS 構造体については、冒頭の定義とその注釈を参照して下さい。注意すべきことは、角度が度または秒で与えられていることです。
time は、西暦の年数とその小数であたえます。
返し値の BINARY 構造体についても、冒頭の定義を参照してください。単位はいずれも角度の秒であることに注意してください。
浮動小数点変数は、double で定義されていますが、有効数字が5桁程度だからといって、この定義を float に変換しますと、結果の精度が落ちてしまいますからご注意ください。
このプログラムの基になった計算式は、
"Astronomical Formulae for Calculators" 3ed ed.(Jean Meeus, Willmann-Bell,
Inc., 1985) pp.189-192
によっています。
この本には、例題として、おとめ座γ(γ Vir)について、次の軌道要素と、計算結果が掲載されています。