Найдите вершины всех подсимплексов после барицентрического подразделения.Python

Программы на Python
Anonymous
Найдите вершины всех подсимплексов после барицентрического подразделения.

Сообщение Anonymous »

У меня есть набор стандартных базисных векторов размерности K и (K-1)-симплекс, определенный над этими векторами. Я хочу разделить этот симплекс на подсимплексы, которые разделят исходный симплекс, используя барицентрическое подразделение.
Например, когда K = 3, три вершины симплекса равны [1,0,0 ], [0,1,0] и [0,0,1]. Если вы разделите это на самом грубом уровне, используя барицентрическое подразделение, вы получите следующее:
  • Найдите среднюю точку каждого ребра: [1/2, 1/2 , 0], [1/2, 0, 1/2],[0, 1/2, 1/2]
  • Найдите барицентрическую точку: [1/3, 1/ 3, 1/3]
В следующем списке списков представлены все вершины каждого подсимплекса, который разбивает исходный симплекс:
  • [[[1,0,0], [1/2, 1/2, 0] [1/3, 1/3, 1/3]]]< /li>
    [[[1,0,0], [1/2, 0, 1/2] [1/3, 1/3, 1/3]]]
  • [[[0,1,0], [1/2, 1/2, 0] [1/3, 1/3, 1/3]]]
  • [[[0,1,0], [0, 1/2, 1/2] [1/3, 1/3, 1/3]]]
  • [[[0,0,1], [1/2, 0 ,1/2] [1/3, 1/3, 1/3]]]
  • [[ [0,0,1], [0, 1/2, 1/2] [1/3, 1/3, 1/3]]]
В меньших измерениях это легко сделать вручную, однако я хотел бы написать функцию (в идеале на Python, хотя я гибкий), которая берет вершины исходного симплекса и уровень разделения и возвращает список списков каждого подсимплекса и его вершин.
Я пытался разработать алгоритм, который отвечает на эту проблему, однако застрял в логике. Каждый субсимплекс будет содержать вершину одного из измерений (K-1), например в данном случае точка на ребре и на грани. Поэтому я попробовал комбинаторный подход, но не смог расширить его до N измерений таким образом, чтобы его можно было запрограммировать в функцию.
Кто-нибудь знает соответствующий пакет (или математическое программное обеспечение?) это может помочь ответить на этот вопрос или о том, как записать логику в функцию Python.

Подробнее здесь: https://stackoverflow.com/questions/784 ... ubdivision

Вернуться в «Python»