Экстраполировать от триангуляции

Предположим, у нас есть пять вершин:

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

Однако даже это решение не ведет себя кусочно-линейным в данной триангуляции.

Другие вопросы по тегам