] Имея дело с очень маленькими числами в R

Мне нужно вычислить список очень маленьких чисел, таких как

(0,1) ^ 1000, 0,2 ^ (1200),

, а затем нормализовать их, чтобы они суммировались до одного т.е.

a1 = 0,1 ^ 1000, a2 = 0,2 ^ 1200

И я хочу вычислить а1 '= а1 / (а1 + а2), a2 '= a2 (a1 + a2).

У меня проблемы с недостаточным заполнением, так как я получаю a1 = 0. Как я могу это обойти? Теоретически я мог бы иметь дело с журналами, и тогда log (a1) = 1000 * log (0.l) был бы способом представить a1 без проблем с переполнением - но для нормализации мне нужно было бы получить log (a1 + a2) - который я не могу вычислить, так как не могу представить a1 напрямую.

Я программирую с R - насколько я могу судить, в C # нет такого типа данных, как Decimal, который позволяет получить значение лучше, чем значение с двойной точностью.

Мы будем благодарны за любые предложения, спасибо

15
задан dan12345 27 April 2011 в 10:26
поделиться