を解き,シュバルツシルト解を求める。
ライブラリの import
from sympy.abc import *
from sympy import *
from einsteinpy.symbolic import *
init_printing()
球対称な計量
ランダウ・リフシッツ「場の古典論」の記述にそって(しかし,signature は lambda
ではなく,sympy.abc
の中で lamda
として定義されている。lambda
は Python の予約語,変数として使用不可。)
# from sympy.abc import * すると使える
lamda
lamda = Function('lamda')(t, r)
nu = Function('nu')(t, r)
Metric = diag(-exp(nu), exp(lamda), r**2, r**2 * sin(theta)**2).tolist()
g = MetricTensor(Metric, [t, r, theta, phi])
g.tensor()
アインシュタイン・テンソル
ein
とおく。(.change_config('ul')
で上付下付に)
ein=EinsteinTensor.from_metric(g).change_config('ul')
は時間に依存しないこと
ein[1,0]
lamda = Function('lamda')(r)
nu = Function('nu')(t, r)
Metric = diag(-exp(nu), exp(lamda), r**2, r**2 * sin(theta)**2).tolist()
g = MetricTensor(Metric, [t, r, theta, phi])
g.tensor()
ein=EinsteinTensor.from_metric(g).change_config('ul')
ein[0,0]
ein[1,1]
ein[2,2]
ein[3,3]
ein[2,2] - ein[3,3]
とおけること
simplify(ein[1,1]-ein[0,0])
これから,
となる。
時間
とすることができる。
バーコフの定理
ここまでは,球対称真空解は metric が時間によらない,つまり静的であるということを示しているわけで,バーコフの定理の証明になっている。バーコフの定理のもう一つの帰結である漸近的平坦性については,以下で示すように解が
ということで,あらためて以下のような計量テンソルに対して,アインシュタイン・テンソルを計算してみる。
lamda = Function('lamda')(r)
Metric = diag(-exp(-lamda), exp(lamda), r**2, r**2 * sin(theta)**2).tolist()
g = MetricTensor(Metric, [t, r, theta, phi])
g.tensor()
ein=EinsteinTensor.from_metric(g).change_config('ul')
ein[0,0]
eq = (ein[0,0] * r**2).expand()
eq
微分方程式を解き, を求める
微分方程式 dsolve()
を使って解く。
sol = dsolve(eq, lamda)
sol
もうちょっとのところなので,
とおいて(.subs(lamda, -log(f))
)解いてもらう。
print('元の式は')
display(sol)
print('f(r) で書き直すと,解くべき方程式は')
f = Function('f')(r)
eq2 = sol.subs(lamda, -log(f))
display(eq2)
print('f(r) について解いた解は')
sol2 = solve(eq2, f)
sol2
sol2[0].expand()
積分定数
となることから,
となる。
最終的に