物理の具体的な計算にMaximaを使って、物理もMaximaも同時に学んでしまいましょう。
今回はMaximaを使ってリーマン幾何学&一般相対性理論の計算をしてみたいと思います。
具体的には、球対称で静的な場合のアインシュタイン方程式の解として知られる
de Sitter-Schwarzschild解とよばれる解をみてみます。
4次元の場合についてみたあと、5次元の場合についても同様にMaximaで計算してみます。
6次元の場合については結果だけ載せておきます。
Maximaのごく基本的な使い方については以下の記事を参照してください:
4次元のリーマン幾何
以下、同一式中で同じ文字の添字が現れた場合、
その添字については和をとるものとします(アインシュタインの規約)。
計量テンソルの設定
上で導入した座標系 に付随する空間の計量テンソル
をMaximaに入力するには
g:matrix( [ g11, g12, g13, g14], [ g21, g22, g23, g24], [ g31, g32, g33, g34], [ g41, g42, g43, g44])$
とします。 として導入される上付き添字の は
ginv:invert(g)$
で計算されます。
Christoffel記号
Gamma[i,j,k]:=sum( 1/2*ginv[i,n]*( diff(g[n,j],x[k,1]) + diff(g[n,k],x[j,1]) - diff(g[j,k],x[n,1]) ), n,1,4)$
Riemannの曲率テンソル
R[i,j,k,l]:= diff( Gamma[i,l,j], x[k,1]) - diff(Gamma[i,k,j], x[l,1]) +sum( Gamma[n,l,j]*Gamma[i,k,n] - Gamma[n,k,j]*Gamma[i,l,n], n,1,4)$
4次元de Sitter-Schwarzschild解
具体的に計算するために、時間 と3次元空間の極座標 からなる座標系
x:matrix([t],[r],[theta],[phi])$
で、静的で球対称な場合の
という形の計量テンソルを考えます:
depends(f, r)$ /* f が r の関数であることを宣言します */ g:matrix( [ -f, 0, 0, 0], [ 0, f^(-1), 0, 0], [ 0, 0, r^2, 0], [ 0, 0, 0, r^2*sin(theta)^2]);
このとき、Christoffel記号、Riemann曲率テンソル、Ricciテンソル、Einsteinテンソルは
ginv:invert(g)$ Gamma[i,j,k]:=sum( 1/2*ginv[i,n]*( diff(g[n,j],x[k,1]) + diff(g[n,k],x[j,1]) - diff(g[j,k],x[n,1]) ), n,1,4)$ R[i,j,k,l]:= diff( Gamma[i,l,j], x[k,1]) - diff(Gamma[i,k,j], x[l,1]) +sum( Gamma[n,l,j]*Gamma[i,k,n] - Gamma[n,k,j]*Gamma[i,l,n], n,1,4)$ Ricc[j,k]:=ratsimp(sum(R[n,j,n,k], n,1,4))$ /* 式整理のために ratsimp(式の簡単化)を使っています */ R: ratsimp(sum(sum(ginv[n,k]*Ricc[n,k],k,1,4), n, 1, 4))$ /* 同上 */ Ein[i,j]:=factor(xthru(Ricc[i,j]-1/2*G[i,j]*R))$ /* 式整理のために factor(因子化)xthru(通分)を使っています */
で計算されます。Einsteinテンソルの計算結果を表示すると
matrix( [Ricc[1,1],Ricc[1,2],Ricc[1,3],Ricc[1,4]], [Ricc[2,1],Ricc[2,2],Ricc[2,3],Ricc[2,4]], [Ricc[3,1],Ricc[3,2],Ricc[3,3],Ricc[3,4]], [Ricc[4,1],Ricc[4,2],Ricc[4,3],Ricc[4,4]]);
より
がわかります。ここで また とします。Einstein方程式
により
が要請されます。2つの式から に対する微分方程式
を得ます。その解は
depends(f, r)$ /* すでに上で宣言していますが、この部分だけを取り出しても動くように念のため書いておきます */ ode2( r^2*diff(f, r, 2)+2-2*f=0, f, r ); /* ode2( 2階常微分方程式, 未知関数, 変数 ) は微分方程式を解くためのコマンドです */
より
であることがわかります。ここで と は任意定数です。
とくに の場合をSchwarzschild解といいます。
また、 の場合はde Sitter空間を記述します。
これらを重ね合わせた一般形はde Sitter-Schwarzschild解とよばれます。
5次元de Sitter-Schwarzschild解
5次元の場合に、時間 と4次元空間の極座標 からなる座標系で
として4次元の場合と同様に静的で球対称な場合を考えます。このとき
kill(all)$ x:matrix([t],[r],[theta],[phi],[psi]); depends(f, r)$ g:matrix( [ -f, 0, 0, 0, 0], [ 0, f^(-1), 0, 0, 0], [ 0, 0, r^2, 0, 0], [ 0, 0, 0, r^2*sin(theta)^2, 0], [ 0, 0, 0, 0, r^2*sin(theta)^2*sin(phi)^2]); ginv:invert(g)$ Gamma[i,j,k]:=sum( 1/2*ginv[i,n]*( diff(g[n,j],x[k,1])+diff(g[n,k],x[j,1])-diff(g[j,k],x[n,1]) ), n,1,5)$ R[i,j,k,l]:=diff( Gamma[i,l,j], x[k,1]) -diff(Gamma[i,k,j], x[l,1]) +sum( Gamma[n,l,j]*Gamma[i,k,n] - Gamma[n,k,j]*Gamma[i,l,n], n,1,5)$ Ricc[j,k]:=ratsimp(sum(R[n,j,n,k], n,1,5))$ R:ratsimp(sum(sum(ginv[n,k]*Ricc[n,k],k,1,5), n, 1, 5))$ Ein[i,j]:=trigsimp(factor(expand(Ricc[i,j]-1/2*g[i,j]*R)))$ /* 式整理のために trigsimp(三角関数の簡単化)factor(因子化)expand(展開)を使っています */ matrix( [Ein[1,1],Ein[1,2],Ein[1,3],Ein[1,4],Ein[1,5]], [Ein[2,1],Ein[2,2],Ein[2,3],Ein[2,4],Ein[2,5]], [Ein[3,1],Ein[3,2],Ein[3,3],Ein[3,4],Ein[3,5]], [Ein[4,1],Ein[4,2],Ein[4,3],Ein[4,4],Ein[4,5]], [Ein[5,1],Ein[5,2],Ein[5,3],Ein[5,4],Ein[5,5]]);
より、Einsteinテンソル
がわかります。Einstein方程式 より
が関数 に課されます。これらの式を合わせて
という に関する微分方程式を得ることができます。その解は
exponentialize:true$ /* 双曲線関数(と三角関数)を指数関数で表すためのフラグです */ depends(f, r)$ expand(ode2( r^2*diff(f, r, 2)+6-6*f=0, f, r )); /* expand(展開)で結果の式を簡単化しました */
から
です。ここで と は任意定数です。
4次元の場合と同様に、 とした解
は5次元Schwarzschild解とよばれます。