Линейная алгебра

Ранг, ядро и обратимость

Сколько решений у системы — вопрос не про числа, а про то, что отображение делает с размерностями

Шаг 14 из 117 · ~30 мин

Обратимость — это про биекцию

Матрица AA обратима, если существует A1A^{-1} с A1A=AA1=IA^{-1}A = AA^{-1} = I. Но определение через формулу скрывает смысл. Обратимость — это ровно то же, что биективность отображения: у каждого выхода есть единственный вход.

Отсюда сразу следует, что обратимой может быть только квадратная матрица. Отображение R3R2\R^3 \to \R^2 не может быть инъективным — три измерения не влезают в два без склейки. Отображение R2R3\R^2 \to \R^3 не может быть сюръективным — двумерный образ не заполнит трёхмерное пространство.

Потяните столбцы и посмотрите, что происходит с сеткой. Пока параллелограмм имеет площадь, отображение обратимо. Как только столбцы становятся коллинеарными, вся плоскость схлопывается в прямую:

e₁e₂
определитель
1
ранг
2

Ядро и образ

Два подпространства, через которые описывается всё остальное:

  • Образ imA={Ax}\operatorname{im} A = \{A\mathbf{x}\} — куда отображение попадает. Это span столбцов, как мы видели в прошлом уроке.
  • Ядро kerA={x:Ax=0}\ker A = \{\mathbf{x} : A\mathbf{x} = \mathbf{0}\} — что отображение убивает.

Ранг — размерность образа. Дефект (nullity) — размерность ядра. Они связаны законом сохранения:

dim(kerA)+rankA=n\dim(\htmlData{k=ker}{\ker A}) + \htmlData{k=rank}{\operatorname{rank} A} = \htmlData{k=n}{n}

Каждое измерение входа либо выживает в , либо схлопывается в . Третьего нет.

Сколько решений у системы

Теперь вопрос «сколько решений у Ax=bA\mathbf{x} = \mathbf{b}» разбирается механически. Возможны ровно три случая:

  1. Ни одного. bimA\mathbf{b} \notin \operatorname{im} A. Система несовместна — мы просим отображение попасть туда, куда оно не попадает.
  2. Ровно одно. bimA\mathbf{b} \in \operatorname{im} A и kerA\ker A тривиально.
  3. Бесконечно много. bimA\mathbf{b} \in \operatorname{im} A, но ядро непусто.

Третий случай стоит записать явно, потому что он объясняет структуру ответа. Если Ax0=bA\mathbf{x}_0 = \mathbf{b} и vkerA\mathbf{v} \in \ker A, то

A(x0+v)=Ax0+Av=b+0=bA(\mathbf{x}_0 + \mathbf{v}) = A\mathbf{x}_0 + A\mathbf{v} = \mathbf{b} + \mathbf{0} = \mathbf{b}

Множество решений — это x0+kerA\mathbf{x}_0 + \ker A: одно частное решение плюс всё ядро. Не подпространство, а сдвинутое подпространство — снова та же разница, что между подпространством и аффинным множеством.

«Два уравнения, два неизвестных — одно решение» верно только в общем положении. Именно вырожденные случаи ломают наивный код, и именно поэтому численные библиотеки возвращают ранг, а не бросают исключение.

Критерии обратимости — это всё одно утверждение

Для квадратной AA размера n×nn \times n равносильно:

  • AA обратима;
  • detA0\det A \ne 0;
  • rankA=n\operatorname{rank} A = n;
  • kerA={0}\ker A = \{\mathbf{0}\};
  • столбцы линейно независимы;
  • Ax=bA\mathbf{x} = \mathbf{b} имеет ровно одно решение при любом b\mathbf{b}.

Не шесть фактов, а шесть способов сказать «отображение не теряет измерений». Запоминать по отдельности не нужно; полезно уметь переходить от любого к любому.

Блочные матрицы

Матрицу можно резать на блоки и умножать блоками, как если бы блоки были числами — при условии, что размерности внутри сходятся:

[ABCD][xy]=[Ax+ByCx+Dy]\begin{bmatrix} A & B \\ C & D \end{bmatrix} \begin{bmatrix} \mathbf{x} \\ \mathbf{y} \end{bmatrix} = \begin{bmatrix} A\mathbf{x} + B\mathbf{y} \\ C\mathbf{x} + D\mathbf{y} \end{bmatrix}

Это не техническая мелочь. Ровно так читается multi-head attention: одна большая матрица проекции — это блоки по головам, и умножение на неё это независимые умножения в каждой голове. И ровно так работают batched-операции: батч — это блочно-диагональная структура, которую никто не выписывает целиком.

Что стоит унести

Ранг — не свойство таблицы чисел, а число измерений, которые отображение сохраняет. Обратимость — не наличие формулы для A1A^{-1}, а отсутствие потерь. В коде это выглядит как разница между «система решена» и «система решена с точностью до ядра», и путать их дорого.

Источники

Проверки

0 из 2
  1. Что следует из ранга

    Матрица AA имеет размер 4×44 \times 4 и rank(A)=3\operatorname{rank}(A) = 3. Отметьте все верные утверждения.

  2. Ранг через исключение

    Реализуйте matrix_rank(m) — ранг матрицы, заданной списком строк.

    Метод прямой: приводите матрицу к ступенчатому виду методом Гаусса и считайте ненулевые строки. На каждом шаге ищите в текущем столбце ненулевой элемент, меняйте строки местами и вычитайте.

    Требования:

    • матрица не обязательно квадратная;
    • у матрицы без строк ранг 0;
    • элементы целые, но после вычитаний появятся дроби — сравнивайте с нулём через abs(x) < 1e-9, а не через == 0.

    Ведущий элемент стоит выбирать наибольшим по модулю в столбце: на целых входах это не обязательно, но именно так делают численные библиотеки, и причина станет ясна в уроке про обусловленность.

    функция matrix_rank

    Загрузка редактора…

    Ctrl/⌘ + Enter