Студопедия.Орг Главная | Случайная страница | Контакты | Мы поможем в написании вашей работы!  
 

Статистические аспекты языка СИМУЛА



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

Все процедуры случайной выборки в языке СИМУЛА
используют один и тот же прием получения «главной выборки» из равномерного распределения на интервале (0,1). Процедура главной выборки заменяет значение указанной целой переменной новым значением в соответствии с некоторым алгоритмом, определяемым в реа­лизации языка (см. приложение 1).

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

Для формальных параметров про­цедур случайного выбора в случае

необходимости выпол­няется преобразование типа фактических параметров,

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

Рассмотрим эти процедуры:

1. Процедура psrand (u).

real procedure psrand (u); name u; integer u;

Данная процедура предназначена для получения последовательностей псевдослучайных чисел, равномерно распределенных на интервале [0,1]. При многократной обращении к данной процедуре будет выдаваться последовательность а1, а2, …, аn, …, которая однозначно определяется начальным значением переменной u. Данная процедура называется процедурой главной выборки, с ее помощью получают все остальные распределения.

2. Процедура draw (a,u).

Boolean procedure draw (a, u); name u; real a; integer u;

Эта процедура доставляет значение true с вероятностью а и значение false с вероятностью (1-а), при а=>1 всегда доставляется true, а при a<=0false.

3. Процедура randint (a,b,u).

integer procedure randint (a, b, u); name u; integer a, b, u;

Процедура доставляет с равной вероятностью одно из целых значе­ний: а, а + 1,..., b - 1, b. Предполагается, что b >= а, при b < а выдается сообщение об ошибке.

4. Процедура uniform (a,b,u).

real procedure uniform (a, b, u); name u; real a, b; integer u;

Процедура доставляет значение, равномерно распределенное по по­лусегменту [а, b). При b < а выдается сообщение об ошибке.

5. Процедура normal (a,b,u).

real procedure normal (a, b, u); name u; real a, b; integer u;

С помощью этой процедуры можно получать псевдослучайные числа, распределенные по нормальному закону с математическим ожиданием а и среднеквадратическим отклонением b.

6. Процедура negexp (a,u).

real procedure negexp (a, u); name u; real a; integer u;

Процедура доставляет значения, распределенные по экспоненциальному закону со средним a.

7. Процедура Poisson (a,u).

integer procedure Poisson (a, u); name u; real a; integer u;

Значениями этой процедуры являются целые числа, распределенные по закону Пуассона с параметром a.

8. Процедура Erlang (a, b, u).

real procedure Erlang (a, b, u); name u; integer u; real a, b;

Доставляет значение, распределенное по закону Эрланга со средним 1/а и стандартным отклонением l/(a*sqrt(b)).

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

Для накопления гистограмм служит процедура histo (A,B,c,d)

procedure histo (A, В, с, d); array A, В; real с, d;

где A,B – одномерные массивы арифметического типа, задающие гистограмму, c – наблюдаемое значение некоторой арифметической величины, для которой строится гистограмма, d – арифметическая величина, равная весу значения с.

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

Встроенная процедура accum (a, b, c, d)

procedure accum (a, b, с, d); name a, b, с; real a, b, c, d;

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





Дата публикования: 2015-01-23; Прочитано: 226 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!



studopedia.org - Студопедия.Орг - 2014-2024 год. Студопедия не является автором материалов, которые размещены. Но предоставляет возможность бесплатного использования (0.006 с)...