Numpy:如何进入 "overflow encountered in exp"?

Numpy: How do I get inside an "overflow encountered in exp"?

首先post,请轻柔!

我正在尝试对指数函数 1/(np.exp((j-w)/x)-1) 求根,但我发现我一直得到 RuntimeWarning: overflow encountered in exp

我知道这是由于 float64 的限制,但我似乎无法插入代码来帮助理解这是从哪里来的。我试图包括一些 try...except OverflowError 块,让我一窥这种情况不断发生的地方,但它似乎从来没有抓住这一点。

我对如何处理它有想法,只要我能让我的代码在遇到溢出时做一些不同的事情。

提前致谢!

我猜问题是您无法确定警告何时发生。为此,请使用 try/except 但稍作修改:

import warnings
warnings.filterwarnings("error")
...
try:
    1/(np.exp((j-w)/x)-1)
except RuntimeWarning:
    print(j)
    print(w)
    print(x)
    print((j-w)/x)

这里应该有提示,问题就出在这里