如何在没有被零除的问题的情况下评估这个指数表达式?

时间:2018-04-12 17:40:53

标签: floating-point precision

我正在尝试避免以下表达式的零除错,

)

当a = 0时,表达式应返回1.我可以使用(1-exp(-a)) / a函数来避免截断错误,但除以零仍会导致问题。

是否有expm1这样的函数,但除expm1除外?

2 个答案:

答案 0 :(得分:2)

为您的案例使用if else语句。

答案 1 :(得分:0)

请注意,您可以将表达式重写为

a

如果(1-exp(-a)) / a = exp(-a/2) * sinh(a/2) / (a/2) ~ exp(-a/2) * (1 + 1/6 * (a/2)**2 + 1/120 * (a/2)**4) 使用原始表达式,则使用近似值。