double arrow

Вычислительные возможности

А. Амперпеременные. Введение амперпеременных - АМП (от названия амперсанд - &) расширило вычислительные возможности языка и его связь с внешним миром. Имеется пять типов АМП:

- целочисленные и вещественные АМП схожи с такими же переменными в фортраноподобных языках и представляют собой целочисленные (вещественные) скалярные значения или одномерные матрицы (массивы),

- СНАR*n - символьная АМП с фиксированной длиной n.

Например, СНАR*5 - &5STRING, определяется как символьная АМП с фиксированной длиной 5 символов, а &Х(10) как символьный АМП - массив размером 10 элементов, каждый из которых имеет 5 символов,

- VCHAR*n- символьная АМП с максимальной длиной n.

- внешние АМП, обеспечивающие связь с подпрограммами, написанными на языках, совместимых с ФОРТРАН, например

EXTERNAL &WEIBULL

АМП начинается с & и непосредственно следующего за ним символьного имени, начинающегося с буквы длиной от 1 до 8 символов, первый символ может совпадать с именем объекта (табл. 4.4), & указывает на возможность изменения величины, перед которой он стоит в процессе моделирования. Все АМП должны быть определены до их первого применения.

Б. Арифметические выражения. Арифметическая переменная включает в себя различные СЧА, СЛА, АМП, другие переменные и знаки операций арифметических операций «+, -, *, /, @ (деление по модулю)». Оператор описания помещается в первом модуле программы и имеет формат:

< n VARIABLE A > для фиксированной точки и < n FVARIABLE A > для плавающей точки, где:

n - номер переменной, A - арифметическое выражение, например

2 FVARIABLE 10 (11/3) = 36, 2 VARIABLE 10(11/3) = 30

В. Булевские переменные используются для проверки логических условий при проведении операций трёх видов: логических, условных и булевских (см. табл. П.6). Формат имеет вид < n BVARIABLE ХХХ< имя >>, где XXX - символ логической операции, например 3 BVARIABLE SF2 - ВVЗ равняется единице, если память 2 заполнена.

Г. Функции. Пример записи функций дан выше, необходимо только понимать, что язык позволяет в качестве аргумента функции использовать различные аналитические выражения, поэтому операнд В, кроме непрерывной и дискретной функции (С, D) содержит также индексы L - список (list) числовых величин, Е- дискретные аттрибуты, М - список аттрибутов. Вводится также обозначение S - селектор объектов. При использовании S используется третий операнд С, в котором содержится либо имя объекта (табл. 5.4), либо формат записи транзакта, либо с индексом Z используемая функция. Рассмотрим кратко эти отличия. Вычисление значений L - типа производится следующим образом: аргумент функции оценивается и преобразуется в целое число, используемое как индекс, значения Х при этом заменяются на этот индекс, например:

FUNCLE FUNCTION PH1,L3

1,20/2,200/3,2000

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

RANDE FUNCTION RN5,E3

0.4,XH (SAM) / 0.7,XL3 /1.0, (PH1+5)

При вычислениях М - типа каждое значение Y даётся как член выражения или в скобках всё выражение, например:

FUNCM FUNCTION PF1,M2

1,(X(LOW)+1) /2,X(HIGH)

При вычислениях S - типа каждое значение Y воспринимается как символ, каждый из символов представляет собой объект одной или разных категорий, которые записываются в операндах и являются основанием для компиляции, например:

FUNCS FUNCTION RN6,S2,F,Q

0.25,DISK1/1.0,DISK2

символы в записи функции являются основанием для компиляции

Д Генерация псевдо-случайных чисел. Эта проблема достаточно подробно рассмотрена в главе 3, поэтому рассмотрим только специфику GPSS/H. В языке используются 8 независимых генераторов, выдающих некоррелированные 32-х разрядные последовательности. По умолчанию начальное количество чисел таково, чтобы в 20 последовательных выборках не наступало повторений. С помощью оператора управления RMULT или блока BRMULT можно изменять количество чисел в последовательности до 106 и более и установить начальную точку потока чисел. Качество случайных чисел контролируется в итоговом отчёте с использованием хи-квадрат распределения

Е. Встроенные функции. Значительным достижением языка является

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

Е1. Математические выражения: геометрические, логарифмические функции, извлечение корня и получение абсолютного значения. В случае извлечения квадратного корня и получения значения логарифма к Х предъявляются следующие требования: Х не может быть отрицательным и должен быть машинно-определимым. Формат записи:

SQRT, LOG, SIN и т.д. (см П.7)

SQRT- операция извлечения квадратного корня, х- аргумент.

Е2. Дискретные и непрерывные функции. Перечень части встроенных функций приведен в П.7. Отметим, что язык имеет 26 встроенных функций, включающих в себя большинство известных законов распределения. В качестве примера рассмотрим формат записи нормального и экспоненциального распределений <RVNORM (rnj, m[х], σ)>, <RVEXPO(RNj, λ)> где:

RNj- номер генератора БСВ, М[х] - математическое ожидание, σ - СКО,

λ - параметр потока событий. Рассмотрим примеры записи встроенных функций:

GENERATE RVEXPO(1,100.0)

SAMPL SAVEVALUE STIME,RVNORM(2,10.0,2.0),XL


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



Сейчас читают про: