Gamma_inv возвращает ошибку, если переданное ему случайное число больше примерно 0,96. Это происходит как в Excel, так и в VBA. Я бегаю на Монте-Карло, и это происходит примерно 10 раз из более чем 40 000 пробежек. Вот как я это использую. альфа и бета всегда> 0. Если "gammatrun c" = 1, я получаю ошибки. Если установить 0,95, ошибок не будет:
alpha = B * B * bsy2 ^ -2
beta = bsy2 * bsy2 / B
rand = Rnd * gammatrunc
B = WorksheetFunction.GAMMA_Inv(rand, alpha, beta)
Ошибки выглядят так:
Вывод с сообщениями об ошибках
I Буду признателен за любые мысли о том, почему это происходит.
Спасибо