Основы современных компьютерных технологий


Функции-списки - часть 2


=================== LIST FUNCTION: country_capital ===================

Comment: Определение столицы страны
Domain List: country
Mapping: table
Range List: capital
Element- Domain-------------------Range--------------

1 'Russia 'Moscow
2 'France 'Paris
3 'England 'London

Возможны следующие варианты обращения к функции:

cap = country_capital(ctry)

callcountry_capital(country;capital)

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

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

=================== LIST FUNCTION: xfourth =====================

Comment: четвертая степень х

Domain List: x
Mapping: Step
Range List: у

Element --------- Domain -------------- Range ----------------

1 1 1
2 2 16
3 3 81
4 4 256

Если в модели есть предложение вида: у = xfourth(x) и х=2.5, то у примет значение, равное 16.

345

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

Если бы для функции xfourth была бы использована линейная интерполяция, (в поле Mapping указать тип функции linear), то при обращении к ней с тем же значением аргумента х=2.5 результат получился бы равным 48.5, а если бы кубическая (в поле Mapping указать тип функции cubic), то результат получится равным 38.5.Из примера функции xfourth, а в ней заданы значения для функциональной зависимости у = хЛ4, видно, что целесообразно использовать для данного соответствия кубическую интерполяцию, так как при этом обеспечивается наибольшая точность вычислений (2.5Л4=39.0625).




Начало  Назад  Вперед