Return to 一般相対論的時空の表し方

コンピュータ代数システムでアインシュタイン方程式を計算する

Python の EinsteinPy や Maxima の ctensor などのコンピュータ代数システムを使って,アインシュタイン方程式の解を求める例。

アインシュタイン方程式を解くということ

アインシュタイン方程式を解くというのはどういうことか,というと…

計量テンソルと座標

\begin{eqnarray}
ds^2 &=&  g_{\mu\nu}\,dx^{\mu}dx^{\nu}.
\end{eqnarray}

計量テンソルの成分 \(g_{\mu\nu}\) は独立な成分の個数は10個,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本ワンセット」。

… というふうに,ものすごい計算量が必要である。

そこで,人力のみに頼るのでは大変だから,コンピュータ代数システムを活用してみる。

マニュアルページ

Maxima の ctensor

EinsteinPy

参考:

Maxima の ctensor でアインシュタイン方程式を解いてシュバルツシルト解を求める

Maxima の ctensor を使って球対称な計量から真空のアインシュタイン方程式

$$G^{\mu}_{\ \ \nu} = 0$$

を解き,シュバルツシルト解を求める。

EinsteinPy と SymPy でアインシュタイン方程式を解いてシュバルツシルト解を求める

EinsteinPy と SymPy を使って球対称な計量から真空のアインシュタイン方程式

$$G^{\mu}_{\ \ \nu} = 0$$

を解き,シュバルツシルト解を求める。

Maxima の ctensor でアインシュタイン方程式を解いて Kottler 解を求める

Maxima の ctensor を使って球対称な計量から宇宙定数がある場合のアインシュタイン方程式

$$G^{\mu}_{\ \ \nu} + \Lambda\,\delta^{\mu}_{\ \ \nu} =0$$

を解き,Kottler 解を求める。

EinsteinPy と SymPy でアインシュタイン方程式を解いて Kottler 解を求める

EinsteinPy と SymPy を使って球対称な計量から宇宙定数がある場合のアインシュタイン方程式

$$G^{\mu}_{\ \ \nu} + \Lambda\,\delta^{\mu}_{\ \ \nu} =0$$

を解き,Kottler 解を求める。

Maxima の ctensor でフリードマン方程式を求める

Maxima の ctensor を使ってフリードマン・ルメートル・ロバートソン・ウォーカー (FLRW) 計量からアインシュタイン方程式

$$G^{\mu}_{\ \ \nu} + \Lambda \delta^{\mu}_{\ \ \nu} = 8\pi G T^{\mu}_{\ \ \nu}$$

を使ってフリードマン方程式を求める。

EinsteinPy でフリードマン方程式を求める

EinsteinPy を使ってフリードマン・ルメートル・ロバートソン・ウォーカー (FLRW) 計量からアインシュタイン方程式

$$G^{\mu}_{\ \ \nu} + \Lambda \delta^{\mu}_{\ \ \nu} = 8\pi G T^{\mu}_{\ \ \nu}$$

を使ってフリードマン方程式を求める。