Я пытаюсь сгенерировать случайное распределение, которое следует перевернутому гауссовскому распределению, смещенному на uo, так что оно все еще находится в диапазоне (0,1). Мне нужно сделать это с помощью как можно меньшего количества специальных функций и я могу использовать только генератор плоских случайных чисел. Это работает и дает мне гауссовское расстояние, которого я ожидал. В python это выглядит так:
def InverseCDF(x, mu, sigma):
return mu + sigma * special.erfinv(2*x - 1)
Теперь, когда я пытаюсь сгенерировать распределение, следующее за 1-e ^ (- x ^ 2), я считаю, что обратный CDF этой функции то же, что и для обычного гауссовского с аргументом обратной функции ошибок, теперь 2 * p + 1. Таким образом, это будет выглядеть, как показано ниже:
def InverseCDF(x, mu, sigma):
return mu + sigma * special.erfinv(2*x + 1)
Проблема здесь в том, что erfinv определяется только из (- 1,1), и теперь аргумент больше 1. Я пробовал масштабировать это и переворачивать всевозможными способами, помещая негативы почти везде, где только могу, и мне никогда не показалось, что я могу создать гистограмму, которая следует перевернутому гауссову. В большинстве случаев я получаю обычный гауссовский дистрибутив.
Есть идеи, что я делаю не так, или какие-нибудь советы о том, как сгенерировать этот перевернутый гауссовский язык? Заранее благодарим за любую помощь.