Дуже поширена проблема ланцюга Маркова в Монте-Карло включає обчислення ймовірностей, які є сумою великих експоненціальних доданків,
Цей підхід є розумним, якщо всі елементи є великими, але це не дуже гарна ідея, якщо вони не є. Звичайно, більш дрібні елементи ніяк не вносять до суми з плаваючою комою, але я не впевнений, як з ними надійно боротися. У R-коді мій підхід виглядає так:
if ( max(abs(a)) > max(a) )
K <- min(a)
else
K <- max(a)
ans <- log(sum(exp(a-K))) + K
Здається, досить поширеною проблемою є те, що має бути стандартне рішення, але я не впевнений, що це таке. Дякуємо за будь-які пропозиції.