numpy 计算(1-1/x)^y对于非常大的x,y的幂

k3fezbri  于 6个月前  发布在  其他
关注(0)|答案(1)|浏览(60)

我正在考虑在python中计算非常大的x,y数的$(1-1/x)^y$。一种方法是使用exp(y*log1p(-1/x)),但我不确定它的准确性。
他们是否使用这种精度的任何结果?例如,限制这种结果的误差?
我想它比使用近似exp(-y/x))更好。

n8ghc7c1

n8ghc7c11#

肯定会有精度问题,特别是对于非常大的x和y。(y * math.log1p(-1/x))* 这将为接近零的值计算更高的精度。或者,考虑到误差范围,在不知道x和y的特定范围的情况下提供一般范围是具有挑战性的。然而,您可以考虑使用提供专门为高精度设计的函数的数值库,例如Python中的mpmath库。mpmath允许您以任意精度执行算术:

from mpmath import mp

mp.dps = 50  # Set the desired precision (adjust as needed)
x=100000000000000000000000000000000000000000000000000000000000000000
y=100000000000000000000000000000000000000000000000000000000000000000
    
result = mp.exp(y * mp.log1p(-1/mp.mpf(x)))

print(result)

#output
Result:0.36787944117144232159552377016146086744581113103177

字符串

相关问题