Арифметические, условные и логические операторы.
Они служат для указания операций над элементами выражения. В GPSS используются следующие операторы: +, -, # (алгебраическое умножение), /, ^, \ (целочисленное деление, X\Y – есть целая часть от деления Х на,Y 11.2\(-3.3)=-4),@ - деление по модулю (X@Y – остаток от деления целого X на целое Y, 15@6=3).
Логические операторы:
= (‘E’) – равно. (X’E’Y равно 1 если X=Y, иначе 0.
!= (‘NE’) – не равно (X’NE’Y выражение равно 1 если X не равно Y, иначе 0.
< (‘L’) – меньше (X’L’Y
> (‘G’) – больше (X’G’Y
<= (‘LE’) – меньше или равно (X’LE’Y
>= (‘GE’) – больше или равно (X'GE'Y
& (‘AND’) – (X’AND’Y) выражение равно 1, если X и Y не 0.
| (‘OR’) – (X’OR’Y) рано 1 если X или Y или оба не 0.
Операции выполняются в следующей последовательности – в порядке убывания приоритетов.
^
#, /, \
@
+, -
>=, <=, >, <
=, !=
&
|
Если нужно изменить порядок вычисления выражений, то необходимо использовать скобки.
Переменные пользователя.
В выражениях могут использоваться переменные, которые пользователь определил с помощью команды EQU для хранения числовых и строковых данных, необходимых, при моделировании.
Формат команды: nameEQUA, где name - имя переменной или объекта, которому присваивается значение выражения А.
Заметим, что с помощью переменных пользователя имена объектов GPSS можно заменять номерами.
Встроенная библиотека GPSS содержит девять математических функций. Во всех случаях аргументами функций являются выражения, а значениями – действительные числа. Приведём список функций:
|
|
ABS (X) – абсолютное значение Х.
ATN (Х) – арктангенс Х, в радианах.
COS (X) – косинус выражения Х, измеряемого в радианах.
EXP (X) – экспонента Х.
INT (X) – целая часть Х.
LOG (Х) – натуральный логарифм Х.
SIN (X) – синус выражения Х, измеряемого в радианах.
SQR (X) – корень квадратный из Х.
TAN (X) – тангенс Х, измеряемого в радианах.
Генераторы случайных чисел.
В GPSS имеются датчики случайных чисел, генерирующие последовательности равномерно-распределённых случайных целых чисел от 0 до 999. Для обращения к ним используется СЧА RNj, где j– начальное число генератора случайных чисел, совпадающее с его номером до тех пор, пока команда RMULT не изменит начальное число, (j = 1,2,…,7).
При использовании СЧА RNj при вычислении случайных функций RNj возвращает случайное число из интервала (0, 0,999999).
Встроенные вероятностные распределения.
В библиотеку включены 24 процедуры вероятностных распределений. Эти распределения применимы во многих приложениях. Все аргументы процедур должны быть выражениями, после вычисления аргументы преобразуются к соответствующему виду. Мы остановимся только на 4х распределениях.
Дискретно-равномерное распределение.
|
|
Обращение: DUNIFORM(A,B,C), где А – номер генератора случайных чисел (от 1 до 7), В и С соответственно минимальное и максимальное генерируемые значения.
Возвращаемые значения: равномерно-распределённое случайное целое число из отрезка ВС.
DUNIORM(2,17,33) в рез-те обращения получим равномерно распределенное целое число в отрезке 17=33.
Экспоненциальное распределение.
EXPONENTIAL(A,B,C), здесь А – номер генератора случайных чисел, В – величина сдвига, определяющего местоположение распределения, С – величина, используемая, для сжатия или растяжения распределения.
Применительно к случайной величине Т – времени между двумя соседними событиями, в простейшем потоке, плотность распределения вероятностей которой:
В=0, С=1/ , возвращаемые значения: одна реализация случайной величины, распределённой по экспоненциальному закону.
SAVEVALUE 5, (EXPONENTIAL(7,0,.33))
Нормальное распределение
NORMAL(A,B,C), здесь А – номер генератора случайных чисел, В – математическое ожидание (или среднее значение), С – среднее квадратическое отклонение распределения. Возвращаемое значение – одна реализация нормально распределённой СВ.
Равномерное распределение.
Обращение: UNIFORM(A,B,C) - здесь А – номер генератора случайных чисел, В и С, соответственно, минимальное и максимальное генерируемые значения. Возвращаемое значение: равномерно распределённое случайное число из отрезка ВС.
|
|
Функции в GPSS
Функция в GPSS задается таблицей. Каждая функция перед началом моделирования определяется командой: FUNCTION, имеющей следующий формат:
nameFUNCTIONA,B – здесьname – имя функции, используемое для ссылок на неё, А - аргумент функции, который может быть именем, положительным целым числом, строкой, выражением в скобках СЧА, В – операнд, состоящий из одной буквы, определяющей тип функции и целого положительного числа n, задающего количество пар (Xi, Yi) возможных значений аргумента и функции. Список пар данных определяющих таблицу располагается в строках, следующих за командой FUNCTION. Все строки начинаются с первой позиции и имеют вид:
X1,Y1/X2,Y2/…/Xn,Yn - Если все пары данных располагаются в одной строке
X1,Y1/X2,Y2/…/Xj,Yj
Xj+1,Yj+1/Xj+2,Yj+2/…/ Xk,Yk+1
……… - Если пары данных располагаются в нескольких строках
Xl+1,Yl+1/Xl+2,Yl+2/…/ Xn,Yn
Во всех случаях X1<X2<…<Xn.
В GPSS имеется пять типов функций. Мы остановимся только на двух: непрерывная (C) и дискретная (D).
|
|
AbcFUNCTIONRN1, C15 (название функции Авс, аргументом являются случайно распред. числа, на интервале 0,1, 15 пар, функция непрерына)
|
Дискретная функция имеет вид ступенчатой кривой. В списке данных Х – должны быть выражением, а значения Y – действительным числом или именем. При вычислении функций типа D, текущее значение аргумента сравнивается по условие « » последовательно со всеми значениями упорядоченных по возрастанию координат до выполнения некоторого условия при некотором i. Значением функции становится соответствующее значение .
Func1 FUNCTIONRN1,D4 (ДСЧ, генерирует значения от 0 до 1, таблица данных состоит из 4х точек)
.15,1/.35,2/.8б10/1.0,14
С функциями связан единственный СЧА:
FNj (FN$name) – результат вычисления функции с номером j( с именем name).
Дата добавления: 2019-02-12; просмотров: 146; Мы поможем в написании вашей работы! |
Мы поможем в написании ваших работ!