2016-05-07 2 views
1

У меня есть 3 массива X, Y и Z. Каждый из них имеет 8 элементов. Теперь для каждой возможной комбинации (X, Y, Z) значение V.Определение формулы для независимой переменной переменной

Я ищу, чтобы найти формулу, например. V = F (X, Y, Z). Любая идея о том, как это можно сделать?

Спасибо заранее,

Astry

ответ

0

У вас есть функция сэмпнула на (возможно, неоднородную) 3D сетке, и хочет, чтобы оценить функцию в любой произвольной точке внутри объема. Один из способов приблизиться к этому (некоторые считают лучшим) - это многомерная оценка сплайнов. https://en.wikipedia.org/wiki/Multivariate_interpolation

Во-первых, вам нужно найти, какой прямоугольный параллелепипед содержит точку запроса (x, y, z), тогда вам нужно интерполировать значение из ближайших точек. Самое простое - использовать трилинейную интерполяцию из ближайших 8 точек. Если вы хотите более гладкую поверхность, вы можете использовать квадратичную интерполяцию из 27 точек или кубическую интерполяцию из 64 точек.

Для повторных запросов трикубического сплайна ваша жизнь будет немного проще, предварительно обработав сплайн, чтобы генерировать патчи/тома Эрмита, где ваши образцы указывают не только значение функции, но и ее производные (∂/∂x , ∂/∂y, ∂/∂z). Таким образом, вам не нужен грязный код для границ во время оценки.

Смежные вопросы