Интерполяция одномерной кривой





| Векторизован |
в палитре на схеме

Описание

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

График интерполируемой кривой отображается в графическом изображении блока в процессе моделирования в случае, если интерполируемая кривая имеет до 1000 точек включительно.

Доступны следующие способы задания табличной кривой:
  1. Через свойства блока. Массивы значений аргумента и функции задаются в соответствующих свойствах блока
  2. Аргумент и функция в одном файле. В свойствах блока задается имя текстового файла, в котором сохранены значения аргумента и функции. Допускается сохранение значений как в виде строк, так и в виде столбцов. В виде строк:
    <значение аргумента 1> <значение аргумента 2> … <значение аргумента N>
    <значение функции 1> <значение функции 2> … <значение функции N>
    В виде столбцов:
    <значение аргумента 1> <значение функции 1>
    <значение аргумента 2> <значение функции 2>
    … … 
    <значение аргумента N> <значение функции N>
    Прим.:
    знаком отделения дробной части в файле должна быть точка. Разделителями значений в строке могут быть символы пробела, табуляции, ";", ":". Если строка в файле пустая или начинается с символов "$", "/", "{", то она воспринимается как комментарий и пропускается.
  3. Аргумент и функция в разных файлах. В свойствах блока задаются имена двух текстовых файлов, в одном из которых сохранены значения аргумента, в другом – значения функции. Допускается сохранение массива значений как в виде строки, так и в виде столбца
  4. Через порты. Массивы значений аргумента и функции передаются по линиям связи на входные порты args_arr и vals_arr соответственно
Доступны следующие методы интерполяции:
  1. Ступенчатая. Результат интерполяции зависит от значения свойства "Метод выбора точки":
    • Ближайшая. Результат интерполяции равен значению функции в ближайшем узле интерполяции
    • Ближайшая левая. Результат интерполяции равен значению функции в ближайшем меньшем (включительно) узле интерполяции
    • Ближайшая правая. Результат интерполяции равен значению функции в ближайшем большем (включительно) узле интерполяции
  2. Линейная. Для определения результата интерполяции через узлы интерполяции проводится кусочно-линейная функция. В интерполяционной сетке допускается наличие точек с одинаковыми значениями аргумента и различными значениями функции, чтобы задать в функции разрывы типа "скачок". Из двух точек с одинаковым значением аргумента первая будет задавать левый предел функции, вторая – правый
  3. Кубический сплайн. Для определения результата интерполяции через узлы интерполяции проводится кусочно-полиномиальная функция 3-го порядка, непрерывная вплоть до 2-ой производной. Свойство "Нулевые производные на границах" позволяет принудительно задать нулевыми первые производные функции на границах кривой. Для применения данного метода количество точек таблицы должно быть не менее 4-х
  4. Сплайн Акимы. Для определения результата интерполяции через узлы интерполяции проводится кусочно-полиномиальная функция 3-го порядка, коэффициенты которой рассчитываются по методу Акимы [1]. Свойство "Нулевые производные на границах" позволяет принудительно задать нулевыми первые производные функции на границах кривой. Для применения данного метода количество точек таблицы должно быть не менее 4-х
  5. Полином Лагранжа. Таблично заданная кривая представляется в виде полиномиальной функции произвольного порядка. Порядок полинома задается в свойстве "Порядок интерполяции". Для применения данного метода количество точек таблицы должно быть больше порядка полинома как минимум на 1
Доступны следующие методы определения результата интерполяции вне диапазона заданной таблицы:
  1. Ноль вне диапазона. Результат интерполяции вне диапазона равен 0
  2. Константа вне диапазона. Результат интерполяции вне диапазона равен значению функции на границе диапазона
  3. Экстраполировать границы. Результат интерполяции вне диапазона определяется путем продления интерполирующей функции за границы заданной таблицы
  4. Периодическая функция вне диапазона. Интерполирующая функция представляется в виде периодической функции, для которой табличным образом задан один период. Результат интерполяции в пределах одного периода рассчитывается соответствующим методом интерполяции

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

Входные порты

Имя Описание Тип линии связи
arg Массив значений аргумента, для которых необходимо вычислить результат интерполяции Математическая
args_arr Массив значений аргумента таблично заданной кривой. Порт доступен только при выборе способа задания таблицы "Через порты" Математическая
vals_arr Массив значений функции таблично заданной кривой. Порт доступен только при выборе способа задания таблицы "Через порты" Математическая

Выходные порты

Имя Описание Тип линии связи
val

Массив вычисленных значений функции в точках с заданными значениями аргумента

Математическая

Свойства

Название Имя Описание По умолчанию Тип данных
Способ задания таблицы InputType

Указывает способ задания точек табличной кривой. Возможные значения:

  • Через свойства блока
  • Аргумент и функция в одном файле
  • Аргумент и функция в разных файлах
  • Через порты
Через свойства блока Перечисление
Метод интерполяции InterpolType

Указывает метод интерполяции. Возможные значения:

  • Ступенчатая
  • Линейная
  • Кубический сплайн
  • Сплайн Акимы
  • Полином Лагранжа
Линейная Перечисление
Метод выбора точки StepInterpolType

Указывает метод выбора ближайшей точки для ступенчатой интерполяции. Возможные значения:

  • Ближайшая
  • Ближайшая левая
  • Ближайшая правая
Свойство доступно только при выборе метода интерполяции "Ступенчатая"
Ближайшая Перечисление
Нулевые производные на границах ZeroDeriOnBound Позволяет принудительно задать нулевые значения производной кусочно-полиномиальной функции на границах интерполируемой кривой. Свойство доступно только при выборе метода интерполяции "Кубический сплайн" или "Сплайн Акимы" Нет Двоичное
Порядок интерполяции LagrangeOrder Порядок полинома Лагранжа. Свойство доступно только при выборе метода интерполяции "Полином Лагранжа" 5 Целое
Метод экстраполяции ExtrapolType

Указывает метод экстраполяции. Возможные значения:

  • Ноль вне диапазона
  • Константа вне диапазона
  • Экстраполировать границы
  • Периодическая функция вне диапазона
Константа вне диапазона Перечисление
Массив значений аргумента ArgsArr Массив значений аргумента таблично заданной кривой. Свойство доступно только при выборе способа задания таблицы "Через свойства блока" [1 , 2] Массив
Массив значений функции ValsArr Массив значений функции таблично заданной кривой. Свойство доступно только при выборе способа задания таблицы "Через свойства блока" [1 , 2] Массив
Имя файла с таблицей FileNameTable Имя текстового файла с таблично заданной кривой. Свойство доступно только при выборе способа задания таблицы "Аргумент и функция в одном файле" File.txt Имя файла
Имя файла со значениями аргументов FileNameArgs Имя текстового файла со значениями аргумента таблично заданной кривой. Свойство доступно только при выборе способа задания таблицы "Аргумент и функция в разных файлах" Args.txt Имя файла
Имя файла со значениями функции FileNameVals Имя текстового файла со значениями функции таблично заданной кривой. Свойство доступно только при выборе способа задания таблицы "Аргумент и функция в разных файлах" Vals.txt Имя файла

Параметры

Блок не имеет параметров.

Примеры

Литература

  1. Hiroshi A. A new method of interpolation and smooth curve fitting based on local procedures // Journal of the ACM. — October 1970. — Vol. 17, No. 4. — С. 589–602.