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

EinsteinPy や ctensor でアインシュタイン方程式を計算する

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

参考:

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

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

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

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

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

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

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

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

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

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

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

を解き,Kottler 解を求める。

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

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

$$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 でフリードマン方程式を求める

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

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

を計算し,フリードマン方程式を求める。