我正在使用numpy.log 1p函数来计算非常小的复数的log(1 + x)值,并且得到了意想不到的结果.
我预计输出实际上应该等于函数输入.而在下面的简单例子中,情况似乎并非如此.
np.log1p(1e-14 * (1 + 1j))
Out[75]: (9.992007221626358e-15+9.9999999999999e-15j)
np.log1p(1e-15 * (1 + 1j))
Out[76]: (1.110223024625156e-15+9.999999999999989e-16j)
np.log1p(1e-16 * (1 + 1j))
Out[77]: 1e-16j
scipy.special中的log 1p函数似乎工作正常,但不幸的是,我需要使用numpy函数(用于numba).
我目前在Python 3.10.10上使用numpy版本1.26.4
np.__version__
Out[78]: '1.26.4'