13.1.6. Многомерная интерполяция



Двумерная сплайн-интерполяция приводит к построению поверхности z (х,у), проходящей через массив точек, описывающий сетку на координатной плоскости (х,у). Поверхность создается участками двумерных кубических сплайнов, являющихся функциями (х,у) и имеющих непрерывные первые и вторые производные по обеим координатам.

Многомерная интерполяция строится с помощью тех же встроенных функций, что и одномерная (см. разд. 13.1.2), но имеет в качестве аргументов не векторы, а соответствующие матрицы. Существует одно важное ограничение, связанное с возможностью интерполяции только квадратных NxN массивов данных:

  •  interp(s,x,z,v) — скалярная функция, аппроксимирующая данные выборки двумерного поля по координатам х и у кубическими сплайнами:

  •  s — вектор вторых производных, созданный одной из сопутствующих функций cspline, pspline или lspline;
  •  х — матрица размерности Nх2, определяющая диагональ сетки значений аргумента (элементы обоих столбцов соответствуют меткам х и у и расположены в порядке возрастания);
  •  z — матрица действительных данных размерности NxN;
  •  v — вектор из двух элементов, содержащий значения аргументов х и у, для которых вычисляется интерполяция.


ПРИМЕЧАНИЕ

Вспомогательные функции построения вторых производных имеют те же матричные аргументы, что и interp: lspline (X, Y), pspline (X, Y), cspline (X, Y).



Пример исходных данных приведен на рис. 13.12 в виде графика линий уровня, программная реализация двумерной интерполяции показана в листинге 13.6, а ее результат — на рис. 13.13.

Листинг 13.6. Двумерная интерполяция



Рис. 13.12. Исходное двумерное поле данных (продолжение листинга 13.6)



Рис. 13.13. Результат двумерной интерполяции (продолжение листинга 13.6)