Python "溢出错误:数学范围错误
我刚开始学Python,遇到了一些问题:
错误追踪(最近的调用出错):
b = 1-exp(n)*erfc(n**0.5)
溢出错误:数学范围错误
我需要计算'b',而'n'的值一直在增加,但我不知道该怎么解决这个问题。
有人能帮帮我吗?
1 个回答
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这个项,方便计算。