А проективное преобразование это (невырожденное) линейное преобразование R^4 (задающееся 16-ю элементами своей матрицы) — с точностью до умножения на константу (ибо гомотетия прямые не меняет). Поэтому группа проективных преобразований проективного пространства 16-1=15-мерна.
Так вот, инвариантов на самом деле два (что означает, что у типичной конфигурации есть одномерный стабилизатор — одномерная подгруппа преобразований, которая её оставляет на месте).
На геометрическом языке: есть две прямые, пересекающие нашу четвёрку. На каждой из этих прямых есть четыре точки пересечения. А у четырёх точек есть — двойное отношение! И вот два инвариантных числа.
На языке линейной алгебры: когда у нас есть четыре плоскости в R^4, то третью и четвёртую можно рассматривать, как графики отображений из первой во вторую. А тогда их композиционное частное — корректно определённое отображение из первой плоскости в себя. Это, конечно, та самая матрица A выше — просто можно сказать « композиционное частное », а можно — « выбор координат на плоскостях, при котором одно из отображений тождественно ».
И отображение A корректно определено — а тогда у него есть инварианты: собственные значения.
Так вот, эти два ответа совпадают — двойные отношения точек пересечения как раз и есть собственные значения матрицы A.
Более того, в каком-то смысле мне такой подход кажется правильным объяснением того, почему двойное отношение четырёх точек инвариантно относительно проективных преобразований. Можно это, конечно, аккуратно проверять — а можно сказать, что если мы рассмотрим на плоскости четыре прямых через начало координат, и у нас есть только линейная структура, то третья и четвёртая прямые это графики отображения из первой во вторую. А тогда можно взять их композиционное частное — которое будет линейным преобразованием прямой. То есть умножением на константу. И эта константа — инвариант преобразований, которые линейную структуру сохраняют.
А с другой стороны, она и есть двойное отношение, что проверяется совсем мгновенно. Пусть у нас есть прямая, не проходящая через начало координат O, и она пересекает наши четыре прямые в точках A,B,C,D. Если отрезки OA и OB на первой и второй прямых взять за единичные, то прямая OC будет графиком функции умножения на (AC:CB). А прямая OD — умножения на (AD:DB). А их композиционное частное — на частное этих отношений. То есть на двойное отношение.
Кстати — бывают ведь ещё нетипичные случаи. Если матрица A оказывается скалярной, это означает, что каждый вектор для неё собственный. И это значит, что все четыре прямые лежат на одном гиперболоиде.
А если преобразование A это жорданова клетка — матрица вида (c, 1 \\ 0, c) — то собственный вектор у него только один. И это отвечает случаю, когда четвёртая прямая касается гиперболоида (но не лежит на нём).
И из этой конфигурации можно сделать такую забавную задачу: пусть в пространстве заданы четыре попарно скрещивающиеся прямые, и пусть одна из них касается гиперболоида, проходящего через три другие, но не лежит на нём. Докажите, что тогда _любая_ из этих прямых касается гиперболоида, проходящего через три другие.
Вот такой сюжет; ну и на этом я на сегодня хочу прекратить дозволенные речи.
Допустим, мы хотим диагонализовать матрицу A размера 2x2 — и ищем её собственные вектора.
Вот мы нашли собственные значения, λ_1 и λ_2...
... и собираемся решить две системы, чтобы найти собственные вектора. А надо ли это делать?
... и собираемся решить две системы, чтобы найти собственные вектора. А надо ли это делать?
Нет!
Ведь (A-λ_1*Id)(A-λ_2*Id)=0 (aka теорема Гамильтона-Кэли).
Ведь (A-λ_1*Id)(A-λ_2*Id)=0 (aka теорема Гамильтона-Кэли).
Значит, собственный вектор с собственным значением λ_1 можно прочитать в (любом) столбце матрицы A-λ_2*Id. И наоборот, собственный вектор с собственным значением λ_2 — в любом столбце матрицы A-λ_1*Id.
С матрицами 3x3 такое тоже можно применять, но тут уже вопрос, что кому проще: перемножить две матрицы (A-λ_1*Id)(A-λ_2*Id), чтобы в столбце прочитать собственный вектор, или решить систему (A-λ_3*Id) v =0.
(Помнится, этому трюку нас в своё время научил И. А. Дынников. Давно это было!)
(Помнится, этому трюку нас в своё время научил И. А. Дынников. Давно это было!)
Второй трюк — а что, если мы хотим посчитать какую-то функцию от матрицы (скажем, сотую степень, или экспоненту) в исходном базисе. И матрица опять маленькая, 2x2 или 3x3.
Можно, конечно, найдя собственные значения, найти потом собственные вектора, вычислить функцию в собственном базисе (допустим, все собственные значения некратные — так что матрица диагонализуется — и тогда просто поэлементно применить к собственным значениям на диагонали), потом вернуться в исходный (включая обращение матрицы перехода и умножение матриц)...