Документ взят из кэша поисковой машины. Адрес оригинального документа : http://wasp.phys.msu.ru/forum/lofiversion/index.php?t12937.html
Дата изменения: Unknown
Дата индексирования: Mon Apr 11 15:28:08 2016
Кодировка: Windows-1251
Студенческий форум Физфака МГУ > Помогите с распределением вероятности
Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Помогите с распределением вероятности
Студенческий форум Физфака МГУ > Наука физика > Есть проблема
Duplus
Подскажите, очень нужно.
У меня есть генератор случайных чисел, который выдает числа в интервале [0 1] с равномерным распределением. Точнее, у меня есть не сам генератор, а набор чисел, которые он выдает.
А мне нужен набор чисел, который подчиняется некоторому неравномерному распределению f(x). Как мне получить из набора равномерно распределенных чисел, другой набор с распределением f(x)?
Вроде бы должно быть не сложно, просто меня заклинило))) 194.gif
peregoudov
$f(x)$ --- это у Вас плотность вероятности? Тогда так. Пусть $F'(x)=f(x)$, $F(-\infty)=0$ --- функция распределения. Пусть $y$ --- Ваша равномерно распределенная случайная величина. Тогда величина $F^{-1}(y)$ будет распределена с плотностью $f(x)$. Понять это проще всего, нарисовав график $F(x)$.
stash
все это хорошо, когда можно просто вычислить обратную от функции распределения
если ее вычислить сложно, то можно сделать по-другому: кидать точку x в [a,b] , где нужны события, и принимать ее, только если другое (следующее) случайное число меньше f(x) (в предположении, что max f(x) = 1, иначе ее надо нормировать). эффективность может оказаться невелика, особенно, если есть пик, зато это просто сделать для любой f(x) (если, конечно, вы знаете, где она достигает максимального значения smile.gif
SHiFT
самый простой вариант -- численно посчитать функцию распределения, и построить таблицу ее значений, и, если вам известно, например, что она гладкая (т.е. что сл. величина не сингулярна) тогда по этой таблице строите какой-нибудь сплайн, и вот вам F^{-1}(x) -- но это на случай уж очень "нестандартных" распределений.

а так... общего решения на все случаи жизни не существует. большинство математических пакетов предлагают функции распределения из списка (нормальное, експоненциальное, логнормальное, стьюдента, хи-квадрат, бета, гамма, т.д.)-- для большинства задач этого хватает. все они реализованы в виде f(x), где - x - равномерно распределено на [0..1]

тема генерации случайных чисел раскрыта тут:
http://algolist.manual.ru/maths/generator/index.php

генерирование по большинству распределений тут:
http://algolist.manual.ru/maths/matstat/index.php






Duplus
спасибо всем огромное mr47_06.gif
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Русская версия IP.Board © 2001-2016 IPS, Inc.