В R у меня есть вектор зарегистрированных значений (обозначается log_w
).
Мне нужно вычислить sum(exp(log_w))
, однако из-за размеров значений, содержащихся в log_w
, как только я возведу в степень log_w
, я получу вектор нулей.
Пример в R, показывающий небольшой вектор схожих значений:
log_w<-c(-14781.5000092473, -1.68703503244454e+46, -4.24636436410052e+36,
-1.90459568391779e+30, -6565872478811.07, -1.58627856636904e+32,
-1.41504360955663e+84, -9.09553094112168e+52, -1.8247785275833e+40,
-10566415795189.4)
exp(log_w)
sum(exp(log_w))
Мне известно о LogSumExp (https://en.wikipedia.org/wiki/LogSumExp) для вычисления журнала суммы возведенных в степень значений, однако я не могу Посмотрите, как это можно использовать для вычисления суммы вектора возведенных в степень записанных значений. Существуют ли другие подобные приближения, на которые кто-либо мог бы указать мне, чтобы вычислить сумму экспоненты зарегистрированных значений? Любой совет с благодарностью.
РЕДАКТИРОВАТЬ
Дополнительная информация - log_w
являются зарегистрированными весами. Мне нужно иметь возможность нормализовать веса, то есть вычислить w / sum (w), однако в настоящее время у меня есть только зарегистрированные веса (log (w)).
EDIT
Использование библиотеки Brobdingnag (https://cran.r-project.org/web/packages/Brobdingnag/index.html) Я могу рассчитать exp(log_w)
, однако, используя этот пакет, sum(exp(log_w))
приводит к +exp(0)