alterna ai
ALTERNA AI / ГЛАВА 01 · 02

01.2 Откуда отсчитываются координаты

На предыдущей странице: вектор и его координаты.

Чтобы назвать координаты, нужно выбрать направления измерения — базис. Поворот этих направлений меняет запись чисел, но не саму стрелку.

Одна стрелка [3,4]; направления [1,0] и [1,1].

Один вектор допускает разные координатные записи

Координаты отвечают не только на вопрос «где конец стрелки», но и на вопрос «сколько раз взять каждое выбранное направление». Набор b1,…,bnb_1,\ldots,b_n называется базисом Rn\mathbb R^n, если каждый вектор xx единственным образом представим как

x=c1b1+⋯+cnbn.x=c_1b_1+\cdots+c_nb_n.

Существование такого разложения означает, что базис порождает пространство. Единственность обеспечивается линейной независимостью: равенство a1b1+⋯+anbn=0a_1b_1+\cdots+a_nb_n=0 возможно только при a1=⋯=an=0a_1=\cdots=a_n=0. Если ненулевая комбинация даёт ноль, один из векторов базиса избыточен, а координаты перестают быть однозначными.

Соберём базисные векторы в столбцы матрицы B=[b1 ⋯ bn]B=[b_1\ \cdots\ b_n], а коэффициенты в столбец cc. Тогда одна геометрическая стрелка связывается с координатами формулой

x=Bc.x=Bc.

Если столбцы образуют базис, BB обратима и

c=B−1x.c=B^{-1}x.

Важно направление преобразования: cc сообщает, сколько взять базисных столбцов; BcBc восстанавливает мировые координаты xx. Матрица B−1B^{-1} выполняет обратный переход.

Три точные записи одной стрелки

Пусть мировая стрелка фиксирована: x=[3,4]Tx=[3,4]^T.

В стандартном базисе e1=[1,0]Te_1=[1,0]^T, e2=[0,1]Te_2=[0,1]^T:

x=3e1+4e2,cstd=[3,4]T.x=3e_1+4e_2, \qquad c_{std}=[3,4]^T.

В косом базисе b1=[1,0]Tb_1=[1,0]^T, b2=[1,1]Tb_2=[1,1]^T:

B=[1101],c=[−14],Bc=[34].B=\begin{bmatrix}1&1\\0&1\end{bmatrix}, \qquad c=\begin{bmatrix}-1\\4\end{bmatrix}, \qquad Bc=\begin{bmatrix}3\\4\end{bmatrix}.

Коэффициент −1-1 означает один шаг против b1b_1, затем четыре шага вдоль b2b_2. Числа [−1,4][-1,4], нарисованные в стандартном базисе, дали бы другую стрелку. Они являются координатами исходного xx только вместе с матрицей BB.

Для повёрнутого базиса b1=[0,1]Tb_1=[0,1]^T, b2=[−1,0]Tb_2=[-1,0]^T:

B=[0−110],c=[4,−3]T,Bc=[3,4]T.B=\begin{bmatrix}0&-1\\1&0\end{bmatrix}, \qquad c=[4,-3]^T, \qquad Bc=[3,4]^T.

Во всех трёх случаях меняются числа и координатная сетка, но мировой конец стрелки остаётся (3,4)(3,4).

Размерность и вырожденный набор

Размерность конечномерного пространства равна числу векторов в любом его базисе. На плоскости два независимых направления достаточны и необходимы. Набор [1,0]T,[2,0]T[1,0]^T,[2,0]^T плоскость не порождает: любая комбинация остаётся на горизонтальной прямой,

c1[1,0]T+c2[2,0]T=[c1+2c2,0]T.c_1[1,0]^T+c_2[2,0]^T=[c_1+2c_2,0]^T.

Для x=[3,4]Tx=[3,4]^T решения нет, потому что вторая координата любой комбинации равна нулю. Для точки [3,0]T[3,0]^T, напротив, решений бесконечно много: например, (c1,c2)=(3,0)(c_1,c_2)=(3,0) и (1,1)(1,1). Поэтому отсутствие обратной матрицы проявляется либо отсутствием координат, либо их неединственностью.

Длина в косых координатах

В стандартном ортонормированном базисе ∥x∥22=xTx\|x\|_2^2=x^Tx. В косом базисе нельзя бездумно сложить квадраты коэффициентов cc. Поскольку x=Bcx=Bc,

∥x∥22=(Bc)T(Bc)=cTBTBc=cTGc,G=BTB.\|x\|_2^2=(Bc)^T(Bc)=c^TB^TBc=c^TGc, \qquad G=B^TB.

Для косого примера

G=[1112],cTGc=25,G=\begin{bmatrix}1&1\\1&2\end{bmatrix}, \qquad c^TGc=25,

тогда как (−1)2+42=17(-1)^2+4^2=17. Матрица Грама хранит углы и длины базисных направлений. Простая сумма квадратов координат работает только для ортонормированного базиса.

В лаборатории переключайте базис при неизменном xx. Проверяйте не похожесть рисунка, а равенство Bc=xBc=x. Затем сопоставьте координаты с матрицей Грама: метрика относится к геометрическому объекту, а не автоматически к списку его коэффициентов.

B = [[1, 1], [0, 1]]
x = [3, 4]
c = [x[0] - x[1], x[1]]
recovered = [B[0][0]*c[0] + B[0][1]*c[1],
             B[1][0]*c[0] + B[1][1]*c[1]]
assert c == [-1, 4] and recovered == x

Код повторяет только что разобранные операции. Полный проверяемыйPython-пример главы доступен отдельным файлом; показанный короткий фрагмент не заменяет его реализацию.

Сама стрелка осталась прежней. Изменилась система направлений, через которую мы её описываем.

Как измерить длину. Как этот вопрос продолжает полученный результат?

Python-примеры главы 01 Академическая база →