Um problema muito comum na cadeia de Markov Monte Carlo envolve probabilidades de computação que são soma de grandes termos exponenciais,
onde os componentes de lata podem variar de muito pequeno a muito grande. Minha abordagem foi fatorar o maior termo exponencial para que:K : = max i ( a i )
e um ' ≡ e um 1 + um e um 2 + . . .
Essa abordagem é razoável se todos os elementos de forem grandes, mas não é uma boa ideia se não forem. Obviamente, os elementos menores não estão contribuindo para a soma de ponto flutuante, mas não tenho certeza de como lidar com eles de maneira confiável. No código R, minha abordagem se parece com:
if ( max(abs(a)) > max(a) )
K <- min(a)
else
K <- max(a)
ans <- log(sum(exp(a-K))) + K
Parece um problema bastante comum que deve haver uma solução padrão, mas não tenho certeza do que seja. Obrigado por todas as sugestões.