Экстраполировать от триангуляции
Предположим, у нас есть пять вершин:
X = [0 1;
2 1;
4 1;
1 0;
3 0];
триангуляция:
T = [1 4 2;
4 5 2;
5 3 2];
и значения функций, определенные в вершинах:
Fx = [1;
2;
3;
4;
-5];
тогда мы можем легко вычислить значение функции для любой точки внутри треугольника, используя барицентрические координаты. Для точки P = [1 .5]
, который лежит в первом треугольнике, барицентрические координаты B = [.25 .5 .25]
Таким образом, функция оценивает Fxi = 1/4 + 4/2 + 2/4 = 2.75
,
Однако мне трудно понять, как можно экстраполировать эту поверхность. Мы могли бы найти ближайший треугольник и экстраполировать его. Проблема в том, что это приводит к разрывной функции. Рассмотрим, например, точку P = [2 2]
, Согласно треугольнику 1 его значение будет равно -0,5, тогда как согласно треугольнику 3 его значение будет 9,5.
Существует ли "стандартный" или общепринятый подход для экстраполяции кусочно-линейных функций? Любые указатели на существующий материал также с благодарностью.
2 ответа
Возможен метод Шепарда:
https://en.wikipedia.org/wiki/Inverse_distance_weighting
Результирующая функция интерполирует входные значения, определенные в вершинах, и является нелинейной, но непрерывной везде.
Выбор p=2 обычно дает приличные результаты.
Другой метод для поиска - "Барицентрические координаты для невыпуклых многоугольников".
Следующая публикация показывает (стр. 8 и т. Д.), Как весовые функции ведут себя вне полигонов
https://www.in.tu-clausthal.de/fileadmin/homes/techreports/ifi0505hormann.pdf
Однако даже это решение не ведет себя кусочно-линейным в данной триангуляции.