Alterna · учебный материал
02.4 Направление, которое не поворачивается
Поищем ненулевую стрелку, после преобразования которой меняется только масштаб. Такое направление называют собственным.
Что в этом материале
- Некоторые направления матрица не поворачивает
- Два направления треугольной матрицы
- Реальных собственных направлений может не быть
Содержание и основные понятия
На предыдущей странице: когда теряется направление.
Поищем ненулевую стрелку, после преобразования которой меняется только масштаб. Такое направление называют собственным.
Таблица растягивает горизонталь вдвое, вертикаль не меняет.
Для изменения рисунка включитеJavaScript; расчёт и теория доступны далее.
Некоторые направления матрица не поворачивает
Ненулевой
v
v
v
называется eigenvector квадратной матрицы
A
A
A
, если
A
v
=
λ
v
.
Av=\lambda v.
A
v
=
λ
v
.
Матрица может растянуть, сжать или обратить этот вектор, но результат остаётся на той же прямой. Нулевой вектор исключается: равенство
A
0
=
λ
0
A0=\lambda0
A
0
=
λ
0
истинно для любого
λ
\lambda
λ
и не выделяет направление.
Перенос слагаемых даёт
(
A
−
λ
I
)
v
=
0.
(A-\lambda I)v=0.
(
A
−
λ
I
)
v
=
0.
Ненулевое решение существует только когда
A
−
λ
I
A-\lambda I
A
−
λ
I
вырождена:
det
(
A
−
λ
I
)
=
0.
\det(A-\lambda I)=0.
det
(
A
−
λ
I
)
=
0.
Для
2
×
2
2\times2
2
×
2
характеристический polynomial равен
λ
2
−
tr
(
A
)
λ
+
det
(
A
)
=
0.
\lambda^2-\operatorname{tr}(A)\lambda+\det(A)=0.
λ
2
−
tr
(
A
)
λ
+
det
(
A
)
=
0.
Два направления треугольной матрицы
Для
A
=
[
2
1
0
1
]
A=\begin{bmatrix}2&1\\0&1\end{bmatrix}
A
=
[
2
0
1
1
]
eigenvalues равны диагональным значениям 2 и 1. При
λ
=
2
\lambda=2
λ
=
2
подходит
v
1
=
[
1
,
0
]
T
v_1=[1,0]^T
v
1
=
[
1
,
0
]
T
:
A
v
1
=
[
2
,
0
]
T
=
2
v
1
.
Av_1=[2,0]^T=2v_1.
A
v
1
=
[
2
,
0
]
T
=
2
v
1
.
При
λ
=
1
\lambda=1
λ
=
1
подходит
v
2
=
[
1
,
−
1
]
T
v_2=[1,-1]^T
v
2
=
[
1
,
−
1
]
T
:
A
v
2
=
[
1
,
−
1
]
T
=
v
2
.
Av_2=[1,-1]^T=v_2.
A
v
2
=
[
1
,
−
1
]
T
=
v
2
.
Произвольный
x
=
[
1
,
2
]
T
x=[1,2]^T
x
=
[
1
,
2
]
T
переходит в
[
4
,
2
]
T
[4,2]^T
[
4
,
2
]
T
и не остаётся коллинеарным с исходным направлением. Наличие eigenvectors не превращает каждый вход в eigenvector.
Реальных собственных направлений может не быть
Поворот на 90 градусов имеет
R
=
[
0
−
1
1
0
]
,
λ
2
+
1
=
0.
R=\begin{bmatrix}0&-1\\1&0\end{bmatrix},
\qquad \lambda^2+1=0.
R
=
[
0
1
−
1
0
]
,
λ
2
+
1
=
0.
Его eigenvalues равны
±
i
\pm i
±
i
, поэтому на вещественной плоскости нет ненулевого направления, которое осталось бы на своей прямой. При этом преобразование полностью обратимо и сохраняет длины. Отсутствие real eigenvector не означает rank loss.
Повторяющееся eigenvalue тоже не гарантирует полный собственный базис. Shear
S
=
[
1
1
0
1
]
S=\begin{bmatrix}1&1\\0&1\end{bmatrix}
S
=
[
1
0
1
1
]
имеет eigenvalue 1 кратности 2, но условие
(
S
−
I
)
v
=
0
(S-I)v=0
(
S
−
I
)
v
=
0
требует
v
2
=
0
v_2=0
v
2
=
0
. Независимое eigen-направление только одно, поэтому матрица не диагонализуется над
R
\mathbb R
R
двумя eigenvectors.
Для симметричной матрицы ситуация лучше. У
H
=
[
2
1
1
2
]
H=\begin{bmatrix}2&1\\1&2\end{bmatrix}
H
=
[
2
1
1
2
]
направления
[
1
,
1
]
T
[1,1]^T
[
1
,
1
]
T
и
[
1
,
−
1
]
T
[1,-1]^T
[
1
,
−
1
]
T
ортогональны, а eigenvalues равны 3 и 1. Реальная симметричная матрица допускает ортонормированный собственный базис.
Hessian при стандартных условиях симметричен; его eigenvalues описывают локальную кривизну вдоль eigen-направлений. Это помогает анализировать conditioning оптимизации. Eigenvalues произвольной weight matrix сами по себе не являются оценкой качества модели.
A = [[2, 1], [0, 1]]
v = [1, -1]
Av = [sum(a*b for a, b in zip(row, v)) for row in A]
assert Av == v
Код повторяет только что разобранные операции.
Полный проверяемыйPython-пример главы
доступен отдельным файлом; показанный короткий фрагмент не заменяет его реализацию.
Стрелка осталась на своей прямой. Другие стрелки могут менять направление, и нулевую стрелку за собственный вектор не принимают.
Повернуть, растянуть, повернуть. Как этот вопрос продолжает полученный результат?
Python-примеры главы 02
Академическая база →