处理浮点溢出错误

时间:2016-06-05 01:34:42

标签: python error-handling

我正在调用一个计算并返回一些值的函数。表达式有两部分,如下所示:

def fSMHM(x, alpha, delta, gamma) : 
    #cst is some constant value
    val = cst + delta*((np.log10(1+np.exp(x)))**gamma)/(1+np.exp(10**(-x)))
    return val

fSMHM(np.log10(Mh/m1), alpha, delta, gamma)

对于x<<如图1所示,第二项的分母变得非常大(即,术语1 + np.exp(10 **( - x))),并产生溢出。我想通过简单地返回第一个术语来处理产生溢出的情况。有没有办法做到这一点?我尝试使用try-except,例如:

def fSMHM(x, alpha, delta, gamma) : 
    #cst is some constant value
    try: 
       val = cst + delta*((np.log10(1+np.exp(x)))**gamma)/(1+np.exp(10**(-x)))
    except: 
       val = cst
    return val

但这不起作用......相反,仍然会出现溢出错误。在此先感谢:)

0 个答案:

没有答案