Многомерная интерполяция
Двумерная сплайн-интерполяция приводит к построению поверхности 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)