1632
правки
Изменения
м
<tex>\begin{vmatrix} a_1 & 1 \\ a_2 & 1\\ \dots \\ a_d & 1 \\ p_1 + \alpha\overrightarrow{p_1p_2} & 1 \end{vmatrix} =
\begin{vmatrix} a_1 & 1 \\ a_2 & 1\\ \dots \\ a_d & 1 \\ \alpha p_2 + (1 - \alpha)p_1 & 1 \end{vmatrix} =
\alpha \begin{vmatrix} a_1 & 1 \\ a_2 & 1\\ \dots \\ a_d & 1 \\ p_2 & 1 \end{vmatrix} +
(1 - \alpha) \begin{vmatrix} a_1 & 1 \\ a_2 & 1\\ \dots \\ a_d & 1 \\ p_1 & 1 \end{vmatrix} </tex>
rollbackEdits.php mass rollback
Рассмотрим векторное пространство <math>\mathbb{R}^3</math>, построим в нём плоскости <math>P_1=\{z=0\}</math> и <math>P_2=\{z=1\}</math>.
Плоскость <math>P_1</math> является векторным подпространством исходного векторного пространства,
а плоскость <math>P_2</math> не является(отсутствует нейтральный элемент относительно сложения).
Это довольно странно, так как с точки зрения геометрии ни одна из плоскостей ничем не лучше другой,
плоскость <math>P_2</math> интуитивно выражается той же линейной структурой, что и <math>P_1</math>.
Точно так же они могут вычислять линейные комбинации этих векторов, и, как правило, получать разные результаты.
Однако, если сумма коэффициентов линейной комбинации будет равна <math>1</math>, то результаты будут получаться одинаковые.
Алиса будет получать получать
<math>\lambda a + (1 - \lambda) b</math>,
и Боб будет точно так же получать
Пространство с аффинной структурой и есть аффинное пространство.
==Базисы векторного Векторные пространстваи определители==Вспомним несколько фактов о векторных пространствахиз линейной алгебры.
{{Определение
|definition=Набор векторов <math>\{\vec{e}_i\}_{i=1}^n</math> называется '''линейно независимым''' (ЛНЗ), если его линейная комбинация <math>\sum_{i=1}^n \alpha_i \vec{e}_i</math> равна нулю только в том случае, если она тривиальная, то есть <math>\forall i : \alpha_i = 0</math>.
и не существует набора из <math>d + 1</math> линейно независимого вектора.
}}
===Единственность разложенияв базис===
{{Утверждение
|id=vectorUniqueness
|statement=В <math>d</math>-мерном пространстве любой вектор <math>\vec{A}</math> единственным образом раскладывается в базисе из <math>d</math> линейно независимых векторов <math>\{\vec{e}_i\}_{i=1}^d</math> как <math>\sum_{i=1}^d\alpha_i\vec{e}_i</math>.
|proof=Если мы добавим в базис вектор <math>\vec{A}</math>, то он обязательно станет линейно зависимым, и, значит, найдутся такие <math>\beta</math> и <math>\{\alpha_i\}</math>, что
<math>\displaystyle
\vec{A} = \sum_{i=1}^d\alpha_i\vec{e}_i = \sum_{i=1}^d\beta_i\vec{f}_i \ \land\ \vec{e}_i = \sum_{j=1}^d c_{ij}\vec{f}_j</math> <math>\displaystyle\
\vec{A} = \sum_{i=1}^d\alpha_i\vec{e}_i =
\sum_{i=1}^d \alpha_i \sum_{j=1}^d c_{ij} \vec{f}_j =
\sum_{j=1}^d \vec{f}_j \sum_{i=1}^d \alpha_i c_{ij}</math> <math>\displaystyle\
\beta_j = \sum_{i=1}^d\alpha_i c_{ij} \implies
\begin{pmatrix} \beta_1 \\ \beta_2 \\ \vdots \\ \beta_d \end{pmatrix} =
</math>
==Определения=Определитель=== Следующий факт позволяет красиво записывать один подозрительно часто появляющийся определитель. <math> \displaystyle\begin{vmatrix}a_1 - p \\ a_2 - p \\ \vdots \\ a_n - p\end{vmatrix}= \begin{vmatrix}a_1 - p & 0 \\ a_2 - p & 0 \\ \vdots & \vdots \\ a_n - p & 0 \\ p & 1\end{vmatrix}= \begin{vmatrix}a_1 & 1 \\ a_2 & 1 \\ \vdots & \vdots \\ a_n & 1 \\ p & 1\end{vmatrix}</math> ==Аффинные пространства==
{{Определение
|definition='''Аффинное пространство''' – — это либо вырожденное пустое множество, либо кортеж <math>\langle A, V, (+)\rangle</math>, состоящий из непустого множества точек <math>A</math>, векторного пространства <math>V</math> и действия <math>(+) : A \times V \rightarrow A</math>, удовлетворяющего следующим свойствам:
# <math>\forall a \in A : a + 0 = a</math>;
# <math>\forall v, w \in V, a \in A : (a + v) + w = a + (v + w)</math>;
С помощью этого определения довольно естественно ввести следующее определение аффинного подпространства.
{{Определение
|definition=Если <math>\langle A, V, (+)\rangle</math> – — это аффинное пространство, то <math>B \subset A</math> является '''аффинным подпространством''' пространства <math>\langle A, V, (+)\rangle</math>, если любая аффинная комбинация любого множества точек из <math>B</math> принадлежит <math>B</math>.
}}
Например, <math>\{z=1\}</math> будет аффинным подпространством аффинного пространства над <math>\mathbb{R}^3</math>,
Следующая лемма проводит связь между аффинными подпространствами и векторными подпространствами.
{{Лемма
|statement=Пусть <math>\langle A, V, (+)\rangle</math> – — это аффинное пространство.
# Непустое <math>B \subset A</math> является аффинным подпространством тогда и только тогда, когда для любой точки <math>a \in B</math> множество <math>W_a = \{\overrightarrow{ab} : b \in B\}</math> является подпространством <math>V</math>. Как следствие, <math>B=\{a + w : w \in W_a \}</math>. Более того, <math>W = \{\overrightarrow{ab} : a, b \in B\}</math> является подпространством <math>V</math>, и для любой точки <math>a \in B</math> справедливо <math>W_a = W</math>.
# Для любого <math>W</math>, являющегося подпространством <math>V</math>, множество <math>\{a + v : v \in W\}</math> является аффинным подпространством для любого <math>a \in A</math>.
}}
===Аффинная независимостьи базисы===
Аналогично с линейной независимостью в векторных пространствах можно ввести аффинную независимость.
{{Лемма
|statement=Пусть <math>\langle A, V, (+)\rangle</math> – — это аффинное пространство. Пусть <math>\{a_i\}_{i \in I}</math> – — множество точек из <math>A</math>. Если для какого-то <math>i \in I</math> множество векторов <math>\{\overrightarrow{a_i a_j}\}_{j \in I \setminus \{i\}}</math> линейно независимо, то для любого <math>i \in I</math> множество <math>\{\overrightarrow{a_i a_j}\}_{j \in I \setminus \{i\}}</math> будет линейно независимо.|proof=Пусть для какого-то <math>i \in I</math> множество векторов <math>\{\overrightarrow{a_i a_j}\}_{j \in I \setminus \{i\}}</math> линейно независимо, <math>k \in I</math> и пусть есть такой набор <math>\{\lambda_j\}_{j \in I \setminus \{k\}}</math>, что <math>\displaystyle \sum_{j \in I \setminus \{k\}} \lambda_j \cdot \overrightarrow{a_k a_j} = 0</math>. Поскольку <math>\overrightarrow{a_k a_j} = \overrightarrow{a_k a_i} + \overrightarrow{a_i a_j}</math>, мы имеем <math> \displaystyle \begin{aligned}\sum_{j \in I \setminus \{k\}} \lambda_j \cdot \overrightarrow{a_k a_j} &=\sum_{j \in I \setminus \{k\}} \lambda_j \cdot \overrightarrow{a_k a_i} + \sum_{j \in I \setminus \{k\}} \lambda_j \cdot \overrightarrow{a_i a_j} \\&= \sum_{j \in I \setminus \{k\}} \lambda_j \cdot \overrightarrow{a_k a_i} + \sum_{j \in I \setminus \{i,k\}} \lambda_j \cdot \overrightarrow{a_i a_j} \\&= \sum_{j \in I \setminus \{i,k\}} \lambda_j \cdot \overrightarrow{a_i a_j} - \left(\sum_{j \in I \setminus \{k\}} \lambda_j\right) \cdot \overrightarrow{a_i a_k} = 0 \text{.}\end{aligned}</math> Из этого следует, что <math>\forall j \in (I \setminus \{i, k\}) : \lambda_j = 0</math> и <math>\sum_{j \in I \setminus \{k\}} \lambda_j = 0</math>, поскольку набор векторов <math>\{\overrightarrow{a_i a_j}\}_{j \in I \setminus \{i\}}</math> линейно независим. Значит, <math>\forall j \in (I \setminus \{k\}) : \lambda_j = 0</math>, то есть линейная комбинация тривиальна.
}}
Эта лемма даёт возможность говорить о независимости множества точек без выделения одной из них.
{{Определение
|definition=Пусть <math>\langle A, V, (+)\rangle</math> – — это аффинное пространство. Множество точек <math>\{a_i\}_{i \in I}</math> '''аффинно независимо''', если для какого-то <math>i \in I</math> множество <math>\{\overrightarrow{a_i a_j}\}_{j \in I \setminus \{i\}}</math> линейно независимо.}}В аффинном пространстве справедлив факт, подобный единственности разложения вектора в ЛНЗ базис в векторном пространстве.{{Лемма|statement=Пусть <math>\langle A, V, (+)\rangle</math> — это аффинное пространство. Пусть <math>\{a_i\}_{i=0}^n</math> — множество точек из <math>A</math>. Пусть <math>x \in A</math> представима в виде аффинной комбинации <math>\{a_i\}_{i=0}^n</math>. Тогда набор коэффициентов аффинной комбинации <math>\{\lambda_i\}_{i=0}^n</math>, что <math>x = \sum_{i=0}^n \lambda a_i</math>, единственен тогда и только тогда, когда набор векторов <math>\{\overrightarrow{a_0 a_i}\}_{i=1}^n</math> линейно независим.|proof=Докажем единственность из линейной независимости. Пусть есть две аффинные комбинации с коэффициентами <math>\{\alpha_i\}_{i=0}^n</math> и <math>\{\beta\}_{i=0}^n</math>, дающие x. Посчитаем их, взяв за точку начала отсчёта точку <math>a_0</math>: <math>\displaystylex= a_0 + \sum_{i=1}^n \alpha_i \cdot \overrightarrow{a_0 a_i}= a_0 + \sum_{i=1}^n \beta_i \cdot \overrightarrow{a_0 a_i}</math>. Получаем, что <math>\displaystyle\sum_{i=1}^n \alpha_i \cdot \overrightarrow{a_0 a_i}= \sum_{i=1}^n \beta_i \cdot \overrightarrow{a_0 a_i}</math>. По [[#vectorUniqueness|лемме для векторного пространства]] такое разложение единственно, <math>\forall i \in \left[1..n\right] : \alpha_i = \beta_i \implies \alpha_0 = \beta_0</math>. В обратную сторону доказывается идентично.}}Имеет смысл определить понятие базиса в аффинном пространстве.{{Определение|definition=Пусть <math>\langle A, V, (+)\rangle</math> — это аффинное пространство. Множество точек <math>\{a_i\}_{i \in I}</math> будет называться '''аффинным базисом''' этого пространства, если множество векторов <math>\{\overrightarrow{a_0 a_i}\}_{i=1}^n</math> будет базисом <math>V</math>. '''Барицентрическими координатами''' точки будут коэффициенты её аффинного разложения в этом базисе.
}}
Поскольку <math>\forall x \in A : x = a_0 + \overrightarrow{a_0 x}</math>, то если множество <math>\{\overrightarrow{a_0 a_i}\}_{i=1}^n</math> ЛНЗ, то существует единственное разложение
<math> \displaystyle
x = a_0 + \sum_{i=1}^n \lambda_i \cdot \overrightarrow{a_0 a_i}
</math>.
Тогда
<math> \displaystyle
x = \left(1 - \sum_{i=0}^n \lambda_i \right) a_0 + \sum_{i=1}^n \lambda_i a_i
</math>,
значит, разложение в аффинный базис всегда существует, и, по лемме, оно единственно.
Также можно выделить <math>a_0</math> как начало координат, и представлять координаты так же, как это делается в векторном пространстве.
Обычно так и делается.
Осознание глубинного смысла сего действия остаётся читателям в качестве упражнения.
==Вычисление поворота==
===Матрица поворота===
У нас есть гиперплоскость <tex>g</tex> и точки задающие её. В <tex>d</tex> мерном пространстве у нас будет <tex>d</tex> линейно аффинно независимых (ЛНЗ) точек <tex>a_1, a_2, \dots, a_d</tex>. Линейную независимость точек воспринимаем творчески. {{Определение |definition=Будем называть набор из <tex>d</tex> точек '''линейно независимым''', если мы можем выбрать одну из них, провести вектора от нее до всех остальных и получить <tex>d-1</tex> ЛНЗ вектор.}}
Возьмем в нашем пространстве еще одну выделенную точку <tex>p</tex>. Получившийся Если она не лежит в гиперплоскости, то получившийся набор <tex>a_1, a_2, \dots, a_d, p</tex> тоже будет ЛНЗаффинно независимым.
[[Файл:drawing-3.png|400px|thumb|right|Пример для <tex>\mathbb{R}^3</tex>]]Пусть у нас есть какая-то выделенная зарание заранее система координат <tex>C</tex>. Эта система приходит обычно вместе с какой-то задачей, и обычно она декартова. И у нас тоже будет сейчас декартова.
Мы знаем, что можно составить матрицу переходаиз начальной системы координат координат <tex>C</tex> в систему координат на векторах <math>\{\overrightarrow{p a_i}\}_{i=1}^d</math>, если умеем можно выразить координаты векторов эти вектора в исходной базовой системе координат <texmath>C</texmath>.А в нашем случае мы это сделать, конечно, можем: поскольку вектор существует между любыми парами точек, просто сопредставим сопоставим нашим точкам вектора, соединяющие начало координат <tex>O</tex> и очередную точку.
Значит, если нам известны координаты точек, то нам известны координаты векторов в ситеме <tex>C</tex>.
Запишем матрицу перехода и немножко преобразуем еёопределитель:[[Файл:drawing-3.png|400px|thumb|right|Пример для <tex>R^3</tex>]]
<tex>\det A ^ \mathrm{T}= \begin{pmatrixvmatrix} \overrightarrow{Oa_1} - \overrightarrow{Op} \\ \overrightarrow{Oa_2} - \overrightarrow{Op} \\ \vdots \\ \overrightarrow{Oa_d} - \overrightarrow{Op} \end{pmatrix}^ \mathrm{Tvmatrix} =\begin{pmatrixvmatrix} a_1 - p \\ a_2 - p\\ \vdots \\ a_d - p \end{pmatrixvmatrix}^ \mathrm{T} =\begin{pmatrixvmatrix} a_1 & 1 \\ a_2 & 1\\ \vdots & \vdots \\ a_d & 1 \\ p & 1 \end{pmatrix}^ \mathrm{Tvmatrix}</tex>.
В дальнейшем нас будут интересовать детерминант этой матрицы и его знак: <tex>\det(A) = \begin{vmatrix} a_1 & 1 \\ a_2 & 1\\ \vdots & \vdots \\ a_d & 1 \\ p & 1 \end{vmatrix}</tex>этого детерминанта.
===Обоснование===
{{Лемма
|id=pOnPlane
|about=1
|statement=Точка <tex>p</tex> лежит на плоскости <tex>g</tex> тогда и только тогда, когда определитель матрицы <tex>A</tex> равен <tex>0</tex>.
|proof=
|id= pConvex
|statement= Получившиеся множества будут выпуклыми.
|proof= По определению выпуклого множества. Возьмем две любые точки <tex>p_1</tex> и <tex>p_2</tex>, лежащие в одной области. По аксиоматике существует вектор <tex>\overrightarrow{p_1p_2}</tex> и по определению можно сделать линейную комбинацию. Значит можем получить любую точку между <tex>p_1</tex> и <tex>p_2</tex>, лежащую с ними на одной прямой, отложив от <tex>p_1</tex> вектор <tex>\alpha \cdot \overrightarrow{p_1p_2}</tex>, где <tex>\alpha \in [0..1]</tex>. Если подставить это в определитель, и вспомнить, что <math>1 = \alpha + (1 - \alpha)</math>, то получим <tex>\begin{vmatrix} a_1 & 1 \\ a_2 & 1\\ \vdots & \vdots \\ a_d & 1 \\ p_1 + \alpha \cdot \overrightarrow{p_1p_2} & 1 \end{vmatrix} = \begin{vmatrix} a_1 & 1 \\ a_2 & 1\\ \vdots & \vdots \\ a_d & 1 \\ \alpha p_2 + (1 - \alpha)p_1 & 1 \end{vmatrix} = \alpha \begin{vmatrix} a_1 & 1 \\ a_2 & 1\\ \vdots & \vdots \\ a_d & 1 \\ p_2 & 1 \end{vmatrix} +(1 - \alpha) \begin{vmatrix} a_1 & 1 \\ a_2 & 1\\ \vdots & \vdots \\ a_d & 1 \\ p_1 & 1 \end{vmatrix} </tex>.
Матрицы одинакового знака, и стоящие перед ними коэффициенты положительны. Значит, у нашей точки будет тот же знак определителя, что и у <tex>p_1</tex> и <tex>p_2</tex>.
}}
В афинном пространстве можно вполне естественно ввести евклидовскую метрику: ввести скалярное произведение, а затем показать, что корень из скалярного произведения задает метрику. Тогда эта метрика будет индуцировать топологию открытыми шарами, а значит, можно будет воспользоваться аналогом теоремы Жордана.
Эта история о том, что даже когда мы притворяемся, что у нас нет метрики, мы неявно испоользуем топологию, индуцированную этой метрикой. Но, метрика, не единственна, и топология не единственна. Иногда нам достаточно топологии, которая даже может быть не индуцирована метрикой, или которая вообще не метризуема, но эта топология будет давать свойство непрерывности. Но тогда для нашей топогогии нужно будет доеказывать доказывать вышеупомянутый факт (про непрерывность кривой).
Итак, поворот классифицирует точки не лежащие на плоскости и разбивает их на два выпуклых множества
==Уравнение гиперплоскости, полупространства==
Из [[#pOnPlane|леммы 1]] практически сразу получается уравнение гиперплоскости.
Пусть у нас есть <tex>n</tex> ЛНЗ точек <tex>a_1, a_2, \dots, a_n</tex> в <tex>n</tex>-мерном пространстве. Тогда гиперплоскость, проходящая через эти точки, может быть задана уравнением
<tex>\begin{vmatrix} a_1 & 1 \\ a_2 & 1\\ \vdots & \vdots \\ a_n & 1 \\ x & 1 \end{vmatrix} = 0</tex>.
При этом полупространство, лежащее ниже этой плоскости, может быть получено как
<tex>\begin{vmatrix} a_1 & 1 \\ a_2 & 1\\ \vdots & \vdots \\ a_n & 1 \\ x & 1 \end{vmatrix} < 0</tex>,
а полупространство, лежащее выше этой плоскости, имеет вид
<tex>\begin{vmatrix} a_1 & 1 \\ a_2 & 1\\ \vdots & \vdots \\ a_n & 1 \\ x & 1 \end{vmatrix} > 0</tex>.
== Источники информации ==
* Jean Gallier «Curves and Surfaces In Geometric Modeling: Theory And Algorithms» {{---}} Part I Basics of Affine Geometry
[[Категория: Вычислительная геометрия]]
[[Категория: Основание вычислительной геометрии]]