ПОЛУЧЕНИЕ И ПРЕОБРАЗОВАНИЕ СЛУЧАЙНЫХ ЧИСЕЛ Для реализации метода статистического моделирования требуется большое количество случайных чисел с заданными законами распределения. Распространены два основных принципа получения случайных чисел. При первом из них случайные числа вырабатываются специальной приставкой (датчиком случайных чисел), сопряжённой с ЭВМ (аппаратурный принцип). Реализация этого принципа почти не требует дополнительных операций ЭВМ, кроме операции обращения к датчику. Второй принцип – алгоритмический – основан на формировании случайных чисел в самой ЭВМ посредством специальных программ. Недостатком такого метода является дополнительный расход машинного времени. Программы получения последовательностей случайных чисел с заданными законами распределения могут оказаться достаточно громоздкими. Поэтому случайные числа получают не непосредственно, а путём преобразования случайных чисел, имеющих некоторое исходное – базовое – распределение. К исходному распределению предъявляются следующие требования: простота получения чисел с помощью электронных приставок или непосредственно на ЭВМ; удобство преобразования в распределение с заданным законом. Считается, что равномерный закон распределения в достаточной степени удовлетворяет этим требованиям. Напомним свойства равномерного распределения. Непрерывная случайная величина ξ (x) имеет равномерное распределение на отрезке [a, b], если её функция плотности распределения 1 , a x b; b a f ( x) 0, x a, x b, а функция распределения F ( x) 0, x a; xa , a x b; ba 1, x b. Получить, однако, точно такое распределение на ЭВМ невозможно в силу хотя бы того обстоятельства, что ЭВМ, оперирующая с n-разрядными двоичными числами, может формировать не более, чем 2n различных чисел. При равномерном же распределении предполагается, что бесчисленное множество возможных значений случайной величины непрерывно заполняет отрезок [a, b]. Поэтому вместо непрерывной совокупности случайных чисел, равномерно распределенных на отрезке [a, b], используется дискретная совокупность 2n случайных чисел, распределенных на том же отрезке, имеющих вероятности получения 2−n. Закон распределения такой совокупности носит название квазиравномерного закона распределения. Следует отметить, что при достаточно большом n различие между равномерным и квазиравномерным распределениями можно считать практически несущественным. Случайные числа формируются с помощью специальных программ рекуррентным способом, т.е. каждое последующее случайное число получается из предыдущего с помощью определённых преобразований (алгоритмов). Поэтому эти числа называются псевдослучайными. Таким образом, последовательности квазиравномерных псевдослучайных чисел (ПСЧ) являются вполне детерминированными числами, обладающими статистическими свойствами случайных чисел. Эти свойства подтверждаются путем проверки этих чисел специальными тестами. Рассмотрим наиболее распространенные методы получения последовательности квазиравномерных случайных чисел с помощью ЭВМ. Методы получения последовательностей квазиравномерных псевдослучайных чисел. Рассмотрим простейшие приёмы получения на ЭВМ последовательностей квазиравномерных ПСЧ на отрезке [0,1]. Метод Неймана (середины квадратов). Пусть имеется n-разрядное число x0, принадлежащее отрезку [0,1]. Это число возводится в квадрат, т.е. получается 2 n-разрядное число x 02 . В нем выделяются средние n разрядов, слева к которым приписывается 0. Таким образом, получается очередное число последовательности квазиравномерных ПСЧ x1, которое затем возводится в квадрат и так далее. 2 Пример. Пусть x 0 = 0,0713, тогда x 0 = 0,00508369. Отбрасывая крайние два символа (после запятой и в самом конце), получаем x1 = 0,5083. Аналогично получаем x2 = 0.8368 и т.д.. Мультипликационный метод. Получение последовательностей квазиравномерных ПСЧ по этому методу происходит на основе рекуррентного соотношения xi k xi 1 k xi 1 , где k 8 t 3 ; t – целое положительное число; операция означает взятие целой части числа. Пример. Пусть x0 = 0,37843, t = 5, k 8 t 3 37. Тогда x1 = k x0 − [k x0] = = 0,00191 – второе число последовательности квазиравномерных ПСЧ. Метод произведений. Пусть имеется два числа x0 и x1, у которых число знаков после запятой одинаково и равно n. В результате перемножения этих чисел получается число x2 x0 x1 . После выделения из x2 n средних цифр и приписывания слева нуля имеем число x2 < 1. Последующее числа получаются аналогичным образом. Мультипликативный конгруэнтный метод (метод вычетов). Полученные, с помощью идеального генератора, последовательности чисел должны состоять: из равномерно распределённых чисел; из статистически независимых чисел; из воспроизводимых чисел; из неповторяющихся чисел. Кроме того генератор чисел должен работать быстро и занимать минимальный объём памяти ЭВМ. Всей совокупности перечисленных выше требований лучше, чем другие методы генерирования случайных чисел, удовлетворяют так называемые конгруэнтные методы, к числу которых относится и метод вычетов. В методе вычетов используется соотношение n1 k n (mod q), где запись k n (mod q) означает остаток от деления kn на q. При этом q представляется в виде q = 10 d. Выбирая соответствующим образом k и 0 , можно получить хорошее качество последовательностей квазиравномерных ПСЧ, распределенных на отрезке [0,1]. Пример. Для получения хорошего качества последовательностей квазиравномерных ПСЧ рекомендуется брать α0 = 3141592, q = 10 d, d = 8, k = 200 t ± p. Здесь t – любое целое число, p – берется из набора чисел 3, 11, 13, 19, 21, 27, 29, 37, 53, 59, 61, 67, 69, 77, 83 и 91. Пусть t = 0, p = 91. Тогда k = ± 91. Положим k = 91. В этом случае 1 будет равно остатку от деления k 0 91 3141592 2,85884872, q 108 т.е. 1 85884872. Поставив запятую слева от найденного числа 1 , будем иметь первое число последовательности x1 0,85884872. Аналогично 2 будет равно остатку от деления k 1 91 85884872 78,15523352, q 108 т.е. 2 15523352. 2 , получим второе число Поставив запятую слева от последовательности x 2 0,15523352 и т.д. Максимальный период повторения чисел равен d 2 6 5 10 5 10 5000000 . Метод Лемера. Получение последовательности квазиравномерных ПСЧ этим методом осуществляется на основании того же соотношения, что и в методе вычетов, но q равно не 10d, а 2d, т.е. метод Лемера предназначен для работы в двоичной системе счисления. В этом случае максимальный период повторения чисел равен 2 d−2. Проверка качества последовательностей квазиравномерных псевдослучайных чисел. Качество и эффективность машинной имитации существенным образом зависят от того, насколько удачно выбран вид рекуррентного соотношения xi 1 F ( xi ) , для получения ПСЧ. Так как это соотношение выбирается эмпирически, то необходимо убедиться, что ПСЧ последовательности принадлежат отрезку [0, 1] и удовлетворяют требованиям стохастичности и равномерности. Для этого обычно используются: 1. Проверка по моментам распределения полученных чисел. Если генерируемые ПСЧ близки к случайным числам, равномерно распределенным на отрезке [0,1], то оценки их математического ожидания M x) и дисперсии D x) M x) 1/2 и D x) 1/12. 2. Проверка на равномерность полученных чисел по гистограмме. Отрезок [0, 1] разбивается на m равных частей (интервалов). При генерации каждое из чисел xi , i 1, N с вероятностью p i 1/ m попадёт в один из этих интервалов. Всего в каждый j - й интервал попадёт Nj чисел последовательности, m N j 1 j N . Относительная частота попадания случайных чисел в каждый из интервалов Pj N j / N. Необходимо построить гистограмму Pi = f (xi). Если случайные числа xi принадлежат последовательности квазиравномерных ПСЧ, то при достаточно больших N гистограмма должна приближаться к теоретической прямой p 1/ m. Обычно полагают m 10 20 , а N (103 104 ) m. Получение случайных чисел с заданным законом распределения. Квазиравномерные псевдослучайные числа используются в качестве исходного материала для формирования любых вероятностных объектов. Такими объектами, в первую очередь, являются случайные события, наступающие с заданной вероятностью и случайные величины с заданными законами распределения. Моделирование случайного события (реализация жребия). Пусть требуется моделировать событие A, наступающее с заданной вероятностью P( A). Рассмотрим случайную величину ξ (x), распределённую равномерно на отрезке [0, 1]. Считается, что событие A произошло, если xi PA . Легко видеть, что вероятность события A равна P ( A) PA dx P A . 0 Таким образом, моделирование события A, вероятность наступления которого PA сводится к следующей процедуре: 1. Выбирается очередное значение xi случайной величины ξ (x) . xi PA , 2. Проверяется неравенство устанавливающее принадлежность xi отрезку [0, PA]. Если xi удовлетворяет неравенству xi PA , то событие A наступило, в противном случае – не наступило (наступило противоположное событие ¬A). Имитация дискретной случайной величины с заданным законом распределения. Пусть величина ( y ) принимает возможные значения y1 , y2 ,..., yn с вероятностями P1 , P2 ,..., Pn . В качестве значения случайной величины ( y ) будет принято: y1, если xi P1 ; y2, если P1 x i P1 P2 ; y3, если P1 P2 x i P1 P2 P3 и т.д. m Другими словами, если l m Pi , то при l m1 xi l m случайная i 1 величина ( y ) принимает значение y m . Имитация непрерывных случайных величин. Метод обратной функции. Метод обратной функции основывается на следующей теореме: если случайная величина ( y ) имеет функцию плотности распределения f ( y) , то y x f ( y) dy a подчиняется равномерному закону распределения на отрезке [0, 1] ( а – нижняя граница диапазона изменения случайной величины f ( y) ). Таким образом, чтобы получить случайное число yi с функцией плотности распределения f ( y) необходимо решить интегральное уравнение yi xi f ( y ) dy a относительно верхнего предела интегрирования. Пример. Для экспоненциального закона имеем yi x i e y d y e y 0 или yi 0 1 e y i , e y i 1 x i . Откуда ln (e y i ) ln (1 xi ); yi ln (1 x i ); y i 1 ln (1 x i ). Достоинством метода обратной функции являются малые вычислительные затраты при реализации вычислений в аналитическом виде. В качестве недостатков метода следует отметить следующие: использование численных методов решения интегрального уравнения приводит к ошибкам и большим затратам машинного времени; даже, когда интеграл берется в аналитическом виде, получаются формулы, содержащие функции вычисления логарифмов, возведения в степень, вычисления радикалов, что требует значительных затрат машинного времени. Поэтому на практике пользуются другими, более универсальными, часто приближенными методами имитации непрерывных случайных величин. Метод Неймана. Одним из универсальных методов имитации непрерывных случайных величин является метод Неймана. Этот метод применим для моделирования произвольных законов распределения. Кроме того, он может использоваться для вычисления определённых интегралов. Пусть необходимо получить последовательность ПСЧ yi, имеющих функцию плотности распределения f ( y) с областью возможных значений [a, b]. От случайной величины ( y ) с функцией плотности распределения f ( y), заданной на отрезке [a, b], перейдём к случайной величине ( x) (( y) a) (b a), которая будет иметь функцию плотности распределения f ( x) с областью возможных значений [0, 1] f ( x) b a f a b a x . Пусть максимальное значение f ( x) равно f m. Изменением масштаба по оси ординат приведём отрезок [0, fm] к длине, равной единице. Тогда f ( x) b a / f m f a b a x . Таким образом, случайная величина ( y ) помещается в единичный квадрат. Если ввести в рассмотрение двумерную случайную величину (вектор) 0 ( x 0 ), 1 ( x1 ) , равномерно распределённую в единичном квадрате, то в качестве искомых значений xi случайной величины ξ (x) будут выступать значения 0 ( x0 ) , попавшие под кривую функции плотности распределения f ( x) . Алгоритм моделирования случайной величины ( y ) методом Неймана можно описать следующим образом: 1 0 1. Получение пары квазиравномерных ПСЧ x i и x i 1 (координат 1 0 вектора a x i , x i 1 ). 2. Вычисление f ( x0i ) . 3. Если f ( x 0i ) x 1i 1 , то данный вектор a x0i , x i1 1 отбрасывается (холостое вычисление). 4. Если f ( x 0i ) x 1i 1 , то вычисляется очередное j-е значение случайной величины ( y ) y j x0i b a a . 5. Переход к п. 1. Реализация данного алгоритма позволяет получить необходимое количество чисел с заданной функцией плотности распределения ( y ) . Достоинством метода является его применимость к любому закону распределения, а недостатком – большие вычислительные затраты. Приближённый метод. Пусть закон распределения случайной величины ( y ), которую необходимо имитировать на ЭВМ, задан функцией плотности распределения f ( y), возможные значения которой лежат на отрезке [a, b]. Если этот отрезок с бесконечными границами, целесообразно перейти к усечённому распределению. Представим f ( y) на участке [a, b] в виде кусочно-постоянной функции, т.е. отрезок [a, b] разобъем на n полуитервалов a k , a k 1 и будем считать f ( y) на каждом из них постоянной. Тогда случайную величину ( y ) можно представить в виде ( y) a k k . Величина ( y ) на a k , a k 1 считается распределённой равномерно. Для аппроксимации f ( y) наиболее удобным способом, целесообразно разбить отрезок [a, b] на полуинтервалы a k , a k 1 таким образом, чтобы вероятность попадания случайной величины ( y ) на любой из них была постоянной, т.е. не зависела от номера полуинтервала k. Для вычисления ak воспользуемся соотношением ak 1 ak f ( y ) dy 1 , n где n – количество полуинтервалов. Процедура имитации предполагает следующее: генерируется значение xi случайной равномерно распределённой на отрезке [0, 1] величины ξ(x); с помощью xi выбирается полуинтервал a k , a k 1 (путём моделирования дискретной случайной величины, принимающей n равновероятных значений); генерируется следующее значение xi+1 случайной равномерно распределённой на отрезке [0, 1] величины ξ (x), которое масштабируется с целью приведения его к полуинтервалу a k , a k 1 . Таким образом, значение xi+1 становится значением случайной величины k , равномерно распределённой на полуинтервале a k , a k 1 . Затем случайные числа с требуемым законом распределения вычисляются по формуле yi a k xi 1 (ak 1 ak ). Получение случайных чисел с нормальным законом распределения. Для получения случайных чиел, распределённых по нормальному закону, можно воспользоваться центральной теоремой теории вероятностей, согласно которой сумма большого числа случайных чисел, имеющих равномерное распределение на отрезке [0, 1], даёт распределение, асимптотически приближающееся к нормальному. Поэтому для получения нормального распределения следует суммировать случайные числа, равномерно распределённые на отрезке [0, 1]. При этом математическое ожидание µ и среднеквадратическое отклонение σ получаемого закона при достаточно большом числе n случайных величин будут определяться выражениями n / 2, n / 2 3. При n 8 12 приближение к нормальному закону достаточное для практических потребностей. Если необходимо смоделировать нормальный закон с математическим ожиданием M и среднеквадратическим отклонением , то требуемые случайные числа y j вычисляются по формуле 2 n yj 3 xi n M , n i 1 где j = 1, 2, … – номер случайного числа с заданными параметрами нормального закона распределения. Условия применимости рассмотренных методов получения псевдослучайных чисел с заданными законами распределения: метода обратной функции – когда удаётся найти обратную функцию; метода Неймана – для моделирования случайных величин, имеющих сравнительно мало изменяющиеся функции плотности распределения. приближённого метода – когда метод обратной функции неприменим, а метод Неймана – неэффективен. Экспериментальная проверка соответствия полученных последовательностей ПСЧ законом распределения. Проверка степени соответствия реализаций случайных величин соответствующим законам распределения осуществляется с помощью критериев согласия. Критерий согласия позволяет оценить вероятность того события, что полученная выборка не противоречит сделанному предположению о виде закона распределения случайной величины. К одним из наиболее часто используемых в практике обработки результатов машинных экспериментов является критерий Пирсона (критерий «хи-квадрат» 2 ). В критерии Пирсона за меру расхождения между эмпирическим и теоретическим законами распределения принимается величина, значение которой определяется по формуле l 2 расч. i 1 (m i Np i )2 , Np i где l – число разрядов (интервалов), на которое разбиты все опытные значения случайной величины ξ ; N – объём выборки; mi – численность i-го разряда; pi – вероятность попадания случайной величины ξ в i-й интервал, вычисленная из теоретического закона. 2 При N → ∞ закон распределения независимо от вида закона распределения случайной величины ξ стремится к 2 распределению с k = l − v − 1 степенями свободы ( v – число параметров теоретического закона распределения, вычисленных по данной выборке (для нормального закона – это математическое ожидание и дисперсия, т.е. v для нормального закона распределения равно 2)). Гипотеза о виде закона распределения принимается, если 2расч. 2табл. , где 2табл. – теоретическое (табличное, критическое) значение критерия. Табличное значение критерия определяется по специальной таблице. Оно зависит от принятого значения доверительной вероятности (уровня значимости) и числа степеней свободы. Обычно уровень значимости принимается равным 0,05, что соответствует доверительной вероятности 0,95. Для практического использования критерия Пирсона необходимо выполнение двух условий: N 50 60; m i 5 8, i 1, l . Если второе условие не выполняется, то интервалы следует объединить. При достаточно больших значениях k распределение f ( 2 ) переходит в нормальное. Для проверки соответствия случайных величин заданным законам распределения широко используются и другие критерии согласия, например, критерий Колмогорова-Смирнова. В этом критерии за меру расхождения (отклонения) эмпирического и теоретического законов распределения принимается величина X max F ( x i ) F ( x i ) , i 1, N , xi а в критерии Мизеса (критерий ω2) – величина X 2 F ( x) F ( x) d x , 2 где F ( x) эмпирическая, а F ( x) теоретическая функции распределения. Следует отметить, что при имитационном моделировании наибольшее применение находит критерий 2 , как обеспечивающий наименьшую ошибку в принятии неверной гипотезы.