Alterna · учебный материал
02.3 Когда теряется направление
Преобразование может сплющить плоскость в линию. Ранг — число независимых направлений, оставшихся на выходе.
Что в этом материале
- Образ сообщает, сколько направлений пережило преобразование
- Ядро описывает невидимые изменения входа
- Determinant и обратимость квадратной матрицы
- Точный и численный ранг отвечают на разные вопросы
Содержание и основные понятия
На предыдущей странице: два преобразования подряд.
Преобразование может сплющить плоскость в линию. Ранг — число независимых направлений, оставшихся на выходе.
Правило: [x₁,x₂] → [x₁+2x₂, 0].
Координаты и расчёт геометрического примера приведены в тексте. Для изменения пространственного рисунка включитеJavaScript.
Образ сообщает, сколько направлений пережило преобразование
Рассмотрим
A
=
[
1
2
0
0
]
.
A=\begin{bmatrix}1&2\\0&0\end{bmatrix}.
A
=
[
1
0
2
0
]
.
Её столбцы
[
1
,
0
]
T
[1,0]^T
[
1
,
0
]
T
и
[
2
,
0
]
T
[2,0]^T
[
2
,
0
]
T
лежат на одной прямой. Любой выход имеет вид
A
x
=
[
x
1
+
2
x
2
,
0
]
T
,
Ax=[x_1+2x_2,0]^T,
A
x
=
[
x
1
+
2
x
2
,
0
]
T
,
поэтому вся плоскость схлопывается на горизонтальную ось.
Ранг
матрицы равен размерности пространства её столбцов, то есть размерности образа. Здесь rank равен 1, хотя ненулевых ячеек две.
Для матрицы
[
m
,
n
]
[m,n]
[
m
,
n
]
0
≤
rank
(
A
)
≤
min
(
m
,
n
)
.
0\le\operatorname{rank}(A)\le\min(m,n).
0
≤
rank
(
A
)
≤
min
(
m
,
n
)
.
Rank 0 имеет только нулевая матрица. Полный столбцовый rank
n
n
n
означает, что разные входы не сталкиваются; полный строковый rank
m
m
m
означает, что достижим каждый выход.
Ядро описывает невидимые изменения входа
Ядро
ker
(
A
)
=
{
v
:
A
v
=
0
}
\ker(A)=\{v:Av=0\}
ker
(
A
)
=
{
v
:
A
v
=
0
}
содержит направления, полностью уничтоженные оператором. Для выбранной
A
A
A
v
=
t
[
−
2
,
1
]
T
,
A
v
=
0.
v=t[-2,1]^T,
\qquad Av=0.
v
=
t
[
−
2
,
1
]
T
,
A
v
=
0.
Поэтому
x
x
x
и
x
+
v
x+v
x
+
v
дают один выход:
A
(
x
+
v
)
=
A
x
+
A
v
=
A
x
.
A(x+v)=Ax+Av=Ax.
A
(
x
+
v
)
=
A
x
+
A
v
=
A
x
.
Например,
[
2
,
0
]
T
[2,0]^T
[
2
,
0
]
T
и
[
0
,
1
]
T
[0,1]^T
[
0
,
1
]
T
оба переходят в
[
2
,
0
]
T
[2,0]^T
[
2
,
0
]
T
. Потеря информации означает не просто уменьшившуюся картинку, а существование разных входов с одинаковым результатом.
Для линейного отображения из
R
n
\mathbb R^n
R
n
действует теорема rank-nullity:
rank
(
A
)
+
dim
ker
(
A
)
=
n
.
\operatorname{rank}(A)+\dim\ker(A)=n.
rank
(
A
)
+
dim
ker
(
A
)
=
n
.
В нашем примере одно выходное направление и одно направление ядра вместе учитывают две входные степени свободы.
Determinant и обратимость квадратной матрицы
Для
2
×
2
2\times2
2
×
2
det
[
a
b
c
d
]
=
a
d
−
b
c
.
\det\begin{bmatrix}a&b\\c&d\end{bmatrix}=ad-bc.
det
[
a
c
b
d
]
=
a
d
−
b
c
.
Ненулевой determinant эквивалентен rank 2 и существованию inverse. Для
A
=
[
2
1
0
1
]
A=\begin{bmatrix}2&1\\0&1\end{bmatrix}
A
=
[
2
0
1
1
]
determinant равен 2, а
A
−
1
=
[
1
/
2
−
1
/
2
0
1
]
.
A^{-1}=\begin{bmatrix}1/2&-1/2\\0&1\end{bmatrix}.
A
−
1
=
[
1/2
0
−
1/2
1
]
.
Он возвращает
[
4
,
2
]
T
[4,2]^T
[
4
,
2
]
T
в
[
1
,
2
]
T
[1,2]^T
[
1
,
2
]
T
. В вычислительной практике обычно решают
A
x
=
b
Ax=b
A
x
=
b
факторизацией, а не строят полную inverse: явная inverse дороже и может усиливать численные ошибки.
Точный и численный ранг отвечают на разные вопросы
Матрица
D
=
diag
(
1
,
10
−
12
)
D=\operatorname{diag}(1,10^{-12})
D
=
diag
(
1
,
1
0
−
12
)
математически имеет rank 2, потому что обе диагонали ненулевые. Но восстановление второй координаты требует деления на
10
−
12
10^{-12}
1
0
−
12
, поэтому шум порядка
10
−
10
10^{-10}
1
0
−
10
в выходе превращается в ошибку порядка
10
2
10^2
1
0
2
во входе.
Лаборатория определяет numerical rank как число singular values, превышающих
10
−
10
max
(
1
,
σ
1
)
.
10^{-10}\max(1,\sigma_1).
1
0
−
10
max
(
1
,
σ
1
)
.
При этом явно выбранном допуске
D
D
D
получает numerical rank 1. Другой алгоритм или другая точность могут выбрать иной порог. Нельзя выдавать округлённый ноль за доказательство точной линейной зависимости.
Низкий rank иногда является желаемой проекцией, удаляющей шум. Но восстановить произвольную уничтоженную компоненту без дополнительных предположений невозможно. В лаборатории сравните полную, rank-one и нулевую матрицы, наблюдая одновременно сетку, kernel и collision входов.
Можно менять два входа, но на выходе осталось только одно направление. Обратное восстановление входа в общем случае невозможно.
Направление, которое не поворачивается. Как этот вопрос продолжает полученный результат?
Python-примеры главы 02
Академическая база →