はじめに
『チ。—地球の運動について—』という理系、特に高校で物理学を専攻していた方には刺さりそうな面白い漫画がアニメ化されていた。地球を宇宙の中心とみなす天動説では、天体の動きを単純な数式で叙述することができなかった。そこで、観測点を地球ではなく太陽にすることで、天体の動きをシンプルに叙述することが地動説により可能となった。しかし、それには人類の負の遺産というべき残酷な歴史がある。そのことについての説明はアニメ『チ。—地球の運動について—』に譲るとして、今回は仮想的な天体系を考えることで、天動説と地動説について視覚的な理解を深めるものとする。
以下、Pythonによる計算結果の概略を示す。
仮想的な天体系
恒星と2つの惑星についてのモデル
地動説
天動説
恒星と3つの惑星についてのモデル
地動説
天動説
このように、天動説では天体の軌跡がすごく複雑なものになる。一方で地動説では極めてシンプルに天体の運動を説明できてしまう。
天体系のモデルについて
地動説モデル
現代科学で、主流とされている地動説をモデルとして仮想的な天体系を考える。
$xy$座標系で考える。原点に恒星$S(0,0)$を配置する。
一方で、以下のようなその周りを円軌道で動く$n$個の惑星$P_1(x_1,y_1) , P_2(x_2,y_2),\cdot \cdot \cdot, P_k(x_k,y_k),\cdot \cdot \cdot,P_n(x_n,y_n) $を考える。$(1\le k\le n)$
\begin{equation}
\left\{ \,
\begin{aligned}
& x_k = r_k \cos(\omega_k t) \\
& y_k = r_k \sin(\omega_k t) \\
\end{aligned}
\right.
\end{equation}
ただし、ケプラーの第3法則より、
r_1<r_2<\cdot \cdot \cdot <r_n
のとき、
\omega_1>\omega_2\cdot \cdot \cdot >\omega_n
が成立するものとする。
天動説モデル
ここで、地球を$P_1(x_1,y_1)$とし、地球を観測点と考える。
この場合、恒星$S$の天動説モデルでの座標$S'$は以下のようになる。
S'(0-x_1,0-y_1)=S'(-x_1,-y_1)
一方で、惑星の天動説モデルでの座標$P'_2(x'_2,y'_2),P'_3(x'_3,y'_3),P'_4(x'_4,y'_4),\cdot \cdot \cdot, P'_k(x'_k,y'_k),\cdot \cdot \cdot ,P'_n(x'_n,y'_n)$は以下のようになる。$(1\le k\le n)$
\begin{equation}
\left\{ \,
\begin{aligned}
& x'_k = r_k \cos(\omega_k t) -r_1\cos(\omega_1 t)\\
& y'_k = r_k \sin(\omega_k t) -r_1 \sin(\omega_1 t) \\
\end{aligned}
\right.
\end{equation}
プログラム
上記の議論をもとに以下のようなプログラムを作成した。ただしパラメータは、太陽系の観測値では複雑になってしまうので、適当な値を選び単純化した。
恒星と2つの惑星についてのモデル
import numpy as np
import matplotlib.pyplot as plt
import japanize_matplotlib
import math
n=1000
theta=np.linspace(0, 2 * np.pi, n)
plt.figure(figsize=(8, 8))
plt.axes().set_aspect("equal")
x1=np.cos(10*theta)
y1=np.sin(10*theta)
x2=2*np.cos(theta)
y2=2*np.sin(theta)
#地動説での天体の運動の軌跡
plt.title("地動説の図")
plt.plot(0, 0, label='恒星', color='red', marker='o', markersize=10)
plt.plot(x1, y1, label='惑星1', color='blue')
plt.plot(x2, y2, label='惑星2', color='green')
plt.legend()
plt.savefig("地動説.png")
plt.show()
#天動説での天体の運動の軌跡
plt.title("天動説の図")
plt.plot(0-x1, 0-y1, label='恒星', color='red', marker='o', markersize=10)
plt.plot(x1-x1, y1-y1, label='惑星1', color='blue', marker='o', markersize=1)
plt.plot(x2-x1, y2-y1, label='惑星2', color='green')
plt.legend()
plt.savefig("天動説png")
plt.show()
結果 地動説
結果 天動説
恒星と3つの惑星についてのモデル
import numpy as np
import matplotlib.pyplot as plt
import japanize_matplotlib
import math
n=10000
theta=np.linspace(0, 2 * np.pi, n)
plt.figure(figsize=(8, 8))
plt.axes().set_aspect("equal")
x1=np.cos(100*theta)
y1=np.sin(100*theta)
x2=2*np.cos(10*theta)
y2=2*np.sin(10*theta)
y3=3*np.cos(theta)
x3=3*np.sin(theta)
#地動説での天体の運動の軌跡
plt.title("地動説の図")
plt.plot(0, 0, label='恒星', color='red', marker='o', markersize=10)
plt.plot(x1, y1, label='惑星1', color='blue')
plt.plot(x2, y2, label='惑星2', color='green')
plt.plot(x3, y3, label='惑星3', color='purple')
plt.legend()
plt.savefig("地動説2.png")
plt.show()
#天動説での天体の運動の軌跡
plt.title("天動説の図")
plt.plot(0-x1, 0-y1, label='恒星', color='red', marker='o', markersize=10)
plt.plot(x1-x1, y1-y1, label='惑星1', color='blue', marker='o', markersize=1)
plt.plot(x2-x1, y2-y1, label='惑星2', color='green')
plt.plot(x3-x1, y3-y1, label='惑星3', color='purple')
plt.legend()
plt.savefig("天動説2png")
plt.show()
結果 地動説
結果 天動説
このように、天動説のように地球から見ることができる天体の軌道は複雑である。しかし、地動説によってその現象はシンプルな天体の軌道で説明することができる。
まとめ
天動説の複雑性や神秘性にもがき苦しみ、当時は禁忌とされていた地動説のシンプルさに惹かれた学者は人間的に見ても偉大であることが伺える。並大抵の人間では、仮に自分の命と引き換えにこの宇宙の真理を証明できたとしても、自分の命を選ぶだろう。これは、愚かなことでも何でもなく当然のことである。だが、我々のような一般人は科学の理論というのは最初から綺麗に体系だって発見されたのではなく、このような膨大な先人方の地獄の苦しみの上で成り立っているということを忘れてはならない。