Подпространства матрицы. Часть 1 | Линейная алгебра

Подпространства матрицы. Часть 1

Все курсы > Линейная алгебра > Занятие 6 (часть 1)

Сегодня мы еще раз рассмотрим полученные ранее знания о векторных пространствах, линейных преобразованиях, системе линейных уравнений и определителе матрицы в контексте новых понятий ранга и четырех фундаментальных подпространств матрицы, а именно пространства столбцов, пространства строк, ядра и коядра матрицы.

Продолжим работать в том же ноутбуке

Ранг матрицы

При нулевом определителе в трехмерном пространстве матрица может «схлопнуть» пространство до плоскости, линии или точки (во всех трех случаях определитель равен нулю).

Ранее мы сказали, что для того чтобы в системе уравнений, например, трехмерная матрица $A$ при нулевом определителе все же имела решение, вектор $\mathbf b$, на который матрица $A$ переводит вектор $\mathbf x$, должен лежать на плоскости или линии, в которые «схлопывается» трехмерное пространство.

Размерность пространства после трансформации принято описывать рангом матрицы (rank).

Если преобразование трехмерной матрицы «сворачивает» размерность до линии, то ранг такого преобразования равен единице, до плоскости — двум и т.д. В случае матрицы $2 \times 2$ самый высокий ранг матрицы — два. Это значит, что при преобразовании размерность сохранилась (и соответственно определитель не равен нулю).

Пространство столбцов

Пространством столбцов (column space, а также образом, image) называют множество всех возможных линейных комбинаций вектор-столбцов.

С точки зрения линейных преобразований, пространством столбцов называют векторы, которые определяют пространство после трансформации.

В случае линейно зависимых векторов таких векторов будет меньше, чем в исходной матрице. Приведем пример линейно зависимых векторов и рассчитаем ранг матрицы.

Приведем матрицу к упрощенному ступенчатому виду (reduced row-echelon form) с помощью Питона. Для этого воспользуемся методом .rref() библиотеки sympy.

матрица в упрощенном ступенчатом виде

Как мы видим, с одной стороны, пространство сократилось до двух измерений (поэтому ранг матрицы равен двум), с другой, двумерное пространство можно описать первыми двумя столбцами (их еще называют разрещающими, ведущими или базисными, pivot columns), где все элементы кроме одного равны нулю.

Разрешающие столбцы и образуют пространство столбцов. Найдем пространство столбцов с помощью Питона.

пространство столбцов
метод .columnspace() библиотеки sympy
метод .columnspace() библиотеки sympy 2

Откуда такое название? Столбцы матрицы говорят куда «приземлятся» координаты базисных векторов. В этом смысле, оболочка вектор-столбцов то же самое, что и пространство столбцов.

В матрице $2 \times 2$ первый столбец показывает, где окажется вектор $\mathbf i$, второй — вектор $\mathbf j$. И оболочка этих столбцов определит пространство столбцов. Если, например, в матрице $2 \times 2$ столбцы линейно независимы и преобразование не приводит к снижению размерности, то пространство столбцов задается этими двумя векторами.

Замечу, что столбцы, не являющиеся разрешающими, называются свободными (free).

Ядро матрицы

Если преобразование уменьшает размерность (например, преобразовывает плоскость в линию), то несколько векторов оказываются в начале координат (становятся нулевыми векторами). Видео ниже прекрасно иллюстрирует эту трансформацию.

Множество таких «исчезающих» векторов называется ядром матрицы или ее нуль-пространством (null space, kernel).

ядро матрицы

Видео про обратные матрицы, ранг и ядро⧉.

Система уравнений

$Ax = b$

Рассмотрим пространство столбцов и ядро с точки зрения системы линейных уравнений. В первую очередь представим пространство столбцов, как решение системы $ A \mathbf x = \mathbf b $, т.е. линейную комбинацию вектор-столбцов $A$, умноженных на компоненты $\mathbf x$.

$$ x_1 \begin{bmatrix} \vdots \\ \mathbf a_1 \\ \vdots \end{bmatrix} + x_2 \begin{bmatrix} \vdots \\ \mathbf a_2 \\ \vdots \end{bmatrix} + x_3 \begin{bmatrix} \vdots \\ \mathbf a_3 \\ \vdots \end{bmatrix} = \begin{bmatrix} \vdots \\ \mathbf b \\ \vdots \end{bmatrix} $$

Всегда ли $A \mathbf x = \mathbf b$ будет иметь решение? Нет. Возьмем некоторую матрицу $A$ и соответствующие ей векторы $\mathbf x$ и $\mathbf b$.

$$ \begin{bmatrix} 1 & 1 & 2 \\ 2 & 1 & 3 \\ 3 & 1 & 4 \\ 4 & 1 & 5 \end{bmatrix} \begin{bmatrix} x_1 \\ x_2 \\ x_3 \end{bmatrix} = \begin{bmatrix} b_1 \\ b_2 \\ b_3 \\ b_4 \end{bmatrix} $$

В такой системе будет много векторов $\mathbf b$, которые не будут являться линейной комбинацией трех столбцов матрицы A.

вектор b вне пространства столбцов матрицы A

В каком случае такое решение все-таки будет существовать? Если $\mathbf b$ будет являться линейной комбинацией векторов $A$, т.е. будет находиться в пространстве столбцов $A$, $\mathbf b \in col(A) $.

вектор b в пространстве столбцов матрицы A

Например, если $\mathbf b$ будет равен одному из столбцов $A$.

$$ \begin{bmatrix} 1 & 1 & 2 \\ 2 & 1 & 3 \\ 3 & 1 & 4 \\ 4 & 1 & 5 \end{bmatrix} \begin{bmatrix} x_1 \\ x_2 \\ x_3 \end{bmatrix} = \begin{bmatrix} 1 \\ 2 \\ 3 \\ 4 \end{bmatrix} $$

Тогда решением может быть

$$ \mathbf x = \begin{bmatrix} 1 \\ 0 \\ 0 \end{bmatrix} $$

Что интересно, все возможные решения $\mathbf x$ именно такой системы $A \mathbf x = \mathbf b$, где $\mathbf b \in col(A) $ сами по себе не образуют векторное пространство (хотя бы потому что нулевой вектор не включен в эти решения).

Дополнительно замечу, что так как в матрице $A$ только два линейно независимых вектора (третий вектор является суммой первых двух), то в данном случае мы имеем двумерное подпространство $R^4$.

$Ax = 0$

В системе линейных уравнений $A \mathbf x = \mathbf b$, если $\mathbf b$ — нулевой вектор, т.е. $A \mathbf x = \mathbf 0$, то ядро дает все возможные решения этой системы (все возможные $\mathbf x$). Можно также сказать, что ядро $\mathbf x $ представляет собой комбинацию вектор-столбцов $A$, обращающихся в ноль.

$$ x_1 \begin{bmatrix} \vdots \\ \mathbf a_1 \\ \vdots \end{bmatrix} + x_2 \begin{bmatrix} \vdots \\ \mathbf a_2 \\ \vdots \end{bmatrix} + x_3 \begin{bmatrix} \vdots \\ \mathbf a_3 \\ \vdots \end{bmatrix} = \begin{bmatrix} \vdots \\ \mathbf 0 \\ \vdots \end{bmatrix} $$

В примере выше обратите внимание, что $col(A) \in R^4$, в то время как $null(A) \in R^3$. Решением же этой системы при нулевом векторе $\mathbf b$, $A \mathbf x = \mathbf 0$ будет

$$ null(A) = k \begin{bmatrix} 1 \\ 1 \\ -1 \end{bmatrix} $$

где $k \in \mathbb{R} $. Другими словами, $null(A)$ представляет собой линию в $R^3$.

Убедимся, что для матрицы $M$ выше мы правильно нашли ядро (а также решение $M \mathbf x = 0$).

Общее и частное решение

Приведем общее решение (complete solution) следующей системы, состоящее из частного решения (particular solution) системы $A \mathbf x = \mathbf b$ и ядра, то есть решения $A \mathbf x = \mathbf 0$.

$$ \begin{bmatrix} 1 & 1 & 2 \\ 2 & 1 & 3 \\ 3 & 1 & 4 \\ 4 & 1 & 5 \end{bmatrix} \begin{bmatrix} x_1 \\ x_2 \\ x_3 \end{bmatrix} = \begin{bmatrix} 1 \\ 2 \\ 3 \\ 4 \end{bmatrix} $$

$$ \mathbf x = \begin{bmatrix} 1 \\ 0 \\ 0 \end{bmatrix} + k \begin{bmatrix} 1 \\ 1 \\ -1 \end{bmatrix} $$

Независимость векторов, базис и размерность

В свете новых знаний еще раз рассмотрим линейную независимость векторов и базис векторного пространства. Возьмем некоторую матрицу $A$.

Независимые вектор-столбцы

Можно сказать, что вектор-столбцы, образующие матрицу $A$ независимы, если ядро матрицы состоит только из нулевого вектора, $null(A) = \{ \mathbf 0 \}$ (решением $A \mathbf x = \mathbf 0$ будет только нулевой вектор $\mathbf x$). Одновременно все столбцы такой матрицы являются разрешающими, и матрица имеет полный ранг, равный количеству столбцов $n$, $rank(A) = n$.

Если матрица $А$ квадратная и ее столбцы линейно независимы, то можно сказать, что

  1. Вектор-столбцы матрицы образуют базис $R^n$
  2. Такая матрица будет обратима (!)

Приведем примеры обратимых матриц, столбцы которых формируют базис.

$$ \begin{bmatrix} 1 & 0 & 0 \\ 0 & 1 & 0 \\ 0 & 0 & 1 \end{bmatrix}, \begin{bmatrix} 1 & 2 & 3 \\ 1 & 2 & 1 \\ 2 & 5 & 8 \end{bmatrix} $$

Зависимые вектор-столбцы

Если же столбцы зависимы, то ядро матрицы содержит также ненулевые векторы и решением $A \mathbf x = \mathbf 0$ будет или будут некоторые ненулевые векторы $\mathbf x$. Столбцы матрицы будут как разрешающими, так и свободными. Ранг матрицы будет равен количеству разрещающих столбцов.

Базис пространства будет определяться именно линейно независимыми векторами, входящими в пространство столбцов. Размерностью (dimension) векторного пространства будет как раз количество векторов базиса.

Например, возьмем следующую матрицу $A$.

$$ A = \begin{bmatrix} 1 & 2 & 3 & 1 \\ 1 & 1 & 2 & 1 \\ 1 & 2 & 3 & 1 \end{bmatrix} $$

В данном случае у матрицы два линейно независимых столбца. В частности, это

$$ col(A) = \left\{ \begin{bmatrix} 1 \\ 1 \\ 1 \end{bmatrix}, \begin{bmatrix} 2 \\ 1 \\ 2 \end{bmatrix} \right\} $$

Как следствие,

$$ dim(col(A)) = rank(A) = dim(basis) = \text{# of pivots} = 2 $$

Одновременно, нулевое пространство задано векторами

$$ null(A) = \left\{ \begin{bmatrix} -1 \\ -1 \\ 1 \\ 0 \end{bmatrix}, \begin{bmatrix} -1 \\ 0 \\ 0 \\ 1 \end{bmatrix} \right\} $$

Как следствие,

$$ dim(null(A)) = \text{# of free columns} = 2 $$

Код на Питоне для нахождения пространства столбцов и ядра приведен в ноутбуке к занятию⧉.

В качестве дополнения, замечу, что размерность векторного пространства характеризуется следом (trace) единичной матрицы этого пространства или суммой элементов главной диагонали. Например, размерность $R^3$ можно охарактеризовать через

$$ dim(col(A)) = tr \left( \begin{bmatrix} 1 & 0 & 0 \\ 0 & 1 & 0 \\ 0 & 0 & 1 \end{bmatrix} \right) = 3 $$

Пространство строк и коядро

Пространством строк (row space) называют множество всех возможных линейных комбинаций вектор-строк.

Если матрицу транспонировать, то можно сказать, что

$$ row(A) = col(A^T) $$

Коядром или левым нуль-пространством (left null-space, cokernel) матрицы $A$ будет ядро матрицы $A^T$.

$$ leftnull(A) = null(A^T) $$

Продемонстрируем, почему это пространством называется именно левым нуль-пространством. По определению ядра, как решения $A \mathbf x = \mathbf 0$, можно сказать, что коядро будет решением $A^T \mathbf y = \mathbf 0$.

$$ A^T \mathbf y = \mathbf 0 $$

$$ \mathbf y^T(A^T)^T = \mathbf 0^T $$

$$ \mathbf y^T A = \mathbf 0^T $$

Схематично это можно представить следующим образом.

коядро (левое нуль-пространство)

Можно также сказать, что коядро $ \mathbf y $ в системе $ A^T \mathbf y = \mathbf 0 $ дает все возможные комбинации столбцов $A^T$, обращающиеся в нулевой вектор (что то же самое, что линейные комбинации строк $\mathbf x^T A = 0$). Приведем пример. Найдем коядро матрицы $A$.

коядро матрицы A

Другими словами, нам нужно взять $-1R_1 + 0R_2 + 1R_3$, чтобы получить нулевой вектор. Проверим полученный результат.

Фундаментальные подпространства матрицы

Обобщим изложенную выше информацию. Возьмем матрицу $A$ размерностью $m \times n$. Тогда

  • $ null(A) \in R^n$ (так как должно быть решением $A \mathbf x = \mathbf 0$)
  • $ col(A) \in R^m $ (количество строк $A$)
  • $ row(A) = col(A^T) \in R^n $ (количество столбцов $A$)
  • $ leftnull(A) = null(A^T) \in R^m $ (так как должно быть решением $A^T \mathbf y = \mathbf 0$)

Тогда схематично эти подпространства можно представить следующим образом.

фундаментальные подпространства матрицы

Несколько пояснений и дополнений:

  • $r$ означает ранг (rank) матрицы
  • $r+(n-r) = n$, т.е. столбцы матрицы $A$
  • $r+(m-r) = m$, т.е. строки матрицы $A$ или столбцы $A^T$

Про пересечение подпространств. Может ли вектор $\mathbf v = \begin{bmatrix} 1 \\ 2 \end{bmatrix}$ быть одновременно в нуль-пространстве и являться частью пространства строк A (или в целом строкой в A)? Нет.

$$ \begin{bmatrix} 1 & 2 \\ \dots & \dots \end{bmatrix} \begin{bmatrix} 1 \\ 2 \end{bmatrix} \not= \begin{bmatrix} 0 \\ 0 \end{bmatrix} $$

Пересечением пространства строк и нуль-пространства будет только нулевой вектор.

$$ row(A) \cap null(A) = \{ \mathbf 0 \} $$

Ортогональность подпространств матрицы

Более того, ядро ортогонально пространству строк $row(A) \perp null(A)$, так как их скалярное произведение равно нулю. Это следует из определения ядра $A \mathbf x = \mathbf 0$ (произведение $\mathbf x$ на каждую вектор-строку $\mathbf a_m$ равно нулю).

$$ \begin{bmatrix} \dots & \mathbf a_1 & \dots \\ \dots & \mathbf a_2 & \dots \\ \dots & \dots & \dots \\ \dots & \mathbf a_m & \dots \end{bmatrix} \begin{bmatrix} \vdots \\ \mathbf x \\ \vdots \end{bmatrix} = \begin{bmatrix} 0 \\ 0 \\ 0 \\ 0 \end{bmatrix} $$

Более того, так как $null(A)$ содержит все векторы, ортогональные $row(A)$, то ядро можно считать ортогональным дополнением пространства строк в $R^n$: $null(A) = row(A)^{\perp} $.

То же самое справедливо для пространства столбцов и коядра.

$$ col(A) \perp leftnull(A) \perp null(A^T) \text{ в } R^m $$

$$ leftnull(A), null(A^T) = col(A)^{\perp} $$

Количество решений системы уравнений

Систематизируем наши знания о подпространствах матрицы с точки зрения возможного количества решений системы уравнений.

Система не имеет решений

В случае если система не имеет решений, существует некоторый вектор $\mathbf b $, при котором $A \mathbf x = \mathbf b $ не будет иметь решения.

$$ \exists \mathbf b \implies A \mathbf x \not= \mathbf b $$

С точки зрения матрицы $\underset{m \times n}{A}$, можно говорить о том, что некоторые строки линейно зависимы и после преобразования методом Гаусса обратятся в нули. Как следствие, ранг матрицы меньше количества строк, $r < m$.

линейно зависимые строки

Система имеет единственное решение

Если мы знаем, что система имеет единственное решение, то это означает, что нуль-пространство матрицы $A$ содержит только нулевой вектор, $null(A) = \{ \mathbf 0 \}$ и все столбцы линейно независимы, $ r = n $.

все столбцы линейно независимы

Система имеет множество решений

В этом случае решение состоит из частного решения и решения системы $A \mathbf x \not= \mathbf 0 $. Другими словами, это означает, что нуль-пространство содержит не только нулевой вектор, а значит столбцы матрицы линейно зависимы и $ r < n $.

линейно зависимые столбцы

Теперь приведем пример, иллюстрирующий применение матрицы для моделирования физического процесса, а также посмотрим как подпространства такой матрицы одновременно характеризуют свойства этого процесса.