重力と測地線#

Einstein field equation#

\[\begin{split} \begin{align} G_{\mu \nu} + \Lambda g_{\mu \nu} &= \kappa T_{\mu \nu} \\ \left( R_{\mu \nu} - \frac{1}{2} R g_{\mu \nu} \right) + \Lambda g_{\mu \nu} &= \kappa T_{\mu \nu} \end{align} \end{split}\]
\[ \kappa = \frac{8 \pi G}{c^4} \]

fig-33

Polar (spherical) coordinate to Cartesian coordinate#

fig-1

from IPython.display import display
import sympy
from sympy import Function, Symbol
from sympy import sin, cos, tan, cot

Metric tensor#

Maniforld#

fig-10

from sympy.diffgeom.rn import R3_r, R3_s
R3_r.manifold, R3_s.manifold
(R^3, R^3)
type(R3_r), type(R3_s)
(sympy.diffgeom.diffgeom.CoordSystem, sympy.diffgeom.diffgeom.CoordSystem)
print(R3_r)
print(R3_s)
rectangular
spherical
R3_r.base_scalars()
[x, y, z]
R3_s.base_scalars()
[r, theta, phi]

Coordinate transformation#

s = R3_s.transform(R3_r, R3_s.base_scalars())
s
\[\begin{split}\displaystyle \left[\begin{matrix}\sin{\left(\mathbf{\theta} \right)} \cos{\left(\mathbf{\phi} \right)} \mathbf{r}\\\sin{\left(\mathbf{\theta} \right)} \sin{\left(\mathbf{\phi} \right)} \mathbf{r}\\\cos{\left(\mathbf{\theta} \right)} \mathbf{r}\end{matrix}\right]\end{split}\]
s_r = R3_r.transform(R3_s, R3_r.base_scalars())
s_r
\[\begin{split}\displaystyle \left[\begin{matrix}\sqrt{\mathbf{x}^{2} + \mathbf{y}^{2} + \mathbf{z}^{2}}\\\operatorname{acos}{\left(\frac{\mathbf{z}}{\sqrt{\mathbf{x}^{2} + \mathbf{y}^{2} + \mathbf{z}^{2}}} \right)}\\\operatorname{atan_{2}}{\left(\mathbf{y},\mathbf{x} \right)}\end{matrix}\right]\end{split}\]

Line element#

fig-20

for i in range(3):
    display(R3_s.base_oneform(i))
\[\displaystyle \operatorname{d}r\]
\[\displaystyle \operatorname{d}\theta\]
\[\displaystyle \operatorname{d}\phi\]
for i in range(3):
    display(R3_s.base_vector(i))
\[\displaystyle \partial_{r}\]
\[\displaystyle \partial_{\theta}\]
\[\displaystyle \partial_{\phi}\]
s
\[\begin{split}\displaystyle \left[\begin{matrix}\sin{\left(\mathbf{\theta} \right)} \cos{\left(\mathbf{\phi} \right)} \mathbf{r}\\\sin{\left(\mathbf{\theta} \right)} \sin{\left(\mathbf{\phi} \right)} \mathbf{r}\\\cos{\left(\mathbf{\theta} \right)} \mathbf{r}\end{matrix}\right]\end{split}\]
for i in range(3):
    display(R3_s.base_vector(i)(s))
\[\begin{split}\displaystyle \left[\begin{matrix}\sin{\left(\mathbf{\theta} \right)} \cos{\left(\mathbf{\phi} \right)}\\\sin{\left(\mathbf{\theta} \right)} \sin{\left(\mathbf{\phi} \right)}\\\cos{\left(\mathbf{\theta} \right)}\end{matrix}\right]\end{split}\]
\[\begin{split}\displaystyle \left[\begin{matrix}\cos{\left(\mathbf{\theta} \right)} \cos{\left(\mathbf{\phi} \right)} \mathbf{r}\\\sin{\left(\mathbf{\phi} \right)} \cos{\left(\mathbf{\theta} \right)} \mathbf{r}\\- \sin{\left(\mathbf{\theta} \right)} \mathbf{r}\end{matrix}\right]\end{split}\]
\[\begin{split}\displaystyle \left[\begin{matrix}- \sin{\left(\mathbf{\theta} \right)} \sin{\left(\mathbf{\phi} \right)} \mathbf{r}\\\sin{\left(\mathbf{\theta} \right)} \cos{\left(\mathbf{\phi} \right)} \mathbf{r}\\0\end{matrix}\right]\end{split}\]
ds = (R3_s.base_vector(0)(s) * R3_s.base_oneform(0) 
    + R3_s.base_vector(1)(s) * R3_s.base_oneform(1)
    + R3_s.base_vector(2)(s) * R3_s.base_oneform(2))
ds
\[\begin{split}\displaystyle \left[\begin{matrix}- \sin{\left(\mathbf{\theta} \right)} \sin{\left(\mathbf{\phi} \right)} \mathbf{r} \operatorname{d}\phi + \sin{\left(\mathbf{\theta} \right)} \cos{\left(\mathbf{\phi} \right)} \operatorname{d}r + \cos{\left(\mathbf{\theta} \right)} \cos{\left(\mathbf{\phi} \right)} \mathbf{r} \operatorname{d}\theta\\\sin{\left(\mathbf{\theta} \right)} \sin{\left(\mathbf{\phi} \right)} \operatorname{d}r + \sin{\left(\mathbf{\theta} \right)} \cos{\left(\mathbf{\phi} \right)} \mathbf{r} \operatorname{d}\phi + \sin{\left(\mathbf{\phi} \right)} \cos{\left(\mathbf{\theta} \right)} \mathbf{r} \operatorname{d}\theta\\- \sin{\left(\mathbf{\theta} \right)} \mathbf{r} \operatorname{d}\theta + \cos{\left(\mathbf{\theta} \right)} \operatorname{d}r\end{matrix}\right]\end{split}\]

First fundamental form#

ds2 = sympy.expand(ds.dot(ds))
ds2
\[\displaystyle \sin^{2}{\left(\mathbf{\theta} \right)} \sin^{2}{\left(\mathbf{\phi} \right)} \mathbf{r}^{2} \operatorname{d}\phi^{2} + \sin^{2}{\left(\mathbf{\theta} \right)} \sin^{2}{\left(\mathbf{\phi} \right)} \operatorname{d}r^{2} + \sin^{2}{\left(\mathbf{\theta} \right)} \cos^{2}{\left(\mathbf{\phi} \right)} \mathbf{r}^{2} \operatorname{d}\phi^{2} + \sin^{2}{\left(\mathbf{\theta} \right)} \cos^{2}{\left(\mathbf{\phi} \right)} \operatorname{d}r^{2} + \sin^{2}{\left(\mathbf{\theta} \right)} \mathbf{r}^{2} \operatorname{d}\theta^{2} + \sin{\left(\mathbf{\theta} \right)} \sin^{2}{\left(\mathbf{\phi} \right)} \cos{\left(\mathbf{\theta} \right)} \mathbf{r} \operatorname{d}r \operatorname{d}\theta + \sin{\left(\mathbf{\theta} \right)} \sin^{2}{\left(\mathbf{\phi} \right)} \cos{\left(\mathbf{\theta} \right)} \mathbf{r} \operatorname{d}\theta \operatorname{d}r + \sin{\left(\mathbf{\theta} \right)} \cos{\left(\mathbf{\theta} \right)} \cos^{2}{\left(\mathbf{\phi} \right)} \mathbf{r} \operatorname{d}r \operatorname{d}\theta + \sin{\left(\mathbf{\theta} \right)} \cos{\left(\mathbf{\theta} \right)} \cos^{2}{\left(\mathbf{\phi} \right)} \mathbf{r} \operatorname{d}\theta \operatorname{d}r - \sin{\left(\mathbf{\theta} \right)} \cos{\left(\mathbf{\theta} \right)} \mathbf{r} \operatorname{d}r \operatorname{d}\theta - \sin{\left(\mathbf{\theta} \right)} \cos{\left(\mathbf{\theta} \right)} \mathbf{r} \operatorname{d}\theta \operatorname{d}r + \sin^{2}{\left(\mathbf{\phi} \right)} \cos^{2}{\left(\mathbf{\theta} \right)} \mathbf{r}^{2} \operatorname{d}\theta^{2} + \cos^{2}{\left(\mathbf{\theta} \right)} \cos^{2}{\left(\mathbf{\phi} \right)} \mathbf{r}^{2} \operatorname{d}\theta^{2} + \cos^{2}{\left(\mathbf{\theta} \right)} \operatorname{d}r^{2}\]
sympy.simplify(ds2)
\[\displaystyle - \sin{\left(2 \mathbf{\theta} \right)} \mathbf{r} \operatorname{d}r \operatorname{d}\theta + \sin^{2}{\left(\mathbf{\theta} \right)} \sin^{2}{\left(\mathbf{\phi} \right)} \mathbf{r}^{2} \operatorname{d}\phi^{2} + \sin^{2}{\left(\mathbf{\theta} \right)} \sin^{2}{\left(\mathbf{\phi} \right)} \operatorname{d}r^{2} + \sin^{2}{\left(\mathbf{\theta} \right)} \cos^{2}{\left(\mathbf{\phi} \right)} \mathbf{r}^{2} \operatorname{d}\phi^{2} + \sin^{2}{\left(\mathbf{\theta} \right)} \cos^{2}{\left(\mathbf{\phi} \right)} \operatorname{d}r^{2} + \sin^{2}{\left(\mathbf{\theta} \right)} \mathbf{r}^{2} \operatorname{d}\theta^{2} + \sin{\left(\mathbf{\theta} \right)} \sin^{2}{\left(\mathbf{\phi} \right)} \cos{\left(\mathbf{\theta} \right)} \mathbf{r} \operatorname{d}r \operatorname{d}\theta + \sin{\left(\mathbf{\theta} \right)} \sin^{2}{\left(\mathbf{\phi} \right)} \cos{\left(\mathbf{\theta} \right)} \mathbf{r} \operatorname{d}\theta \operatorname{d}r + \sin{\left(\mathbf{\theta} \right)} \cos{\left(\mathbf{\theta} \right)} \cos^{2}{\left(\mathbf{\phi} \right)} \mathbf{r} \operatorname{d}r \operatorname{d}\theta + \sin{\left(\mathbf{\theta} \right)} \cos{\left(\mathbf{\theta} \right)} \cos^{2}{\left(\mathbf{\phi} \right)} \mathbf{r} \operatorname{d}\theta \operatorname{d}r + \sin^{2}{\left(\mathbf{\phi} \right)} \cos^{2}{\left(\mathbf{\theta} \right)} \mathbf{r}^{2} \operatorname{d}\theta^{2} + \cos^{2}{\left(\mathbf{\theta} \right)} \cos^{2}{\left(\mathbf{\phi} \right)} \mathbf{r}^{2} \operatorname{d}\theta^{2} + \cos^{2}{\left(\mathbf{\theta} \right)} \operatorname{d}r^{2}\]
display(R3_s.base_oneform(0)**2, R3_s.base_oneform(1)**2, R3_s.base_oneform(2)**2)
\[\displaystyle \operatorname{d}r^{2}\]
\[\displaystyle \operatorname{d}\theta^{2}\]
\[\displaystyle \operatorname{d}\phi^{2}\]
sympy.simplify(ds2.coeff(R3_s.base_oneform(0)**2))
\[\displaystyle 1\]
sympy.simplify(ds2.coeff(R3_s.base_oneform(1)**2))
\[\displaystyle \mathbf{r}^{2}\]
sympy.simplify(ds2.coeff(R3_s.base_oneform(2)**2))
\[\displaystyle \sin^{2}{\left(\mathbf{\theta} \right)} \mathbf{r}^{2}\]
\[ ds^2 = (dr)^2 + r^2 (d\theta)^2 + r^2 \sin^2 \theta (d\phi)^2 \]

基底変換に伴う計量テンソルの変換公式#

\[ g_{\mu ' \nu '} = \frac{\partial x^{\mu}}{\partial x^{\mu '}} \frac{\partial x^{\nu}}{\partial x^{\nu '}} g_{\mu \nu} \]
g = sympy.diag(sympy.simplify(ds2.coeff(R3_s.base_oneform(0)**2)),
               sympy.simplify(ds2.coeff(R3_s.base_oneform(1)**2)), 
               sympy.simplify(ds2.coeff(R3_s.base_oneform(2)**2)))
g
\[\begin{split}\displaystyle \left[\begin{matrix}1 & 0 & 0\\0 & \mathbf{r}^{2} & 0\\0 & 0 & \sin^{2}{\left(\mathbf{\theta} \right)} \mathbf{r}^{2}\end{matrix}\right]\end{split}\]

Curvature#

import sympy
from sympy import sin, cos, tan, cot
import einsteinpy
einsteinpy.__version__
'0.4.0'
from einsteinpy.symbolic import MetricTensor
from einsteinpy.symbolic import ChristoffelSymbols, RiemannCurvatureTensor
from einsteinpy.symbolic import RicciTensor, RicciScalar

Ball in \(\rm{R}^3\)#

syms = sympy.symbols('r theta phi')
syms
(r, theta, phi)
r, theta, phi = syms
g=sympy.diag(1,r**2,r**2 * sin(theta)**2)
g
\[\begin{split}\displaystyle \left[\begin{matrix}1 & 0 & 0\\0 & r^{2} & 0\\0 & 0 & r^{2} \sin^{2}{\left(\theta \right)}\end{matrix}\right]\end{split}\]
g.tolist()
[[1, 0, 0], [0, r**2, 0], [0, 0, r**2*sin(theta)**2]]
metric = MetricTensor(g.tolist(), syms)
metric.tensor()
\[\begin{split}\displaystyle \left[\begin{matrix}1 & 0 & 0\\0 & r^{2} & 0\\0 & 0 & r^{2} \sin^{2}{\left(\theta \right)}\end{matrix}\right]\end{split}\]
display(*metric.syms)
\[\displaystyle r\]
\[\displaystyle \theta\]
\[\displaystyle \phi\]
\[ \Gamma^{k}_{i j} = \frac{\partial{\rm{\bf e}}_i}{\partial x^j} \cdot {\rm{\bf e}}^k = \frac{\partial{\rm{\bf e}}_i}{\partial x^j} \cdot g^{k m} {\rm{\bf e}}_m \]
\[ \frac{d^2 x^\lambda}{dt^2} + \Gamma^\lambda_{\mu \nu} \frac{dx^\mu}{dt} \frac{dx^\nu}{dt} = 0 \]
chr=ChristoffelSymbols.from_metric(metric)
chr.tensor()
\[\begin{split}\displaystyle \left[\begin{matrix}\left[\begin{matrix}0 & 0 & 0\\0 & - r & 0\\0 & 0 & - r \sin^{2}{\left(\theta \right)}\end{matrix}\right] & \left[\begin{matrix}0 & \frac{1}{r} & 0\\\frac{1}{r} & 0 & 0\\0 & 0 & - \sin{\left(\theta \right)} \cos{\left(\theta \right)}\end{matrix}\right] & \left[\begin{matrix}0 & 0 & \frac{1}{r}\\0 & 0 & \frac{\cos{\left(\theta \right)}}{\sin{\left(\theta \right)}}\\\frac{1}{r} & \frac{\cos{\left(\theta \right)}}{\sin{\left(\theta \right)}} & 0\end{matrix}\right]\end{matrix}\right]\end{split}\]
display(*chr.syms)
\[\displaystyle r\]
\[\displaystyle \theta\]
\[\displaystyle \phi\]
\[ R^{\rho}_{\sigma \mu \nu} = \partial_\mu \Gamma^\rho_{\nu \sigma} - \partial_\nu \Gamma^\rho_{\mu \lambda} + \Gamma^\rho_{\mu \lambda} \Gamma^\lambda_{\nu \sigma} - \Gamma^\rho_{\nu \lambda} \Gamma^\lambda_{\mu \sigma} \]
rmc = RiemannCurvatureTensor.from_christoffels(chr)
rmc.tensor()
\[\begin{split}\displaystyle \left[\begin{matrix}\left[\begin{matrix}0 & 0 & 0\\0 & 0 & 0\\0 & 0 & 0\end{matrix}\right] & \left[\begin{matrix}0 & 0 & 0\\0 & 0 & 0\\0 & 0 & 0\end{matrix}\right] & \left[\begin{matrix}0 & 0 & 0\\0 & 0 & 0\\0 & 0 & 0\end{matrix}\right]\\\left[\begin{matrix}0 & 0 & 0\\0 & 0 & 0\\0 & 0 & 0\end{matrix}\right] & \left[\begin{matrix}0 & 0 & 0\\0 & 0 & 0\\0 & 0 & 0\end{matrix}\right] & \left[\begin{matrix}0 & 0 & 0\\0 & 0 & 0\\0 & 0 & 0\end{matrix}\right]\\\left[\begin{matrix}0 & 0 & 0\\0 & 0 & 0\\0 & 0 & 0\end{matrix}\right] & \left[\begin{matrix}0 & 0 & 0\\0 & 0 & 0\\0 & 0 & 0\end{matrix}\right] & \left[\begin{matrix}0 & 0 & 0\\0 & 0 & 0\\0 & 0 & 0\end{matrix}\right]\end{matrix}\right]\end{split}\]

リーマン曲率テンソルが \(0\) なので平坦

Sphere (2-dim surface) in \(\rm{R}^3\)#

fig-10

fig-30

display(*metric.syms)
\[\displaystyle r\]
\[\displaystyle \theta\]
\[\displaystyle \phi\]
metric.tensor()
\[\begin{split}\displaystyle \left[\begin{matrix}1 & 0 & 0\\0 & r^{2} & 0\\0 & 0 & r^{2} \sin^{2}{\left(\theta \right)}\end{matrix}\right]\end{split}\]

\(r\) を固定して \(2\) 次元に制限する:

metric[1:,1:]
\[\begin{split}\displaystyle \left[\begin{matrix}r^{2} & 0\\0 & r^{2} \sin^{2}{\left(\theta \right)}\end{matrix}\right]\end{split}\]
chr[1:,1:,1:]
\[\begin{split}\displaystyle \left[\begin{matrix}\left[\begin{matrix}0 & 0\\0 & - \sin{\left(\theta \right)} \cos{\left(\theta \right)}\end{matrix}\right] & \left[\begin{matrix}0 & \frac{\cos{\left(\theta \right)}}{\sin{\left(\theta \right)}}\\\frac{\cos{\left(\theta \right)}}{\sin{\left(\theta \right)}} & 0\end{matrix}\right]\end{matrix}\right]\end{split}\]
ChristoffelSymbols.from_metric(MetricTensor(metric[1:,1:], 
                                             syms=(theta,phi))).tensor()
\[\begin{split}\displaystyle \left[\begin{matrix}\left[\begin{matrix}0 & 0\\0 & - \sin{\left(\theta \right)} \cos{\left(\theta \right)}\end{matrix}\right] & \left[\begin{matrix}0 & \frac{\cos{\left(\theta \right)}}{\sin{\left(\theta \right)}}\\\frac{\cos{\left(\theta \right)}}{\sin{\left(\theta \right)}} & 0\end{matrix}\right]\end{matrix}\right]\end{split}\]
chr2 = ChristoffelSymbols(chr[1:,1:,1:], (theta, phi), 
                          parent_metric=MetricTensor(metric[1:,1:], (theta,phi)))
chr2.tensor()
\[\begin{split}\displaystyle \left[\begin{matrix}\left[\begin{matrix}0 & 0\\0 & - \sin{\left(\theta \right)} \cos{\left(\theta \right)}\end{matrix}\right] & \left[\begin{matrix}0 & \frac{\cos{\left(\theta \right)}}{\sin{\left(\theta \right)}}\\\frac{\cos{\left(\theta \right)}}{\sin{\left(\theta \right)}} & 0\end{matrix}\right]\end{matrix}\right]\end{split}\]
display(*chr2.syms)
\[\displaystyle \theta\]
\[\displaystyle \phi\]
rmc2 = RiemannCurvatureTensor.from_christoffels(chr2)
rmc2.tensor()
\[\begin{split}\displaystyle \left[\begin{matrix}\left[\begin{matrix}0 & 0\\0 & 0\end{matrix}\right] & \left[\begin{matrix}0 & \sin^{2}{\left(\theta \right)}\\- \sin^{2}{\left(\theta \right)} & 0\end{matrix}\right]\\\left[\begin{matrix}0 & -1\\1 & 0\end{matrix}\right] & \left[\begin{matrix}0 & 0\\0 & 0\end{matrix}\right]\end{matrix}\right]\end{split}\]

リーマン曲率テンソルは \(0\) ではない

ricci = RicciTensor.from_christoffels(chr2)
ricci.tensor()
\[\begin{split}\displaystyle \left[\begin{matrix}1 & 0\\0 & \sin^{2}{\left(\theta \right)}\end{matrix}\right]\end{split}\]
# 参考: ボールは平坦
RicciTensor.from_christoffels(chr).tensor()
\[\begin{split}\displaystyle \left[\begin{matrix}0 & 0 & 0\\0 & 0 & 0\\0 & 0 & 0\end{matrix}\right]\end{split}\]
from sympy.matrices import Matrix
Matrix(ricci.parent_metric.tensor()).inv()
\[\begin{split}\displaystyle \left[\begin{matrix}\frac{1}{r^{2}} & 0\\0 & \frac{1}{r^{2} \sin^{2}{\left(\theta \right)}}\end{matrix}\right]\end{split}\]
R=RicciScalar.from_riccitensor(ricci)
R
RicciScalar2/r**2
R.tensor()
\[\displaystyle \frac{2}{r^{2}}\]
%%ai_ask
我々の宇宙のリーマン曲率テンソルについて

宇宙のリーマン曲率テンソルは、アインシュタインの一般相対性理論において、重力場の曲率を表す重要な量です。このテンソルは、時空の曲率を表し、重力場の強さや方向を決定します。宇宙のリーマン曲率テンソルは、宇宙の大規模構造や宇宙膨張の理解に不可欠なものであり、宇宙の形状や進化についての重要な情報を提供しています。また、宇宙のリーマン曲率テンソルは、宇宙の初期におけるインフレーション期間の理論的な予測にも関連しています。

%%ai_continue
リッチスカラーは?

リッチスカラーは、リーマン曲率テンソルを用いて計算される、曲率のスカラー量です。リッチスカラーは、時空の曲率がどの程度強いかを表し、重力場の強さを定量化するために使用されます。具体的には、リッチスカラーは、リーマン曲率テンソルの各成分を用いて計算され、その結果をトレースしたものです。リッチスカラーは、アインシュタインの一般相対性理論において、重力場の方程式の一部として使用されます。また、宇宙の大規模構造や宇宙膨張の理解にも重要な役割を果たしています。

%%ai_continue
我々の宇宙のリッチスカラーは?

現在の宇宙のリッチスカラーは、宇宙の大規模構造や宇宙膨張の観測結果から推定されています。最新の観測結果によると、宇宙のリッチスカラーは、ほぼ一定であり、その値はおよそ0.0001程度です。この値は、宇宙の曲率がほぼ平坦であることを示しています。また、この値は、宇宙の初期におけるインフレーション期間の理論的な予測とも一致しています。

fig-31