interpol

Функция двумерной линейной, трехмерной линейной, кубической сплайн-интерполяции аргумента x.

Синтаксис

y = interpol(X, Y, x);
y = interpol(X, Y, x, sort_flag);
z = interpol(X, Y, Z, x, y);
z = interpol(X, Y, Z, x, y, sort_flag);
y = interpol(x, M);

Аргументы

Имя Тип данных Описание
X array Входной массив координат точек по оси x для вычисления линейной интерполяции
Y array Входной массив координат точек по оси y для вычисления линейной интерполяции
Z array2 Входной массив координат точек по оси z для вычисления линейной интерполяции
x,y double Аргументы для интерполяции
sort_flag boolean Опциональный флаг для указания необходимости сортировать входные массивы
M array2 Матрица коэффициентов кубической сплайн-интерполяции

Описание

interpol(x, M) – функция кубической сплайн-интерполяции аргумента x по вычисленной ранее при помощи функции cspline матрице коэффициентов M. Вычисление производится согласно формуле:

interpol(X, Y, x) – функция одномерной линейной интерполяции аргумента x по заданным координатам точек. Координаты точек (массив X) должны быть отсортированы по возрастанию или убыванию, в противном случае следует использовать опциональный флаг sort_flag.

interpol(X, Y, x, sort_flag) – функция одномерной линейной интерполяции с указанием необходимости сортировать координаты точек. При sort_flag = True перед интерполяцией будет произведена сортировка массивов X и Y по возрастанию элементов массива X.

interpol(X, Y, Z, x, y) – функция двумерной линейной интерполяции аргументов x,y по заданным координатам точек. Входные массивы X, Y - вектора, Z - матрица, определяющая соответствие элементов массива Y элементам массива X. Координаты точек (массивы X и Y) должны быть отсортированы по возрастанию или убыванию, в противном случае следует использовать опциональный флаг sort_flag.

interpol(X, Y, Z, x, y, sort_flag) – функция двумерной линейной интерполяции с указанием необходимости сортировать координаты точек. При sort_flag = True перед интерполяцией будет произведена сортировка массивов X, Y и матрицы Z по возрастанию элементов массивов X и Y.

Входные массивы X, Y, Z могут задаваться:

  • как переменные типа массив, определенные ранее:

y = interpol(X, Y, x);

  • как переменные типа массив, состоящие из переменных double, определенных ранее:

y = interpol([x1,x2,x3,x4],[y1,y2,y3,y4], x);

y = interpol([x1,x2,x3,x4], Y, x);

y = interpol(X, [y1,y2,y3,y4], x);

  • как постоянные массивы:

y = interpol([-1.80, -1.60, -1.40, -1.20],Y, x);

y = interpol(X, [-1.80, -1.60, -1.40, -1.20], x);

y = interpol([-1.80, -1.60, -1.40, -1.20],[-1.40, -0.78,-0.53,-0.35], x);

Результат

Имя Тип данных Описание
y array2 Результат интерполяции аргумента x
z array2 Результат интерполяции аргументов x, y

Пример 1

Кубическая сплайн-интерполяция:

input Q;  //вход - аргумент
output n; //выход - результат кубической сплайн-интерполяции
//массивы координат для вычисления матрицы
const Qpts = [-2.00, -1.80, -1.60, -1.40, -1.20, -1.00, -0.80, -0.60, -0.40, -0.20,  0.00,  0.20,  0.40,  0.60,  0.80,  1.00,  1.20,  1.40,  1.60,  1.80,  2.00];
const Hp = [-1.40, -0.78, -0.53, -0.35, -0.17, +0.05, +0.38, +0.80, +0.94, +1.07,  1.15,  1.26,  1.33,  1.40,  1.47,  1.40,  1.45,  1.51,  1.59,  1.69,  1.74];  
Mn = cspline(Qpts, Hp);
n = interpol(Q,  Mn);

В результате переменной n будет присвоено интерполированное значение напора (по массивам Hp и Qpts) в соответствии со значением расхода Q.

Пример 2

Двумерная линейная интерполяция:

input Q; //вход - аргумент
output n; //выход - результат линейной интерполяции
//массивы координат
const Qpts = [-2.00, -1.80, -1.60, -1.40, -1.20, -1.00, -0.80, -0.60, -0.40, -0.20,  0.00,  0.20,  0.40,  0.60,  0.80,  1.00,  1.20,  1.40,  1.60,  1.80,  2.00];
const Hp = [-1.40, -0.78, -0.53, -0.35, -0.17, +0.05, +0.38, +0.80, +0.94, +1.07,  1.15,  1.26,  1.33,  1.40,  1.47,  1.40,  1.45,  1.51,  1.59,  1.69,  1.74];  
n = interpol(Qpts, Hp, Q);

В результате переменной n будет присвоено линейно-интерполированное значение напора (по массивам Hp и Qpts) в соответствии со значением расхода Q.

Дополнительные материалы

Нет.