Python の EinsteinPy や Maxima の ctensor などのコンピュータ代数システムを使って,アインシュタイン方程式の解を求める例。
アインシュタイン方程式を解くということ
アインシュタイン方程式を解くというのはどういうことか,というと…
計量テンソルと座標
\begin{eqnarray}
ds^2 &=& g_{\mu\nu}\,dx^{\mu}dx^{\nu}.
\end{eqnarray}
計量テンソル \(g_{\mu\nu}\) の独立な成分の個数は最大10個,それぞれが一般に座標 \(x^{\mu}\) の最大4変数に依存する関数。
クリストッフェル記号
\begin{equation}
\varGamma^{\lambda}_{\ \ \mu\nu} = \frac{1}{2} g^{\lambda\sigma}
\left(g_{\sigma\mu,\nu} + g_{\sigma\nu,\mu} – g_{\mu\nu,\sigma}
\right)
\end{equation}
クリストッフェル記号の独立な成分の個数は40個,40個それぞれが一般に座標 \(x^{\mu}\) の4変数関数。
リーマンテンソル
\begin{eqnarray}
R^{\sigma}_{\ \ \mu\nu\rho} &=& \varGamma^{\sigma}_{\ \ \mu\rho,\nu} –
\varGamma^{\sigma}_{\ \ \mu\nu,\rho} \nonumber + \varGamma^{\sigma}_{\ \ \lambda\nu}\varGamma^{\lambda}_{\ \ \mu\rho}
– \varGamma^{\sigma}_{\ \ \lambda\rho}\varGamma^{\lambda}_{\ \ \mu\nu}.
\end{eqnarray}
リーマンテンソルの独立な成分の個数は20個,20個それぞれが一般に座標 \(x^{\mu}\) の4変数関数。
リッチテンソル・リッチスカラー
\begin{equation}
R_{\mu\rho} \equiv R^{\nu}_{\ \ \mu\nu\rho} =R_{\rho\mu} .
\end{equation}
リッチテンソルの独立な成分の個数は10個,10個それぞれが一般に座標 \(x^{\mu}\) の4変数関数。
\begin{equation}
R \equiv g^{\mu\rho} R_{\mu\rho}
\end{equation}
スカラーだから1個,これが一般に座標 \(x^{\mu}\) の4変数関数。
アインシュタインテンソル
$$G_{\mu\nu} \equiv R_{\mu\nu} – \frac{1}{2}g_{\mu\nu}\, R = G_{\nu\mu}$$
リッチテンソルと同様,アインシュタインテンソルの独立な成分の個数は10個,10個それぞれが一般に座標 \(x^{\mu}\) の4変数関数。
アインシュタイン方程式
\begin{equation}
G_{\mu\nu} = \frac{8\pi G}{c^4}T_{\mu\nu}.
\end{equation}
宇宙定数 \(\Lambda\) がある場合には
\begin{equation}
G_{\mu\nu} + \Lambda g_{\mu\nu}= \frac{8\pi G}{c^4}T_{\mu\nu}.
\end{equation}
ここで $T_{\mu\nu}$ は物質のエネルギー運動量テンソル。
アインシュタイン方程式は「4変数関数10個に対する10元連立非線形(偏微分の階数が)2階偏微分方程式10本ワンセット」。
… というふうに,ものすごい計算量が必要である。これだと求めるのが大変で,ほぼ不可能なので,なんらかの簡単化・単純化をおこなって,求める計量テンソルの成分の個数をなるべく減らし,対称性の仮定をして座標依存性をなるべく減らして(可能であれば1変数のみに依存するようにできれば,偏微分方程式ではなく常微分方程式になるので,解きやすくなるかも)ともかく,人間が解ける程度の簡単な形にする。
それでも,人力のみに頼るのでは大変だから,コンピュータ代数システムを活用してみる。
マニュアルページ
Maxima の ctensor
EinsteinPy
参考: