У меня есть список очень малых экспоненциальных значений (например, exp(n)
, с n<-300
), которые генерируются из файлов Gaussian PDF.Численные проблемы вычисления экспоненциальных чисел (из гауссовских PDF-файлов)
Я хочу, чтобы вычислить, сколько каждый из них пропорционально сумме, например, как в следующем питон, как псевдо-код делает:
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
иногда оказывается равным нулю, и я получу ошибку деления на нуль.
Я знаю, что одна вещь, которую я могу сделать, - добавить постоянное значение (скажем 300) ко всем n
, чтобы предотвратить недополнение, но это приведет к переполнению в других случаях.
Как я могу это решить?
Я не знаю, ясно ли я выразил себя, если в любом из них нет смысла или каких-либо ошибок грамматики, пожалуйста, исправьте меня. Спасибо заранее.