×
 

1.2.9 Массив функций по точкам из файла

 Данный метод создает не одну функцию, а массив функций. Поэтому тип объекта, создаваемого этим методом, записывается в файле проекта не function, а function_array.
Все функции массива имеют один аргумент. Значения функций по значениям аргумента определяются списком точек, которые записаны в отдельном файле. Этот файл имеет формат «*.tbl». Значения функций в заданных точках однозначно определены этим списком. Значения вне заданной сетки точек определяются в соответствии с указанными параметрами аппроксимации – методом интерполяции и типом экстраполяции. Метод интерполяции определяет способ вычисления значения функции между точками сетки. Тип экстраполяции определяет способ вычисления функции за пределами диапазона, задаваемого сеткой. Для всех функций массива используются одинаковые методы интерполяции и экстраполяции. Вид массива функций представлен на рис. 6.
 
Рис. 6. Массив функций по точкам из файла
 
Файл значений функций (формат «*.tbl») должен обязательно содержать имена переменных. Эти имена используются как имена функций в массиве.
 
Синтаксис метода создания
tablePieceLineA(File, approximation =…, nArgument =…, extrapolation = …)
 
Обязательные позиционные параметры метода
string File [*.tbl]
Файл точек массива функций. Формат файла – «*.tbl».
 
Необязательные именованные параметры метода
approximation = [interpolateC0:/ interpolateC2:/ interpolateC3:/ interpolateAkimaC1:/ interpolateAkimaC2:]
Метод аппроксимации для определения значения функции вне заданной сетки точек. По умолчанию approximation= interpolateC0:.
 approximation = interpolateC0:
Для определения значения функции вне заданной сетки точек используется линейная интерполяция. При этом сохраняется непрерывность самой функции, но не ее производных. Для использования данного метода требуется минимум 2 точки.
 approximation = interpolateC2:
Для определения значения функции вне заданной сетки точек используется сплайновая интерполяция степенными функциями третьего порядка. При этом сохраняется непрерывность самой функции и всех ее производных до второй включительно. Для использования данного метода требуется минимум 4 точки.
 approximation = interpolateC3:
Для определения значения функции вне заданной сетки точек используется сплайновая интерполяция степенными функциями четвертого порядка. При этом сохраняется непрерывность самой функции и всех ее производных до третьей включительно. Для использования данного метода требуется минимум 5 точек.
 approximation = interpolateAkimaC1:
Для определения значения функции вне заданной сетки точек используется сплайновая интерполяция третьего порядка по методу Акимы. При этом сохраняется непрерывность самой функции и ее первой производной. Для использования данного метода требуется минимум 3 точки.
 approximation = interpolateAkimaC2:
Для определения значения функции вне заданной сетки точек используется сплайновая интерполяция пятого порядка по методу Акимы. При этом сохраняется непрерывность самой функции и всех ее производных до второй включительно. Для использования данного метода требуется минимум 5 точек.
 nArgument = scalar [-]
Номер столбца в таблице, который является аргументом функций. По умолчанию nArgument = 1.
extrapolation = [No:/ Periodic:/ Const:/ Line:]
Тип экстраполяции для определения значений функции вне диапазона значений, заданного сеткой.
По умолчанию extrapolation = No:.
 extrapolation = No:
Правило экстраполяции отсутствует. Поведение функции за пределами диапазона, заданного сеткой, определяется ее поведением на крайних отрезках.
 extrapolation = Periodic:
Функция является периодической. Длина периода равна длине диапазона, заданного сеткой. Для использования данного метода значения функции в начальной и конечной точке обязательно должны быть равны.
 extrapolation = Const:
За пределами диапазона значений, заданного сеткой, функция является постоянной. Для точек, расположенных левее крайне левой точки, значение функции равно ее значению в крайне левой точке. Для точек, расположенных правее крайне правой точки, значение функции равно ее значению в крайне правой точке.
Замечание: при использовании данного типа экстраполяции с методами интерполяции interpolateC2: и interpolateC3: не гарантируется непрерывность второй производной в крайних точках.
 extrapolation = Line:
За пределами диапазона значений, заданного сеткой, функция экстраполируется линейно по двум крайним точкам. Например, значение функции в точке слева от диапазона, будет лежать на прямой, заданной первой и второй точкой диапазона.
Замечание: при использовании данного типа экстраполяции с методами интерполяции interpolateC2: и interpolateC3: не гарантируется непрерывность второй производной в крайних точках.
 
Описание
Файл должен содержать значения двух или более переменных. По умолчанию, если не задано значение необязательного именованного параметра nArgument, первая переменная в файле считается аргументом, остальные - функциями.
В файле должно быть не менее двух точек. Точки задания функций в файле могут быть записаны в произвольном порядке. Упорядочивание по значению аргумента производится автоматически.
Если число точек меньше минимального для заданного метода интерполяции, то автоматически выбирается метод с меньшим минимальным числом точек и меньшим числом непрерывных производных.