我是Python的新手,我遇到了这个问题:
追踪(最近一次呼叫最后一次):
b = 1-exp(n)*erfc(n**0.5)
OverflowError:数学范围错误
我需要计算' b'不断增加的价值。而且我不知道如何解决这个问题。
有人可以帮忙吗?
答案 0 :(得分:3)
虽然最终答案很小,但exp(n)变得很大,很快变得比浮子更大。例如:
from math import exp, erfc
n=100
b = 1-exp(n)*erfc(n**0.5)
print b
print exp(n)
产地:
0.943859007256
2.68811714182e + 43
如果你必须操纵大数字,你可以使用numpy。
你也可以选择双方的日志并进行计算,以便淘汰exp期限。