r=物体間距離,m=対の物体の質量,mr=対の物体の半径,v=速度
'加速度を求める
Public Function GetA(ByVal r As Double, ByVal m As Double, ByVal mr As Double, ByVal v As Double) As Double
If r = 0.0 Then
Return 0.0
End If
Dim a As Double = 1.0
If mr <= r Then
mr = r
Else
a = r / mr
End If
Dim g As Double = CNST_G * (m / mr / mr) * a
g = g * (1.0 + ToSchwartz(v))
If g < 0.0 Or Double.IsNaN(g) Then
Return 0.0
End If
GetA = (g / CNST_C)
End Function
Other Func
a = f / m = - k r = - g = GetA() * -1.0
'シュワルツシルト補正項
Public Function ToSchwartz(ByVal v As Double) As Double
ToSchwartz = 3.0 * v * v
End Function
m質量a加速度v速度t時間xn'座標a(t)加速度関数vO初速度
運動量p = mv = mdxn'/dt = m ∫ ds dt = m ∫ a dt
= m (a(t) t + vO)
エネルギーE = p^2/2m = m (∫ a dt)^2 / 2
= m (a(t) t + vO)^2 / 2
pについて解くと
p = √(2mE)
k=(ic,1,1,1)、dτ=dx0(相対論)のとき
速度v=dxn'/dτ=cの運動を考えると
p = mc
m = p/c
E = p^2/2m = p^2/2(p/c) = pc/2
なんだけど、dτ=ic、dxn'/dτ=cだから、その場合だと、積分係数の1/2が余計だったから
E = pc
p = E/c
となる