Введение и постановка задачи
Случайные числа нашли широкое применение в различных областях, включая науку, технику, экономику, социологию, медицину и педагогику [1-4]. Их использование особенно ценно для моделирования явлений, трудных или невозможных в реальной практике. Примерами служат исследования взаимодействия элементарных частиц, операции в хаотичных условиях аэропорта, и прогнозирование развития человеческой цивилизации.
Случайность играет ключевую роль в принятии стратегических решений и проявляется в музыке и графических изображениях. В этом контексте, генерация случайных чисел становится важным элементом в прикладной математической статистике, особенно при работе с выборками [5,6]. Это имеет применение в методе Монте-Карло, имитационном моделировании [7], математическом моделировании [8] и др.
Генераторы случайных чисел с равномерным распределением получили широкое распространение [1] и служат основой для получения чисел с различными распределениями, включая нормальное [2,4,9]. Анализ возможности генерации нормального распределения имеет практическое и теоретическое значение, и именно этой проблеме посвящена настоящая работа.
Анализ последних исследований и публикаций
Самый простой метод основан на использовании предельной теоремы А. М. Ляпунова [9]. Рассмотрим множество случайных чисел с равномерным распределением на отрезке [0; 1]:u1, u2,..., un. Вероятность того, что случайная величина Х=(u1 +u2+... +un)/√(n/12) при n, стремящимся к бесконечности, будет меньше значения х, соответствующего нормальному распределению, определяется функцией Лапласа
(1)
Для генерирования нормально распределённых чисел рекомендуется брать значение n, равным 6 или 12. Недостатком метода является довольно большое отклонение вычисленных значений Х, находящихся “на хвостах распределения” [10]. На практике чаще обращаются к методу, разработанному Д. Боксом, М.Мюллером и Д. Марсальей, и другим методам [1], [10], [11]. Все предлагаемые алгоритмы обеспечивают преобразование чисел с равномерным законом распределения в нормально распределённые. Современные программные средства (например, Matcad, Visual C++ и другие) позволяют решать подобную задачу с использованием стандартных программ. В связи с раннее указанным недостатком преобразования на основе предельной теоремы А. М. Ляпунова [9] рассмотрим только три алгоритма генерирования нормально распределённых чисел:
- метод полярных координат Бокса-Мюллера-Марсальи [1],
- метод полярных координат Бокса-Мюллера [11],
- стандартные программные средства из среды программирования Visual C++ [12].
Цель выполнения работы и постановка задачи
Цель работы является проведение сравнительного анализа различных методов преобразования чисел с равномерным распределением в случайные числа, подчиняющиеся нормальному закону, формула (1). Для достижения цели было необходимо решить следующие задачи:
- расписать алгоритм преобразования чисел с равномерным распределением в случайные числа, подчиняющиеся нормальному закону (1);
- выбрать критерий для проверки гипотезы о соответствии преобразованных случайных чисел нормальному закону;
- разработать расчётную программу в среде программирования Visual C++ для оценки проведения сравнительного анализа результатов, полученных различными методами;
- провести тестовые испытания.
Результаты работы
Алгоритм полярных координат Д. Бокса, М. Мюллера и Д. Марсальи, (в дальнейшем метод БММ), изложен в работах [1], [10]. Он предусматривает пошаговое выполнение следующих операций:
1. С помощью генератора равномерно распределённых чисел на отрезке [0;1] получают два случайных независимых числа r1 и r2.
2. Вычисляется значение параметра
3. Если S≥1, повторяется операция в первом пункте.
4. Рассчитываются два числа
(2)
Формулы (2) обеспечивают получение двух независимых и нормально распределённых чисел z1 и z2 с дисперсией, равной 1, и нулевым математическим ожиданием.
Видоизменённый алгоритм Д. Бокса и М. Мюллера[11], (в дальнейшем метод БМ). На первом этапе получают два независимых случайных числа r1 и r2, которые равномерно распределены на отрезке [0;1]. Далее они преобразуются в два нормально распределенных значения z1 и z2 по формулам Бокса-Мюллера:
. (3)
Формулы (3), как и формулы (2), обеспечивают получение двух независимых и нормально распределённых чисел z1 и z2 с дисперсией, равной 1, и нулевым математическим ожиданием, т.е. в первом приближении соответствуют нормальному распределению, определяемую функцией Лапласа (1).
Для получения нормального распределения с другим среднеквадратическим отклонением σ и другим математическим ожиданием а необходимо значения z1 и z2 умножить на σ и к полученным величинам прибавить а.
Метод генерирования нормально распределённых чисел в среде программирования Visual C++ [12], (в дальнейшем методNormal_distribution).
При реализации нормально распределённых чисел в среде Visual C++ в программе необходимо подключить библиотеку <random>, которая содержит различные генераторы. В разрабатываемой программе использовался генератор random_device, который в отличие от стандартного генератора rand обладает большим диапазоном. Многократный вызов функции
normal_distribution<double>norm(0,1)
обеспечивает генерирование нормально распределённых случайных чисел с нулевым математическим ожиданием и единичным среднеквадратическим отклонением.
Проверка гипотезы о соответствии случайных чисел закону нормального распределения. Проверка гипотезы о выполнении закона нормального распределения проводилась с использованием χ2-критерия Пирсона. Выборки объёмом n=100 формировались с использованием трёх вышеописанных методов среднеквадратическим отклонением σ и другим для математического ожидания а=0 и среднеквадратического отклонения σ=1. Поскольку большая часть случайных чисел лежит в пределах (3-6)σ, учитывались только значения на отрезке [-4,+4], где находится более 99,99% от общего количества [13].
Критерий Пирсона обладает v=s–3 степенями свободы, где s – число интервалов. Критическая область определяется неравенством χ2>χ2кр(α,v), где α – уровень значимости. Критическое значение χ2кр для α=5%, v=6 равно 16,8 [3]. При χ2<16,8 гипотеза о нормальности выборки принимается, в противном случае отвергается. Результаты обработки статистических данных, полученных различными способами представлены в табл. 1 (метод БММ), табл. 2 (методБМ) и табл. 3 (метод Normal_distribution).
Таблица 1
Результаты проверки гипотезы о соответствии случайных чисел, генерированных методом БММ, нормальному закону распределения: хi –середина i–го интервала, ni – количество сгенерированных чисел в i–м интервале, n’i – теоретическое значение случайных величин в i–м интервале
i |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
хi |
-3.56 |
-2,67 |
-1,78 |
-0,89 |
-0,00 |
0,89 |
1,78 |
2,67 |
3,56 |
ni |
0 |
1 |
6 |
20 |
33 |
24 |
13 |
3 |
0 |
n’i |
0.06 |
1 |
7.27 |
23.87 |
35.46 |
23.87 |
7.27 |
1 |
0.06 |
Критерий Пирсона χ2 для данных табл.1 равен 9,622. Поскольку полученное значение меньше критической величины χ2кр=16,8 для 5%-го уровня значимости при 6 степенях свободы [3], то гипотеза о нормальности выборки в случае использования метода Д. Бокса, М. Мюллера и Д. Марсальи принимается.
Таблица 2
Результаты проверки гипотезы о соответствии случайных чисел, генерированных методом БМ, нормальному закону распределения: хi –середина i–го интервала, ni – количество сгенерированных чисел в i–м интервале, n’i – теоретическое значение случайных величин в i–м интервале
i |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
хi |
-3.56 |
-2,67 |
-1,78 |
-0,89 |
-0,00 |
0,89 |
1,78 |
2,67 |
3,56 |
ni |
0 |
1 |
3 |
18 |
32 |
35 |
8 |
3 |
0 |
n’i |
0.06 |
1.03 |
7.48 |
24.54 |
36.46 |
24.54 |
7.48 |
1.03 |
0.06 |
Рассчитанныйкритерий Пирсона для данных табл. 2 равен 13.651. Полученное значение меньше критической величины χ2кр=16,8 в случае 5%-го уровня значимости при 6 степенях свободы [3]. Поэтому гипотеза о нормальности выборки, сгенерированной методом Д. Бокса и М. Мюллера, принимается.
Таблица 3
Результаты проверки гипотезы о соответствии случайных чисел, генерированных методом Normal_distribution, нормальному закону распределения: хi –середина i–го интервала, ni – количество сгенерированных чисел в i–м интервале, f(xi) – значение функции Лапласа в точке xi, n’i – теоретическое значение случайных величин в i–м интервале
i |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
хi |
-3.56 |
-2,67 |
-1,78 |
-0,89 |
-0,00 |
0,89 |
1,78 |
2,67 |
3,56 |
ni |
0 |
4 |
6 |
28 |
35 |
21 |
5 |
1 |
0 |
n’i |
0.06 |
1.03 |
7.48 |
24.54 |
36.46 |
24.54 |
7.48 |
1.03 |
0.06 |
Критерий Пирсона, вычисленный по формуле (4) для данных табл. 3, равен 11,065. Он намного меньше критической величины χ2кр=16,8 в случае 5%-го уровня значимости при 6 степенях свободы [3], что позволяет принять гипотезу о нормальности выборки, полученной в среде программирования Visual C++ методомNormal_distribution.
Выводы
Все представленные нам ранее методы генерации случайных чисел подчиняются Критерию Пирсону, что без условно нам говорит о их нормальности.
Итак, проведя анализ более точным является метод БММ, также очень хорошо себя проявил метод БМ, что касается метода Normal_distribution он конечно точнее чем метод БМ, но он не всегда точно срабатывает, иногда генерируются такие числа, что не подчиняются Критерию Пирсона. Метод Normal_distribution хоть и есть у него такой большой минус, есть также большой плюс это его простота использования, где вместо того что бы расписывать формулы как в ранее указаных методах можно просто написать команду и указать мат. ожидание и отклонение. То есть в качестве учебных целей для ознакомления, очень хорошо подойдет метод Normal_distribution. Но если надо для статьи, каких-нибудь вычислений, то тут хорошо себя покажут методы БМ и БММ.
Кнут Дональд Э. Искусство программирования. Полученные алгоритмы. Том 2. / Дональд Э. Кнут. - М.: Изд. Диалектика-Вильямс, 2018. - 834 с.
Крицкий О.Л. Теория вероятностей и математическая статистика для технических университетов. Теория вероятностей / О.Л. Крицкий, А.А. Михальчук, А.Ю. Трифонов, М.Л. Шинкеев / Учебное пособие. Томский политехнический университет. – Томск: Изд-во Томского политехнического университета, 2010. – 212 с
Кремер Н. Ш. Теория вероятностей и математическая статистика. / Н. Ш. Кремер / Учебное пособие. М.: Изд. Юнити-Дана, 2004.- 573 с.
Єремєєв В.С. Теорія планування та обробки експерименту. / В.С. Єремєєв, Г. М. Ракович. / Навчальний посібник. Мелітополь: Мелітопольський державний педагогічний університет ім. Богдана Хмельницького, 2012.-87 с.
Чернова Н. И. Математическая статистика. /Н. И. Чернова / Учеб. пособие. — 2-е изд. — Новосибирск : Новосиб. гос.ун-т., РИЦ НГУ, 2014. — 150 с.
Кокорина И.В. Основы математической обработки информации в филологии:комбинаторика, теория вероятностей и математическая статистика / И.В. Кокорина / Учеб.-метод. пособие. Сев. (Арктич.) федер. ун-тим. М.В. Ломоносова. – Архангельск: ИДСАФУ, 2014. – 115 с.
Хемди А. Таха. Имитационное моделирование Введение в исследование операций / А. Таха Хемди/ .— 7-е изд. — М.: «Вильямс», 2007. — С. 697-737.
Звонарев С. В. Основы математического моделирования: учебное пособие / С. В. Звонарев / — Екатеринбург : Изд‑во Урал. ун‑та, 2019. —112 с.
Жалдак М. І. Теорія ймовірностей і математична статистика: Підручник для студентів фізико-матем. спеціальностей педагог. університетів. Вид.2, перероб і доп./ М. І. Жалдак, Н. М.Кузьмина, Г. О. Михалін / Полтава: Довкілля-К, 2010. - 500 С.
Зорин А. В. Моделирование случайных величин и проверка гипотез о виде распределения: Учебно-методическое пособие/ А. В. Зорин, В. А. Зорин, М. А. Федоткин / — Нижний Новгород: Нижегородский госуниверситет, 2017. — 19 с.
Описание программной среды С++, которая использовалась в данной работе. Электронный ресурс: https://visualstudio.microsoft.com/ru/vs/
Таблица нормального распределения случайных чисел. Электронный ресурс: http://math-info.hse.ru›f/2017-18/ps-ms/all-tables.pdf