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

