ГЕНЕРИРОВАНИЕ НОРМАЛЬНО РАСПРЕДЕЛЁННЫХ СЛУЧАЙНЫХ ЧИСЕЛ - Студенческий научный форум

XVI Международная студенческая научная конференция Студенческий научный форум - 2024

ГЕНЕРИРОВАНИЕ НОРМАЛЬНО РАСПРЕДЕЛЁННЫХ СЛУЧАЙНЫХ ЧИСЕЛ

 Комментарии
Текст работы размещён без изображений и формул.
Полная версия работы доступна во вкладке "Файлы работы" в формате PDF

Введение и постановка задачи

Случайные числа нашли широкое применение в различных областях, включая науку, технику, экономику, социологию, медицину и педагогику [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 – число интервалов. Критическая область определяется неравенством χ22кр(α,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. Но если надо для статьи, каких-нибудь вычислений, то тут хорошо себя покажут методы БМ и БММ.

Список литературы

  1. Кнут Дональд Э. Искусство программирования. Полученные алгоритмы. Том 2. / Дональд Э. Кнут. - М.: Изд. Диалектика-Вильямс, 2018. - 834 с.

  2. Крицкий О.Л. Теория вероятностей и математическая статистика для технических университетов. Теория вероятностей / О.Л. Крицкий, А.А. Михальчук, А.Ю. Трифонов, М.Л. Шинкеев / Учебное пособие. Томский политехнический университет. – Томск: Изд-во Томского политехнического университета, 2010. – 212 с

  3. Кремер Н. Ш. Теория вероятностей и математическая статистика. / Н. Ш. Кремер / Учебное пособие. М.: Изд. Юнити-Дана, 2004.- 573 с.

  4. Єремєєв В.С. Теорія планування та обробки експерименту. / В.С. Єремєєв, Г. М. Ракович. / Навчальний посібник. Мелітополь: Мелітопольський державний педагогічний університет ім. Богдана Хмельницького, 2012.-87 с.

  5. Чернова Н. И. Математическая статистика. /Н. И. Чернова / Учеб. пособие. — 2-е изд. — Новосибирск : Новосиб. гос.ун-т., РИЦ НГУ, 2014. — 150 с.

  6. Кокорина И.В. Основы математической обработки информации в филологии:комбинаторика, теория вероятностей и математическая статистика / И.В. Кокорина / Учеб.-метод. пособие. Сев. (Арктич.) федер. ун-тим. М.В. Ломоносова. – Архангельск: ИДСАФУ, 2014. – 115 с.

  7. Хемди А. Таха. Имитационное моделирование Введение в исследование операций / А. Таха Хемди/ .— 7-е изд. — М.: «Вильямс», 2007. — С. 697-737.

  8. Звонарев С. В. Основы математического моделирования: учебное пособие / С. В. Звонарев / — Екатеринбург : Изд‑во Урал. ун‑та, 2019. —112 с.

  9. Жалдак М. І. Теорія ймовірностей і математична статистика: Підручник для студентів фізико-матем. спеціальностей педагог. університетів. Вид.2, перероб і доп./ М. І. Жалдак, Н. М.Кузьмина, Г. О. Михалін / Полтава: Довкілля-К, 2010. - 500 С.

  10. Зорин А. В. Моделирование случайных величин и проверка гипотез о виде распределения: Учебно-методическое пособие/ А. В. Зорин, В. А. Зорин, М. А. Федоткин / — Нижний Новгород: Нижегородский госуниверситет, 2017. — 19 с.

  11. Описание программной среды С++, которая использовалась в данной работе. Электронный ресурс: https://visualstudio.microsoft.com/ru/vs/

  12. Таблица нормального распределения случайных чисел. Электронный ресурс: http://math-info.hse.ruf/2017-18/ps-ms/all-tables.pdf

Просмотров работы: 182