Получение ряда равномерно распределенных псевдослучайных чисел с использованием ЭВМ

МИНИСТЕРСТВО ОБРАЗОВАНИЯ И  НАУКИ РОССИЙСКОЙ ФЕДЕРАЦИИ

Федеральное государственное  бюджетное образовательное учреждение

высшего профессионального  образования

«ТЮМЕНСКИЙ  ГОСУДАРСТВЕННЫЙ НЕФТЕГАЗОВЫЙ УНИВЕРСИТЕТ»

Филиал ТюмГНГУ в  г. Новом Уренгое

Кафедра естественнонаучных и общетехнических дисциплин

 

Специальность

                                                                                                                                                           Автоматизация  технологических

процессов и производств

Курсовая работа

Дисциплина: МОДЕЛИРОВАНИЕ СИСТЕМ

Тема: Получение ряда равномерно распределенных псевдослучайных чисел с использованием ЭВМ.

 

Выполнил:  
студент 3 курса направления «Автоматизация технологических процессов и производств»

группа АТП-09

Харё А. Н.

Проверил:

к.т.н., доцент Бруслова О. В.

 

 

 

 

 

 

 

 

 

 

 

Новый Уренгой – 2012

Содержание:

 

 

Введение

Моделирование нормально распределенных случайных величин.

Нормальный закон распределения  встречается в природе весьма часто, поэтому для него разработаны отдельные эффективные методы моделирования. Формула распределения вероятности значений случайной величины x по нормальному закону имеет вид:

Как видно, нормальное распределение  имеет два параметра: математическое ожидание mи среднеквадратичное отклонение σвеличины x от этого математического ожидания.

x — случайная величина;

y(x) — вероятность принятия случайной величиной значения x;

m— математическое ожидание;

σ— среднее квадратичное отклонение.



Нормализованным нормальным распределением называется такое нормальное распределение, у которого m= 0 и σ= 1. Из нормализованного распределения можно получить любое другое нормальное распределение с заданными mи σпо формуле: z = m+ x · σx.

Рассматривая последнюю формулу, вспомните формулы компьютерной графики: операция масштабирования  выражается в математической модели через умножение (это соответствует изменению разброса величины, растягиванию геометрического образа), операция смещения выражается через сложение (это соответствует изменению значения наиболее вероятной величины, смещению геометрического образа).

Функция нормального распределения  имеет вид колокола. На рис. 25.1 показано нормализованное нормальное распределение.


Рис. 2.1. Графический вид нормального закона 
распределения случайной величины х с параметрами 
m= 0 и σ= 1 (распределение нормализовано)


График на рис. 21.1 показывает, что в области –σ < x < σ на графике сосредоточено 68% площади распределения, в области –2σ < x < 2σ на графике сосредоточено 95.4% площади распределения, в области –3σ < x < 3σ на графике сосредоточено 99.7% площади распределения («правило трех сигм»).  

  1. Аналитическая часть.

    1. Псевдослучайное число

Псевдослучайные числа с распределением, отличным от равномерного, легко получить как функцию f () от равномерно распределенных случайных величин. 

Псевдослучайные числа, полученные при помощи генератора случайных чисел, должны быть статистически независимыми и воспроизводимыми. Алгоритмы псевдослучайных чисел представляют собой рекуррентные соотношения. 

Равномерно распределенные псевдослучайные числа приведены в табл. 7 приложения. 

Наши четырехзначные псевдослучайные числа слишком быстро начинают повторяться и склонны к обнулению. Обычно работают с десятизначными числами. Напишите такую программу, учитывая, что во всех промежуточных вычислениях числа не должны иметь более десяти разрядов. 

Последовательность псевдослучайных чисел преобразуют в формат экрана дисплея и выводят в виде изображения. Если при рассмотрении такого изображения на нем не обнаруживаются заметные структуры, то псевдослучайные числа вполне можно считать независимыми.

Последовательность псевдослучайных чисел генерируется из затравочного одномерного массива целых чисел. 

Последовательности псевдослучайных чисел, полученные на ЭВМ с помощью выражений вида (3.2), являются периодическими. 

Получение псевдослучайных чисел осуществляется методом Холтоим, который состоит в следующем: будем получать псевдослучайные числа РР ( i) рекуррентно по i; здесь Г - основание системы счисления, какое-либо простое число; Я. 

Использование псевдослучайных чисел при моделировании различных операций очень удобно. Во-первых, число команд, необходимых для написания программы, невелико, и программа занимает минимальный объем памяти. В-третьих, такую последовательность достаточно проверить на равномерность один раз, чтобы использовать ее с полной уверенностью. 

Качество псевдослучайных чисел сильно зависит от выбора величины А: это число в двоичной записи должно иметь достаточно случайный вид, хотя его последний разряд следует брать единицей. Величина у0 слабо влияет на качество последовательности, но было отмечено, что некоторые значения оказываются неудачными. 

Для генерации псевдослучайных чисел используются специальные подпрограммы. 

Применив датчик псевдослучайных чисел, равномерно распределенных на отрезке ( 0 1), получим внутри гиперкуба варьируемых параметров случайные точки, равномерно заполняющие объем. 

Возможность использования псевдослучайных чисел вместо случайных определяется в результате проверки их специальными тестами. Однако реализация проверки случайности чисел на основе их двоичного представления достаточно сложна. 

Таких количеств псевдослучайных чисел для каждого процессора с избытком хватает для вычислительных потребностей. 

Любой генератор псевдослучайных чисел может дать лишь конечное множество целых случайных чисел, после которого последовательность начинает повторяться. Период, или длина последовательности, Р зависит от вычислительной машины и от выбранного модуля, а статистические свойства полученной последовательности зависят от выбора начального значения и множителя. Таким образом, выбирать а, Хо и m следует так, чтобы обеспечить максимальный период и минимальную корреляцию между генерируемыми числами. Правильный выбор модуля не зависит от системы счисления, используемой в данной ЭВМ. 

Подпрограммы  выработки псевдослучайных чисел, являющихся реализацией вектора Е, практически имеются в математическом обеспечении любых ЭВМ. 

Для проверки псевдослучайных чисел применяются и такие тесты, как тест серий, покер-тест и др. Они отражают сложные свойства случайных последовательностей, которые трудно использовать для обоснования точности расчетов по методу Монте-Карло. 

Алгоритм  генерации псевдослучайных чисел в GPSS World основан на мультипликативно-конгруэнтном алгоритме Лемера с максимальным периодом. Алгоритм генерирует псевдослучайное число в открытом интервале от 0 до 2147483647 и до самоповторения генерирует 2147483646 уникальных псевдослучайных чисел. Дополнительно используется шаг перемешивания. 

Оператор  Ф1 формирует псевдослучайные числа, имеющие равномерное распределение в отрезке [0,1] в соответствии с выбранным алгоритмом их получения. Вначале оператор Pz передает управление следующему за ним оператору Ф3, осуществляющему формирование случайных значений действительного контролируемого размера изделия Li в соответствии с его законом распределения. 

С помощью  датчика псевдослучайных чисел, равномерно распределенных в интервале ( О, 1), получили случайное число. Па этому числу в таблице, задающей закон распределения времени восстановления пучка, выбираем одно из чисел закона распределения. К значению времени, полученному из общего для исех лучков закона распределения времени восстановления, прибавляется время, необходимое в среднем на восстановление данного пучка. Полученный результат складывается со значением в этот момент Часы 2 и записывается в Будильник 2 соответствующего пучка. 

Этот способ генерации псевдослучайных чисел достаточно прост и легко может быть реализован в компьютере. 

Затем из таблицы псевдослучайных чисел выбирается первое число. Если оно оказывается меньше 0 5, то второй перепад располагается с задержкой Т, а третий перепад - с задержкой 2Т от первого. В том случае, если первое случайное число больше или равно 0 5, то второй перепад располагается с задержкой IT от первого. После этого из таблицы извлекается второе случайное число и весь процесс повтсряется. 

Почему  любая последовательность псевдослучайных чисел периодична. 

В связи с псевдослучайными числами возникает следующий вопрос. В каком смысле их можно считать случайными, если они получены с помощью детерминированных ( неслучайных) алгоритмов. 

Меньшая потребность  в псевдослучайных числах для расчета обобщенных угловых коэффициентов излучения положительно сказывается на точности получаемых результатов и облегчает решение задач лучистого теплообмена с уче-врм реальных спектральных радиационных характеристик ограничивающих поверхностей. 

Существует  много алгоритмов генерирования псевдослучайных чисел, причем одним из наиболее часто используемых является метод степенных вычетов. Мы отсылаем читателя к книге Хэмминга ( Hamming) ( гл. 

Мы начнем с ряда псевдослучайных чисел, содержащего 5 000 значений ( нормально распределенных с нулевым средним и стандартным отклонением равным единице), которые дважды перемешиваются. Мы вычисляем значения R / S для всех п, которые являются ровно делимыми на 5 000; то есть каждое значение R / Sn будет всегда включать начальное и конечное значение полного временного ряда. Среднее этих R / Sn - ожидаемое значение E ( R / Sn) для системы гауссовых случайных чисел. 

Применяют несколько алгоритмов получения псевдослучайных чисел. 

Имеются формулы  для генерирования псевдослучайных чисел. Пусть они вычислены и занесены в таблицу. Если мы не поверим сразу, что это - псевдослучайные числа, можно попытаться вычислить энтропию, основанную на частотах появления отдельных чисел. Поскольку генераторы псевдослучайных чисел достаточно хорошо имитируют случайные числа, окажется, что каждое следующее число является для нас полной неожиданностью. Если, однако, нам известна структура формулы, используемой для порождения таблицы, то после нескольких шагов мы сможем точно предсказать последующие числа и никакой неожиданности не будет. Таким образом, оценка энтропии источника зависит от принятой модели. 

Для увеличения интервала апериодичности псевдослучайных чисел используется метод возмущения основного алгоритма. Суть его заключается в следующем. 

Строго  говоря, закономерность псевдослучайных чисел должна быть незаметна по отношению к требуемому частному применению. Поэтому в несложных или удачно сформулированных задачах можно использовать последовательности не очень хорошего качества, но при этом необходимы специальные проверки. 

Рассмотрим  коротко способ получения псевдослучайных чисел с различными распределениями вероятностей. Для получения таких чисел существует несколько алгоритмов. 

Для получения  равномерно и нормально распределенных псевдослучайных чисел на ЕС ЭВМ можно использовать соответственно подпрограммы RANDU и GAUSS, записанные на языке ФОРТРАН. На получение одного числа затрачивается 0 00001 с. Отрезок апериодичности составляет 229 числа. На получение одного числа затрачивается порядка 0 0005 с, а отрезок апериодичности - 109 чисел. 

Обычно  для этой цели используются псевдослучайные числа, однако статистические свойства таких последовательностей должны контролироваться. 

Сейчас  в большинстве исследований используются псевдослучайные числа как наиболее удобные. Их недостатком, однако, является то, что они не настоящие случайные числа и поэтому пользователю необходимо быть осторожным при их применении и всякий раз выяснять, какие требования предъявлялись при построении рассматриваемого генератора псевдослучайных чисел. Это заставляет некоторых исследователей пользоваться настоящими случайными числами, получаемыми с помощью неудобных датчиков, основанных на физических процессах. 

Обычно  для этой цели используются псевдослучайные числа, однако статистические свойства таких последовательностей должны контролироваться. При вычислении многомерных интегралов нужно анализировать и величину относительной погрешности, не допуская ее чрезмерного возрастания. 

Функция rand генерирует на самом деле псевдослучайные числа. При вызове rand генерируется последовательность чисел, которые выглядят случайными. Однако эта последовательность повторяется при каждом новом выполнении программы. Когда программа будет тщательно отлажена, можно модифицировать ее для генерации различных последовательностей случайных чисел для каждого выполнения. 

Для отладки был использован  массив псевдослучайных чисел из 5000 элементов; результат был правильный. 

В этой программе процесс генерации псевдослучайных чисел по отношению к известным методам генерации упрощен. Напомним, что в основе этих методов лежит метод статистических испытаний, или метод Монте-Карло, применение которого обосновывается предельными теоремами теории вероятностей. 

Использование арифметических схем для порождения псевдослучайных чисел возникло около 30 лет назад и описано в 1946 г. Дж. Они предложили известный метод середин квадратов, в котором очередное число последовательности получается так: предыдущее число возводится в квадрат и в полученном результате берутся средние цифры. 

Заметим, что использование последовательностей псевдослучайных чисел, резко отличающихся по вероятностным оценкам от идеальной последовательности равномерно распределенных случайных чисел, может существенно увеличить время решения оптимальной задача методом случайного поиска. 

Эту последовательность часто называют последовательностью псевдослучайных чисел. В настоящее время чаще используется математический метод. Для этого есть несколько причин. Прежде всего в статистическом моделировании важно иметь возможность воспроизвести последовательности случайных чисел, чтобы, например, посмотреть, как на тех же данных будет работать другой метод статистической обработки. Далее, трудно гарантировать постоянную удовлетворительную работу физических датчиков. И наконец, в настоящее время найдены и проверены простые и вместе с тем надежные математические датчики. 

Методы генерирования с помощью  ЭВМ псевдослучайных чисел и стохастических вариационных рядов освещены во многих книгах и статьях в технических журналах. Кроме того, большая часть ЭВМ содержит соответствующие подпрограммы в составе своих библиотек. Поэтому мы специально их не рассматривали, а лишь поместили в приложении в качестве вспомогательных средств для проведения вычислений в случае, если под руками нет соответствующих машинных программ. 

Существуют и другие способы  получения псевдослучайных чисел. 

Таким образом, если разрядность псевдослучайных чисел выбрана малой, то это может сказаться на степени приближения псевдослучайной последовательности к случайной. 

Заметим, что использование последовательностей псевдослучайных чисел, резко отличающихся по вероятностным оценкам от идеальной последовательности равномерно распределенных случайных чисел, в некоторых случаях может существенно увеличить время решения оптимальной задачи методом случайного поиска. 

 

    1. Получение на ЭВМ равномерно распределенных псевдослучайных чисел.

 

При моделировании систем на ЭВМ  программная имитация случайных воз-действий любой сложности сводится к генерированию некоторых стандартных (базовых ) процессов и к их последующему функциональному преобразованию. Таким базовым процессом является последовательность чисел {хi} = х0, х1, ¼, хN, представляющих собой реализации независимых, равномерно  распределенных  на  интервале  ( 0, 1 )  случайных  величин  { ei } = e0, e1, ¼, eN. Но  на  ЭВМ невозможно  получить  идеальную последовательность  случайных  чисел  потому, что  на  ней  можно  оперировать  только  с  конечным  множеством  чисел. Кроме  того, для  полу-чения  значений  х  случайной  величины  e  используются  формулы ( алгоритмы ). Поэтому такие последовательности, являющиеся  по  своей  сути  детерминированны-ми, называются  псевдослучайными.

Наибольшее  применение  в  практике  моделирования  на  ЭВМ  для  генерации  последовательностей  псевдослучайных  чисел  находят  алгоритмы  вида

хi+1 = F ( хi ),

представляющие  собой  рекуррентные  соотношения  первого  порядка, для  которых  начальное  число  х0   и  постоянные  параметры  заданы.

Рассмотрим  некоторые  процедуры  получения  последовательностей  равномер-но  распределенных  псевдослучайных  чисел.

 

    1. Метод соединенных квадратов.

Пусть  имеется  2n-разрядное число, меньшее 1

хi  = 0, a1  a2  ¼  a2n.

Возведем  его  в  квадрат

хi2 = 0, b1  b2  ¼  b4n,

а  затем  отберем  средние  2n  разрядов, которые и будут являться  очередным  чис-лом  псевдослучайной  последовательности

хi+1 = 0, bn+1  bn+2  ¼  b3n.

        Этому  методу  соответствует  рекуррентное  соотношение               

хi+1 = D [ 10-2n Ц [ 103n хi2 ] ],

 где  D [ × ]  и Ц [ × ]  означают  соответственно  дробную и целую часть числа в квадратных  скобках.

Недостаток  метода - наличие  корреляции  между  числами  последовательности, а  в  ряде  случаев  случайность  вообще  может  отсутствовать. Кроме  того, при  не-которых   i*  может   наблюдаться   вырождение   последовательности,  т.е.  хi = 0   при     

i  ³ i*.

    1. Метод середины произведений.

Метод  является  модификацией  метода серединных  квадратов  и  состоит  в том, что  два  2n-значных числа перемножаются и средние 2n  цифр  этого произведения  принимаются в качестве  следующего  числа последовательности. Таким  образом, если         

хi-1 = 0,  a1  a2  ¼  a2n,

хi = 0, b1  b2  ¼  b2n,

то  для  получения  числа  хi+1  необходимо  перемножить хi-1  и хi

хi-1 × хi = 0, c1  c2  ¼  c4n,

а  затем  отобрать  средние  2n  цифр  этого произведения

хi+1 = 0, cn+1  cn+2  ¼  c3n.

Данному  методу  соответствует  рекуррентное  соотношение

хi+1 = D [ 10-2n  Ц [ 103n хi × хi-1 ] ]

при  заданных  двух  начальных  числах  х0  и х1.

Несмотря  на  то, что  данный  метод  также  имеет  тенденцию  к  вырождению, но  обеспечивает  лучшее  качество  псевдослучайных  чисел, чем  у  чисел, получен-ных  с  помощью  метода  серединных  квадратов.

    1. Мультипликативный метод.

Широкое  применение  для  получения  последовательностей  псевдослучайных  равномерно  распределенных  чисел  получили  конгруэнтные  процедуры  генерации, которые  могут  быть  реализованы  мультипликативным  либо  смешанным  методом. Конгруэнтные  процедуры  являются  чисто  детерминированными, т.к.  описываются  в  виде  рекуррентного  соотношения, когда  функция  ( 1 )  имеет  вид

                                                       Хi = lХi + m ( mod M ),                                             

где  Хi, l, m, M - неотрицательные целые числа.

Раскрывая  ( 2 )  получим

                                          Хi = li Х0 + ( li - 1) m / ( l - 1 )( mod M ).                             

Если  задано  начальное  значение  Х0, множитель l  и аддитивная  константа  m, то  ( 5 )  однозначно  определяет  последовательность  целых чисел  { Хi }, составленную  из  остатков  от  деления на  М, членов  последовательности

 { li×Х0 + m ( li - 1 ) / ( l - 1 )}.     

Таким  образом, для  любого  i ³ 1  справедливо неравенство Хi < M. По  целым числам  последовательности  { Хi }  можно построить последовательность          { хi } = { Хi / M }  рациональных  чисел из  единичного  интервала  ( 0, 1 ).

Мультипликативный  метод  задает  последовательность  неотрицательных  це-лых  чисел  { Хi }, не  превосходящих М, по  формуле    

                                                         Хi+1= l Хi ( mod M ),                                               

т.е.  это  частный  случай  ( 4 )  при  m = 0.

Для  машинной  реализации  наиболее  удобна  версия  М = pg,  где p - число цифр  в системе счисления, принятой  в ЭВМ, а g - число бит в машинном  слове.

Алгоритм  построения  последовательности  для  двоичной  машины  М = 2g  сво-дится к выполнению  следующих операций:

    1. выбрать  в  качестве  Х0  произвольное  нечетное  число; 
    2. вычислить  коэффициент  l = 8t ± 3, где t - любое целое положительное  число;
    3. найти  произведение  l Х0, содержащее  не  более  2g  значащих  разрядов;
    4. взять  g  младших разрядов  в качестве  первого числа последовательности  Х1, а остальные отбросить;
    5. определить  дробь  х1 = Х1 / 2g  из  интервала ( 0, 1 );           
    6. присвоить  Х0 = Х1;
    7. вернуться  к  пункту  3.

В  настоящее  время  библиотеки  стандартных  программ  ЭВМ  для  вычисления  последовательностей  равномерно  распределенных  случайных  чисел  основаны  на  конгруэнтных  процедурах. Последовательность, полученная  по  мультипликативному  методу, хорошо  удовлетворяет  статистическим  критериям  проверки  качества.

    1. Методы проверки качества псевдослучайных чисел с равномерным законом распределения.

Методы  ( в  дальнейшем, тесты )  проверки  качества  псевдослучайных  чисел  делятся  на  три  группы:

    1. тесты  проверки   ²случайности²  последовательности  псевдослучайных  чисел;
    2. тесты  проверки  равномерности  закона  распределения;
    3. тесты  проверки  независимости  последовательности.

Первые  два  теста  основываются  на  статистических  критериях  согласия, из  которых  наиболее  употребительным  является  статистический  критерий  согласия  ( Пирсона ). 

Пусть  имеется  h - случайная величина, о законе  распределения которой  выдвигается  некоторая  гипотеза, Х - множество  возможных  значений  h. Разобьем  Х на  m  попарно непересекающихся  множеств  Х1, Х2, ¼ ,Хm, таких, что

P { hÎХj } = pj > 0  при j = 1, 2, ¼, m,

p1 + p2 + ¼ pm = P { hÎХ } = 1.

Выберем  N  независимых значений  h1, h2, ¼ ,hи  обозначим  через коли-чество  значений  hÎХj. Очевидно,  что математическое  ожидание  равно  Npj, т.е.  М [ ] = Npj

В  качестве  меры  отклонения  всех

от  Npj выбирается  величина

При  достаточно  большом  N  величина хорошо  подчиняется закону  распределения с ( m - 1)  степенью  свободы:

P {

<
}
,

где - плотность распределения с  ( m - 1)  степенью  свободы.

С  помощью  формулы  ( 8 )  при  заданном  уровне  значимости b ( обычно b = 0.95 )  можно определить  нижнюю и верхнюю границы области  возможного  принятия  гипотезы  ( доверительного  интервала ). Для  этого  нужно  ре-шить  соответственно  следующие  уравнения:

P {

>
} =
=  b,

P {

>
} =
=  g,

где  g = 1 - b, r = m - 1.

 

  1. Практическая часть

№ Вар.

E(t)

Инд-ть

L, Гн

Емкость

С, Ф

Сопротивление

№ рис. Схемы

Uвых на эл-те

R1, Ом

R2, Ом

31

20Cos(6t)

0,763

35,16

5

2,5

8

R1


 

      

Составим интегро-дифференциальные уравнения контурных токов по второму закону Кирхгофа:

    

Продифференцировав уравнения, получим:

    

Получим:

    

Произведем обозначение дифференциалов для понижения порядка дифференциальных уравнений:

       

     

Для решения системы дифференциапьных уравнений зададим начальные условия по токам:

Выберем соответственно начало и конец  временного интервала интегрирования и количество дискрет  на этом интервале

           

 

 

 

Обозначим начальные токи:

Сформируем правую часть системы  дифференциальных уравнений в виде

Решение системы дифференциальных уравнений получено в виде:

Дискретные значения токов представим таблицей протокола решения:

Найдем передаточную функцию. Для этого воспользуемся прямым преобразованием Лапласа, формально заменив символ интеграла на 1/s, а символ производной на s. Обозначим падение напряжения на резисторе R через U.

Это соотношение определяет передаточную функцию

Подставим численные значения параметров электрической цепи:

Числитель и знаменатель выражения  поделим на 1.7177142719725715385 и коэффициенты знаменателя, который представляет характеристическое уравнение, запишем в виде вектора:

Используя функцию polyroots(у) найдем корни характеристического уравнения. Откуда видно, что система устойчива. Определение выходного сигнала системы на синусоидальный входной сигнал. Для этого найдем изображение по Лапласу входного сигнала:

        

Перемножим в изображениях входной  сигнал на передаточную функцию и сделаем преобразования:

Произведем обратное преобразование Лапласа для выходного сигнала:

Построим графики входного и  выходного сигналов от временного аргумента

Определим переходную функцию:

           

        

Выполним прямое преобразование Фурье

 

 

 

Построим амплитудно-частотную характеристику

Построим фазо-частотную характеристику

 

Список используемых источников:

    1. Бусленко Н. П. Моделирование сложных систем. - М.: Наука, 1978.
    2. Вентцель Е.С., Овчаров Л.А. Теория вероятностей и ее инженерные приложения. – М.: Наука, 1988. – 480 с.
    3. Бобнев М.П. Генерирование случайных сигналов. – Изд. 2-е, перераб. И доп. – М.: Энергия, 1971. – 240 с.
    4. Манджалагидзе П.В., Морозов А.М. Формирование случайных цифр в произвольной системе счисления // Труды Вычислительного центра АН Груз. СССР. Т.21. № 2. 1981. С. 74-104.
    5. Ермаков С.М., Михайлов Г.А., Статистическое моделирование. М. Наука. 1982. 294 с.
    6. Фомин С.В. Системы счисления. М. Наука. 1987. 40 с.
Получение ряда равномерно распределенных псевдослучайных чисел с использованием ЭВМ