2014 dxdy logo

Научный форум dxdy

Математика, Физика, Computer Science, Machine Learning, LaTeX, Механика и Техника, Химия,
Биология и Медицина, Экономика и Финансовая Математика, Гуманитарные науки




На страницу Пред.  1, 2
 
 
Сообщение10.02.2009, 09:41 
Стандартный алгоритм таков. Берём два равномерно распределённых случайных числа: $x\in(-\pi;\pi)$ и $y\in(0;2)$. Число $x$ принимается в качестве очередного, если $y<1+\cos(x)$, в противном случае отвергается. Эффективность весьма высокая -- в среднем будет приниматься каждое второе число. Точность абсолютна (в пределах качества равномерного генератора, разумеется).

 
 
 
 
Сообщение10.02.2009, 09:57 
Аватара пользователя
Объясните мне, пожалуйста, насчет множителя $\frac {1}{2\pi}$. Он не обязателен здесь? Ведь функция распределения должна быть равна 1 в точке $\pi$? В Монте-Карло понятно, всё сокращается. Вообще изначально для закона распределения?

 
 
 
 
Сообщение10.02.2009, 10:02 
Не обязателен -- нормировка произойдёт автоматически. Функция распределения в явном виде здесь вообще не участвует.

Метод вполне универсален и общепринят. Например, так можно эффективно генерировать синусы и косинусы случайных углов (что практически важно), причём не используя самих синусов и косинусов -- только немножко арифметических операций.

 
 
 
 
Сообщение11.02.2009, 01:59 
График.
Изображение

 
 
 
 
Сообщение11.02.2009, 18:19 
Да, я в общем-то решила задачу именно описанным выше способом. Когда поднимала тему еще не догадалась... Результаты получила удовлетворительные, но время вычислений конечно капитально увеличилось, но по всей видимости эту проблему просто не решить.

 
 
 
 
Сообщение11.02.2009, 18:30 
MarinaV в сообщении #185650 писал(а):
, но время вычислений конечно капитально увеличилось

коль скоро все счастливы, то вопрос вроде и празден, и всё же откровенная загадка: по сравнению с чем увеличилось? (и, кстати, какой метод?)

 
 
 
 
Сообщение11.02.2009, 21:39 
Имелось в виду по сравнению с моделированием иных распределений, для которых сучествует обратная функция к функции интегрального распределения...

 
 
 
 
Сообщение11.02.2009, 21:49 
ну, поскольку я зануда, то я вот и занудствую.

Подсчитайте к-во операций, требуемое для вычисления обратной функции (а поди её исчо посчитай) -- и для "случайного" метода

 
 
 
 
Сообщение12.02.2009, 02:38 
Спасибо большое, ewert, за Ваше занудство... В виду своей невнимательности :oops: , я использовала отличный от предложенного Вами метода (с лишним вложенным циклом).
Испробывала Ваш - понравилось! Все отлично, быстро и точно!
Пасиба!!! :D

 
 
 
 
Сообщение12.02.2009, 11:40 
ну, положим, не из тысячи, а из сотни -- но, в принципе, верно. А если интервал значений случайной величины бесконечен, то метод и вообще не будет работать в оригинальном виде. Но его запросто можно подкорректировать, и это -- тоже стандартная идея. Надо попросту сделать подходящую замену переменной (типа $Y={1\over X+1$), после которой область значений станет ограниченной.

 
 
 
 
Сообщение12.02.2009, 13:29 
Аватара пользователя
Прошу прощения - я в панике удалил своё предыдущее сообщение, в котором написал, что доля принимаемых значений будет равна отношению площади под кривой плотности распределения к площади прямоугольника, ограничивающего график.

В случае очень маленькой дисперсии при достаточно большом интервале значений СВ, невысокая доля принимаемых значений может повлиять на выбор метода.

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

 
 
 [ Сообщений: 26 ]  На страницу Пред.  1, 2


Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group