Трехмерная табличная интерполяция. N-мерная табличная интерполяция.
Для трехмерной табличной интерполяции используется функция interp3:
- VI = interp3(X.Y.Z.V.XI,YI.ZI) – интерполирует, чтобы найти VI, значение основной трехмерной функции V в точках матриц XI, YI и ZI. Матрицы X, Y и Z определяют точки, в которых задано значение V. XI, YI и ZI могут быть матрицами, в этом случае InterpS возвращает значения Z, соответствующие точкам (XI (i,j),YI(i .j), ZI (i .j)). В качестве альтернативы можно передать векторы xi, yl и zi. Векторы аргументы, имеющие неодинаковый размер, представляются, как если бы использовалась команда meshgrid;
- VI = interp3(V.XI.YI.ZI) – подразумевает X=1:N, Y=1:M, Z=1:P, где [M,N.P]=size(V);
- VI = interpS(V.ntimes) – осуществляет интерполяцию рекурсивным методом с числом шагов ntimes;
- VI = interp3(….method) – позволяет задать метод интерполяции:
- 'nearest' – ступенчатая интерполяция;
- 'linear' – линейная интерполяция;
- 'cubic' – кубическая интерполяция (полиномами Эрмита);
- 'spline' – интерполяция сплайнами.
Все методы интерполяции требуют, чтобы X, Y и Z изменялись монотонно и имели такой же формат, как если бы они были получены с помощью функции meshgrid. Когда X и Y и Z – векторы равномерно распределенных в пространстве узловых точек, для более быстрой интерполяции лучше использовать методы '*li'near', '*cubic' или '*nearest'.
N-мерная табличная интерполяция
MATLAB позволяет выполнить даже n-мерную табличную интерполяцию. Для этого используется функция interpn:
- VI = interpn(X1.X2,X3,…,V,Y1.Y2.Y3….) – интерполирует, чтобы найти VI, значение основной многомерной функции V в точках массивов Y1, Y2, Y3,…. Функции interpn должно передаваться 2ЛГ+1 аргументов, где N – размерность интерполируемой функции. Массивы X1, Х2, ХЗ,… определяют точки, в которых задано значение V. Параметры Y1, Y2, Y3,… могут быть матрицами, в этом случае interpn возвращает значения VI, соответствующие точкам (YKi, j),Y2(i, j), Y3(i, j),…). В качестве альтернативы можно передать векторы yl, y2, уЗ,… В этом случае interpn интерпретирует их, как если бы использовалась команда ndgrid(y1. У2.у3….);
- VI = interpn(V.Yl,Y2,Y3,…) – подразумевает Xl=1size(V.l), X2=l:size(V,2), X3=l:size(V,3) и т. д.;
- VI = Interpn(V.ntimes) – осуществляет интерполяцию рекурсивным методом с числом шагов ntimes;
- VI = interpn(…method) – позволяет указать метод интерполяции:
- 'nearest' – ступенчатая интерполяция;
- 'linear' – линейная интерполяция;
- 'cubic' – кубическая интерполяция.
В связи с редким применением такого вида интерполяции, наглядная трактовка которой отсутствует, примеры ее использования не приводятся.