1.2.8 Функция по точкам из файла
Функция имеет один аргумент. Значение функции определяется списком точек (значение аргумента, значение функции), которые записаны в отдельном файле. Этот файл имеет формат «*.tbl». Значения функции в заданных точках однозначно определены этим списком. Значения вне заданной сетки точек определяются в соответствии с указанными параметрами аппроксимации – методом интерполяции и типом экстраполяции. Метод интерполяции определяет способ вычисления значения функции между точками сетки. Тип экстраполяции определяет способ вычисления функции за пределами диапазона, задаваемого сеткой. Вид функции представлен на рис. 5.
Рис. 5. Функция по точкам из файла
Синтаксис метода создания
tablePieceLine(File, approximation =…, nArgument =…, nFunction =…, extrapolation = …)
Обязательные позиционные параметры метода
string File [*.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.
nFunction = scalar [-]Номер столбца в таблице, который является значением функции.
По умолчанию nFunction = 2.
extrapolation = [No:/ Periodic:/ Const:/ Line:]
Тип экстраполяции для определения значений функции вне диапазона значений, заданного сеткой.
По умолчанию extrapolation = No:.
extrapolation = No:Правило экстраполяции отсутствует. Поведение функции за пределами диапазона, заданного сеткой, определяется ее поведением на крайних отрезках.
extrapolation = Periodic:Функция является периодической. Длина периода равна длине диапазона, заданного сеткой. Для использования данного метода значения функции в начальной и конечной точке обязательно должны быть равны.
extrapolation = Const:За пределами диапазона значений, заданного сеткой, функция является постоянной. Для точек, расположенных левее крайне левой точки, значение функции равно ее значению в крайне левой точке. Для точек, расположенных правее крайне правой точки, значение функции равно ее значению в крайне правой точке.
Замечание: при использовании данного типа экстраполяции с методами интерполяции interpolateC2: и interpolateC3: не гарантируется непрерывность второй производной в крайних точках.
extrapolation = Line:За пределами диапазона значений, заданного сеткой, функция экстраполируется линейно по двум крайним точкам. Например, значение функции в точке слева от диапазона, будет лежать на прямой, заданной первой и второй точкой диапазона.
Замечание: при использовании данного типа экстраполяции с методами интерполяции interpolateC2: и interpolateC3: не гарантируется непрерывность второй производной в крайних точках.
Описание
Файл должен содержать значения двух или более переменных. По умолчанию, если не заданы значения необязательных именованных параметров nArgument и nFunction, первая переменная в файле считается аргументом, вторая - функцией.
В файле должно быть не менее двух точек. Точки задания функции в файле могут быть записаны в произвольном порядке, поскольку их упорядочивание по значению аргумента производится автоматически после создания объекта.
Если число точек меньше минимального для заданного метода интерполяции, то автоматически выбирается метод с меньшим минимальным числом точек и меньшим числом непрерывных производных.
|