pianofisica

Mathematics & Physics, Maxima, a bit Python & Wolfram, and Arts

Python(SymPy)を使って学ぶアインシュタイン方程式のド・ジッター解

今回は Python(SymPy)を活用する具体例として、4次元時空のde Sitter(ド・ジッター)解が宇宙定数がある場合のアインシュタイン方程式の解になっていることをPython(SymPy)を使って確認してみたいと思います。宇宙定数がゼロの場合には、前の記事

pianofisica.hatenablog.com

でみたように、Schwarzschild(シュワルツシルト)解が静的で球対称な場合のアインシュタイン方程式の真空解として求められました。今回はそれを少し拡張したものになります。

前の記事と同様、おまけとして、5次元・6次元の場合についても同様に計算してみます。
 



 

4次元ド・ジッター解

計算の詳細については、上でリンクを貼った過去の記事を参照してください。

宇宙定数 \Lambda を含む場合のEinstein方程式は

 \qquad\displaystyle{G_{ij}+\Lambda\,g_{ij}=0}

で与えられます。ここでSchwarzschildの場合と同様に静的で球対称な仮定を置いて、未知関数を f=f(r) として

 \qquad\displaystyle{g_{ij}=\left(\begin{array}{cccc} -f(r) & 0 & 0 & 0  \\ 0 & \frac{1}{f(r)} & 0 & 0 \\ 0 & 0 & r^2 & 0 \\ 0 & 0 & 0 & r^2\sin^2\theta \end{array} \right)}

を考えてみます。ただし、これらの成分は座標系

 \qquad\displaystyle{\xi^{i}=\left(\begin{array}{c} t \\ r \\ \theta \\ \phi \end{array} \right)}

に関するものとします。

%reset
import sympy as sp

sp.var('t, r, theta, phi, psi')
xi = sp.Matrix([ [t],[r],[theta],[phi] ])
D = len(xi)

f = sp.Function('f')(r)
g = sp.Matrix([
[-f, 0, 0, 0],
[0, 1/f, 0, 0],
[0, 0, r**2, 0],
[0, 0, 0, r**2*sp.sin(theta)**2] ])

ginv = g.inv()

def Gamma(k,i,j):
    gm = 0
    for n in range(D):
        gm = gm + sp.Rational(1,2)*ginv[k,n]*(g[n,i].diff(xi[j])\
                +g[n,j].diff(xi[i])-g[i,j].diff(xi[n]))
    return gm

def R(i,j,k,l):
    rm = Gamma(i,l,j).diff(xi[k]) - Gamma(i,k,j).diff(xi[l]) 
    for n in range(D):
        rm = rm + Gamma(n,l,j)*Gamma(i,k,n) - Gamma(n,k,j)*Gamma(i,l,n)
    return rm

def Ricc(j,k):
    ric = 0
    for n in range(D):
        ric = ric + R(n,j,n,k)
    return ric

RiccMat = sp.Matrix([
[Ricc(0,0), Ricc(0,1), Ricc(0,2), Ricc(0,3)],
[Ricc(1,0), Ricc(1,1), Ricc(1,2), Ricc(1,3)],
[Ricc(2,0), Ricc(2,1), Ricc(2,2), Ricc(2,3)],
[Ricc(3,0), Ricc(3,1), Ricc(3,2), Ricc(3,3)] ])

R = sp.simplify((ginv*RiccMat).trace())

GMat = sp.simplify(RiccMat - sp.Rational(1,2)*g*R)
GMat

より、Einsteinテンソル

 \displaystyle{G_{ij}=\left(\begin{array}{ccccc} \frac{\left(- r \frac{d}{d r} f{\left(r \right)} - f{\left(r \right)} + 1\right) f{\left(r \right)}}{r^{2}} & 0 & 0 & 0\\0 & \frac{r \frac{d}{d r} f{\left(r \right)} + f{\left(r \right)} - 1}{r^{2} f{\left(r \right)}} & 0 & 0\\0 & 0 & \frac{r \left(r \frac{d^{2}}{d r^{2}} f{\left(r \right)} + 2 \frac{d}{d r} f{\left(r \right)}\right)}{2} & 0\\0 & 0 & 0 & \frac{r \left(r \frac{d^{2}}{d r^{2}} f{\left(r \right)} + 2 \frac{d}{d r} f{\left(r \right)}\right) \sin^{2}{\left(\theta \right)}}{2}\end{array} \right)}

と求まります。さて、いまEinstein方程式の左辺を

 \qquad\displaystyle{E_{ij}=G_{ij}+\Lambda\,g_{ij}}

とすると、このテンソル  E_{ij} の全ての成分がゼロというのが解の条件です。よって

sp.var('Lambda')

EMat = sp.simplify(GMat + Lambda*g)
EMat

から、未知関数  f について

 \qquad\displaystyle{-\Lambda r^2 - r f'-f+1=0\\ 2\Lambda r + r f''+2f'=0}

が要請されます。ここで第2式は第1式から従うので、第1式だけ考えれば良いことがわかります。すなわち

 \qquad\displaystyle{f'=\frac{1-f}{r}-\Lambda r}

です。これは宇宙定数に比例する項を非斉次項に持つ線形1階常微分方程式なので、その一般解は斉次方程式の一般解(Schwarzschild解)と、特解の和によって与えられます。特解は

 \qquad\displaystyle{f=1-\frac{\Lambda}{3}r^2}

であることがわかります。よって一般解は  a を定数として

 \qquad\displaystyle{f=1-\frac{a}{r}-\frac{\Lambda}{3}r^2}

で与えられます。この解によって定まるEinstein方程式の真空解をde Sitter–Schwarzschild解といいます。




 

5次元ド・ジッター解

5次元の場合に、時間  t と4次元空間の極座標 \xi^i=(r,\theta,\phi,\psi) からなる座標系で

 \qquad\displaystyle{g_{ij}=\left(\begin{array}{ccccc} -f(r) & 0 & 0 & 0 & 0 \\ 0 & \frac{1}{f(r)} & 0 & 0 & 0 \\ 0 & 0 & r^2 & 0 & 0 \\ 0 & 0 & 0 & r^2\sin^2\theta &0 \\  0 & 0 & 0 &0 & r^2\sin^2\theta\sin^2\phi \end{array} \right)}

として4次元の場合と同様の計算をします:

%reset
import sympy as sp

sp.var('t, r, theta, phi, psi')
xi = sp.Matrix([ [t],[r],[theta],[phi],[psi] ])
D = len(xi)

f = sp.Function('f')(r)
g = sp.Matrix([
[-f, 0, 0, 0, 0],
[0, 1/f, 0, 0, 0],
[0, 0, r**2, 0, 0],
[0, 0, 0, r**2*sp.sin(theta)**2, 0],
[0, 0, 0, 0, r**2*sp.sin(theta)**2*sp.sin(phi)**2] ])

ginv = g.inv()

def Gamma(k,i,j):
    gm = 0
    for n in range(D):
        gm = gm + sp.Rational(1,2)*ginv[k,n]*(g[n,i].diff(xi[j])\
                +g[n,j].diff(xi[i])-g[i,j].diff(xi[n]))
    return gm

def R(i,j,k,l):
    rm = Gamma(i,l,j).diff(xi[k]) - Gamma(i,k,j).diff(xi[l]) 
    for n in range(D):
        rm = rm + Gamma(n,l,j)*Gamma(i,k,n) - Gamma(n,k,j)*Gamma(i,l,n)
    return rm

def Ricc(j,k):
    ric = 0
    for n in range(D):
        ric = ric + R(n,j,n,k)
    return ric

RiccMat = sp.Matrix([
[Ricc(0,0), Ricc(0,1), Ricc(0,2), Ricc(0,3), Ricc(0,4)],
[Ricc(1,0), Ricc(1,1), Ricc(1,2), Ricc(1,3), Ricc(1,4)],
[Ricc(2,0), Ricc(2,1), Ricc(2,2), Ricc(2,3), Ricc(2,4)],
[Ricc(3,0), Ricc(3,1), Ricc(3,2), Ricc(3,3), Ricc(3,4)],
[Ricc(4,0), Ricc(4,1), Ricc(4,2), Ricc(4,3), Ricc(4,4)] ])

R = sp.simplify((ginv*RiccMat).trace())

GMat = sp.simplify(RiccMat - sp.Rational(1,2)*g*R)

sp.var('Lambda')

EMat = sp.simplify(GMat + Lambda*g)
EMat

より、Einstein方程式  G_{ij}+\Lambda g_{ij}=0 から

 \qquad\displaystyle{- 2 \Lambda r^{2} - 3 r \frac{d}{d r} f{\left(r \right)} - 6 f{\left(r \right)} + 6=0\\ \Lambda r^{2} + \frac{r^{2} \frac{d^{2}}{d r^{2}} f{\left(r \right)}}{2} + 2 r \frac{d}{d r} f{\left(r \right)} + f{\left(r \right)} - 1=0}

が関数  f に課されます。この場合についても、第2式は第1式から自動的に満たされて

 \qquad\displaystyle{f'=\frac{2(1-f)}{r}-\frac{2}{3}\Lambda r}

という、宇宙定数に比例する項を非斉次項に持つ線形1階常微分方程式を得ます。その特解は

 \qquad\displaystyle{f(r)=1-\frac{\Lambda}{6}r^2}

であることがわかります。よって一般解は  a を定数として

 \qquad\displaystyle{f=1-\frac{a}{r^2}-\frac{\Lambda}{6}r^2}

で与えられます。この解によって定まる計量が5次元の場合のde Sitter–Schwarzschild解です。
 

 


 

6次元ド・ジッター解

6次元の場合のSchwarzschild解とこれまでの考察から、6次元の場合の未知関数  f は次のような形

 \qquad\displaystyle{f=1-\frac{a}{r^3}-\frac{\Lambda}{C_6}r^2}

だろうと予想がつきます。ただし C_6 は定数で、Einstein方程式から決定されるものです。実際

%reset
import sympy as sp

sp.var('t, r, theta, phi, psi, chi, Lambda, a, C6')
xi = sp.Matrix([ [t],[r],[theta],[phi],[psi],[chi] ])
D = len(xi)

# いま関数 f の具体形を用いています
f = 1 - a/(r**3) - Lambda/C6*r**2
g = sp.Matrix([
[-f, 0, 0, 0, 0, 0],
[0, 1/f, 0, 0, 0, 0],
[0, 0, r**2, 0, 0, 0],
[0, 0, 0, r**2*sp.sin(theta)**2, 0, 0],
[0, 0, 0, 0, r**2*sp.sin(theta)**2*sp.sin(phi)**2, 0],
[0, 0, 0, 0, 0, r**2*sp.sin(theta)**2*sp.sin(phi)**2*sp.sin(psi)**2] ])

ginv = g.inv()

def Gamma(k,i,j):
    gm = 0
    for n in range(D):
        gm = gm + sp.Rational(1,2)*ginv[k,n]*(g[n,i].diff(xi[j])\
                +g[n,j].diff(xi[i])-g[i,j].diff(xi[n]))
    return gm

def R(i,j,k,l):
    rm = Gamma(i,l,j).diff(xi[k]) - Gamma(i,k,j).diff(xi[l]) 
    for n in range(D):
        rm = rm + Gamma(n,l,j)*Gamma(i,k,n) - Gamma(n,k,j)*Gamma(i,l,n)
    return rm

def Ricc(j,k):
    ric = 0
    for n in range(D):
        ric = ric + R(n,j,n,k)
    return ric

RiccMat = sp.Matrix([
[Ricc(0,0), Ricc(0,1), Ricc(0,2), Ricc(0,3), Ricc(0,4), Ricc(0,5)],
[Ricc(1,0), Ricc(1,1), Ricc(1,2), Ricc(1,3), Ricc(1,4), Ricc(1,5)],
[Ricc(2,0), Ricc(2,1), Ricc(2,2), Ricc(2,3), Ricc(2,4), Ricc(2,5)],
[Ricc(3,0), Ricc(3,1), Ricc(3,2), Ricc(3,3), Ricc(3,4), Ricc(3,5)],
[Ricc(4,0), Ricc(4,1), Ricc(4,2), Ricc(4,3), Ricc(4,4), Ricc(4,5)],
[Ricc(5,0), Ricc(5,1), Ricc(5,2), Ricc(5,3), Ricc(5,4), Ricc(5,5)] ])

R = sp.simplify((ginv*RiccMat).trace())

GMat = sp.simplify(RiccMat - sp.Rational(1,2)*g*R)

EMat = sp.simplify(GMat + Lambda*g)
EMat

より、Einstein方程式  G_{ij}+\Lambda g_{ij}=0 から

 \qquad\displaystyle{C_6=10}

と求まります。
 
以上見てきたように、宇宙定数がある場合のEinstein方程式の解は、次の形の関数

 \qquad\displaystyle{f_d=1-\frac{\Lambda}{C_d}r^2\qquad (d=4,5,6)}

で特徴づけられる計量によって与えられました。ここで

 \qquad\displaystyle{C_4=3 \qquad C_5=6 \qquad C_6=10}

だったわけですが、同様のことは他の次元でも成り立つでしょうか?またそのとき係数はいくつでしょうか?そんなことを考察してみるのも面白いかもしれませんね。ちなみに、 C_7=15 です。
 

 


 
 

キーワードPython、SymPy、Riemann幾何、一般相対論、ド・ジッター解

プライバシーポリシー