Генерирование случайной величины, имеющей экспоненциальную функцию плотности
Я хотел бы создать случайную величину, имеющую экспоненциальную функцию плотности:
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
,