Табличная функция

AnyLogic поддерживает специальный тип функций – табличные функции. Табличная функция – это функция, заданная в табличной форме. Она может быть сделана непрерывной с помощью интерполяции и экстраполяции.

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

Табличная функция работает следующим образом: пользователь задает функцию путем задания пар значений (аргумент, значение), т.е. определенного количества базовых точек графика XY. Основываясь на этих данных и на выбранном типе интерполяции, AnyLogic строит табличную функцию. 

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

 Чтобы задать табличную функцию

  1. Перетащите элемент Табличная функция  из палитры Агент на диаграмму типа агентов (или эксперимента).
  2. Перейдите в панель Свойства и задайте свойства табличной функции.
  3. Введите имя функции в поле Имя.
  4. Задайте данные табличной функции в секции Табличные данные. Есть три способа:
  1. Выберите тип интерполяции функции из выпадающего списка Интерполяция.
  2. Выберите требуемый тип поведения функции при выходе аргумента за пределы заданного диапазона из выпадающего списка Если аргумент выходит за пределы.

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

Свойства

Основные свойства

Имя – Имя табличной функции. 

Отображать имя – Если опция выбрана, то имя табличной функции будет отображаться в графическом редакторе.

Исключить – Если опция выбрана, то табличная функция будет исключена из модели.

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

Интерполяция – Тип интерполяции табличной функции:

Нет – Интерполяция не используется.
Ступенчатая – Ступенчатая интерполяция. Значение функции на интервале между двумя точками равно значению функции в точке с меньшим аргументом.
Линейная – Линейная интерполяция. Точки соединяются прямыми линиями. 
Сплайн – Сплайн-интерполяция 4-го порядка. Точки соединяются  полиномом четвертой степени. В каждой точке значения функции, а также первой и второй производных, должны быть равны слева и справа. Вторая производная в крайних точках должна быть равна нулю.
Аппроксимация – Функция будет аппроксимирована полиномом порядка, заданного в поле Порядок, у которого сумма среднеквадратичных погрешностей в точках минимальна.

Если аргумент выходит за пределы – определяет, как ведет себя функция, если аргумент выходит за границы заданного диапазона:

Ошибка – Если аргумент будет лежать за пределами допустимой области, то будет показано сообщение об ошибке.
Ближайший – Для всех аргументов слева (справа) от допустимой области функция равна значению, которое она принимает в самой левой (правой) точке допустимой области.
Повторение – Функция делается периодической. Периодом функции будет являться ее диапазон значений.
Другой – Если аргумент будет лежать за пределами допустимой области, то табличная функция будет возвращать значение, заданное в соседнем с этой опцией поле Значение.
Экстраполяция – Функция экстраполируется за пределы области в соответствии с выбранным типом интерполяции.

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

Таблица - здесь необходимо указать существующую базу данных AnyLogic.
Условия выборки - здесь необходимо указать условие, определяющее значение, которое будет выбрано из указанного столбца таблицы. Вы можете добавить , дублировать , удалить и определить порядок условий ( , ).
Столбец с аргументами - определяет столбец с аргументами базы данных.
Столбец значений - определяет столбец значений базы данных. 

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

Предв. просмотр

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

Специфические

Статическая – Если опция выбрана, то функция будет статической, т.е. будет иметь одно и то же значение во всех имеющихся в модели экземплярах данного класса (например, во всех агентах популяции). Не используйте статические переменные, если вы планируете проводить сложный эксперимент (оптимизационный эксперимент, эксперимент варьирования параметров и т.д.), предусматривающий параллельное выполнение нескольких итераций на разных ядрах процессора (возможность параллельного выполнения итераций задается с помощью опции Разрешить параллельное выполнение итераций в настройках эксперимента)..

Уровень доступа – Уровень доступа к функции. Есть четыре уровня доступа:

private – функция доступна только из этого типа агентов
protectedфункция доступна из этого типа агентов и его подклассов
defaultфункция доступна из любого места модели
publicфункция доступна из всех открытых моделей.

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


См. также

 Интерполяция табличной функции

 Поведение функции за пределами области допустимых значений

 Доступ к данным табличной функции

 Справочник классов: Класс TableFunction