【发布时间】:2023-03-28 04:13:02
【问题描述】:
我有一个非常小的指数值列表(例如exp(n),带有n<-300),它们是从高斯 PDF 生成的。
我想计算它们中的每一个与总和成正比的程度,例如下面的类似 python 的伪代码:
s = 0 # sum of all values
for n in exponents:
s += exp(n)
for n in exponents:
k = exp(n)/s # I want to compute k for each n
问题是,由于n 的值都非常小,所以s 的总和有时会为零,我会得到除零错误。
我知道我可以做的一件事是向所有n 添加一个常量值(例如300)以防止下溢,但在其他情况下会导致上溢。
我该如何解决这个问题?
不知道有没有表达清楚,如有不妥或语法错误,请指正。 提前致谢。
【问题讨论】:
标签: math precision gaussian exponential numerical-stability