Генерирование случайной величины, имеющей экспоненциальную функцию плотности

Я хотел бы создать случайную величину, имеющую экспоненциальную функцию плотности:

f (x) = e ^ x / (e - 1), 0 <= x <= 1

Я знаю, что могу использовать равномерный генератор случайных чисел с использованием метода инверсии для простой функции, такой как (e^-x). Но я не уверен, как использовать их в приведенной выше функции.

Какие-либо предложения?

2 ответа

Per Wolfram Alpha, интеграл этой функции плотности из 0 в a является (e^a-1)/(e-1), который превращается в y=log((e-1)*x+1), Так что метод обратного преобразования должен работать нормально.

В более общем случае, когда интеграл не разворачивается или инверсия не разворачивается, методы стохастической выборки являются наиболее широко применимыми методами выборки случайной величины с учетом ее плотности вероятности. Самым простым для понимания и реализации является выборка отклонения. После этого вы смотрите на Метрополис-Гастингс, который очень мощный, но не обязательно самый простой, чтобы разобраться.

Первым шагом является интеграция f(x) от 0 в x чтобы определить интегральную функцию распределения, вызовите эту функцию U, Когда вы (псевдо-) случайным образом выбираете число, поместите его в эту функцию U и найти x это удовлетворяет этому.

Ваша функция кажется достаточно простой, чтобы сработала прямая инверсия. Если у вас есть более сложная функция, вам придется использовать метод Ньютона-Рафсона для решения x для данного U,

Другие вопросы по тегам