Интерполяция двумерной поверхности
![]() |
![]() |
| Векторизован
| |
| в палитре | на схеме |
Описание
Блок предназначен для интерполяции двумерной поверхности, представленной в виде таблично заданной функции двух аргументов. Набор точек поверхности задается двумя массивами значений аргументов (сетка узлов интерполяции) и матрицей значений функции. Первым аргументом считается аргумент по строкам матрицы, вторым – по столбцам. Количество строк матрицы должно быть равно количеству элементов массива значений аргумента по строкам. Количество столбцов матрицы значений функции должно быть равно количеству элементов массива значений аргумента по столбцам.
- Через свойства блока. Массивы значений аргументов и матрица значений функции задаются в соответствующих свойствах блока
- Аргументы и функция в одном файле. В свойствах блока задается имя текстового
файла, в котором сохранены значения аргументов и функции. Первая строка текстового файла
должна содержать значения аргументов по столбцам. Вторая и последующие строки файла должны
содержать значение аргумента по строке и набор значений функции соответствующей строки матрицы:
<аргумент по столбцу 1> … <аргумент по столбцу M> <аргумент по строке 1> <значение функции 11> … <значение функции 1M> <аргумент по строке 2> <значение функции 21> … <значение функции 2M> … <аргумент по строке N> <значение функции N1> … <значение функции NM>Прим.:знаком отделения дробной части в файле должна быть точка. Разделителями значений в строке могут быть символы пробела, табуляции, ";", ":". Если строка в файле пустая или начинается с символов "$", "/", "{", то она воспринимается как комментарий и пропускается. - Аргументы и функция в разных файлах. В свойствах блока задаются имена трех
текстовых файлов, в которых отдельно сохранены массивы значений аргументов и матрица
значений функции. Допускается сохранение массива значений аргумента как в виде строки, так
и в виде столбца. Сохранение матрицы значений функции должно осуществляться по строкам
матрицы:
<значение функции 11> … <значение функции 1M> <значение функции 21> … <значение функции 2M> … <значение функции N1> … <значение функции NM> - Через порты. Массивы значений аргументов и матрица значений функции передаются по линиям связи на входные порты row_args_arr, col_args_arr и vals_matr соответственно
- Ступенчатая. Результат интерполяции зависит от значения свойства "Метод выбора
точки":
- Ближайшая. Результат интерполяции равен значению функции в ближайшем узле интерполяции
- Ближайшая левая. Результат интерполяции равен значению функции в узле с ближайшими меньшими (включительно) значениями аргументов
- Ближайшая правая. Результат интерполяции равен значению функции в узле с ближайшими большими (включительно) значениями аргументов
- Линейная. Для определения результата интерполяции через узлы интерполяции проводится кусочно-линейная функция. В интерполяционной сетке допускается наличие точек с одинаковыми значениями аргументов и различными значениями функции, чтобы задать в функции разрывы типа "скачок". Из двух точек с одинаковым значением аргумента первая будет задавать левый предел функции, вторая – правый
- Кубический сплайн. Для определения результата интерполяции через узлы интерполяции проводится кусочно-полиномиальная функция 3-го порядка. Свойство "Нулевые производные на границах" позволяет принудительно задать нулевыми первые частные производные функции на границах поверхности. Для применения данного метода матрица значений должна иметь размер не менее 4х4
- Сплайн Акимы. Для определения результата интерполяции через узлы интерполяции проводится кусочно-полиномиальная функция 3-го порядка, коэффициенты которой рассчитываются по методу Акимы [1]. Свойство "Нулевые производные на границах" позволяет принудительно задать нулевыми первые производные частные функции на границах поверхности. Для применения данного метода матрица значений должна иметь размер не менее 4х4
- Ноль вне диапазона. Результат интерполяции вне диапазона равен 0
- Константа вне диапазона. Результат интерполяции вне диапазона равен значению функции на границе диапазона
- Экстраполировать границы. Результат интерполяции вне диапазона определяется путем продления интерполирующей функции за границы заданной таблицы
- Периодическая функция вне диапазона. Интерполирующая функция представляется в виде функции, периодической по обоим аргументам, для которой табличным образом задан один период. Результат интерполяции вне диапазона определяется путем интерполяции последующих периодов функции соответствующим методом интерполяции
Блок позволяет определять результаты интерполяции в нескольких точках одновременно. Для этого необходимо подать на входные порты row_arg и col_arg массивы значений аргументов по строкам и по столбцам соответственно. Данные массивы зададут массив точек для интерполяции табличной функции, на выходной порт val будет передан массив результатов интерполяции в заданных точках.
Входные порты
| Имя | Описание | Тип линии связи |
|---|---|---|
| row_arg | Массив значений аргумента по строкам, для которых необходимо вычислить результаты интерполяции | Математическая |
| col_arg | Массив значений аргумента по столбцам, для которых необходимо вычислить результаты интерполяции | Математическая |
| row_args_arr | Массив значений аргумента по строкам таблично заданной функции. Порт доступен только при выборе способа задания таблицы "Через порты" | Математическая |
| col_args_arr | Массив значений аргумента по столбцам таблично заданной функции. Порт доступен только при выборе способа задания таблицы "Через порты" | Математическая |
| vals_matr | Матрица значений таблично заданной функции. Порт доступен только при выборе способа задания таблицы "Через порты" | Математическая |
Выходные порты
| Имя | Описание | Тип линии связи |
|---|---|---|
| val | Массив результатов интерполяции в точках с заданными значениями аргументов | Математическая |
Свойства
| Название | Имя | Описание | По умолчанию | Тип данных |
|---|---|---|---|---|
| Способ задания таблицы | InputType |
Указывает способ задания точек табличной функции. Возможные значения:
|
Через свойства блока | Перечисление |
| Метод интерполяции | InterpolType |
Указывает метод интерполяции. Возможные значения:
|
Линейная | Перечисление |
| Метод выбора точки | StepInterpolType | Указывает метод выбора ближайшей точки для ступенчатой интерполяции. Возможные значения:
|
Ближайшая | Перечисление |
| Нулевые производные на границах | ZeroDeriOnBound | Позволяет принудительно задать нулевые значения производной кусочно-полиномиальной функции на границах интерполируемой поверхности. Свойство доступно только при выборе метода интерполяции "Кубический сплайн" или "Сплайн Акимы" | Нет | Двоичное |
| Метод экстраполяции | ExtrapolType |
Указывает метод экстраполяции. Возможные значения:
|
Константа вне диапазона | Перечисление |
| Массив значений аргумента по строкам | RowArgsArr | Массив значений аргумента по строкам таблично заданной функции. Свойство доступно только при выборе способа задания таблицы "Через свойства блока" | [1 , 2] | Массив |
| Массив значений аргумента по столбцам | ColArgsArr | Массив значений аргумента по столбцам таблично заданной функции. Свойство доступно только при выборе способа задания таблицы "Через свойства блока" | [1 , 2] | Массив |
| Матрица значений функции | ValsMatr | Матрица значений таблично заданной функции. Свойство доступно только при выборе способа задания таблицы "Через свойства блока" | [[1 , 2];[3 , 4]] | Матрица |
| Имя файла с таблицей | FileNameTable | Имя текстового файла с таблично заданной функцией. Свойство доступно только при выборе способа задания таблицы "Аргументы и функция в одном файле" | File.txt | Имя файла |
| Имя файла с аргументами по строкам | FileNameRowArgs | Имя текстового файла со значениями аргумента по строкам таблично заданной функции. Свойство доступно только при выборе способа задания таблицы "Аргументы и функция в разных файлах" | Row args.txt | Имя файла |
| Имя файла с аргументами по столбцам | FileNameColArgs | Имя текстового файла со значениями аргумента по столбцам таблично заданной функции. Свойство доступно только при выборе способа задания таблицы "Аргументы и функция в разных файлах" | Col args.txt | Имя файла |
| Имя файла с матрицей значений функции | FileNameVals | Имя текстового файла с матрицей значений таблично заданной функции. Свойство доступно только при выборе способа задания таблицы "Аргументы и функция в разных файлах" | Vals.txt | Имя файла |
Параметры
Блок не имеет параметров.
Примеры
Литература
- Hiroshi A. A method of bivariate interpolation and smooth surface fitting based on local procedures // Communications of the ACM. — January 1974. — Vol. 17, No. 1. — С. 18–20.

