У меня есть наборы данных многоточечного поля, каждый набор данных точки относится к одной ячейке неструктурированной сетки. Цель состоит в том, чтобы интерполировать данные в центр ячейки, прямо или косвенно, наиболее точным способом.
Если я использую интерполяцию, взвешенную по обратному расстоянию, в случае, когда расстояние между источником и целью (центром ячейки) очень мало, я могу получить исключение с плавающей запятой.
Для этого вида интерполяции на структурированной сетке используется взвешенная по объему интерполяция. Это не переводит непосредственно к ячейке сетки произвольной формы.
Введение допуска для интерполяции IDW для обхода SIGFPE имеет смысл, только если я не введу какие-либо тесты, которые могут сделать интерполяцию неэффективной. Является ли добавление достаточно малого к знаменателю для каждого веса возможным вариантом с интерполяцией IDW? Какие методы интерполяции подходят для этой проблемы, вы знаете?
Дополнительная информация:
Для интерполяции от сетки до точек я использую интерполяцию, основанную на барцицентрических координатах . Каждая многогранная ячейка сетки разлагается на тетраэдры. Сосредоточенное на ячейке поле интерполируется к точкам ячейки с использованием IDW-интерполяции . Для каждой точки проводится поиск, чтобы найти тетраэдр, внутри которого она лежит, и значения интерполируются с использованием барицентрической интерполяции .
Ответы:
Ссылки на различные пакеты программного обеспечения для интерполяции разбросанных данных находятся на моей веб-странице http://www.mat.univie.ac.at/~neum/stat.html#fit.
Книга
GE Fasshauer, Meshfree приближенные методы с использованием MATLAB, World Scientic 2007.
дает всеобъемлющее состояние (по состоянию на 2006 год).
Несколько более свежих работ по интерполяции разбросанных данных:
http://www.stanford.edu/group/uq/pdfs/journals/jcp_scattered_2010.pdf
http://www.math.auckland.ac.nz/~waldron/Preprints/ Box-сплайны / коробчатого splines.pdf
Какой метод использовать, во многом зависит от использования полученного интерполятора. Методы Кригинга основаны на стохастической модели, поэтому они хороши, если данные, которые должны быть интерполированы, несколько зашумлены. Радиальные базисные функции должны быть предпочтительными, если (реализованы стабильно) и требуется визуально приятный результат (интерполяция низкой кривизны).
источник
Ниже я приведу пример, как я могу интерполировать от одного набора точек к другому, на сетке конечного объема.
Я расположил расположение переменных - данные, которые я храню в памяти, представляют значения в клеточных центрах. Я храню переменные поля и их градиенты. Градиенты найдены из окружающих значений, решающих проблему наименьших квадратов (с QR через отражения Домохозяина).
Ваше расположение может отличаться, но принцип тот же.
...
Тогда я пишу
Таким образом, вам нужен один набор значений поля и градиентов в этих точках. Вам необходимо решить, какие окружающие точки будут вносить вклад в вашу интерполированную точку, а также векторы расстояния от этих точек до точки, к которой мы интерполируем.
Например: если вы храните данные, представляющие значения в вершинах ячеек, вы используете это уравнение, чтобы найти значения в центре ячеек и т. Д., Все в зависимости от вашей ситуации.
Так что это основано на серии Тейлора вокруг. Можно использовать также вторые производные, чтобы получить более точное выражение.
источник