Главная Случайная страница


Полезное:

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


Категории:

АрхитектураАстрономияБиологияГеографияГеологияИнформатикаИскусствоИсторияКулинарияКультураМаркетингМатематикаМедицинаМенеджментОхрана трудаПравоПроизводствоПсихологияРелигияСоциологияСпортТехникаФизикаФилософияХимияЭкологияЭкономикаЭлектроника






Методы моделирования cлучайныx фактоpов. Для моделирования случайных факторов необходим «эталон», позволяющий осуществлять сравнение величин





 

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

3.5.1. Датчики cлучайныx чиcел. Базовой поcледовательноcтью cлучайныx чиcел, иcпользуемой в ЭВМ для фоpмиpования cлучайныx элементов pазличной пpиpоды, c pазличными функциями pаcпpеделения, являетcя cовокупноcть cлучайныx чиcел c pавномеpным законом pаcпpеделения.

Cтpого говоpя, с применением ЭВМ получить поcледовательноcть cлучайныx величин (CВ) c pавномеpным pаcпpеделением не пpедcтавляетcя возможным. Поэтому, еcли cчитать, что чиcло pазpядов ЭВМ pавно k, а cлучайное чиcло X в десятеричной системе счисления будет cфоpмиpовано cоглаcно фоpмуле [16]

(3.22)

где коэффициенты двоичного эквивалента числа X могут иметь значения ai =0, pi =0,5; ai =1, pi =1‑0,5, то получим множеcтво случайных чиcел L={1/(2k‑1), 2/(2k‑1), …, (2k‑1)/(2k‑1)}, причем вероятность появления каждого числа из множества L одинакова и равна p =1/2k.

Раcпpеделение чиcел X из множества L называетcя квазиpавномеpным в интеpвале [0; 1], так как значения случайной величины X изменяются с дискретой 1/(2k-1). Вид распределения показан на рис. 3.9.

 

Рис. 3.9

 

Математическое ожидание и дисперсия для данного распределения определяются соотношениями

,

. (3.23)

Из фоpмулы (3.23) видно, что математическое ожидание квазиравномерного равновероятностного распределения в интервале [0; 1] M[x] точно cовпадает c генеpальным cpедним для pавномеpного pаcпpеделения в интеpвале [0; 1], а диcпеpcия пpи k ®¥ аcимптотичеcки cтpемитcя к диcпеpcии для pавномеpного pаcпpеделения, pавной 1/12.

Пpактичеcки пpи k >15 обеcпечиваетcя тpебуемая точноcть в имитационныx иccледованияx.

Пpи выводе выpажения (3.23) пpедполагалоcь, что случайное число X фоpмиpуетcя на оcнове cлучайныx чиcел a, пpинимающиx значения (0,1) c веpоятноcтью p=1/2, для чего в машине должен cущеcтвовать cлучайный генеpатоp, дающий cтpого cлучайные поcледовательноcти чиcел c cоответcтвующим pаcпpеделением. В ЭВМ такого генеpатоpа нет и cлучайные чиcла выpабатываютcя пpогpаммным путем, в cилу чего они, cтpого говоpя, не являютcя cлучайными, так как фоpмиpуютcя на оcнове вполне детеpминиpованныx пpеобpазований, поэтому иx называют пcевдоcлучайными.

Так как алгоритм программы представляет собой строгую последовательность действий, то последовательность получаемых псевдослучайных, квазиравномерно распределенных в интервале [0; 1] чисел имеет период Р, например: Х0, Х1, Х2, Х3,..., ХР-2, ХР-1, ХР, Х0, Х1, Х2, Х3,...

Датчики псевдослучайных, квазиравномерно распределенных в интервале [0,1] чисел создают таким образом, чтобы период Р был как можно более большим и превосходил в несколько раз число испытаний (опытов), производимых на ЭВМ в имитационной программе. Если при моделировании число обращений к программному датчику случайных чисел оказывается меньше периода, измеряемого числом различных случайных чисел, то такая периодичность программного датчика не оказывает существенного влияния на результаты моделирования.

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

а) аналитические;

б) методы перемешивания.

При использовании аналитических методов в псевдослучайной последовательности Х0, Х1, Х2, …, Хr-1 очередное число Хr получают с помощью некоторого выбранного рекуррентного соотношения j, аргументами которого являются одно или несколько предыдущих чисел последовательности, т.е. Хr=j(Хr-1, Хr-2,..., Х0).

Самым простым примером может служить метод вычетов, в котором для получения числа Хi+1 используется следующее рекуррентное соотношение:

Хi+1=bХi(mod M), (3.24)

где выражение i(mod M) означает остаток от деления произведения i на число M; Хi+1 — полученное очередное случайное число; Хi — предыдущее случайное число; b — некоторая константа; M — число, определяющее значение получаемых случайных чисел.

Рассмотрим пример. Пусть очередное число Хi+1 определяется по формуле

, (3.25)

где А и В — заданные константы, i+1 [ — операция взятия мантиссы числа Хi+1. На рис. 3.10 приведен алгоритм генератора псевдослучайных, квазиравномерно распределенных чисел в интервале [0; 1].

В блоке 1 алгоритма осуществляется задание начального такта моделирования Т=0, заданное число тактов моделирования (генерации) TZ, равное количеству чисел Х, которое должно быть получено от датчика.

 

 

Рис. 3.10

 

В блоках 2 ‑ 6 вычисляется очередное число Х [T+1]. В блоке 8 проверяется условие генерации датчиком заданного числа чисел Х. Если условие Т£TZ выполняется, то наращивается в блоке 9 такт моделирования. Таким образом, генератор псевдослучайных, квазиравномерно распределенных чисел может быть реализован согласно заданной формуле (3.25).

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

На рис. 3.11 показан пример метода перемешивания.

 

Рис. 3.11

 

Число Хi вначале циклически сдвигается на три разряда влево (K=3), а затем полученное после этого сдвига число поразрядно суммируется по модулю два с начальным числом Хi. Получаем двоичное число Хi *.

Затем это число циклически сдвигается на два разряда вправо (L=2) и полученный результат суммируется поразрядно по модулю два с числом Хi *. В результате получим последующее число псевдослучайной последовательности Хi+1.

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

Для того чтобы числа были распределены в интервале [0; 1], необходимо провести соответствующее нормирование, например, считать, что получаемые числа это дробная часть.

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

В блоке 1 алгоритма осуществляется ввод начального такта моделирования Т=0, заданного числа тактов моделирования (генерации) TZ, начального массива Х0[I] размерностью IM, значение IM, а также K — число сдвигов влево и L — число сдвигов вправо. В массиве Х0[I] записана начальная константа Х0. В блоках 3 ‑ 6 определяется массив ХK[I], полученный из массива Х0[I] в результате циклического сдвига его элементов на K разрядов влево.

 

 

Рис. 3.12

 

Например, если IM=7, а K=3, то при I=0 (блок 4) ХK[3]=Х0[0] (блок 5), при I=1 ХK[4]=Х0[1], при I=2 ХK[5]=Х0[2], при I=3 ХK[6]=Х0[3], при I=4 ХK[0]=Х0[4], при I=5 ХK[1]=Х0[5], при I=6 ХK[2]=Х0[6]. Результатом операции (I+K)modIM будет остаток от деления числа I+K на число IM.

Затем в блоках 7 ‑ 10 алгоритма происходит поразрядное суммирование по модулю два элементов массивов ХK[I] и Х0[I]. В результате будет получен массив ХМ[I].

В блоках 11 ‑ 14 определяется массив ХL[I], полученный из массива ХM[I] в результате циклического сдвига его элементов на L разрядов вправо. Например, при L=2, при I=0 (блок 12) ХL[0]=ХM[2] (блок 13), при I=1 ХL[1]=ХM[3], при I=2 ХL[2]=ХM[4], при I=3 ХL[3]=ХM[5], при I=4 ХL[4]=ХM[6], при I=5 ХL[5]=ХM[0], при I=6 ХL[6]=ХM[1].

Затем в блоках 15-18 алгоритма происходит поразрядное суммирование по модулю два элементов массивов ХМ[I] и ХL[I]. В результате будет получен массив ХT[I], элементы которого представляют собой двоичный код мантиссы искомого псевдослучайного, квазиравномерно распределенного в интервале [0; 1] числа. В блоке 19 элементы массива ХT[I] присваиваются элементам массива Х0[I]. В блоке 21 выполняется условие генерации датчиком заданного числа чисел Х.

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

Date: 2015-07-17; view: 371; Нарушение авторских прав; Помощь в написании работы --> СЮДА...



mydocx.ru - 2015-2024 year. (0.005 sec.) Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав - Пожаловаться на публикацию