マイコン宇宙講座-恒星の歳差計算
恒星の固有運動から歳差を考慮して新しい恒星の位置を計算します。地球は自転軸に沿って回転していますが、いつも同じではなくコマの首振り運動のようにずれを起こします。この周期は約2万6千年で1周します。この運動を歳差運動といい、地球上から恒星の位置を観測すると変化していることがわかります。また、恒星はいつも同じ位置にいるわけではなく、赤経および赤緯方向に固有運動を持ちこれも位置が変化していきます。したがって恒星の位置を正しく計算するには、歳差および固有運動を含めて計算する必要があります。厳密にはこれだけでは不足なのですが。
計算は恒星の位置を角度に換算してから指定します。例題のスピカの赤経および赤緯を角度に変換してみましょう。
赤経α(1950):13h22m33.3s → 15 * (13 + 22 / 60 + 33.3 / 3600) = 200.63875
赤緯δ(1950):-10°54′03″ → -(10 + 54 / 60 + 03 / 3600) = −10.90083…
サブルーチン precession
※サブルーチンはlib.pyに記述してください。
# SAISA
def precession(r1, d1, ty, p1, p2, K):
p1 /= K[6]
p2 /= K[6]
ep = 1950.0
t0 = (ep - 1900.0) / 100.0
t1 = (ty - ep) / 100.0
t2 = t1 * t1
t3 = t2 * t1
# 天体の位置計算 長沢工著 53頁 式3-11より
x1 = (2304.25 + 1.396 * t0) * t1 + 0.302 * t2 + 0.018 * t3
x2 = x1 + 0.791 * t2 + 0.001 * t3
x3 = (2004.682 - 0.853 * t0) * t1 - 0.426 * t2 - 0.042 * t3
x1 /= K[6]
x2 /= K[6]
x3 /= K[6]
r2 = r1 + p1 * t1
d2 = d1 + p2 * t1
ss = math.cos(d2) * math.sin(r2 + x1)
cc = math.cos(x3) * math.cos(d2) * math.cos(r2 + x1) - math.sin(x3) * math.sin(d2)
r3 = quadrant(ss, cc)
cc = ss / math.sin(r3)
ss = math.cos(x3) * math.sin(d2) + math.sin(x3) * math.cos(d2) * math.cos(r2 + x1)
dc = math.atan(ss / cc)
ra = r3 + x2
return ra, dc
サブルーチン quadrant
# SYOGEN
def quadrant(ss, cc):
tt = math.atan(ss / cc)
if cc < 0:
tt += math.pi
else:
if ss < 0:
tt += (2.0 * math.pi)
return tt
メインルーチン m26.py
# m26.py
# マイコン宇宙講座
# 2-6 恒星の歳差計算プログラム
import math
import lib
print()
yy = int(input('計算を始めたい年 ? '))
ra = float(input('恒星の赤経 ? ')) / lib.K[3]
dc = float(input('恒星の赤緯 ? ')) / lib.K[3]
pr = float(input('赤経方向の固有運動量 ? '))
pd = float(input('赤緯方向の固有運動量 ? '))
la = float(input('緯度 ? ')) / lib.K[3]
print()
print(' YEAR R.A. DECL. DIRECTION(N to E)')
print(' 。 。 。')
r1 = ra
d1 = dc
for y in range(yy, 1700, 100):
ty = y + 0.25
ra, dc = lib.precession(r1, d1, ty, pr, pd, lib.K)
cc = math.sin(dc) / math.cos(la)
ss = math.sqrt(1.0 - cc * cc)
al = math.atan(ss / cc)
if al < 0:
al += math.pi
al *= lib.K[3]
ra *= lib.K[3]
dc *= lib.K[3]
print(' %4d %7.2f %7.2f %6.2f' % (ty, ra, dc, al))
print()
例題 スピカの300年から1600年までの位置の変化を求めてみよう。
計算を始めたい年 ? 300 恒星の赤経 ? 200.63875 恒星の赤緯 ? -10.90083 赤経方向の固有運動量 ? -4.4 赤緯方向の固有運動量 ? -3.3 緯度 ? 50 YEAR R.A. DECL. DIRECTION(N to E) 。 。 。 300 179.41 -1.86 92.89 400 180.68 -2.42 93.77 500 181.95 -2.98 94.64 600 183.22 -3.54 95.52 700 184.49 -4.10 96.39 800 185.77 -4.66 97.26 900 187.04 -5.22 98.13 1000 188.32 -5.77 99.00 1100 189.60 -6.32 99.87 1200 190.89 -6.87 100.73 1300 192.18 -7.42 101.59 1400 193.47 -7.97 102.45 1500 194.76 -8.51 103.31 1600 196.06 -9.05 104.16