Интерполяция двумерной поверхности





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

Описание

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

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

Блок позволяет определять результаты интерполяции в нескольких точках одновременно. Для этого необходимо подать на входные порты 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 Имя файла

Параметры

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

Примеры

Примеры использования блока:

Литература

  1. 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.