【发布时间】:2019-11-26 00:48:53
【问题描述】:
我正在编码一个黑洞(实际上是光子绕着黑洞运行),我需要处理小于限制距离的半径值的异常
我尝试过使用 if 和 while True
def Hamiltonian(r, pt, pr, pphi):
H = (-((1-rs/r)**-1)*(pt**2)/2 + (1-rs/r)*(pr**2)/2 + (pphi**2)/(2* (r**2)))
if np.amax(H) < 10e-08:
print("Your results are correct")
else:
print("Your results are wrong")
return(H)
def singularity(H, r):
if (r).any < 1.5*rs:
print(H)
else:
print("0")
return(H, r)
print(Hamiltonian(r00, pt00, pr00, pphi00))
我想处理 r
"RuntimeWarning: divide by zero encountered in true_divide
H = (-((1-rs/r)**-1)*(pt**2)/2 + (1-rs/r)*(pr**2)/2 + (pphi**2)/(2*(r**2)))"
而且我的轨道完全错误(例如我的光子应该在黑洞中直接进入,但由于在 r
我想删除引起问题的光子,但我不知道怎么做,谁能帮帮我?
【问题讨论】:
-
您的问题中没有问号。你有什么问题?
-
问题是在奇点中没有方程可以工作,因为您可能知道,我们的模型无法预测奇点中会发生什么。所以你需要一个解决方法。我建议在 0 中添加一个非常小的值,从而导致错误。否则,您可能会破坏导致错误的光子。
-
@LouisSaglio 是的,我想删除半径
-
@ThomasWeller 我想删除半径 r
标签: python function exception while-loop