Советов Б.Я., Яковлев С.А. Моделирование систем (3-е изд., 2001) (1186218), страница 33
Текст из файла (страница 33)
Отсюда^=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» т. е. домножается на коэффициент (ak+l — ak)xi+1; 4) вычисляется случайное число yj=ak+{ak+i— ак)хм с требуемым закономраспределения.Рассмотрим более подробно процесс выборки интервала (ак,fljt+j) с помощью случайного числа х,. Целесообразно для этой целипостроить таблицу (сформировать массив), в которую предварительно поместить номера интервалов к и значения коэффициентамасштабирования, определенные из соотношения (4.23) для приведения числа к интервалу (а, Ь).
Получив из генератора случайноечисло х,-, с помощью этой таблицы сразу определяем абсциссу левойграницы ак и коэффициент масштабирования (ak+i —ak).Достоинства этого приближенного способа преобразования случайных чисел: при реализации на ЭВМ требуется небольшое количество операций для получения каждого случайного числа, так какоперация масштабирования (4.23) выполняется только один разперед моделированием, и количество операций не зависит от точности аппроксимации, т. е. от количества интервалов т.Рассмотрим способы преобразования последовательности равномерно распределенных случайных чисел {xt} в последовательность с заданным законом распределения {у,} на основе предельныхтеорем теории вероятностей. Такие способы ориентированы наполучение последовательностей чисел с конкретным законом распределения, т. е. не являются универсальными [29, 43]. Пояснимсказанное примерами.Пример 4.12.
Пусть требуется получить последовательность случайных чисел(уу), имеющих нормальное распределение с математическим ожиданием а и среднимквадратическим отклонением а:Л(у)=еЛ/2да.Будем формировать случайные числа yj в виде сумм последовательностей случайных чисел {х,-}, имеющих равномерное распределение в интервале (0, 1). Так какисходной (базовой) последовательностью случайных чисел {х,} при суммированииявляется последовательность чисел, имеющих равномерное распределение в интервале (0, 1), то можно воспользоваться центральной предельной теоремой для одинаково распределенных случайных величин (см.
§ 4.1): если независимые одинаковораспределенные случайные величины х1г..., х„ имеют каждая математическое ожидание а, и среднее квадратическое отклонение аи то сумма £ х, асимптотическиi-iнормальна с математическим ожиданием a=Nat и средним квадратическим отклонением a = a,JN.пКак показывают расчеты, сумма £ х, имеет распределение, близкое к нормальному, уже при сравнительно небольших N.
Практически для получения последовательности нормально распределенных случайных чисел можно пользоваться значени-1390mLA,N]||\T2Bbl4[PN] ||31J~Y3=0\_NO = uями N = 8 + 1 2 , а в простейших случаях — меньшими значениями N, например tf=4-r 5 [4].Пример 4.13. Пусть необходимополучить случайные числа, имеющиезакон распределения Пуассона:Р(т)-.mlДля этого воспользуемся предельнойтеоремой Пуассона (см. § 4.1): еслиР — вероятность наступления событияА при одном испытании, то вероятность наступления т событий в Nнезависимых испытаниях при N-*ao,р-*0, Np=X асимптотически равнаР(т).Выберем достаточно большое N,такое, чтобы p=X/N<l, будем проводить серии по N независимых испытаний, в каждом из которых событиеА происходит с вероятностью р, и буРис.
4.IS. Схема алгоритма генерациидем подсчитывать число случаев yj фапоследовательности случайных чисел,ктическогонаступлениясобытияимеющих пуассоновское распределениеА в серии с номером у. Числа yj будутприближенно следовать закону Пуассона, причем тем точнее, чем больше N. Практически N должно выбираться таким образом, чтобы /»< 0,1 •*- 0,2 [4].Алгоритм генерации последовательности случайных чисел yj, имеющих пуассоновское распределение, с использованием данного способа показан на рис.
4.15.Здесь LA si; NsN; PN^p; Xl=xi — случайные числа последовательности, равномерно распределенной в интервале (0, 1); YJ&yj; NO — вспомогательная переменная;ВИД [...] — процедура ввода исходных данных; ВЫЧ [...] — процедура вычисления;ГЕН [...] — процедура генерация случайных чисел; ВРМ [...] — процедура выдачирезультатов моделирования.Моделирование случайных векторов. При решении задач исследования характеристик процессов функционирования систем методомстатистического моделирования на ЭВМ возникает необходимостьв формировании реализаций случайных векторов, обладающих заданными вероятностными характеристиками.
Случайный векторможно задать проекциями на оси координат, причем эти проекцииявляются случайными величинами, описываемыми совместным законом распределения. В простейшем случае, когда рассматриваемый случайный вектор расположен на плоскости хбу, он можетбыть задан совместным законом распределения его проекций£ и у на оси Ох и Оу [4].Рассмотрим дискретный случайный процесс, когда двухмернаяслучайная величина (£, г\) является дискретной и ее составляющая £ принимает возможные значения хх, х2, ..., х„, а составляющая г\ — значения у^,уг,...,у„, причем каждой паре (х„ у)соответствует вероятность р,}.
Тогда каждому возможному140значению х, случайной величины £, будет соответствоватьлр>= £ PIJТогда в соответствии с этим распределением вероятностей можно определить конкретное значение xt случайной величины £ (поправилам, рассмотренным ранее) и из всех значений ру выбратьпоследовательностьД ь Д 2 , -,Piln,(4.24)которая описывает условное распределение величины ц при условии, что £=х,. Затем по тем же правилам определяем конкретноезначение д случайной величины г\ в соответствии с распределениемвероятностей (4.24). Полученная пара (хк, д ) будет первой реализацией моделируемого случайного вектора. Далее аналогичнымобразом определяем возможные значения xh, выбираем последовательностьРьи Р>,ъ •••> Pi*(4.25)и находим д в соответствии с распределением (4.25).