Рассчитать экспоненту суммы логов - PullRequest
0 голосов
/ 26 марта 2020

В 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)

...