Советов Б.Я., Яковлев С.А. Моделирование систем (2001) (1186219), страница 33
Текст из файла (страница 33)
Пусть возможнымиисходами испытаний являются события Ах, Аг, .., Ак. ВероятностьРц — это условная вероятность наступления события А} в данномиспытании при условии, что исходом предыдущего испытания былособытие А{. Моделирование такой цепи Маркова состоит в последовательном выборе событий А) по жребию с вероятностями ри.Сначала выбирается начальное состояние z0, задаваемое начальными вероятностями р,(0), р2(®), —> РкФ)- Для этого из последовательности чисел {JCJ выбирается число хт и сравнивается с I, из(4.17), .где в качестве рх используются значения рх (0), р2 (0), ...,/»* (0).Таким образом, выбирается номер т 0 , для которого оказываетсясправедливым неравенство (4.17). Тогда начальным событием данной реализации цепи будет событие А„о. Затем выбирается следующее случайное число хт+1, которое сравнивается с /„ где в качествеPi используются Prt>j- Определяется номер mv и следующим событием данной реализации цепи будет событие АтХ и т.
д. Очевидно, чтокаждый номер т , определяет не только очередное событиеAmi формируемой реализации, но и распределение вероятностей pmi\,Рта, —,Pmik Для выбора очередного номера тм, причем для эргодических марковских цепей влияние начальных вероятностей быстроуменьшается с ростом номера испытаний. Эргодическим называетсявсякий марковский процесс, для которого предельное распределениевероятностей р, (и), / = 1 , к, не зависит от начальных условий/>, (0).Поэтому при моделировании можно принимать, чтоЛ(0)=Л(0) = ...= Л (0)=1/*.Аналогично можно построить и более сложные алгоритмы,например для моделирования неоднородных марковских цепей [29].Рассмотренные способы моделирования реализаций случайныхобъектов дают общее представление о наиболее типичных процедурах формирования реализаций в моделях процессов функционирования стохастических систем, но не исчерпывают всех приемов, используемых в практике статистического моделирования наЭВМ.Для формирования возможных значений случайных величин с заданным законом распределения исходным материалом служат базовые последовательности случайных чисел {х,}, имеющие равномерное распределение в интервале (0, 1).
Другими словами, случайные числа х, как возможные значения случайной величины £,имеющей равномерное распределение в интервале (0, 1), могут бытьпреобразованы в возможные значения у} случайной величиныг\, закон распределения которой задан [4].Моделирование дискретных случайных величин. Рассмотрим особенности преобразования для случая получения дискретных слу134чайных величин. Дискретная случайная величина ц принимаетзначения у^у2<,...^у^...с вероятностямирир2, —, Pj, —, составляющими дифференциальное распределение вероятностейУP(ri=y)У1PlУг-yj-'p2...Pj....(4.18)При этом интегральная функция распределенияmf4(y)=P(rf^y)=£ Pi> Ут^У^Ут+и т=\, 2, ...;FnO>)=0; y<yv(4.19)Для получения дискретных случайных величин можно использовать метод обратной функции [10, 29, 53].
Если £ — равномернораспределенная на интервале (0, 1) случайная величина, то искомаяслучайная величина щ получается с помощью преобразованияV=F^(0,(4.20)где F^1 — функция, обратная F4.Алгоритм вычисления по (4.19) и (4.20) сводится к выполнениюследующих действий:если xL<p, то ч=у1, иначеесли х2<р1+р2, то г\=уг, иначе,(4-21)тесли Xj< £ Pj, TO п=Ут, иначе,При счете по (4.21) среднее число циклов сравнения ц= J] jpj.y=iПример 4.8. Необходимо методом обратной функции на основании базовойпоследовательности случайных чисел {х,}, равномерно распределенных в интервале(0, 1), получить последовательность чисел [у,}, имеющих биномиальное распределение, задающее вероятность у удачных исходов в N реализациях некоторого эксперимента:Р (1 -У) = Р„ С) = О J (1 -р?~\гдер=0,5 и Л'=6; aN=Nlly\(N-y)lМатематическое ожидание и дисперсия биномиального распределения соответственно будут М\у] = пр, D[y] = np{\ —p)Используя для Pj обозначения, принятые в (4.21), вычислим:135jyjpj12О10,01562 0,09375320,23438430,31250540,23438бS0,093757б0,015620,343750,656250,890630,984381,00000mY,Pj• • • 0,015620,10937J-iНапример, получив из равномерного распределения число Xf 0,85393 и проведясравнения по алгоритму (4.21), найдем, что Xf=0,85393 0,89063, т.
е. _fy=4.При этом среднее число циклов сравнения Д=1 • 0,01562+2-0,09375++30,23438+40,31250+50,23438+6(0,09375+0,01562)«3,98.Пример 4.9. Необходимо проверить стохастичность последовательности изN случайных чисел {yj}, полученных при имитации биномиального распределенияпри заданных параметрах п и р . Простейшим способом проверки является оценкавыполнения условий1 *1 "- £ #« И А 7т 2 У?*пР(1+»Р-Р)Проверим на соответствие биномиальному распределению с параметрами л—5ар=0,1 такой последовательности случайных чисел: (уЛ— 0, 0, 1, 0, 1, 0, 2, 0, 1, 0;#=10.Вычислим пр=0,5; пр(\+пр— р)=0,1;1£571£ ,- У j , „ _ = 0 , 5 , - Y.
У?Ni~i10Nj-i100.7-Как видно из опенок, данная последовательность чисел {yj} хорошо в условияхданного примера представляет биномиальное распределение с заданными параметрами.Можно привести и другие примеры алгоритмов и программполучения дискретных случайных величин с заданным закономраспределения, которые находят применение в практике моделирования систем на ЭВМ.Моделирование непрерывных случайных величин. Рассмотримособенности генерации на ЭВМ непрерывных случайных величин. Непрерывная случайная величина г\ задана интегральной функцией распределенияFn(y) = P{r\<y)= )fn(y)dy,-00где/,(у) — плотность вероятностей.Для получения непрерывных случайных величин с заданнымзаконом распределения, как и для дискретных величин, можновоспользоват£ся методом обратной функции.
Взаимно однозначнаямонотонная функция r\ = F~ln (£), полученная решением относительно г] уравнения F4(y) = ^, преобразует равномерно распределеннуюна интервале (0, 1) величину £,ъг\ с требуемой плотностью/, (>>).136Действительно, если случайная величина т\ имеет плотность распределения/,^), то распределение случайной величиныоявляется равномерным в интервале (0,1) [4, 29].
На основании этогоможно сделать следующий вывод. Чтобы получить число, принадлежащее последовательности случайных чисел {у}}, имеющих функцию плотности/,(j), необходимо разрешить относительно у) уравнение? fn(y)dy=x,(4.22)-00Рассмотрим некоторые примеры получения методом обратнойфункции непрерывных случайных величин с заданным законом распределения на основе случайных чисел, имеющих равномерное распределение в интервале (0, 1).Пржмер 4.10.
Необходимо получить случайные числа с показательным закономраспределения/,(у)=Ь-*',у>0.В силу соотношения (4.22) получим;.Je-A'«fy=xfaогде х, — случайное число, имеющее равномерное распределение в интервале (0, 1).Тогдаl-t~Xyj~xbyjiln(l-x,).Учитывая, что случайная величина {, = 1 — £ имеет также равномерное распреде1ление в интервале (0, 1), можно записать у}= — Ых/.Пример 4.11. Необходимо получить случайные числа у} с законом распределения/„GO^(1-V2),0^«2/A.Воспользовавшись (4.22), получим X(yj—Xyj/A)=x,.
Отсюда^=2(l-VT^i)A, или^=2(1-7^)ДМожно привести и другие примеры использования соотношения(4.22). Но этот способ получения случайных чисел с заданнымзаконом распределения имеет ограниченную сферу примененияв практике моделирования систем на ЭВМ, что объясняется следующими обстоятельствами: 1) для многих законов распределения,встречающихся в практических задачах моделирования, интеграл137(4.22) не берется, т. е. приходится прибегать к численным методамрешения, что увеличивает затраты машинного времени на получение каждого случайного числа; 2) даже для случаев, когда интеграл(4.22) берется в конечном виде, получаются формулы, содержащиедействия логарифмирования, извлечения корня и т.
д., которыевыполняются с помощью стандартных подпрограмм ЭВМ, содержащих много исходных операций (сложения, умножения и т. п.), чтотакже резко увеличивает затраты машинного времени на получениекаждого случайного числа.Поэтому в практике моделирования систем часто пользуютсяприближенными способами преобразования случайных чисел, которые можно классифицировать следующим образом: а) универсальные способы, с помощью которых можно получать случайные числас законом распределения любого вида; б) неуниверсальные способы,пригодные для получения случайных чисел с конкретным закономраспределения [4, 46].Рассмотрим приближенный универсальный способ полученияслучайных чисел, основанный на кусочной аппроксимации функцииплотности.
Пусть требуется получить последовательность случайных чисел [у]} с функцией плотности fn(y), возможные значениякоторой лежат в интервале (а, Ь). Представим/,(у) в виде кусочнопостоянной-функции, т. е. разобьем интервал (а, Ь) на т интервалов,как это показано на рис. 4.14, и будем считать f4(y) на каждоминтервале постоянной. Тогда случайную величину TJ можно представить в виде г} = ак+щ*, где а*— абсцисса левой границы к-тоинтервала; rjk* — случайная величина, возможные значения которойрасполагаются равномерно внутри к-то интервала, т. е. на каждомучастке ctk-i-ak+i величина щ* считается распределенной равномерно.Чтобы аппроксимировать / ч (у) наиболее удобным для практическихцелей способом, целесообразно разбить (а, Ь) на интервалы так,чтобы вероятность попадания случайной величины г\ в любой интервал (аь я*+0 была постоянной, т.
е. не зависела от номераинтервала к. Таким образом, для вычисления ак воспользуемсяследующим соотношением:Jfn(y)dy=\lm.(4.23)'кРис.138Алгоритм машинной реализации этого способа получения случайных чисел сводится к последовательномувыполнению следующих действий: 1) генерируется случайное равномерно распределенное число х, из интервала (О,4.14. Кусочная аппроксимация функции1); 2) с помощью этого числаплотностислучайным образом выбирается интервал (ак, ак+1); 3) генерируетсячисло х1+1 и масштабируется с целью приведения его к интервалу(ак, в/t+O» т. е.