interpol

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

Синтаксис:

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

Аргументы:

Х – входной массив координат точек по оси x для вычисления линейной интерполяции,

Y – входной массив координат точек по оси y для вычисления линейной интерполяции,

Z – входной массив координат точек по оси z для вычисления линейной интерполяции,

x,y – аргументы для интерполяции,

M – матрица коэффициентов кубической сплайн-интерполяции.

Описание:

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

interpol(X,Y, х) – функция двумерной линейной интерполяции аргумента x по заданным координатам точек.

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

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

y = interpol(X, Y, х);

  • как переменные типа массив, состоящие из переменных 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 – результат интерполяции аргумента x,

z – результат интерполяции аргументов x, y.

Пример1:

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

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.

Сопутствующие материалы