Если, например, обращение к этой функции выполнено из блока
1,1/3,2/5,4/10,8/15,100
ИМЯ FUNCTION A, B
Каждая функция связывает значение функции (СЧА FNимя) со значение независимой переменной.
В GPSSW имеется возможность задавать отношение системных числовых атрибутов в виде их функциональной зависимости. Для этого используются функции.
Функции GPSSW. Команда FUNCTION
Далее будем рассматривать функции GPSSW. Если случайное число используется в качестве аргумента функции, то СЧА RNj принимает значения от 0 до 0,999999 включительно.
Еще пример
Полученное число преобразуется в эквивалентное ему значение, но уже принадлежащее интересующей нас выборке.
Разыгрывается случайное число, равномерно распределенное в диапазоне 0;1;
Генераторы случайных чисел
В GPSSW розыгрыш случайных чисел происходит в два этапа:
СЧА RNj возвращает целое случайное число в интервале 0;999. При необходимости их можно привести к любому другому целочисленному диапазону, определив соответствующую переменную с помощью операции деления по модулю. Например
RN1@24 +40 lдает случайное число в интервале 40;63. Т.е. для получения случайного числа в интервале а;в надо написать
RNj@(b-a+1) +a
Например, RN1@GH@LINE дает с.ч. в интервале [0;длина очереди LINE -1)].
var1 FVARIABLE RN2@24+40
…………………………….
GENERATE …………
ASSIGN d1, V$var1 ; в параметр d1 записывается с.ч. [40;63]
Когда при моделировании необходимо исследовать один или несколько вариантов модели при различных потоках случайных чисел, можно использовать блок RMULT, позволяющий изменять начальные значения первых 7 датчиков случайных чисел;
RMULT [A], [B], [C], [D], [E], [F], [G]
Здесь A, B и т.д. – начальное значение множителя для генераторов случайных чисел под номером 1, 2, и.т.д.
Для определения функции служит команда FUNCTION, описание которой занимает несколько строк программы. Формат при этом следующий:
Здесь ИМЯ – имя функции, А – аргумент, В – буква, определяющая тип функции, и следующее за ней число, обозначающее количество заданных пар координат функции – значений аргумента и функции.
Типы функций могут быть следующие:
С – непрерывная, D – дискретная, L – табличная, Е – дискретная атрибутивная, М – табличная атрибутивная. Рассмотрим первые две.
Дискретная числовая функция. Функция типа D задается парами координат. Для всех значений аргумента X(I-1)<X<=X(I) функция равна Y(I) (значение функции в правом конце интервала). При X<X(1) Y=Y(1), а при X>X(N) Y=Y(N). Пример:
KOEF FUNCTION Q$OBRAB, D5
Аргументом функции является длина очереди с именем OBRAB. Если значение аргумента больше 5 и меньше или равно 10, то значение функции KOEF равно 8. Если дина очереди в момент вычисления функции равна 20, СЧА FN$KOEF возвращает значение 100.
Значениями функции могут быть не только целые или вещественные числа, но и символьные имена:
SWITH FUNCTION P$ADRES, D6
2, ADR1/4,ADR2/6,ADR3/8,ADR4/10,ADR5/12,ADR6