Python" OverflowError:数学范围错误"

时间:2014-04-02 23:06:11

标签: python math overflow range

我是Python的新手,我遇到了这个问题:

追踪(最近一次呼叫最后一次):

b = 1-exp(n)*erfc(n**0.5)

OverflowError:数学范围错误

我需要计算' b'不断增加的价值。而且我不知道如何解决这个问题。

有人可以帮忙吗?

1 个答案:

答案 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期限。