Spec-Zone.ru › Octave 9

Далее: Матрицы поворота векторов, Предыдущее: Оборачивающая выпуклая оболочка, Вверх: Геометрия [Оглавление][Индекс]

30.4 Интерполяция на рассеянных данных ¶

Важное применение триангуляции Делоне заключается в том, что она может использоваться для интерполяции данных, рассеянных по произвольному набору точек. Для этого рассчитывается N-симплекс известного набора точек с помощью delaunay или delaunayn. Затем идентифицируются симплексы, в которые попадают искомые точки. Наконец, вершины симплексов используются для интерполяции в искомые точки. Функции, выполняющие эту интерполяцию, — griddata, griddata3 и griddatan.

: zi = griddata (x, y, z, xi, yi) ¶
: zi = griddata (x, y, z, xi, yi, method) ¶
: [xi, yi, zi] = griddata (…) ¶
: vi = griddata (x, y, z, v, xi, yi, zi) ¶
: vi = griddata (x, y, z, v, xi, yi, zi, method) ¶
: vi = griddata (x, y, z, v, xi, yi, zi, method, options) ¶

Интерполяция нерегулярных 2-D и 3-D исходных данных в заданных точках.

Для 2-D интерполяции входные данные x и y определяют точки, где вычисляется функция z = f (x, y). Входные данные x, y, z — это либо векторы одной длины, либо неравные векторы x, y расширяются до 2-D сетки с помощью meshgrid, а z — это 2-D матрица, соответствующая размеру полученной сетки X-Y.

Точки интерполяции — (xi, yi). Если и только если xi — строковый вектор, а yi — столбцовый вектор, то meshgrid будет использоваться для создания сетки точек интерполяции.

Для 3-D интерполяции входные данные x, y и z определяют точки, где вычисляется функция v = f (x, y, z). Входные данные x, y, z — это либо векторы одной длины, либо, если они имеют разную длину, они расширяются до 3-D сетки с meshgrid. Размер входных данных v должен соответствовать размеру исходных данных, либо как вектор, либо как матрица.

Необязательный входной параметр интерполяции method может быть "nearest", "linear", или для 2-D данных "v4". Когда метод "nearest", вывод vi будет ближайшей точкой в исходных данных (x, y, z) к точке запроса (xi, yi, zi). Когда метод "linear", вывод vi будет линейной интерполяцией между двумя ближайшими точками в исходных данных в каждой размерности. Только для 2-D случаев также доступен метод "v4", который реализует бигармоническую сплайн-интерполяцию. Если method опущен или пуст, он по умолчанию равен "linear".

Для 3-D интерполяции необязательный аргумент options передается напрямую в Qhull при вычислении триангуляции Делоне, используемой для интерполяции. Более подробную информацию о значениях по умолчанию и о том, как передать разные значения, см. в delaunayn.

Примечания по программированию: Если входные данные являются комплексными, вещественная и мнимая части интерполируются отдельно. Интерполяция обычно основана на триангуляции Делоне. Любые значения запроса, находящиеся за пределами выпуклой оболочки входных точек, вернут NaN. Однако метод "v4" не использует триангуляцию и вернет значения за пределами исходных данных (экстраполяция).

См. также: griddata3, griddatan, delaunay.

: vi = griddata3 (x, y, z, v, xi, yi, zi) ¶
: vi = griddata3 (x, y, z, v, xi, yi, zi, method) ¶
: vi = griddata3 (x, y, z, v, xi, yi, zi, method, options) ¶

Интерполяция нерегулярных 3-D исходных данных в заданных точках.

Входные данные x, y и z определяют точки, где вычисляется функция v = f (x, y, z). Входные данные x, y, z — это либо векторы одной длины, либо, если они имеют разную длину, они расширяются до 3-D сетки с meshgrid. Размер входных данных v должен соответствовать размеру исходных данных, либо как вектор, либо как матрица.

Точки интерполяции задаются xi, yi, zi.

Необязательный входной параметр интерполяции method может быть "nearest" или "linear". Когда метод "nearest", вывод vi будет ближайшей точкой в исходных данных (x, y, z) к точке запроса (xi, yi, zi). Когда метод "linear", вывод vi будет линейной интерполяцией между двумя ближайшими точками в исходных данных в каждой размерности. Если method опущен или пуст, он по умолчанию равен "linear".

Необязательный аргумент options передается напрямую в Qhull при вычислении триангуляции Делоне, используемой для интерполяции. См. delaunayn для информации о значениях по умолчанию и о том, как передать разные значения.

Примечания по программированию: Если входные данные являются комплексными, вещественная и мнимая части интерполируются отдельно. Интерполяция основана на триангуляции Делоне, и любые значения запроса за пределами выпуклой оболочки входных точек вернут NaN.

См. также: griddata, griddatan, delaunayn.

: yi = griddatan (x, y, xi) ¶
: yi = griddatan (x, y, xi, method) ¶
: yi = griddatan (x, y, xi, method, options) ¶

Интерполирует нерегулярные исходные данные x, y в точках, заданных xi.

Входной x — это матрица MxN, представляющая M точек в N-мерном пространстве. Входной y — это одномерный столбец (Mx1), представляющий функцию, вычисленную в точках x, т.е., y = fcn (x). Входной xi — это список точек, для которых выход yi функции должен быть аппроксимирован с помощью интерполяции. xi должен иметь такое же количество столбцов (N), как и x, чтобы соответствовать размерности.

Необязательный входной параметр интерполяции method может быть "nearest" или "linear". Когда метод равен "nearest", выход yi будет ближайшей точкой в исходных данных x к точке запроса xi. Когда метод равен "linear", выход yi будет линейной интерполяцией между двумя ближайшими точками в исходных данных. Если method опущен или пуст, он по умолчанию устанавливается в "linear".

Необязательный аргумент options передаётся напрямую в Qhull при вычислении триангуляции Делоне, используемой для интерполяции. См. delaunayn для получения информации о значениях по умолчанию и о том, как передавать различные значения.

Пример

## Evaluate sombrero() function at irregular data points
x = 16*gallery ("uniformdata", [200,1], 1) - 8;
y = 16*gallery ("uniformdata", [200,1], 11) - 8;
z = sin (sqrt (x.^2 + y.^2)) ./ sqrt (x.^2 + y.^2);
## Create a regular grid and interpolate data
[xi, yi] = ndgrid (linspace (-8, 8, 50));
zi = griddatan ([x, y], z, [xi(:), yi(:)]);
zi = reshape (zi, size (xi));
## Plot results
clf ();
plot3 (x, y, z, "or");
hold on
surf (xi, yi, zi);
legend ("Original Data", "Interpolated Data");

Примечания по программированию: Если входной параметр комплексный, вещественная и мнимая части интерполируются отдельно. Интерполяция основана на триангуляции Делоне, и любые значения запроса, выходящие за пределы выпуклой оболочки входных точек, вернут NaN. Для двумерных и трехмерных данных дополнительные методы интерполяции доступны с помощью функции griddata.

См. также: griddata, griddata3, delaunayn.

Пример использования функции griddata:

rand ("state", 1);
x = 2*rand (1000,1) - 1;
y = 2*rand (size (x)) - 1;
z = sin (2*(x.^2+y.^2));
[xx,yy] = meshgrid (linspace (-1,1,32));
zz = griddata (x, y, z, xx, yy);
mesh (xx, yy, zz);

который интерполирует данные с произвольного распределения точек на равномерную сетку. Результат выше можно увидеть на рисунке 30.6.

griddata

Рисунок 30.6: Интерполяция от разбросанных данных до регулярной сетки

Далее: Матрицы поворота векторов, Предыдущее: Выпуклая оболочка, Вверх: Геометрия [Содержание][Индекс]

© 1996–2023 The Octave Project Developers
Permission is granted to make and distribute verbatim copies of this manual provided the copyright notice and this permission notice are preserved on all copies.
Permission is granted to copy and distribute modified versions of this manual under the conditions for verbatim copying, provided that the entire resulting derived work is distributed under the terms of a permission notice identical to this one.
Permission is granted to copy and distribute translations of this manual into another language, under the above conditions for modified versions.
https://docs.octave.org/v9.2.0/Interpolation-on-Scattered-Data.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API