Базис и размерность 📐
В прошлых двух уроках мы разобрали инструменты по отдельности. Урок про векторные пространства объяснил, какие объекты вообще имеют право называться векторами, и показал, что подпространство — это не обязательно «прямая или плоскость в $\mathbb{R}^3$»: подпространством оказывается и множество решений однородной системы, и множество симметричных матриц, и множество многочленов, обращающихся в ноль в заданной точке. Урок про линейную зависимость дал критерий: как отличить набор векторов, в котором есть лишние, от набора, в котором лишних нет.
Но обоих инструментов по отдельности не хватает для главного вопроса. Вопрос звучит так: как описать целое бесконечное пространство конечным списком? Плоскость содержит бесконечно много точек, множество многочленов степени не выше третьей — бесконечно много многочленов, ядро матрицы — бесконечно много решений. Перечислить их нельзя. Но задать их все конечным набором «образующих» — можно, и мы это уже делали. Именно этим была фундаментальная система решений в уроке про однородные системы: $n - r$ векторов, через которые выражаются все решения сразу.
Тогда мы пользовались ФСР как рецептом, честно оговорив, что теория за ним пока не построена. Почему в ней ровно $n - r$ векторов, а не $n - r + 1$? Почему у двух людей, решавших одну систему разными путями, получаются разные ФСР — и обе правильные? Почему количество векторов при этом всё равно совпадает? На все эти вопросы ответ даёт одно понятие, и это понятие — базис.
Базис — это минимальный набор, которого достаточно, чтобы получить всё пространство. Слово «минимальный» здесь не украшение: как только набор становится минимальным, происходит чудо, ради которого всё и затевалось. Каждый вектор пространства раскладывается по базису единственным образом. Значит, вектор можно заменить на столбец чисел — коэффициентов этого разложения. Абстрактный многочлен, абстрактная матрица, абстрактная функция превращаются в обычный столбец, с которым умеет работать метод Гаусса. Вся линейная алгебра сводится к арифметике ровно в этот момент.
И тут же вылезает вторая половина сюжета, которая для практики важнее первой. Базис — не один. Их бесконечно много, и координаты одного и того же вектора в разных базисах разные. Вектор — объективная вещь; координаты — то, что зависит от нашего выбора системы отсчёта. Поэтому фраза «вектор $(3, 5)$» строго говоря неполна: надо уточнять, в каком базисе. И поэтому в прикладных задачах смена базиса — не формальность, а рабочий приём: одни и те же данные в удачно выбранном базисе становятся проще, разреженнее, короче. На этом стоят JPEG, вейвлет-фильтры, разреженное кодирование и вообще всё, что называется «хорошим представлением данных».
Третье, что появится в этом уроке, — число. Все базисы одного пространства состоят из одинакового количества векторов, и это количество называется размерностью. Утверждение выглядит очевидно, но очевидным не является: его нужно доказать, и доказательство мы разберём полностью, потому что оно и есть центральная теорема темы. Именно размерность даёт нам право говорить «плоскость двумерна», «пространство многочленов степени не выше третьей четырёхмерно», «размерность ядра равна $n - r$» — то есть превращать расплывчатое «сколько там степеней свободы» в точное целое число.
🎯 Ты узнаешь:
-
Что такое базис: два требования — независимость и порождаемость — и почему набор, у которого выполнено только одно из них, базисом не является
-
Почему разложение по базису единственно, как это доказывается и почему единственность равносильна тому, что система является базисом
-
Что такое координаты вектора в базисе, как их считать и почему у одного и того же вектора в разных базисах координаты разные
-
Что такое размерность, почему все базисы одного пространства равномощны и как это доказывается через основную лемму о двух системах
-
Размерности конкретных пространств: $\mathbb{R}^n$, матрицы, многочлены, симметричные матрицы, матрицы со следом ноль — и почему пространство функций бесконечномерно
-
Как искать базис на практике: базис линейной оболочки, базис суммы и пересечения подпространств, и почему ФСР — это в точности базис ядра
-
Как строится матрица перехода, почему координаты пересчитываются обратной матрицей и где на этом месте путаются почти все
-
Формулу Грассмана $\dim(U + W) = \dim U + \dim W - \dim(U \cap W)$ и что она даёт на практике
-
Где размерность и смена базиса работают в машинном обучении: степени свободы модели, DCT и JPEG, разреженное кодирование, размерность эмбеддингов, эффективная размерность данных
История: откуда это взялось?
Понятие базиса складывалось почти сто лет, и почти всё это время у него не было ни имени, ни определения — были только вычисления, в которых оно неявно присутствовало.
Первым, кто увидел общую картину, был немецкий гимназический учитель Герман Грассман. В 1844 году он издал книгу «Die lineale Ausdehnungslehre» («Учение о линейном протяжении»), в которой построил теорию $n$-мерных пространств задолго до того, как это стало общепринятым. Там впервые появились в явном виде понятия линейной независимости, системы образующих и размерности как числа независимых элементов. Там же — формула, которую мы разберём в конце урока и которая до сих пор носит его имя: размерность суммы двух подпространств равна сумме размерностей минус размерность пересечения.
Книгу не заметили. Грассман писал крайне тяжёлым, философским языком, с собственной терминологией, и математическое сообщество её попросту не прочитало. Второе, переработанное издание 1862 года разошлось не лучше. Разочарованный Грассман переключился на другое — и добился большого успеха уже как санскритолог: его словарь к «Ригведе», изданный в 1873 году, стал классическим и переиздаётся до сих пор. Математическую же его работу оценили только к концу XIX века, когда те же идеи независимо переоткрыли другие.
Строгую аксиоматику дал итальянец Джузеппе Пеано в книге «Calcolo geometrico secondo l'Ausdehnungslehre di H. Grassmann» (1888). В последней главе он перечислил аксиомы линейной системы почти в том виде, в каком их пишут сегодня, ввёл размерность как максимальное число независимых элементов и — что особенно показательно — сразу привёл пример пространства, в котором такого конечного числа нет: пространство функций. Книга Пеано тоже прошла почти незамеченной; современная формулировка аксиом вошла в обиход после того, как Герман Вейль воспроизвёл их в 1918 году в книге «Raum, Zeit, Materie», написанной как математическое сопровождение общей теории относительности.
Ключевой технический результат урока — доказательство того, что все базисы равномощны — обычно связывают с леммой о замене (Austauschsatz) Эрнста Штейница (1913), хотя по существу это рассуждение есть уже во втором издании Грассмана. Идея леммы простая до наглости: если каждый вектор одной системы выражается через другую, то первая не может быть длиннее второй. Всё остальное — следствия.
Отдельная линия — бесконечномерный случай. В 1905 году Георг Гамель доказал, что базис существует у любого векторного пространства, в том числе у $\mathbb{R}$ как пространства над полем рациональных чисел. Такой базис называют базисом Гамеля; он бесконечен, несчётен, и построить его явно невозможно — доказательство опирается на аксиому выбора и лишь утверждает существование. Для функциональных пространств оказалось удобнее другое понятие: Юлиуш Шаудер в 1927 году ввёл базис, в котором разложение — не конечная сумма, а сходящийся ряд. Именно в этом смысле базисом является тригонометрическая система, с которой за сто лет до того работал Жозеф Фурье («Théorie analytique de la chaleur», 1822): он раскладывал произвольную функцию в бесконечный ряд по синусам и косинусам, не имея ни слова «базис», ни понятия пространства функций.
Само слово «базис» происходит от греческого βάσις — «основание», «то, на чём стоят». Термин прижился именно в этом значении: базис — не сами объекты, а опора, относительно которой они описываются. Смена опоры не меняет объект, но меняет его описание — эта мысль и будет главной в нашем уроке.
Что такое базис: два требования и почему нужны оба
Начнём с определения, а потом разберём каждое из двух требований по отдельности — с примерами того, что ломается, если убрать любое из них.
Определение: Система векторов $e_1, e_2, \dots, e_n$ векторного пространства $V$ называется базисом этого пространства, если выполнены два условия:
- система линейно независима;
- система порождает $V$, то есть любой вектор $v \in V$ представляется в виде линейной комбинации $$v = x_1 e_1 + x_2 e_2 + \dots + x_n e_n$$ с некоторыми числами $x_1, \dots, x_n$.
Второе условие на языке прошлого урока записывается так: $\operatorname{span}(e_1, \dots, e_n) = V$. Систему, для которой оно выполнено, называют порождающей, или системой образующих.
Оба требования тянут в разные стороны, и в этом весь смысл. Порождаемость требует, чтобы векторов было достаточно много — иначе не всё пространство удастся собрать. Независимость требует, чтобы их было достаточно мало — иначе среди них найдётся лишний, выражающийся через остальные. Базис — это точка равновесия: убрать хоть один вектор нельзя (перестанет порождать), добавить хоть один тоже нельзя без потери качества (появится зависимость).
Интуиция: набор кубиков, из которых собирается всё
Представь конструктор. Базис — это набор деталей, обладающий двумя свойствами: из него можно собрать любую нужную фигуру (порождаемость) и в нём нет двух деталей, одна из которых собирается из других (независимость). Если деталей мало — некоторые фигуры собрать не удастся. Если деталей много и одна дублирует комбинацию других — конструктор избыточен: одну и ту же фигуру можно собрать несколькими способами, и «рецепт сборки» перестаёт быть однозначным.
Именно однозначность рецепта — то, ради чего нужны оба условия сразу. Мы докажем это строго в следующем разделе, а пока посмотрим, что происходит, если одно из условий нарушить.
Контрпример к первому требованию: независимость есть, порождаемости нет
Возьмём в $\mathbb{R}^2$ систему из одного вектора:
$$e_1 = (1, 0).$$Она линейно независима — один ненулевой вектор всегда независим (это свойство из прошлого урока). Но порождает она только множество $\{ t(1,0) \} $ — горизонтальную ось. Вектор $(0, 1)$ через $e_1$ не выражается: сколько ни умножай $(1,0)$ на число, вторая координата останется нулём. Значит, базисом $\mathbb{R}^2$ эта система не является.
Что практически ломается? Ровно то, что не всякий вектор получает координаты. У вектора $(3, 0)$ координата в системе $\{e_1\}$ есть — это число 3. А у вектора $(3, 1)$ координаты нет вообще: его невозможно записать в виде $x_1 e_1$. Описание получилось неполным.
То же самое в $\mathbb{R}^3$: система $(1, 0, 0), (0, 1, 0)$ независима, но порождает лишь плоскость $z = 0$. Внутри этой плоскости она — прекрасный базис (плоскости!), а вот базисом всего $\mathbb{R}^3$ не является. Отсюда важное наблюдение: быть базисом — свойство не системы самой по себе, а пары «система + пространство». Одна и та же система может быть базисом подпространства и не быть базисом объемлющего пространства.
Контрпример ко второму требованию: порождаемость есть, независимости нет
Теперь наоборот. Возьмём в $\mathbb{R}^2$ три вектора:
$$e_1 = (1, 0), \quad e_2 = (0, 1), \quad e_3 = (1, 1).$$Порождают ли они $\mathbb{R}^2$? Безусловно: уже первых двух хватает, чтобы собрать любой вектор $(a, b) = a e_1 + b e_2$, а третий ничего не портит. Но независимости нет: $e_3 = e_1 + e_2$, то есть
$$e_1 + e_2 - e_3 = 0$$— нетривиальная линейная комбинация, дающая нулевой вектор.
Что ломается здесь? Однозначность. Возьмём вектор $v = (3, 5)$ и разложим его двумя способами:
$$v = 3 e_1 + 5 e_2 + 0 \cdot e_3 = (3, 0) + (0, 5) + (0,0) = (3, 5),$$$$v = 2 e_1 + 4 e_2 + 1 \cdot e_3 = (2, 0) + (0, 4) + (1, 1) = (3, 5).$$Оба разложения верны, наборы коэффициентов $(3, 5, 0)$ и $(2, 4, 1)$ разные. И таких наборов бесконечно много: к любому решению можно прибавить $t \cdot (1, 1, -1)$, потому что этот вектор коэффициентов даёт нулевую комбинацию. «Координаты» вектора перестают быть определены — писать столбец чисел вместо вектора уже нельзя, потому что непонятно, какой именно столбец.
Контрпример к обоим требованиям сразу
Система
$$a_1 = (1, 2), \quad a_2 = (2, 4)$$в $\mathbb{R}^2$ проваливает оба пункта. Она зависима, так как $a_2 = 2a_1$. И она не порождает $\mathbb{R}^2$: все комбинации $c_1 a_1 + c_2 a_2 = (c_1 + 2c_2)(1,2)$ лежат на одной прямой, а вектор $(1, 0)$ на ней не лежит. Проверка через ранг: матрица
$$\begin{pmatrix} 1 & 2 \\ 2 & 4 \end{pmatrix}$$имеет ранг 1, а не 2.
Стандартный базис $\mathbb{R}^n$
Самый привычный пример базиса — тот, которым мы неявно пользуемся с первого урока про векторы.
Определение: Стандартным (каноническим) базисом пространства $\mathbb{R}^n$ называется система
$$e_1 = (1, 0, 0, \dots, 0), \quad e_2 = (0, 1, 0, \dots, 0), \quad \dots, \quad e_n = (0, 0, \dots, 0, 1),$$где у вектора $e_i$ на $i$-м месте стоит единица, а на остальных — нули.
Проверим оба условия. Порождаемость: для любого $v = (v_1, v_2, \dots, v_n)$ очевидным образом $v = v_1 e_1 + v_2 e_2 + \dots + v_n e_n$ — просто потому, что сложение векторов покоординатное. Независимость: если $x_1 e_1 + \dots + x_n e_n = 0$, то слева стоит вектор $(x_1, x_2, \dots, x_n)$, и равенство нулевому вектору означает $x_1 = \dots = x_n = 0$.
Отсюда сразу видно, почему запись вектора $\mathbb{R}^n$ через координаты кажется чем-то само собой разумеющимся: числа, из которых состоит вектор $\mathbb{R}^n$, — это и есть его координаты в стандартном базисе. Мы просто не задумывались об этом, потому что базис был один и он не менялся. Как только базисов станет несколько, различие «сам вектор» и «его координаты» станет принципиальным.
Разбор примеров
Пример 1. Проверка системы на базис в $\mathbb{R}^2$.
Является ли базисом $\mathbb{R}^2$ система $f_1 = (1, 1)$, $f_2 = (1, -1)$?
Составим матрицу из этих векторов как из столбцов и посчитаем определитель:
$$\det \begin{pmatrix} 1 & 1 \\ 1 & -1 \end{pmatrix} = 1 \cdot (-1) - 1 \cdot 1 = -2 \ne 0.$$Определитель ненулевой, значит ранг равен 2 — система независима (критерий из прошлого урока). Порождаемость: возьмём произвольный $(a, b)$ и решим систему $x_1 + x_2 = a$, $x_1 - x_2 = b$. Складывая и вычитая: $x_1 = \dfrac{a+b}{2}$, $x_2 = \dfrac{a-b}{2}$. Решение существует при любых $a, b$, значит любой вектор выражается. Система — базис.
Обрати внимание на структуру рассуждения: независимость проверялась рангом, а порождаемость — совместностью системы $F x = v$ для произвольной правой части. И то и другое сводится к одному числу — рангу матрицы $F$. Это не случайно, и скоро мы сформулируем это как критерий.
Пример 2. Система в $\mathbb{R}^3$ из двух векторов.
$$g_1 = (1, 2, 3), \quad g_2 = (0, 1, 4).$$Независима: ни один не кратен другому (первые координаты $1$ и $0$ сразу исключают пропорциональность). Но базисом $\mathbb{R}^3$ она быть не может при любом расположении векторов — двух векторов на трёхмерное пространство не хватит. Формально: любая комбинация $c_1 g_1 + c_2 g_2$ лежит в двумерной плоскости $\operatorname{span}(g_1, g_2)$, и вектор вне этой плоскости не получить. Например, вектор $(0,0,1)$: из $c_1 \cdot 1 + c_2 \cdot 0 = 0$ следует $c_1 = 0$, дальше из $c_2 \cdot 1 = 0$ следует $c_2 = 0$, и третья координата даёт $0 = 1$ — противоречие.
Зато $g_1, g_2$ — базис подпространства $U = \operatorname{span}(g_1, g_2)$, той самой плоскости. Внутри $U$ они и независимы, и порождают.
Пример 3. Базис в пространстве многочленов.
В пространстве $P_2$ многочленов степени не выше двух рассмотрим систему
$$q_1 = 1, \quad q_2 = x, \quad q_3 = x^2.$$Порождаемость по определению: любой многочлен степени не выше двух записывается как $a + bx + cx^2$, то есть как комбинация $a q_1 + b q_2 + c q_3$. Независимость: если $a + bx + cx^2 = 0$ как многочлен (то есть тождественно, при всех $x$), то все коэффициенты нулевые — многочлен, не равный тождественно нулю, имеет не более двух корней, а тут корней бесконечно много. Значит, $\{1, x, x^2\}$ — базис $P_2$. Его тоже называют стандартным.
Тот же приём работает в $P_n$: стандартный базис $\{1, x, x^2, \dots, x^n\}$ состоит из $n + 1$ многочлена.
Пример 4. Базис в пространстве матриц.
В пространстве $M_{2\times 2}$ всех матриц размера $2 \times 2$ возьмём четыре матрицы:
$$E_{11} = \begin{pmatrix} 1 & 0 \\ 0 & 0 \end{pmatrix}, \quad E_{12} = \begin{pmatrix} 0 & 1 \\ 0 & 0 \end{pmatrix}, \quad E_{21} = \begin{pmatrix} 0 & 0 \\ 1 & 0 \end{pmatrix}, \quad E_{22} = \begin{pmatrix} 0 & 0 \\ 0 & 1 \end{pmatrix}.$$Любая матрица $\begin{pmatrix} a & b \\ c & d \end{pmatrix}$ равна $a E_{11} + b E_{12} + c E_{21} + d E_{22}$ — порождаемость есть. Если такая комбинация равна нулевой матрице, то $a = b = c = d = 0$ — независимость есть. Базис, четыре элемента.
Эти матрицы называют матричными единицами. Полезно сразу заметить сходство со стандартным базисом $\mathbb{R}^4$: матрица $2 \times 2$ — это, по сути, четвёрка чисел, просто разложенная по клеткам квадрата, а не в строчку. Формально это соответствие мы обсудим в разделе про координаты.
Почему это важно
Определение базиса — это ответ на практический вопрос «сколько информации нужно, чтобы задать вектор». В $\mathbb{R}^{1000}$ вектор — это тысяча чисел, но если известно, что он лежит в подпространстве размерности 5, достаточно пяти чисел плюс один раз зафиксированный базис этого подпространства. Экономия в двести раз, и она не приблизительная, а точная: никакой информации не теряется.
Ровно этот механизм лежит под всеми методами понижения размерности в анализе данных. Датасет из тысячи признаков может фактически «жить» на пятимерном подпространстве, и тогда каждая строка честно кодируется пятью числами. Разница между «тысяча чисел» и «пять чисел плюс общий для всех базис» — это разница между сырым и сжатым представлением. Полный разбор того, как такой базис искать по самим данным, ждёт нас дальше по курсу; здесь нам важно понять сам механизм — почему базис вообще позволяет так делать.
И второе. Требование независимости — не педантизм. Именно оно превращает «какой-то способ выразить вектор» в «единственный способ», а значит делает координаты корректно определённым объектом. Это следующий раздел.
Единственность разложения по базису
Это первая теорема урока — короткая, но всё держится на ней.
Теорема о единственности разложения. Пусть $e_1, \dots, e_n$ — базис пространства $V$. Тогда каждый вектор $v \in V$ представляется в виде линейной комбинации базисных векторов единственным образом: если
$$v = x_1 e_1 + \dots + x_n e_n \quad \text{и} \quad v = y_1 e_1 + \dots + y_n e_n,$$то $x_1 = y_1$, $x_2 = y_2$, ..., $x_n = y_n$.
Доказательство. Существование хотя бы одного разложения — это в точности второе условие в определении базиса (порождаемость), тут доказывать нечего. Докажем единственность.
Пусть у вектора $v$ есть два разложения:
$$v = x_1 e_1 + x_2 e_2 + \dots + x_n e_n, \qquad v = y_1 e_1 + y_2 e_2 + \dots + y_n e_n.$$Вычтем второе равенство из первого. Слева получится $v - v = 0$, справа сгруппируем слагаемые при одинаковых базисных векторах:
$$0 = (x_1 - y_1)e_1 + (x_2 - y_2)e_2 + \dots + (x_n - y_n)e_n.$$Мы получили линейную комбинацию базисных векторов, равную нулевому вектору. Но система $e_1, \dots, e_n$ линейно независима — это первое условие в определении базиса. По определению независимости комбинация может равняться нулю только при всех нулевых коэффициентах:
$$x_1 - y_1 = 0, \quad x_2 - y_2 = 0, \quad \dots, \quad x_n - y_n = 0.$$Значит $x_i = y_i$ для всех $i$, то есть разложения совпали. $\blacksquare$
Доказательство занимает шесть строк, и в нём стоит отметить, где именно сработало каждое из двух условий. Порождаемость дала существование, независимость дала единственность. Убери независимость — и переход от «комбинация равна нулю» к «все коэффициенты нули» становится незаконным, а именно на нём всё держится.
Обратная сторона: единственность влечёт базис
Теорема допускает обращение, и это обращение полезно как альтернативное определение базиса.
Теорема (обратная). Пусть система $e_1, \dots, e_n$ такова, что каждый вектор $v \in V$ представляется в виде $v = x_1e_1 + \dots + x_ne_n$, причём единственным образом. Тогда $e_1, \dots, e_n$ — базис $V$.
Доказательство. Порождаемость дана в условии: каждый вектор представляется. Осталось проверить независимость.
Возьмём нулевой вектор. У него есть очевидное разложение — с нулевыми коэффициентами:
$$0 = 0 \cdot e_1 + 0 \cdot e_2 + \dots + 0 \cdot e_n.$$По условию разложение любого вектора единственно, в том числе и нулевого. Значит, никакого другого разложения нуля не существует. А это ровно и означает: если $c_1 e_1 + \dots + c_n e_n = 0$, то обязательно $c_1 = \dots = c_n = 0$ — то есть система линейно независима. Оба условия выполнены, система — базис. $\blacksquare$
Складывая обе теоремы, получаем удобную переформулировку:
Критерий базиса через единственность. Система векторов является базисом пространства $V$ тогда и только тогда, когда каждый вектор из $V$ раскладывается по ней ровно одним способом.
Иногда это определение даже удобнее исходного: оно одним условием заменяет два и явно указывает, ради чего базис вводится. И оно объясняет контрпримеры из прошлого раздела единым образом. У системы $\{(1,0)\}$ в $\mathbb{R}^2$ вектор $(3,1)$ не раскладывается ни одним способом — сломано существование. У системы $\{(1,0),(0,1),(1,1)\}$ вектор $(3,5)$ раскладывается многими способами — сломана единственность. Базис — ровно золотая середина: каждый вектор раскладывается, и ровно один раз.
Разбор примеров
Пример 1. Считаем, сколькими способами раскладывается вектор.
Возьмём в $\mathbb{R}^2$ систему $a_1 = (1, 0)$, $a_2 = (0, 1)$, $a_3 = (1, 1)$ и вектор $v = (3, 5)$. Найдём все разложения. Уравнения:
$$\begin{cases} c_1 + c_3 = 3 \\ c_2 + c_3 = 5 \end{cases}$$Две строки, три неизвестных, ранг равен 2, свободных переменных $3 - 2 = 1$. Полагая $c_3 = t$, получаем $c_1 = 3 - t$, $c_2 = 5 - t$. Разложений бесконечно много — по одному на каждое $t$. При $t = 0$ выходит $(3, 5, 0)$, при $t = 1$ — $(2, 4, 1)$, при $t = -2$ — $(5, 7, -2)$. Проверим последнее: $5(1,0) + 7(0,1) - 2(1,1) = (5 - 2,\ 7 - 2) = (3, 5)$. Верно.
Само число свободных параметров — это в точности размерность множества «коэффициентов нулевой комбинации», то есть ядра матрицы, составленной из наших векторов. Здесь ядро одномерно, порождается вектором $(1, 1, -1)$: действительно, $a_1 + a_2 - a_3 = 0$. Прибавление любого кратного этого вектора к набору коэффициентов даёт новое разложение того же $v$. Как только система становится независимой, ядро схлопывается в ноль, и разложение остаётся единственным.
Пример 2. Единственность в базисе многочленов.
В $P_2$ возьмём базис $\{1, x, x^2\}$ и многочлен $p(x) = 4 - 3x + 7x^2$. Разложение $p = 4 \cdot 1 + (-3) \cdot x + 7 \cdot x^2$ единственно: если бы нашлось второе, $p = a + bx + cx^2$, то вычитание дало бы $(4 - a) + (-3 - b)x + (7 - c)x^2 \equiv 0$, а тождественно нулевой многочлен имеет нулевые коэффициенты. Отсюда $a = 4$, $b = -3$, $c = 7$.
Пример 3. Что происходит в избыточной системе многочленов.
Добавим к базису $\{1, x, x^2\}$ четвёртый элемент $r(x) = 1 + x$. Система стала порождающей, но зависимой: $r = 1 \cdot 1 + 1 \cdot x + 0 \cdot x^2$. Теперь тот же $p(x) = 4 - 3x + 7x^2$ раскладывается по-разному:
$$p = 4 \cdot 1 - 3 \cdot x + 7 \cdot x^2 + 0 \cdot r, \qquad p = 3 \cdot 1 - 4 \cdot x + 7 \cdot x^2 + 1 \cdot r.$$Проверим второе: $3 - 4x + 7x^2 + (1 + x) = 4 - 3x + 7x^2$. Совпало. Однозначности нет — и это ровно та ситуация, в которой словосочетание «координаты многочлена» теряет смысл.
Почему это важно
Единственность разложения — это лицензия на замену объекта столбцом чисел. Пока разложение неоднозначно, такой замены сделать нельзя: непонятно, какой столбец писать. Как только базис зафиксирован, соответствие «вектор ↔ столбец» становится взаимно однозначным, и любые вычисления с абстрактными объектами (многочленами, матрицами, функциями) переводятся в вычисления со столбцами чисел — то есть в метод Гаусса, который мы уже умеем.
Есть и обратная, практическая сторона этой медали. В некоторых прикладных задачах неоднозначность разложения — не беда, а цель. Если взять «избыточный» набор образующих (в обработке сигналов такой набор называют фреймом или избыточным словарём), то каждый сигнал раскладывается многими способами, и среди них можно выбрать самый удобный — например, тот, где больше всего нулевых коэффициентов. На этом стоит разреженное кодирование, к которому мы вернёмся в разделе про машинное обучение. Но выбирать «удобное разложение» имеет смысл, только когда чётко понимаешь, что разложений много именно потому, что система зависима.
Координаты вектора в базисе
Теперь у нас есть право дать главное определение урока.
Определение: Пусть $e = (e_1, \dots, e_n)$ — базис пространства $V$ и $v \in V$. Числа $x_1, \dots, x_n$ из (единственного) разложения
$$v = x_1 e_1 + x_2 e_2 + \dots + x_n e_n$$называются координатами вектора $v$ в базисе $e$. Столбец
$$[v]_e = \begin{pmatrix} x_1 \\ x_2 \\ \vdots \\ x_n \end{pmatrix}$$называется координатным столбцом вектора $v$ в базисе $e$.
Обозначения бывают разные: $[v]_e$, $v_e$, $(x_1, \dots, x_n)_e$. Мы будем пользоваться первым. Важно, что базис в обозначении обязан присутствовать: без указания базиса координатный столбец не имеет смысла.
Порядок векторов в базисе тоже важен. Система $\{(1,1), (1,-1)\}$ и система $\{(1,-1), (1,1)\}$ состоят из одних и тех же векторов, но координаты в них разные — переставленные местами. Поэтому базис — это не множество, а упорядоченный набор; мы записываем его в скобках, а не в фигурных скобках, когда хотим это подчеркнуть.
Интуиция: базис — это система отсчёта
Вектор — объективный объект. Стрелка на плоскости существует независимо от того, какие оси мы нарисовали. Координаты — субъективны: это ответ на вопрос «сколько шагов вдоль первой оси и сколько вдоль второй». Поменяли оси — ответ изменился, стрелка осталась той же.
Эта разница до сих пор в курсе была невидима, потому что базис всегда был стандартным, и вектор $\mathbb{R}^n$ полностью отождествлялся со своим координатным столбцом. Сейчас различие становится существенным: одна и та же стрелка получает разные столбцы в разных базисах, и путать их — самая частая ошибка в теме.
Как считать координаты: это система линейных уравнений
Практическая сторона максимально знакомая. Пусть в $\mathbb{R}^n$ базис задан векторами $f_1, \dots, f_n$, и нужно найти координаты вектора $v$. Уравнение
$$x_1 f_1 + x_2 f_2 + \dots + x_n f_n = v$$в матричной форме записывается как
$$F x = v, \qquad F = \begin{pmatrix} | & | & & | \\ f_1 & f_2 & \dots & f_n \\ | & | & & | \end{pmatrix},$$где $F$ — матрица, столбцами которой являются базисные векторы (записанные в стандартном базисе). Это обычная квадратная система, и так как $f_1, \dots, f_n$ — базис, матрица $F$ невырождена, значит система имеет единственное решение
$$[v]_e = x = F^{-1} v.$$Иными словами, поиск координат — это решение системы линейных уравнений, чем мы занимались весь предыдущий блок. Никакой новой техники не требуется: Гаусс, Крамер или обратная матрица — что удобнее.
Отдельно проговорим важную деталь. В формуле $F x = v$ справа стоит вектор $v$, записанный в стандартном базисе. То есть на самом деле речь идёт о пересчёте координат из одного базиса (стандартного) в другой ($f$). Полностью эту мысль мы разовьём в разделе про матрицу перехода.
Разбор примеров
Пример 1. Координаты в $\mathbb{R}^2$: одна стрелка, два столбца.
Базис $f_1 = (1, 1)$, $f_2 = (1, -1)$, вектор $v = (5, 1)$.
Составляем систему $x_1 f_1 + x_2 f_2 = v$:
$$\begin{cases} x_1 + x_2 = 5 \\ x_1 - x_2 = 1 \end{cases}$$Складывая: $2x_1 = 6$, $x_1 = 3$. Тогда $x_2 = 5 - 3 = 2$. Проверка: $3(1,1) + 2(1,-1) = (3 + 2,\ 3 - 2) = (5, 1)$. Верно.
$$[v]_f = \begin{pmatrix} 3 \\ 2 \end{pmatrix}.$$А в стандартном базисе $e_1 = (1,0)$, $e_2 = (0,1)$ у того же вектора
$$[v]_e = \begin{pmatrix} 5 \\ 1 \end{pmatrix}.$$Один и тот же вектор, два разных координатных столбца. Это и есть главная мысль урока, и её стоит проговорить вслух: запись «$v = (5, 1)$» не описывает вектор полностью — она описывает его в стандартном базисе. В базисе $f$ тот же вектор «называется» $(3, 2)$.
Пример 2. Координаты в $\mathbb{R}^3$: дроби — это нормально.
Базис $f_1 = (1, 1, 0)$, $f_2 = (0, 1, 1)$, $f_3 = (1, 0, 1)$, вектор $v = (2, 3, 4)$.
Сначала убедимся, что это действительно базис. Матрица из столбцов:
$$F = \begin{pmatrix} 1 & 0 & 1 \\ 1 & 1 & 0 \\ 0 & 1 & 1 \end{pmatrix}, \qquad \det F = 1(1 \cdot 1 - 0 \cdot 1) - 0 + 1(1 \cdot 1 - 1 \cdot 0) = 1 + 1 = 2 \ne 0.$$Определитель ненулевой — система независима и (как мы вскоре докажем) автоматически является базисом $\mathbb{R}^3$.
Теперь координаты. Система $F x = v$:
$$\begin{cases} x_1 + x_3 = 2 \\ x_1 + x_2 = 3 \\ x_2 + x_3 = 4 \end{cases}$$Сложим все три уравнения: $2(x_1 + x_2 + x_3) = 9$, откуда $x_1 + x_2 + x_3 = \dfrac{9}{2}$. Вычитая из этого второе уравнение, получаем $x_3 = \dfrac{9}{2} - 3 = \dfrac{3}{2}$. Вычитая первое: $x_2 = \dfrac{9}{2} - 2 = \dfrac{5}{2}$. Вычитая третье: $x_1 = \dfrac{9}{2} - 4 = \dfrac{1}{2}$.
$$[v]_f = \begin{pmatrix} 1/2 \\ 5/2 \\ 3/2 \end{pmatrix}.$$Проверка:
$$\tfrac{1}{2}(1,1,0) + \tfrac{5}{2}(0,1,1) + \tfrac{3}{2}(1,0,1) = \left(\tfrac{1}{2} + \tfrac{3}{2},\ \tfrac{1}{2} + \tfrac{5}{2},\ \tfrac{5}{2} + \tfrac{3}{2}\right) = (2, 3, 4).$$Сошлось. Дробные координаты в «некрасивом» базисе — обычное дело, пугаться их не нужно.
Пример 3. Координаты многочлена в сдвинутом базисе.
В $P_2$ рассмотрим два базиса: стандартный $e = (1,\ x,\ x^2)$ и «сдвинутый» $g = (1,\ x - 1,\ (x-1)^2)$. Возьмём многочлен
$$p(x) = x^2 + 2x + 3.$$В стандартном базисе координаты читаются сразу: $[p]_e = (3, 2, 1)^T$ (свободный член, коэффициент при $x$, коэффициент при $x^2$).
Теперь разложим по $g$: ищем $a, b, c$ такие, что
$$p(x) = a + b(x - 1) + c(x-1)^2.$$Раскроем правую часть: $a + bx - b + c(x^2 - 2x + 1) = cx^2 + (b - 2c)x + (a - b + c)$. Приравниваем коэффициенты:
$$\begin{cases} c = 1 \\ b - 2c = 2 \\ a - b + c = 3 \end{cases} \quad\Longrightarrow\quad c = 1,\quad b = 4,\quad a = 3 + b - c = 6.$$$$[p]_g = \begin{pmatrix} 6 \\ 4 \\ 1 \end{pmatrix}.$$Проверка подстановкой $x = 2$: слева $p(2) = 4 + 4 + 3 = 11$; справа $6 + 4 \cdot 1 + 1 \cdot 1 = 11$. И при $x = 0$: слева $3$, справа $6 - 4 + 1 = 3$. Сходится.
Обрати внимание: столбцы $(3, 2, 1)$ и $(6, 4, 1)$ описывают один и тот же многочлен. Кстати, у координат в базисе $g$ есть красивый смысл: $a = p(1)$, $b = p'(1)$, $c = \dfrac{p''(1)}{2}$ — это коэффициенты формулы Тейлора в точке 1. Проверим: $p(1) = 1 + 2 + 3 = 6$ ✔, $p'(x) = 2x + 2$, $p'(1) = 4$ ✔, $p''(x) = 2$, $p''(1)/2 = 1$ ✔.
Пример 4. Координаты матрицы.
В $M_{2 \times 2}$ с базисом матричных единиц $(E_{11}, E_{12}, E_{21}, E_{22})$ у матрицы
$$A = \begin{pmatrix} 7 & -1 \\ 0 & 4 \end{pmatrix}$$координатный столбец — это просто её элементы, выписанные по строкам:
$$[A]_E = \begin{pmatrix} 7 \\ -1 \\ 0 \\ 4 \end{pmatrix}.$$Это и есть техническая суть того, как абстрактные пространства сводятся к $\mathbb{R}^n$: выбрали базис — получили словарь, переводящий объекты в столбцы чисел. Дальше любые вопросы про независимость, ранг, размерность решаются в $\mathbb{R}^n$ обычным Гауссом. Приём стандартный, и в заданиях мы им будем пользоваться постоянно: чтобы проверить независимость набора матриц или многочленов, надо выписать их координатные столбцы в любом удобном базисе и посчитать ранг.
Почему это важно
Координаты — точка, в которой абстрактная теория становится вычислимой. Пока мы говорим «многочлен», ни одна библиотека линейной алгебры нам не поможет. Как только мы говорим «столбец коэффициентов в базисе $1, x, x^2$» — работает всё: ранг, определитель, решение систем.
Практический смысл того, что координаты зависят от базиса, огромен и не сводится к формальности. В обработке сигналов один и тот же звуковой фрагмент — это либо длинный список амплитуд по времени (координаты в «базисе моментов времени»), либо список частотных коэффициентов (координаты в базисе Фурье). Это буквально один вектор в двух базисах. Только в первом представлении почти все координаты ненулевые, а во втором — большинство близки к нулю, и их можно выбросить почти без потери качества. Отсюда сжатие. Мы разберём этот сюжет подробно в ML-разделе.
Размерность и её корректность
У пространства $\mathbb{R}^3$ базисов бесконечно много. Стандартный $(1,0,0), (0,1,0), (0,0,1)$; наш недавний $(1,1,0), (0,1,1), (1,0,1)$; любая тройка независимых векторов. Все они разные, но в каждом ровно три вектора. Хочется сказать «потому что пространство трёхмерно» — но это рассуждение по кругу: трёхмерным мы и хотим его назвать за то, что в базисе три вектора.
Поэтому порядок такой: сначала докажем, что число векторов во всех базисах одинаково, и только потом дадим этому числу имя.
Определение: Размерностью конечномерного векторного пространства $V$ называется число векторов в каком-нибудь его базисе. Обозначение: $\dim V$.
Пространство называется конечномерным, если у него есть базис из конечного числа векторов, и бесконечномерным в противном случае. Отдельно полагают $\dim \{0\} = 0$: у нулевого пространства базис пуст.
Определение сформулировано через «какой-нибудь базис» — и именно поэтому требует обоснования. Если бы у одного пространства нашлись базис из трёх векторов и базис из четырёх, определение было бы бессмысленным: размерность зависела бы от того, какой базис мы взяли. Такое обоснование в математике называют корректностью определения, и сейчас мы его проведём.
Основная лемма о двух системах
Всё держится на одном утверждении, которое стоит запомнить в словесной формулировке: независимая система не может быть длиннее порождающей.
Основная лемма (лемма о замене). Пусть в пространстве $V$ даны две системы векторов:
$$a_1, a_2, \dots, a_k \quad \text{— линейно независимая,}$$$$b_1, b_2, \dots, b_m \quad \text{— такая, что каждый } a_i \text{ выражается через неё линейно.}$$
Тогда $k \le m$.
Доказательство. Каждый вектор $a_i$ по условию выражается через $b$-систему:
$$a_i = c_{1i} b_1 + c_{2i} b_2 + \dots + c_{mi} b_m, \qquad i = 1, \dots, k.$$Числа $c_{ji}$ соберём в матрицу $C$ размера $m \times k$: в $i$-м столбце стоят коэффициенты разложения вектора $a_i$.
Предположим противное: пусть $k > m$. Рассмотрим произвольную линейную комбинацию векторов $a_i$ с коэффициентами $x_1, \dots, x_k$ и подставим в неё разложения:
$$x_1 a_1 + \dots + x_k a_k = \sum_{i=1}^{k} x_i \left( \sum_{j=1}^{m} c_{ji} b_j \right) = \sum_{j=1}^{m} \left( \sum_{i=1}^{k} c_{ji} x_i \right) b_j.$$Мы просто поменяли порядок суммирования и сгруппировали слагаемые при каждом $b_j$. Теперь потребуем, чтобы коэффициент при каждом $b_j$ обратился в ноль:
$$\sum_{i=1}^{k} c_{ji} x_i = 0, \qquad j = 1, \dots, m.$$Это однородная система линейных уравнений с матрицей $C$: $m$ уравнений и $k$ неизвестных $x_1, \dots, x_k$. По предположению $k > m$ — неизвестных больше, чем уравнений. Из урока про однородные системы мы знаем следствие: в такой ситуации нетривиальное решение существует всегда, при любой матрице, потому что $\operatorname{rank} C \le m < k$.
Возьмём это нетривиальное решение $(x_1, \dots, x_k) \ne (0, \dots, 0)$. Для него все коэффициенты при $b_j$ равны нулю, значит
$$x_1 a_1 + x_2 a_2 + \dots + x_k a_k = 0 \cdot b_1 + \dots + 0 \cdot b_m = 0,$$причём не все $x_i$ нулевые. Это в точности означает, что система $a_1, \dots, a_k$ линейно зависима — противоречие с условием.
Значит, предположение $k > m$ неверно, и $k \le m$. $\blacksquare$
Обрати внимание, насколько экономно устроено доказательство: единственный содержательный шаг — ссылка на следствие про «уравнений меньше, чем неизвестных». Ту самую фразу, которая в уроке про однородные системы выглядела почти тавтологией («ранг не больше числа строк — что тут доказывать»), мы только что превратили в фундамент всей теории размерности.
Словесная формулировка, которую стоит держать в голове: чтобы выразить $k$ независимых векторов, нужно не меньше $k$ образующих. Независимость — это «плотность информации»: $k$ независимых векторов несут $k$ различных направлений, и меньшим числом образующих их не покрыть.
Теорема о корректности размерности
Теорема. Все базисы конечномерного векторного пространства $V$ состоят из одного и того же числа векторов.
Доказательство. Пусть $e_1, \dots, e_n$ и $f_1, \dots, f_m$ — два базиса пространства $V$. Применим лемму дважды.
Первый раз. Система $e_1, \dots, e_n$ независима (она базис). Система $f_1, \dots, f_m$ порождает $V$, значит через неё выражается любой вектор, в том числе каждый $e_i$. Условия леммы выполнены с $a = e$, $b = f$, откуда
$$n \le m.$$Второй раз. Меняем роли. Система $f_1, \dots, f_m$ независима; система $e_1, \dots, e_n$ порождает $V$, значит через неё выражается каждый $f_j$. По лемме
$$m \le n.$$Из $n \le m$ и $m \le n$ следует $n = m$. $\blacksquare$
Вот и всё. Теперь определение размерности корректно: какой базис ни возьми, число векторов в нём одно и то же, и его можно объявить характеристикой самого пространства.
Три следствия, которые экономят время
Из леммы вытекают три утверждения, каждым из которых пользуются постоянно.
Следствие 1. В $n$-мерном пространстве любые $n + 1$ векторов линейно зависимы. Тем более зависимы любые $n + 2$, $n + 3$ и так далее.
Доказательство. Пусть $\dim V = n$, то есть в $V$ есть базис из $n$ векторов; он порождает $V$. Если бы данные $n+1$ векторов были независимы, лемма дала бы $n + 1 \le n$ — противоречие. $\blacksquare$
Частный случай, который встречался в прошлом уроке: любые $n+1$ векторов в $\mathbb{R}^n$ зависимы. Теперь понятно, откуда это берётся, и понятно, что то же верно в любом $n$-мерном пространстве — например, любые пять многочленов степени не выше трёх обязательно зависимы, потому что $\dim P_3 = 4$.
Следствие 2. В $n$-мерном пространстве $V$ любые $n$ линейно независимых векторов образуют базис. Проверять порождаемость не нужно.
Доказательство. Пусть $a_1, \dots, a_n$ независимы в $V$, $\dim V = n$. Возьмём произвольный вектор $v \in V$ и рассмотрим систему $a_1, \dots, a_n, v$ — в ней $n + 1$ вектор, значит по следствию 1 она зависима. Существует нетривиальная комбинация
$$c_1 a_1 + \dots + c_n a_n + c\, v = 0.$$Здесь обязательно $c \ne 0$: если бы $c = 0$, осталась бы нетривиальная комбинация $c_1a_1 + \dots + c_na_n = 0$, что противоречит независимости системы $a$. Раз $c \ne 0$, можно поделить:
$$v = -\frac{c_1}{c} a_1 - \dots - \frac{c_n}{c} a_n.$$Значит, произвольный вектор $v$ выражается через $a_1, \dots, a_n$, то есть система порождает $V$. Вместе с независимостью это даёт базис. $\blacksquare$
Это следствие — главная практическая экономия урока. Чтобы проверить, что тройка векторов в $\mathbb{R}^3$ — базис, достаточно посчитать один определитель. Ненулевой определитель означает независимость, а количество векторов совпадает с размерностью — порождаемость получается бесплатно. Никаких «а теперь докажем, что любой вектор выражается» писать не нужно.
Следствие 3. В $n$-мерном пространстве любая порождающая система из $n$ векторов является базисом. Проверять независимость не нужно.
Доказательство. Пусть $b_1, \dots, b_n$ порождают $V$ и предположим, что они зависимы. Тогда один из них выражается через остальные, и его можно выбросить, не потеряв порождаемости: оставшиеся $n - 1$ векторов по-прежнему порождают $V$. Но базис $V$ состоит из $n$ независимых векторов, каждый из которых выражается через порождающую систему из $n-1$ элементов; лемма даёт $n \le n - 1$ — противоречие. Значит, система независима, а вместе с порождаемостью — базис. $\blacksquare$
Следствия 2 и 3 вместе означают: если число векторов уже совпало с размерностью, достаточно проверить любое одно из двух условий. Это симметричный и очень удобный факт.
Теорема о дополнении до базиса
Ещё один результат, без которого не обойтись в задачах.
Теорема о дополнении. Пусть $\dim V = n$ и $a_1, \dots, a_k$ — линейно независимая система в $V$, где $k < n$. Тогда её можно дополнить до базиса $V$: существуют векторы $a_{k+1}, \dots, a_n$ такие, что вся система $a_1, \dots, a_n$ — базис.
Доказательство. Раз $k < n$, система $a_1, \dots, a_k$ не может порождать $V$: если бы порождала, она была бы базисом из $k$ векторов, и по теореме о корректности $k = n$, что противоречит $k < n$. Значит, найдётся вектор $a_{k+1} \in V$, не выражающийся через $a_1, \dots, a_k$.
Система $a_1, \dots, a_k, a_{k+1}$ независима. Действительно, пусть $c_1 a_1 + \dots + c_k a_k + c\,a_{k+1} = 0$. Если $c \ne 0$, то $a_{k+1}$ выражается через остальные — противоречие с выбором. Значит $c = 0$, и остаётся $c_1a_1 + \dots + c_ka_k = 0$, откуда все $c_i = 0$ по независимости исходной системы.
Мы увеличили независимую систему на один вектор. Повторяя шаг, получаем независимые системы из $k+1$, $k+2$, ... векторов. Процесс не может продолжаться бесконечно: по следствию 1 независимых систем длиннее $n$ в $V$ не бывает. Значит, на шаге $n$ мы получим независимую систему из $n$ векторов, а она по следствию 2 — базис. $\blacksquare$
Практически дополнение делают так: к имеющимся векторам приписывают подходящие векторы стандартного базиса и проверяют ранг. Разбор техники — в примерах ниже и в заданиях.
Следствие 4 (о подпространстве). Если $U$ — подпространство конечномерного пространства $V$, то $\dim U \le \dim V$, причём $\dim U = \dim V$ равносильно $U = V$.
Доказательство. Базис $U$ — независимая система в $V$, поэтому по следствию 1 в нём не больше $\dim V$ векторов, откуда $\dim U \le \dim V$. Если $\dim U = \dim V = n$, то базис $U$ — независимая система из $n$ векторов в $V$, а по следствию 2 она базис всего $V$; значит, $U = \operatorname{span}(\text{базис } U) = V$. $\blacksquare$
Это следствие часто используют как быструю проверку: если ты нашёл в подпространстве $U \subseteq \mathbb{R}^4$ четыре независимых вектора, то $U$ — это всё $\mathbb{R}^4$, и никакого нетривиального условия на него нет.
Разбор примеров
Пример 1. Проверка тройки в $\mathbb{R}^3$ — один определитель.
Является ли базисом $\mathbb{R}^3$ система $(2, 1, 0)$, $(1, 3, 1)$, $(0, 1, 2)$?
$$\det \begin{pmatrix} 2 & 1 & 0 \\ 1 & 3 & 1 \\ 0 & 1 & 2 \end{pmatrix} = 2(3 \cdot 2 - 1 \cdot 1) - 1(1 \cdot 2 - 1 \cdot 0) + 0 = 2 \cdot 5 - 2 = 8 \ne 0.$$Определитель не равен нулю, значит ранг равен 3 и система независима. Векторов ровно три, $\dim \mathbb{R}^3 = 3$, по следствию 2 система — базис. Всё, ответ получен одним вычислением.
Пример 2. Четыре многочлена в $P_2$ — зависимы без вычислений.
Система $1 + x$, $x - x^2$, $2 + 3x$, $x^2$ в пространстве $P_2$. Здесь четыре элемента, а $\dim P_2 = 3$, потому что стандартный базис $\{1, x, x^2\}$ состоит из трёх многочленов. По следствию 1 система зависима — и никакие вычисления не нужны.
Если всё же интересно найти конкретную зависимость: $(2 + 3x) = 2(1 + x) + (x - x^2) + x^2$. Проверим: $2 + 2x + x - x^2 + x^2 = 2 + 3x$. Совпало.
Пример 3. Дополнение до базиса $\mathbb{R}^3$.
Дополнить систему $a_1 = (1, 1, 1)$, $a_2 = (1, 2, 3)$ до базиса $\mathbb{R}^3$.
Векторы независимы (не пропорциональны). Нужен третий вектор, не лежащий в плоскости $\operatorname{span}(a_1, a_2)$. Попробуем $e_1 = (1, 0, 0)$:
$$\det \begin{pmatrix} 1 & 1 & 1 \\ 1 & 2 & 0 \\ 1 & 3 & 0 \end{pmatrix} = 1 \cdot (2 \cdot 0 - 0 \cdot 3) - 1(1 \cdot 0 - 0 \cdot 1) + 1(1 \cdot 3 - 2 \cdot 1) = 0 - 0 + 1 = 1 \ne 0.$$(Здесь векторы записаны столбцами: первый столбец — $a_1$, второй — $a_2$, третий — $e_1$.) Определитель ненулевой, значит система $a_1, a_2, e_1$ независима и по следствию 2 — базис.
Метод перебора кандидатов из стандартного базиса работает всегда: хотя бы один из $e_1, \dots, e_n$ обязательно подойдёт, потому что если бы все они выражались через уже имеющиеся векторы, то и всё пространство выражалось бы, а этого быть не может при $k < n$.
Пример 4. Размерность подпространства решений.
Возьмём подпространство $U \subseteq \mathbb{R}^4$, заданное одним уравнением $x_1 - x_2 + 2x_3 - x_4 = 0$. Это ядро матрицы $A = (1\ \ {-1}\ \ 2\ \ {-1})$ размера $1 \times 4$. Ранг равен 1, дефект $4 - 1 = 3$, значит в ФСР три вектора и $\dim U = 3$. По следствию 4 имеем $3 < 4$, то есть $U \ne \mathbb{R}^4$ — что и понятно, ведь вектор $(1,0,0,0)$ уравнению не удовлетворяет.
Почему это важно
Размерность — это число степеней свободы, выраженное одним целым числом. И то, что это число корректно определено, — не мелочь. Именно оно позволяет говорить фразы вида «в этом наборе данных три независимых направления» и быть уверенным, что три — это объективная характеристика данных, а не следствие того, как мы их разложили. В уроке про однородные системы мы утверждали, что в ФСР всегда ровно $n - r$ векторов при любом способе построения; теперь это утверждение доказано полностью: разные ФСР — разные базисы одного и того же ядра, а все базисы одного пространства равномощны.
Следствия 1–3 — рабочие инструменты, которые экономят половину вычислений в задачах. Формула «посчитал число векторов, сравнил с размерностью, проверил одно условие вместо двух» проходит через все задания этого урока и всю дальнейшую линейную алгебру.
Размерности конкретных пространств
Теперь пройдёмся по зоопарку пространств из урока 168 и посчитаем размерность каждого. Схема везде одна: предъявить базис и посчитать в нём векторы.
Пространство $\mathbb{R}^n$
$$\dim \mathbb{R}^n = n.$$Базис — стандартный $e_1, \dots, e_n$, в нём $n$ векторов. Всё, что мы называли «$n$-мерным пространством» на интуитивном уровне, теперь получило строгое подтверждение: число в названии — это действительно размерность.
Частные случаи: $\dim \mathbb{R}^1 = 1$ (прямая), $\dim \mathbb{R}^2 = 2$ (плоскость), $\dim \mathbb{R}^3 = 3$.
Пространство матриц $m \times n$
$$\dim M_{m \times n} = mn.$$Базис — матричные единицы $E_{ij}$, у которых на месте $(i, j)$ стоит единица, а на остальных нули. Их ровно $mn$ штук — по числу клеток. Любая матрица раскладывается по ним однозначно: коэффициент при $E_{ij}$ — это элемент $a_{ij}$.
Примеры: $\dim M_{2 \times 2} = 4$, $\dim M_{3 \times 3} = 9$, $\dim M_{2 \times 5} = 10$.
Заметим важное: пространство матриц $2 \times 2$ и пространство $\mathbb{R}^4$ имеют одинаковую размерность 4 — и, как следствие, устроены одинаково с точки зрения линейной алгебры. Выбор базиса задаёт между ними «словарь», переводящий матрицу в четвёрку чисел. Именно поэтому все задачи про матрицы мы решаем, разложив их в столбцы: сама «квадратность» матрицы для вопросов о независимости и размерности не играет никакой роли.
Пространство многочленов степени не выше $n$
$$\dim P_n = n + 1.$$Базис — $1, x, x^2, \dots, x^n$. Векторов $n + 1$, а не $n$: не забывай про константу. Это классическая арифметическая ловушка, на которой спотыкаются постоянно.
Примеры: $\dim P_1 = 2$ (линейные функции $a + bx$), $\dim P_2 = 3$, $\dim P_3 = 4$, $\dim P_5 = 6$.
Отдельно проговорим, почему множество многочленов ровно степени $n$ (без «не выше») пространством не является: сумма $x^2$ и $-x^2 + x$ имеет степень 1, а не 2, — замкнутости по сложению нет. Так что вопрос «какая размерность у пространства многочленов степени 3» некорректен; корректен вопрос про степень не выше 3.
Симметричные матрицы
$$\dim \{\, A \in M_{n \times n} : A^T = A \,\} = \frac{n(n+1)}{2}.$$Определение (напоминание): матрица $A$ называется симметричной, если $A^T = A$, то есть $a_{ij} = a_{ji}$ для всех $i, j$.
Посчитаем. Симметричная матрица полностью определяется тем, что стоит на главной диагонали и выше неё: элементы ниже диагонали получаются отражением. На диагонали $n$ свободных чисел, над диагональю $\dfrac{n^2 - n}{2}$, всего
$$n + \frac{n^2 - n}{2} = \frac{2n + n^2 - n}{2} = \frac{n(n+1)}{2}.$$Базис строится явно. Для диагонали берём матрицы $E_{ii}$ ($n$ штук). Для каждой пары $i < j$ берём матрицу $S_{ij} = E_{ij} + E_{ji}$ — с единицами в двух симметричных клетках. Например, при $n = 2$:
$$\begin{pmatrix} 1 & 0 \\ 0 & 0 \end{pmatrix}, \qquad \begin{pmatrix} 0 & 0 \\ 0 & 1 \end{pmatrix}, \qquad \begin{pmatrix} 0 & 1 \\ 1 & 0 \end{pmatrix}$$— три матрицы, и $\dfrac{2 \cdot 3}{2} = 3$. Верно. При $n = 3$ получаем $\dfrac{3 \cdot 4}{2} = 6$: три диагональные единицы и три «парные» матрицы для клеток $(1,2)$, $(1,3)$, $(2,3)$.
Аналогично считается размерность кососимметричных матриц ($A^T = -A$): диагональ у них обязательно нулевая (из $a_{ii} = -a_{ii}$ следует $a_{ii}=0$), свободны только элементы выше диагонали, значит размерность равна $\dfrac{n(n-1)}{2}$. При $n = 3$ это 3.
Проверим на согласованность: $6 + 3 = 9 = \dim M_{3\times3}$. Это не совпадение — почему именно так, ты выяснишь в задании 28.
Матрицы с нулевым следом
$$\dim \{\, A \in M_{n \times n} : \operatorname{tr} A = 0 \,\} = n^2 - 1.$$Определение (напоминание): следом квадратной матрицы называется сумма её диагональных элементов: $\operatorname{tr} A = a_{11} + a_{22} + \dots + a_{nn}$.
Логика такая. Условие $\operatorname{tr} A = 0$ — это одно линейное уравнение на $n^2$ элементов матрицы, причём нетривиальное (например, $E_{11}$ ему не удовлетворяет). Одно нетривиальное линейное условие срезает ровно одну степень свободы: получается ядро матрицы $1 \times n^2$ ранга 1, размерность ядра $n^2 - 1$.
Явный базис при $n = 2$ (размерность $4 - 1 = 3$):
$$\begin{pmatrix} 1 & 0 \\ 0 & -1 \end{pmatrix}, \qquad \begin{pmatrix} 0 & 1 \\ 0 & 0 \end{pmatrix}, \qquad \begin{pmatrix} 0 & 0 \\ 1 & 0 \end{pmatrix}.$$Все три имеют нулевой след; независимость видна сразу — у каждой «своя» клетка, которую остальные не задевают (у первой это диагональ, у второй правый верхний угол, у третьей левый нижний). Порождаемость: матрица $\begin{pmatrix} a & b \\ c & -a \end{pmatrix}$ равна $a \cdot$(первая)$\,+\,b \cdot$(вторая)$\,+\,c \cdot$(третья).
Тот же приём годится для любого подпространства, заданного линейными условиями: каждое независимое линейное условие уменьшает размерность на единицу. Подпространство $\{x \in \mathbb{R}^4 : x_1 + x_2 + x_3 + x_4 = 0\}$ имеет размерность $4 - 1 = 3$; подпространство, заданное двумя независимыми уравнениями, — размерность $4 - 2 = 2$. Формально это просто «размерность ядра равна $n - r$», где $r$ — ранг матрицы условий.
Многочлены с условием
Подпространство $W = \{\, p \in P_3 : p(1) = 0 \,\}$ (многочлены степени не выше трёх, обращающиеся в ноль в точке 1).
Условие $p(1) = 0$ для $p = a_0 + a_1x + a_2x^2 + a_3x^3$ записывается как $a_0 + a_1 + a_2 + a_3 = 0$ — одно нетривиальное линейное уравнение на четыре коэффициента. Значит
$$\dim W = 4 - 1 = 3.$$Базис можно предъявить красиво: $x - 1$, $x^2 - 1$, $x^3 - 1$. Каждый из них обращается в ноль при $x = 1$; независимость видна по старшим степеням (в комбинации $c_1(x-1) + c_2(x^2-1) + c_3(x^3-1)$ коэффициент при $x^3$ равен $c_3$, при $x^2$ равен $c_2$, при $x$ равен $c_1$ — все обязаны быть нулями).
Ещё более наглядный базис: $x - 1$, $x(x-1)$, $x^2(x-1)$ — все делятся на $(x-1)$, что и означает корень в единице.
Пример бесконечномерного пространства
Теперь пример пространства, у которого конечного базиса не существует.
Возьмём $F$ — пространство всех функций $f: \mathbb{R} \to \mathbb{R}$ (или, если хочется поменьше экзотики, пространство всех многочленов $P$ без ограничения на степень). Утверждение: $P$ бесконечномерно.
Доказательство. Предположим противное: пусть у $P$ есть базис из $N$ многочленов. Обозначим через $d$ наибольшую из их степеней. Любая линейная комбинация этих многочленов имеет степень не выше $d$ — сложение и умножение на числа степень не повышают. Значит, многочлен $x^{d+1}$ через базис не выражается, и порождаемости нет. Противоречие. $\blacksquare$
По-другому: система $1, x, x^2, x^3, \dots$ бесконечна и линейно независима — любая её конечная подсистема независима, потому что тождественно нулевой многочлен имеет нулевые коэффициенты. А в конечномерном пространстве размерности $n$ независимых систем длиннее $n$ не бывает (следствие 1). Значит, конечной размерности у $P$ нет.
Пространство функций устроено «ещё бесконечнее»: у него нет даже счётного базиса в обычном смысле. Именно поэтому в анализе пользуются другим понятием — базисом, в котором разложение является не конечной суммой, а сходящимся рядом. Ряд Фурье — ровно такой случай: функция раскладывается по бесконечной системе синусов и косинусов. Здесь мы этой техникой пользоваться не будем, но знать про существование двух разных понятий базиса полезно: в линейной алгебре разложение — всегда конечная сумма.
Сводная таблица
| Пространство | Базис | Размерность |
|---|---|---|
| $\mathbb{R}^n$ | $e_1, \dots, e_n$ | $n$ |
| $M_{m \times n}$ | матричные единицы $E_{ij}$ | $mn$ |
| $P_n$ (степень $\le n$) | $1, x, \dots, x^n$ | $n + 1$ |
| симметричные $n \times n$ | $E_{ii}$ и $E_{ij} + E_{ji}$ | $\dfrac{n(n+1)}{2}$ |
| кососимметричные $n \times n$ | $E_{ij} - E_{ji}$, $i| $\dfrac{n(n-1)}{2}$ |
|
| след ноль, $n \times n$ | см. выше | $n^2 - 1$ |
| $\{x \in \mathbb{R}^n : Ax = 0\}$ | ФСР | $n - \operatorname{rank} A$ |
| $\{0\}$ | пустой набор | $0$ |
| все многочлены, все функции | конечного нет | бесконечная |
Почему это важно
Размерность — первое, что нужно знать про пространство, потому что она сразу даёт границы: сколько векторов может быть независимо, сколько нужно для порождения, сколько параметров описывают объект. Если тебе говорят «пространство симметричных матриц $10 \times 10$», ты сразу знаешь: $\dfrac{10 \cdot 11}{2} = 55$ параметров. Это, кстати, точное число независимых элементов в ковариационной матрице десяти признаков — и объяснение, почему для устойчивой оценки ковариации нужно заметно больше пятидесяти пяти наблюдений, а не десять.
Правило «каждое независимое линейное условие срезает единицу размерности» — рабочая эвристика, покрывающая большинство задач. Условие «сумма координат равна нулю» — минус один. Условие «след равен нулю» — минус один. Условие «симметричность» — не одно условие, а $\dfrac{n(n-1)}{2}$ условий вида $a_{ij} = a_{ji}$, поэтому и размерность падает с $n^2$ до $n^2 - \dfrac{n(n-1)}{2} = \dfrac{n(n+1)}{2}$. Проверь на $n = 3$: $9 - 3 = 6$. Сходится с прежним подсчётом.
Как искать базис на практике
Теория закончилась, начинается ремесло. Задач на поиск базиса всего несколько типов, и все они сводятся к элементарным преобразованиям.
Тип 1: базис системы векторов и базис линейной оболочки
Задача звучит так: дан набор векторов $a_1, \dots, a_k$ (возможно, с зависимостями); найти базис их линейной оболочки $\operatorname{span}(a_1, \dots, a_k)$ и её размерность.
Здесь работает теорема о базисном миноре из прошлого урока: ранг матрицы равен максимальному числу независимых столбцов, и столбцы, содержащие базисный минор, независимы, а остальные через них выражаются. Отсюда алгоритм.
Алгоритм.
- Составить матрицу $A$, столбцами которой являются данные векторы.
- Привести $A$ к ступенчатому виду (или к RREF) элементарными преобразованиями строк.
- Определить номера столбцов с ведущими элементами (пивотами). Их количество равно рангу $r$.
- Базис оболочки — исходные столбцы матрицы $A$ с этими номерами. Размерность оболочки равна $r$.
Пункт 4 — критический, и на нём ошибаются чаще всего. В базис берутся исходные векторы, а не столбцы преобразованной матрицы. Элементарные преобразования строк меняют столбцы как векторы, но сохраняют все линейные соотношения между столбцами: если в преобразованной матрице третий столбец равен сумме первого и второго, то ровно то же верно и в исходной. Поэтому по преобразованной матрице мы читаем, какие столбцы независимы, а сами векторы берём из исходной.
Пример. Найдём базис и размерность оболочки векторов в $\mathbb{R}^4$:
$$a_1 = (1, 2, 0, 1), \quad a_2 = (2, 4, 1, 3), \quad a_3 = (3, 6, 1, 4), \quad a_4 = (0, 0, 1, 1).$$Составляем матрицу из столбцов:
$$A = \begin{pmatrix} 1 & 2 & 3 & 0 \\ 2 & 4 & 6 & 0 \\ 0 & 1 & 1 & 1 \\ 1 & 3 & 4 & 1 \end{pmatrix}$$Прямой ход: $R_2 \to R_2 - 2R_1$ даёт нулевую строку $(0,0,0,0)$; $R_4 \to R_4 - R_1$ даёт $(0, 1, 1, 1)$, что совпадает с третьей строкой. После перестановок и вычитаний остаётся
$$\begin{pmatrix} 1 & 2 & 3 & 0 \\ 0 & 1 & 1 & 1 \\ 0 & 0 & 0 & 0 \\ 0 & 0 & 0 & 0 \end{pmatrix}$$Ранг $r = 2$, пивоты в столбцах 1 и 2. Значит
$$\dim \operatorname{span}(a_1, a_2, a_3, a_4) = 2, \qquad \text{базис: } a_1 = (1,2,0,1),\ a_2 = (2,4,1,3).$$Проверим, что остальные действительно выражаются:
$$a_1 + a_2 = (1+2,\ 2+4,\ 0+1,\ 1+3) = (3, 6, 1, 4) = a_3,$$$$a_2 - 2a_1 = (2-2,\ 4-4,\ 1-0,\ 3-2) = (0, 0, 1, 1) = a_4.$$Оба соотношения сошлись. Кстати, обрати внимание: в RREF нашей матрицы третий столбец равен сумме первых двух, а четвёртый равен второму минус два первых — те же самые соотношения. Это и есть иллюстрация того, почему по преобразованной матрице можно судить об исходных векторах.
Альтернативный способ — по строкам. Можно записать векторы строками и привести матрицу к ступенчатому виду; тогда базисом оболочки будут ненулевые строки полученной матрицы. Этот способ даёт «более красивый» базис (со ступеньками и нулями), но состоящий уже не из исходных векторов. Оба ответа правильные — просто это два разных базиса одного подпространства. Выбирай в зависимости от условия: если сказано «выбрать базис из данных векторов» — работай по столбцам, если сказано просто «найти базис оболочки» — годится любой.
Тип 2: базис подпространства, заданного условиями
Если подпространство задано системой линейных уравнений, всё сводится к ядру матрицы — и здесь начинается самая приятная часть урока.
ФСР — это базис ядра
Вспомним, что мы делали в уроке про однородные системы. Брали систему $Ax = 0$, приводили к RREF, разделяли переменные на базисные и свободные, назначали каждой свободной переменной по очереди единицу при нулях у остальных и получали $n - r$ решений. Их называли фундаментальной системой решений и утверждали, что через них выражаются все решения.
Теперь у нас есть язык, чтобы сказать, что это было.
Теорема. Фундаментальная система решений однородной системы $Ax = 0$ является базисом ядра $\ker A$. Следовательно,
$$\dim \ker A = n - \operatorname{rank} A.$$
Доказательство. Ядро — подпространство в $\mathbb{R}^n$ (это мы знаем из уроков 167 и 168: сумма решений — решение, кратное решению — решение). Проверим два условия базиса для ФСР $X_1, \dots, X_{n-r}$.
Порождаемость. Это ровно то, что даёт алгоритм построения ФСР: общее решение записывается как $X = c_1X_1 + \dots + c_{n-r}X_{n-r}$, где $c_i$ — значения свободных переменных. Любой элемент ядра получается таким образом.
Независимость. Пусть $c_1X_1 + \dots + c_{n-r}X_{n-r} = 0$. Посмотрим на координату, отвечающую $i$-й свободной переменной. У вектора $X_i$ в этой позиции стоит единица, а у всех остальных векторов ФСР — ноль (так они и строились). Значит, в этой позиции комбинация равна просто $c_i$, и равенство нулю даёт $c_i = 0$. Проделав это для каждого $i$, получаем, что все коэффициенты нулевые. $\blacksquare$
Вот теперь стало понятно, что мы делали в уроке 167. Тогда мы работали с ФСР как с рецептом и честно оговаривали, что теория будет позже. Сейчас все вопросы закрыты:
-
Почему в ФСР ровно $n - r$ векторов? Потому что ФСР — базис ядра, а размерность ядра равна $n - r$ (число свободных переменных). Число векторов в базисе — это размерность, и оно одно и то же для любого базиса.
-
Почему разные люди получают разные ФСР? Потому что у подпространства бесконечно много базисов. Выбирая другой набор свободных переменных, мы выбираем другой базис одного и того же ядра.
-
Почему при этом количество векторов совпадает? Это теорема о корректности размерности: все базисы одного пространства равномощны. Никакой способ решения не может дать ФСР из другого числа векторов.
-
Почему «ФСР состоит из нулевого вектора» — ошибка? Потому что базис по определению независим, а система, содержащая нулевой вектор, зависима. При $r = n$ ядро равно $\{0\}$, его размерность 0, и базис пуст.
Пример. Найдём базис и размерность ядра матрицы
$$A = \begin{pmatrix} 1 & 3 & -1 & 2 \\ 2 & 6 & -1 & 5 \end{pmatrix}.$$$R_2 \to R_2 - 2R_1$ даёт $(0, 0, 1, 1)$. Ранг $r = 2$, значит $\dim \ker A = 4 - 2 = 2$. Доводим до RREF: $R_1 \to R_1 + R_2$ даёт $(1, 3, 0, 3)$:
$$\begin{pmatrix} 1 & 3 & 0 & 3 \\ 0 & 0 & 1 & 1 \end{pmatrix} \quad\Longrightarrow\quad \begin{cases} x_1 = -3x_2 - 3x_4 \\ x_3 = -x_4 \end{cases}$$Пивоты в столбцах 1 и 3, базисные переменные $x_1, x_3$, свободные $x_2, x_4$.
$x_2 = 1$, $x_4 = 0$: $X_1 = (-3, 1, 0, 0)^T$.
$x_2 = 0$, $x_4 = 1$: $X_2 = (-3, 0, -1, 1)^T$.
Проверка $X_1$: $-3 + 3 - 0 + 0 = 0$ и $-6 + 6 - 0 + 0 = 0$. Проверка $X_2$: $-3 + 0 + 1 + 2 = 0$ и $-6 + 0 + 1 + 5 = 0$. Оба вектора в ядре.
$$\dim \ker A = 2, \qquad \text{базис ядра: } X_1, X_2.$$Тип 3: базис суммы и пересечения подпространств
Пусть $U = \operatorname{span}(u_1, \dots, u_p)$ и $W = \operatorname{span}(w_1, \dots, w_q)$.
Сумма. По определению из урока 168, $U + W = \{u + w : u \in U,\ w \in W\}$. Значит, $U + W = \operatorname{span}(u_1, \dots, u_p, w_1, \dots, w_q)$ — просто объединяем все образующие в один список. Дальше работает алгоритм типа 1: составляем матрицу из всех этих векторов и ищем базис оболочки.
Пересечение. Сложнее, потому что напрямую образующих у пересечения нет. Стандартный приём: вектор $v \in U \cap W$ записывается двумя способами,
$$v = \alpha_1 u_1 + \dots + \alpha_p u_p = \beta_1 w_1 + \dots + \beta_q w_q,$$откуда
$$\alpha_1 u_1 + \dots + \alpha_p u_p - \beta_1 w_1 - \dots - \beta_q w_q = 0.$$Это однородная система относительно неизвестных $\alpha_i, \beta_j$. Решаем её (ищем ФСР), затем по каждому решению собираем вектор $v = \sum \alpha_i u_i$. Полученные векторы и дают базис пересечения.
Пример. В $\mathbb{R}^4$ даны
$$U = \operatorname{span}\big( (1,1,1,0),\ (0,1,0,1) \big), \qquad W = \operatorname{span}\big( (1,0,1,-1),\ (0,0,1,1) \big).$$Сумма. Составим матрицу из всех четырёх векторов как из строк:
$$\begin{pmatrix} 1 & 1 & 1 & 0 \\ 0 & 1 & 0 & 1 \\ 1 & 0 & 1 & -1 \\ 0 & 0 & 1 & 1 \end{pmatrix}$$$R_3 \to R_3 - R_1$ даёт $(0, -1, 0, -1)$; затем $R_3 \to R_3 + R_2$ обнуляет третью строку. Остаётся
$$\begin{pmatrix} 1 & 1 & 1 & 0 \\ 0 & 1 & 0 & 1 \\ 0 & 0 & 1 & 1 \end{pmatrix}$$Три ненулевые строки, значит $\dim(U + W) = 3$, и базисом суммы можно взять $(1,1,1,0)$, $(0,1,0,1)$, $(0,0,1,1)$.
Пересечение. Ищем $\alpha_1 u_1 + \alpha_2 u_2 = \beta_1 w_1 + \beta_2 w_2$. Слева стоит вектор $(\alpha_1,\ \alpha_1 + \alpha_2,\ \alpha_1,\ \alpha_2)$, справа — $(\beta_1,\ 0,\ \beta_1 + \beta_2,\ -\beta_1 + \beta_2)$. Приравниваем покоординатно:
$$\begin{cases} \alpha_1 = \beta_1 \\ \alpha_1 + \alpha_2 = 0 \\ \alpha_1 = \beta_1 + \beta_2 \\ \alpha_2 = -\beta_1 + \beta_2 \end{cases}$$Из первого и третьего уравнений $\beta_2 = 0$. Из второго $\alpha_2 = -\alpha_1$. Четвёртое тогда даёт $-\alpha_1 = -\beta_1 + 0 = -\alpha_1$ — выполняется тождественно. Остаётся один свободный параметр. Полагая $\alpha_1 = 1$:
$$v = 1 \cdot (1,1,1,0) - 1 \cdot (0,1,0,1) = (1, 0, 1, -1).$$Проверим, что тот же вектор лежит в $W$: при $\beta_1 = 1$, $\beta_2 = 0$ получаем ровно $w_1 = (1, 0, 1, -1)$. Совпало.
$$U \cap W = \operatorname{span}\big( (1, 0, 1, -1) \big), \qquad \dim (U \cap W) = 1.$$Сверим с арифметикой: $\dim U + \dim W - \dim(U+W) = 2 + 2 - 3 = 1$. Ровно то, что получилось. Это формула Грассмана, к ней мы придём через два раздела.
Почему это важно
Все три типа задач — не учебные упражнения, а именно то, что делают библиотеки линейной алгебры под капотом. sympy.Matrix.columnspace() возвращает базис столбцового пространства ровно по алгоритму типа 1 — берёт исходные столбцы с пивотами. sympy.Matrix.nullspace() строит ФСР по алгоритму из урока 167. scipy.linalg.null_space делает то же численно.
А связка «ФСР = базис ядра» закрывает содержательный долг перед предыдущим уроком. Мы построили аппарат, который умеет работать с бесконечными множествами решений как с конечными объектами: у ядра есть размерность (целое число), есть базис (список из $n-r$ векторов), и любые вопросы про него — «лежит ли данный вектор в ядре», «совпадают ли два ядра», «содержится ли одно ядро в другом» — превращаются в конечные вычисления с рангами.
Строчное и столбцовое пространство: одна картинка про матрицу
Соберём в одно место всё, что мы теперь знаем про матрицу как источник подпространств.
Пусть $A$ — матрица размера $m \times n$. С ней связаны три подпространства.
Определения:
- Столбцовое пространство $\operatorname{Col} A$ — линейная оболочка столбцов матрицы $A$. Живёт в $\mathbb{R}^m$ (столбцы имеют высоту $m$).
- Строчное пространство $\operatorname{Row} A$ — линейная оболочка строк матрицы $A$. Живёт в $\mathbb{R}^n$ (строки имеют длину $n$).
- Ядро $\ker A$ — множество решений $Ax = 0$. Живёт в $\mathbb{R}^n$.
Из прошлого урока мы знаем следствие теоремы о базисном миноре: максимальное число независимых строк равно максимальному числу независимых столбцов и равно рангу. На языке размерностей это звучит так:
Теорема о размерностях. Для любой матрицы $A$ размера $m \times n$ с рангом $r$:
$$\dim \operatorname{Col} A = \dim \operatorname{Row} A = r, \qquad \dim \ker A = n - r.$$
Первая часть — прямой пересчёт следствия из 169 на язык этого урока: базис оболочки строк состоит из максимального независимого набора строк, а их ровно $r$. Вторая часть — теорема из предыдущего раздела про ФСР.
Отсюда получается соотношение, которое стоит запомнить как формулу:
$$\dim \operatorname{Col} A + \dim \ker A = n.$$Читается: «ранг плюс дефект равны числу столбцов». В уроке 167 мы уже записывали это как $r + (n - r) = n$, но тогда это было арифметическое тождество; теперь оба слагаемых — размерности настоящих подпространств, и равенство приобрело содержательный смысл.
Разбор примера: всё сразу для одной матрицы
$$B = \begin{pmatrix} 1 & 2 & 3 & 4 \\ 2 & 4 & 7 & 9 \\ 1 & 2 & 4 & 5 \end{pmatrix}$$Здесь $m = 3$, $n = 4$.
Приводим к RREF. $R_2 \to R_2 - 2R_1$ даёт $(0, 0, 1, 1)$; $R_3 \to R_3 - R_1$ даёт $(0, 0, 1, 1)$; $R_3 \to R_3 - R_2$ обнуляет третью строку. Затем $R_1 \to R_1 - 3R_2$ даёт $(1, 2, 0, 1)$:
$$\operatorname{RREF}(B) = \begin{pmatrix} 1 & 2 & 0 & 1 \\ 0 & 0 & 1 & 1 \\ 0 & 0 & 0 & 0 \end{pmatrix}, \qquad r = 2.$$Столбцовое пространство. Пивоты стоят в столбцах 1 и 3, значит базис $\operatorname{Col} B$ — первый и третий исходные столбцы:
$$\begin{pmatrix} 1 \\ 2 \\ 1 \end{pmatrix}, \qquad \begin{pmatrix} 3 \\ 7 \\ 4 \end{pmatrix}, \qquad \dim \operatorname{Col} B = 2.$$Это двумерное подпространство (плоскость через ноль) внутри $\mathbb{R}^3$. Заодно проверим соотношения: второй столбец равен удвоенному первому ($(2,4,2) = 2(1,2,1)$), четвёртый равен первому плюс третий ($(4,9,5) = (1,2,1) + (3,7,4)$). Именно эти соотношения и читаются в RREF: там второй столбец $(2,0,0)$ равен удвоенному первому $(1,0,0)$, а четвёртый $(1,1,0)$ равен сумме первого и третьего.
Строчное пространство. Ненулевые строки RREF образуют базис:
$$(1, 2, 0, 1), \qquad (0, 0, 1, 1), \qquad \dim \operatorname{Row} B = 2.$$Это двумерное подпространство внутри $\mathbb{R}^4$. Обрати внимание: строчное и столбцовое пространства живут в разных пространствах ($\mathbb{R}^4$ и $\mathbb{R}^3$), их нельзя ни сравнивать, ни пересекать. Общее у них ровно одно — размерность.
Ядро. Свободные переменные $x_2, x_4$; из RREF $x_1 = -2x_2 - x_4$, $x_3 = -x_4$. ФСР:
$$X_1 = (-2, 1, 0, 0)^T, \qquad X_2 = (-1, 0, -1, 1)^T, \qquad \dim \ker B = 4 - 2 = 2.$$Проверка $X_2$ в исходной матрице: $-1 + 0 - 3 + 4 = 0$; $-2 + 0 - 7 + 9 = 0$; $-1 + 0 - 4 + 5 = 0$. Верно.
Баланс. $\dim \operatorname{Col} B + \dim \ker B = 2 + 2 = 4 = n$. Сходится.
Сводная картинка
| Объект | Где живёт | Размерность | Как найти базис |
|---|---|---|---|
| $\operatorname{Col} A$ | $\mathbb{R}^m$ | $r$ | исходные столбцы с пивотами |
| $\operatorname{Row} A$ | $\mathbb{R}^n$ | $r$ | ненулевые строки RREF |
| $\ker A$ | $\mathbb{R}^n$ | $n - r$ | ФСР |
Три подпространства, два числа: $r$ и $n - r$. Всё, что можно спросить про размерности у матрицы, отвечается этими двумя числами — а они определяются одним прогоном метода Гаусса.
Одно уточнение про строчное пространство, которое часто упускают. Элементарные преобразования строк не меняют строчное пространство: каждая новая строка — линейная комбинация старых и наоборот, значит оболочка та же. Поэтому строки RREF годятся как базис. А вот столбцовое пространство преобразования строк меняют (столбцы становятся другими векторами), поэтому в базис $\operatorname{Col} A$ берут исходные столбцы, а не преобразованные. Эта асимметрия и есть источник самой популярной ошибки в теме.
Почему это важно
Три подпространства матрицы — это компактный способ ответить на большинство вопросов о линейной системе. «Совместна ли система $Ax = b$?» — вопрос о том, лежит ли $b$ в $\operatorname{Col} A$. «Единственно ли решение?» — вопрос о том, тривиально ли $\ker A$. «Сколько параметров в общем решении?» — это $\dim \ker A$. Теорема Кронекера — Капелли в этом языке звучит так: система совместна тогда и только тогда, когда $b \in \operatorname{Col} A$, и добавление такого $b$ к матрице не увеличивает ранг.
В анализе данных столбцовое пространство матрицы объекты-признаки — это множество всех предсказаний, которые линейная модель в принципе способна выдать. Его размерность — ранг матрицы — и есть реальное «богатство» модели; сколько бы признаков ни было в таблице, если ранг равен 5, множество достижимых предсказаний пятимерно. А ядро — множество направлений в пространстве весов, движение вдоль которых не меняет предсказаний вообще, то самое, из-за которого веса неидентифицируемы.
Матрица перехода и смена базиса
Мы подошли к главному техническому сюжету урока. У пространства много базисов, у вектора в каждом из них свои координаты — значит, нужен механизм пересчёта.
Как строится матрица перехода
Пусть в пространстве $V$ размерности $n$ заданы два базиса:
$$e = (e_1, e_2, \dots, e_n) \quad \text{— «старый»}, \qquad f = (f_1, f_2, \dots, f_n) \quad \text{— «новый»}.$$Каждый вектор нового базиса лежит в $V$, значит, раскладывается по старому базису, причём единственным образом:
$$f_j = t_{1j} e_1 + t_{2j} e_2 + \dots + t_{nj} e_n, \qquad j = 1, \dots, n.$$Определение: Матрицей перехода от базиса $e$ к базису $f$ называется матрица $T$, $j$-й столбец которой состоит из координат вектора $f_j$ в базисе $e$:
$$T = \big( [f_1]_e \ \ [f_2]_e \ \ \dots \ \ [f_n]_e \big).$$Обозначение: $T_{e \to f}$.
Запомнить конструкцию помогает мнемоника: в столбцах матрицы перехода стоят новые векторы, записанные через старые. Столбцы — новые, «система измерения» — старая.
Свойство. Матрица перехода всегда обратима.
Почему. Её столбцы — координатные столбцы векторов $f_1, \dots, f_n$, а эти векторы образуют базис, то есть независимы. Независимость векторов равносильна независимости их координатных столбцов (координаты определены однозначно, и линейная комбинация векторов равна нулю тогда и только тогда, когда равна нулю та же комбинация их координатных столбцов). Значит, $\operatorname{rank} T = n$, матрица квадратная и невырожденная, $\det T \ne 0$, обратная существует.
Более того, $T^{-1}$ — это в точности матрица перехода в обратную сторону:
$$T_{f \to e} = (T_{e \to f})^{-1}.$$Формула пересчёта координат и главная ловушка
Теперь ключевой вопрос: если у вектора $v$ известны координаты в старом базисе, как получить координаты в новом?
Распишем. Пусть $[v]_f = (y_1, \dots, y_n)^T$, то есть $v = y_1 f_1 + \dots + y_n f_n$. Подставим разложения $f_j$ через $e$:
$$v = \sum_{j=1}^{n} y_j f_j = \sum_{j=1}^{n} y_j \left( \sum_{i=1}^{n} t_{ij} e_i \right) = \sum_{i=1}^{n} \left( \sum_{j=1}^{n} t_{ij} y_j \right) e_i.$$Коэффициент при $e_i$ — это $i$-я координата вектора $v$ в базисе $e$. В матричном виде:
Формула преобразования координат.
$$[v]_e = T \, [v]_f, \qquad \text{откуда} \qquad [v]_f = T^{-1} [v]_e.$$
И вот здесь — главная ловушка всей темы. Обрати внимание на асимметрию:
- базисные векторы переходят из старых в новые через $T$: новые векторы выражаются через старые её столбцами;
- координаты переходят из старых в новые через $T^{-1}$.
То есть векторы и координаты преобразуются «в разные стороны». Это не техническая случайность, а неизбежность, и понять её проще всего на предельно простом примере.
Пример-объяснение. Возьмём $\mathbb{R}^2$ со стандартным базисом $e_1 = (1,0)$, $e_2 = (0,1)$ и новый базис, в котором векторы просто вдвое длиннее:
$$f_1 = 2e_1 = (2, 0), \qquad f_2 = 2e_2 = (0, 2).$$Матрица перехода $T = \begin{pmatrix} 2 & 0 \\ 0 & 2 \end{pmatrix} = 2I$. Возьмём вектор $v$, который в стандартном базисе имеет координаты $(6, 8)$. Его координаты в новом базисе:
$$[v]_f = T^{-1}[v]_e = \tfrac{1}{2} \begin{pmatrix} 6 \\ 8 \end{pmatrix} = \begin{pmatrix} 3 \\ 4 \end{pmatrix}.$$Проверка: $3 f_1 + 4 f_2 = 3(2,0) + 4(0,2) = (6, 8)$. Верно.
Смысл прозрачен. Мы удлинили «единицу измерения» вдвое — значит, самих единиц теперь нужно вдвое меньше. Базисные векторы выросли в 2 раза, координаты уменьшились в 2 раза. Ровно поэтому в формуле стоит $T^{-1}$, а не $T$. Тот же эффект знаком из школьной физики: перешли от метров к километрам (единица выросла в 1000 раз) — численное значение длины уменьшилось в 1000 раз.
Из-за этой противонаправленности координаты в старых учебниках называли контравариантными («меняющимися противоположно»), а сами базисные векторы — ковариантными. Термины из тензорного анализа; знать их не обязательно, но слово «контравариантный» иногда встречается в текстах по компьютерной графике и физике именно в этом смысле.
Разбор примеров
Пример 1. Переход от стандартного базиса — простейший случай.
В $\mathbb{R}^2$ старый базис — стандартный, новый базис $f_1 = (2, 1)$, $f_2 = (1, 1)$. Найти матрицу перехода и координаты вектора $v = (5, 3)$ в новом базисе.
Матрица перехода. Координаты $f_j$ в стандартном базисе — это сами их числа. Значит,
$$T = \begin{pmatrix} 2 & 1 \\ 1 & 1 \end{pmatrix}.$$Это общее правило: когда старый базис стандартный, матрица перехода составляется из новых векторов, записанных в столбцы, без всяких вычислений.
Проверка обратимости. $\det T = 2 \cdot 1 - 1 \cdot 1 = 1 \ne 0$. Заодно это подтверждает, что $f$ действительно базис.
Обратная матрица. Для матрицы $2\times2$ формула известна: меняем местами диагональные элементы, у побочных меняем знак, делим на определитель.
$$T^{-1} = \frac{1}{1}\begin{pmatrix} 1 & -1 \\ -1 & 2 \end{pmatrix} = \begin{pmatrix} 1 & -1 \\ -1 & 2 \end{pmatrix}.$$Координаты.
$$[v]_f = T^{-1}[v]_e = \begin{pmatrix} 1 & -1 \\ -1 & 2 \end{pmatrix}\begin{pmatrix} 5 \\ 3 \end{pmatrix} = \begin{pmatrix} 5 - 3 \\ -5 + 6 \end{pmatrix} = \begin{pmatrix} 2 \\ 1 \end{pmatrix}.$$Проверка обратной подстановкой. $2 f_1 + 1 f_2 = 2(2,1) + (1,1) = (4 + 1,\ 2 + 1) = (5, 3)$. Верно.
Прогон в обратную сторону. $T [v]_f = \begin{pmatrix} 2 & 1 \\ 1 & 1 \end{pmatrix}\begin{pmatrix} 2 \\ 1 \end{pmatrix} = \begin{pmatrix} 5 \\ 3 \end{pmatrix} = [v]_e$. Сошлось.
Пример 2. Оба базиса нестандартные.
В $\mathbb{R}^2$ старый базис $e_1 = (1, 1)$, $e_2 = (1, -1)$; новый базис $f_1 = (3, 1)$, $f_2 = (1, 3)$. Найти $T_{e \to f}$ и пересчитать координаты вектора $v$, у которого $[v]_e = (8, 2)^T$.
Шаг 1: раскладываем новые векторы по старому базису. Для $f_1 = (3,1)$ решаем $a e_1 + b e_2 = f_1$:
$$\begin{cases} a + b = 3 \\ a - b = 1 \end{cases} \quad\Longrightarrow\quad a = 2,\ b = 1, \qquad [f_1]_e = \begin{pmatrix} 2 \\ 1 \end{pmatrix}.$$Для $f_2 = (1, 3)$:
$$\begin{cases} a + b = 1 \\ a - b = 3 \end{cases} \quad\Longrightarrow\quad a = 2,\ b = -1, \qquad [f_2]_e = \begin{pmatrix} 2 \\ -1 \end{pmatrix}.$$Проверим: $2(1,1) + 1(1,-1) = (3, 1)$ ✔; $2(1,1) - 1(1,-1) = (1, 3)$ ✔.
Шаг 2: матрица перехода. Складываем эти столбцы:
$$T = \begin{pmatrix} 2 & 2 \\ 1 & -1 \end{pmatrix}, \qquad \det T = 2(-1) - 2 \cdot 1 = -4 \ne 0.$$$$T^{-1} = \frac{1}{-4}\begin{pmatrix} -1 & -2 \\ -1 & 2 \end{pmatrix} = \begin{pmatrix} 1/4 & 1/2 \\ 1/4 & -1/2 \end{pmatrix}.$$Шаг 3: пересчёт координат.
$$[v]_f = T^{-1}[v]_e = \begin{pmatrix} 1/4 & 1/2 \\ 1/4 & -1/2 \end{pmatrix}\begin{pmatrix} 8 \\ 2 \end{pmatrix} = \begin{pmatrix} 2 + 1 \\ 2 - 1 \end{pmatrix} = \begin{pmatrix} 3 \\ 1 \end{pmatrix}.$$Шаг 4: тройная проверка. Сначала найдём сам вектор $v$ в стандартном базисе через старые координаты:
$$v = 8 e_1 + 2 e_2 = 8(1,1) + 2(1,-1) = (10, 6).$$Теперь через новые координаты:
$$v = 3 f_1 + 1 f_2 = 3(3,1) + (1,3) = (9 + 1,\ 3 + 3) = (10, 6).$$Совпало. И обратный прогон: $T [v]_f = \begin{pmatrix} 2 & 2 \\ 1 & -1 \end{pmatrix}\begin{pmatrix} 3 \\ 1 \end{pmatrix} = \begin{pmatrix} 8 \\ 2 \end{pmatrix} = [v]_e$. Тоже совпало.
Обрати внимание на приём из шага 4: вектор в стандартном базисе — общий знаменатель для обеих систем координат. Если вычислить его двумя путями и получить одно и то же, ошибки нет. Это самая надёжная проверка в задачах на смену базиса, и она стоит тридцати секунд.
Пример 3. Смена базиса в пространстве многочленов.
В $P_2$ старый базис $e = (1,\ x,\ x^2)$, новый $f = (1 + x,\ 1 - x,\ x^2)$. Пересчитать координаты многочлена $p(x) = 3 + 5x + 2x^2$.
Матрица перехода. Раскладываем новые элементы по старому базису:
$$1 + x = 1 \cdot 1 + 1 \cdot x + 0 \cdot x^2 \ \Rightarrow\ (1, 1, 0)^T,$$$$1 - x = 1 \cdot 1 - 1 \cdot x + 0 \cdot x^2 \ \Rightarrow\ (1, -1, 0)^T,$$
$$x^2 \ \Rightarrow\ (0, 0, 1)^T.$$$$T = \begin{pmatrix} 1 & 1 & 0 \\ 1 & -1 & 0 \\ 0 & 0 & 1 \end{pmatrix}, \qquad \det T = -2 \ne 0.$$
Обратная. Блочная структура упрощает дело: правый нижний блок — единица, левый верхний блок $\begin{pmatrix} 1 & 1 \\ 1 & -1 \end{pmatrix}$ обращается по формуле для $2\times2$:
$$T^{-1} = \begin{pmatrix} 1/2 & 1/2 & 0 \\ 1/2 & -1/2 & 0 \\ 0 & 0 & 1 \end{pmatrix}.$$Координаты. В старом базисе $[p]_e = (3, 5, 2)^T$. Тогда
$$[p]_f = T^{-1}[p]_e = \begin{pmatrix} (3 + 5)/2 \\ (3 - 5)/2 \\ 2 \end{pmatrix} = \begin{pmatrix} 4 \\ -1 \\ 2 \end{pmatrix}.$$Проверка.
$$4(1 + x) - 1(1 - x) + 2x^2 = 4 + 4x - 1 + x + 2x^2 = 3 + 5x + 2x^2 = p(x).$$Совпало. Заметь, что вся техника не изменилась ни на йоту при переходе от $\mathbb{R}^n$ к многочленам: как только объекты записаны координатными столбцами, разницы между пространствами нет.
Почему это важно
Смена базиса — это, без преувеличения, основная операция прикладной линейной алгебры. Формально она ничего не меняет: вектор остаётся тем же самым, меняется только его описание. Практически она меняет всё, потому что удобство вычислений и структура данных зависят от описания.
Одни и те же данные в одном базисе — плотная матрица без структуры, в другом — почти диагональная или почти разреженная. Одно и то же изображение в базисе пикселей — миллион чисел, в базисе DCT — те же миллион чисел, но 95% из них близки к нулю. Одна и та же система уравнений в удачном базисе распадается на независимые части. Выбор базиса — это выбор точки зрения, и вся инженерная работа часто состоит именно в том, чтобы найти правильную.
Матрица перехода — технический инструмент этого выбора: она переводит описание из одной системы отсчёта в другую и ничего больше не делает. Важно не путать её с матрицами, которые действительно что-то делают с векторами (поворачивают, растягивают, проецируют) — этим мы займёмся в следующем уроке. Матрица перехода вектор не двигает: она лишь переименовывает его координаты.
Формула Грассмана
Последний теоретический сюжет — про то, как складываются размерности при сложении подпространств.
Наивное ожидание: $\dim(U + W) = \dim U + \dim W$. Оно неверно, и понятно почему: если подпространства перекрываются, общая часть посчитана дважды. Правильный ответ учитывает это перекрытие.
Формула Грассмана. Для любых конечномерных подпространств $U$ и $W$ одного пространства
$$\dim(U + W) = \dim U + \dim W - \dim(U \cap W).$$
Структура формулы ровно та же, что у формулы включений-исключений для количества элементов в объединении множеств: сложили, вычли пересечение, чтобы не считать его дважды. Только вместо количества элементов — размерности, и вместо объединения — сумма подпространств (объединение двух подпространств, напомним, подпространством обычно не является, а сумма — является).
Идея доказательства
Схема стандартная и опирается на теорему о дополнении.
Возьмём базис пересечения $U \cap W$; пусть в нём $k = \dim(U \cap W)$ векторов: $c_1, \dots, c_k$. Это независимая система, лежащая и в $U$, и в $W$.
Дополним её до базиса $U$: добавим $u_1, \dots, u_p$, где $k + p = \dim U$. Дополним её же (отдельно) до базиса $W$: добавим $w_1, \dots, w_q$, где $k + q = \dim W$.
Утверждение: вся объединённая система
$$c_1, \dots, c_k,\ u_1, \dots, u_p,\ w_1, \dots, w_q$$является базисом $U + W$. Порождаемость очевидна из построения: любой элемент $U$ — комбинация $c$ и $u$, любой элемент $W$ — комбинация $c$ и $w$, значит любая сумма — комбинация всех трёх групп. Независимость требует аккуратности: если некоторая комбинация равна нулю, то вектор $\sum \alpha_i u_i$ оказывается принадлежащим и $U$, и $W$ (поскольку он равен $-\sum \gamma_j c_j - \sum \beta_l w_l \in W$), а значит лежит в $U \cap W$ и выражается через $c$; но $u$-часть была дополнением к $c$ внутри $U$, поэтому все $\alpha_i = 0$, и дальше всё схлопывается.
Считаем векторы:
$$\dim(U + W) = k + p + q = (k + p) + (k + q) - k = \dim U + \dim W - \dim(U \cap W). \qquad \blacksquare$$Разбор примеров
Пример 1. Две плоскости в $\mathbb{R}^3$.
Пусть $U$ — плоскость $z = 0$, то есть $U = \operatorname{span}\big((1,0,0),\ (0,1,0)\big)$, а $W$ — плоскость $x = 0$, то есть $W = \operatorname{span}\big((0,1,0),\ (0,0,1)\big)$. Обе двумерны.
Сумма: объединяем образующие — $(1,0,0), (0,1,0), (0,1,0), (0,0,1)$. Среди них три различных, и они образуют стандартный базис $\mathbb{R}^3$. Значит $U + W = \mathbb{R}^3$ и $\dim(U + W) = 3$.
Формула Грассмана:
$$\dim(U \cap W) = \dim U + \dim W - \dim(U + W) = 2 + 2 - 3 = 1.$$Проверим геометрически: пересечение двух различных плоскостей, проходящих через ноль, — прямая через ноль. Здесь это ось $Oy$: вектор $(0,1,0)$ лежит и в $z=0$, и в $x=0$. Размерность прямой равна 1. Сходится.
И вот важное следствие, которое стоит запомнить: две различные плоскости через ноль в $\mathbb{R}^3$ обязаны пересекаться по прямой, а не по одной точке. Действительно, $\dim(U+W) \le 3$, поэтому $\dim(U \cap W) \ge 2 + 2 - 3 = 1$. Параллельных плоскостей среди подпространств не бывает: подпространство обязано содержать ноль, а две плоскости, проходящие через одну точку, параллельными быть не могут.
Пример 2. Прямая и плоскость.
$U = \operatorname{span}\big((1,2,0),\ (0,1,1)\big)$ (плоскость), $W = \operatorname{span}\big((1,0,1)\big)$ (прямая).
Сумма: три вектора, определитель матрицы из них как из столбцов
$$\det \begin{pmatrix} 1 & 0 & 1 \\ 2 & 1 & 0 \\ 0 & 1 & 1 \end{pmatrix} = 1(1 \cdot 1 - 0 \cdot 1) - 0 \cdot (2 \cdot 1 - 0 \cdot 0) + 1(2 \cdot 1 - 1 \cdot 0) = 1 + 2 = 3 \ne 0.$$Ранг 3, значит $\dim(U + W) = 3$, то есть $U + W = \mathbb{R}^3$. Тогда
$$\dim(U \cap W) = 2 + 1 - 3 = 0,$$то есть $U \cap W = \{0\}$: прямая не лежит в плоскости и протыкает её ровно в начале координат. В таком случае говорят, что сумма прямая, и пишут $U \oplus W = \mathbb{R}^3$.
Определение: Сумма подпространств называется прямой (обозначение $U \oplus W$), если $U \cap W = \{0\}$. В этом случае $\dim(U \oplus W) = \dim U + \dim W$, и каждый вектор суммы раскладывается на слагаемое из $U$ и слагаемое из $W$ единственным образом.
Единственность разложения здесь — тот же сюжет, что и с базисом: если $u_1 + w_1 = u_2 + w_2$, то $u_1 - u_2 = w_2 - w_1$ лежит и в $U$, и в $W$, значит равен нулю.
Пример 3. Две гиперплоскости в $\mathbb{R}^4$.
Пусть
$$U = \{\, x \in \mathbb{R}^4 : x_1 + x_2 = 0 \,\}, \qquad W = \{\, x \in \mathbb{R}^4 : x_3 + x_4 = 0 \,\}.$$Каждое из подпространств задано одним нетривиальным линейным уравнением, значит $\dim U = \dim W = 4 - 1 = 3$. Такие подпространства (размерности на единицу меньше объемлющей) называют гиперплоскостями.
Пересечение задаётся сразу двумя уравнениями:
$$\begin{cases} x_1 + x_2 = 0 \\ x_3 + x_4 = 0 \end{cases}$$Матрица условий $\begin{pmatrix} 1 & 1 & 0 & 0 \\ 0 & 0 & 1 & 1 \end{pmatrix}$ имеет ранг 2 (строки непропорциональны), значит $\dim(U \cap W) = 4 - 2 = 2$. Базис пересечения: $(1, -1, 0, 0)$ и $(0, 0, 1, -1)$ — оба удовлетворяют обоим уравнениям и независимы.
По формуле Грассмана
$$\dim(U + W) = 3 + 3 - 2 = 4,$$то есть $U + W = \mathbb{R}^4$: сумма двух различных гиперплоскостей даёт всё пространство.
Отсюда общее наблюдение, полезное в задачах: две гиперплоскости в $\mathbb{R}^n$ обязаны пересекаться по подпространству размерности не меньше $n - 2$. Действительно, $\dim(U + W) \le n$, поэтому
$$\dim(U \cap W) \ge (n-1) + (n-1) - n = n - 2.$$При $n = 3$ это даёт знакомую картину: две плоскости через ноль пересекаются минимум по прямой. При $n = 4$ — минимум по двумерной плоскости, что мы и получили.
Почему это важно
Формула Грассмана — рабочий инструмент, а не украшение. Чаще всего её применяют «наоборот»: размерность пересечения считать трудно (нужно решать систему), а размерность суммы легко (объединил образующие, посчитал ранг). Формула позволяет получить трудное из лёгкого:
$$\dim(U \cap W) = \dim U + \dim W - \dim(U + W).$$Ещё она даёт быстрые оценки без вычислений вообще. Если $\dim U = 4$, $\dim W = 5$ и оба лежат в $\mathbb{R}^7$, то $\dim(U + W) \le 7$, значит $\dim(U \cap W) \ge 4 + 5 - 7 = 2$ — пересечение заведомо содержит плоскость. Такие рассуждения регулярно появляются в задачах: «докажите, что два подпространства обязательно пересекаются нетривиально».
В приложениях сюжет тот же. Если признаковое описание объекта складывается из двух блоков (скажем, признаки из текста и признаки из картинки), общее число независимых направлений равно сумме минус размерность «общей» информации, которая в обоих блоках одинакова. Формула Грассмана — количественная формулировка того, что дублирующая информация не добавляет степеней свободы.
Базис и размерность в машинном обучении
Из всех понятий линейной алгебры базис — самое «инженерное». Размерность отвечает на вопрос «сколько параметров у задачи на самом деле», а смена базиса — на вопрос «в каком виде хранить и обрабатывать данные». Оба вопроса возникают в ML буквально каждый день.
Размерность как число степеней свободы модели
У линейной модели с $n$ признаками и свободным членом $n + 1$ параметр. Но это номинальное число. Реальное число степеней свободы — размерность столбцового пространства матрицы признаков, то есть её ранг. Если среди признаков есть строгая линейная зависимость, ранг падает, и часть параметров не определяется данными — мы разбирали это в уроке про однородные системы как неидентифицируемость.
Регуляризация превращает это грубое «определён / не определён» в непрерывную величину. Для гребневой регрессии определяют эффективное число степеней свободы
$$\mathrm{df}(\lambda) = \operatorname{tr}\big( X (X^TX + \lambda I)^{-1} X^T \big).$$Это след «шляпной» матрицы, переводящей ответы в предсказания. Смысл в том, что при $\lambda \to 0$ величина стремится к рангу $X$, а при росте $\lambda$ плавно убывает к нулю: штраф «сжимает» пространство, в котором модель реально свободна.
Численный эксперимент на матрице $200 \times 10$, у которой шестой столбец равен сумме первого и второго (то есть ранг равен 9, а не 10):
import numpy as np
np.random.seed(0)
n, d = 200, 10
X = np.random.randn(n, d)
X[:, 5] = X[:, 0] + X[:, 1] # строгая зависимость -> ранг 9
print(np.linalg.matrix_rank(X)) # 9
def df(lam):
H = X @ np.linalg.solve(X.T @ X + lam*np.eye(d), X.T)
return np.trace(H)
for lam in [1e-8, 0.1, 1.0, 10.0, 100.0, 1000.0]:
print(lam, round(df(lam), 3))
Вывод: 1e-08 → 9.0, 0.1 → 8.995, 1.0 → 8.955, 10.0 → 8.57, 100.0 → 6.053, 1000.0 → 1.64. Десять номинальных параметров, девять реальных при слабой регуляризации и шесть при $\lambda = 100$. Именно это число, а не количество колонок в таблице, входит в критерии вроде AIC и в оценки переобучения.
Смена базиса — это смена представления данных
Формально смена базиса ничего не меняет: тот же вектор, другие координаты. Практически она решает, во что превращается задача. Причина в том, что почти все прикладные критерии — разреженность, сжимаемость, устойчивость к шуму, интерпретируемость — формулируются в координатах, а не про сам вектор.
Классический пример — базис дискретного косинусного преобразования (DCT), на котором стоит JPEG. Изображение режется на блоки $8 \times 8$; пространство таких блоков имеет размерность $64$. Стандартный базис — 64 матричные единицы, «по одному пикселю». Базис DCT — 64 картинки-волны нарастающей частоты. Это ортонормированный базис (само понятие ортогональности разбирается дальше по курсу), и переход между двумя базисами — та самая матрица перехода, только размера $64 \times 64$.
import numpy as np
from scipy.fft import dctn, idctn
B = np.zeros((64, 8, 8))
for k in range(64):
C = np.zeros((8, 8)); C[k // 8, k % 8] = 1
B[k] = idctn(C, norm='ortho') # k-я базисная волна
Bf = B.reshape(64, 64)
print(np.linalg.matrix_rank(Bf)) # 64 -> это действительно базис
yy, xx = np.mgrid[0:8, 0:8]
block = 128 + 40*np.sin(xx/8*np.pi) + 20*yy # гладкий блок
C = dctn(block, norm='ortho')
e = np.sort(C.ravel()**2)[::-1]
print(int(np.searchsorted(np.cumsum(e)/e.sum(), 0.99) + 1)) # 2
Ранг набора из 64 блоков равен 64 — базис настоящий. А дальше главное: у гладкого блока 99% энергии сидит в 2 коэффициентах из 64. Для сравнения, у блока из чистого шума на те же 99% нужно 25 коэффициентов из 64. Сжатие работает не потому, что DCT «уменьшает данные» — количество чисел не меняется, их по-прежнему 64. Оно работает потому, что в новом базисе почти все координаты малы, и после квантования обнуляются, а нули сжимаются почти бесплатно.
Ровно та же логика в вейвлетных базисах (JPEG 2000, шумоподавление в аудио) и в базисе Фурье. И ровно та же логика — в базисе из главных компонент: это ещё один базис, подобранный уже не заранее, а по самим данным. Как он строится, разбирается в уроке 172; здесь достаточно понимать механизм: удачный базис не добавляет информации, он перераспределяет её так, что большая часть координат становится пренебрежимо малой.
Избыточные словари и разреженное кодирование
Если базис — минимальный набор, то в обработке сигналов часто пользуются намеренно избыточным набором: атомов больше, чем размерность пространства. Такой набор базисом не является — он зависим, — и разложение перестаёт быть единственным. Это и есть цель.
import numpy as np
from scipy.linalg import null_space
np.random.seed(0)
D = np.random.randn(64, 128) # 128 атомов в 64-мерном пространстве
print(np.linalg.matrix_rank(D)) # 64
print(null_space(D).shape[1]) # 64 -> столько степеней свободы у разложения
Матрица словаря $64 \times 128$ имеет ранг 64, а её ядро 64-мерно: у каждого сигнала бесконечно много разложений, и они образуют сдвинутое 64-мерное подпространство (та самая структура «частное плюс однородное» из урока 167). Раз выбирать есть из чего, выбирают самое разреженное — с максимумом нулевых коэффициентов. На этом стоят sparse coding и dictionary learning (sklearn.decomposition.DictionaryLearning, SparseCoder), а также compressed sensing.
Заметь, как аккуратно здесь работает теория из начала урока. Единственность разложения — свойство базиса; отказ от базиса в пользу избыточной системы — сознательный размен единственности на свободу выбора. Без понимания, почему разложений стало много, работать с такими словарями вслепую опасно.
Размерность эмбеддинга: почему 768, а не 3
Эмбеддинг — это отображение объектов (слов, товаров, пользователей) в $\mathbb{R}^d$. Число $d$ — размерность пространства представлений, и оно всегда выглядит «странно большим»: 300 у классических word2vec-векторов, 768 у BERT-base и GPT-2 small, 1024 у BERT-large, 1536 и больше у современных моделей-энкодеров.
Почему не 3, ведь визуализировать было бы удобнее? Потому что размерность — это бюджет на число независимых направлений. В $\mathbb{R}^3$ можно разместить максимум три линейно независимых вектора: любые четыре уже зависимы (следствие 1). Словарю из десятков тысяч слов нужно куда больше «различимых направлений», чем три, — иначе разные по смыслу слова неизбежно окажутся линейными комбинациями друг друга.
Цена размерности при этом прямая: матрица эмбеддингов BERT-base при словаре 30 522 токена и $d = 768$ содержит $30\,522 \times 768 = 23\,440\,896$ чисел — около 23,4 млн параметров только на таблицу эмбеддингов. При $d = 3$ было бы 91 566 чисел, в 256 раз меньше — и модель, неспособная ничего различать. Выбор $d$ — это компромисс между выразительностью и стоимостью.
Эффективная размерность данных меньше номинальной
Номинальная размерность — это количество чисел в векторе. Эффективная (её называют также внутренней, intrinsic dimension) — размерность того подпространства или многообразия, на котором данные реально лежат.
Пример из линейной алгебры уже был: если ранг матрицы данных равен 5, то как бы ни было велико число признаков, все объекты лежат в пятимерном подпространстве, и пяти координат достаточно для точного описания. В реальных данных строгого равенства нет — есть «почти зависимость»: направления, вдоль которых разброс мал, но не равен нулю. Тогда говорят об эффективной размерности как о числе направлений, объясняющих заданную долю дисперсии.
Практически это означает вот что: датасет с 500 колонками почти никогда не имеет 500 независимых направлений. Эмбеддинги, обученные в $\mathbb{R}^{768}$, часто занимают подпространство заметно меньшей размерности — эффект, который в литературе называют anisotropy эмбеддингов. Оценка эффективной размерности — стандартный шаг диагностики данных перед тем, как выбирать модель.
ФСР как базис пространства решений в оптимизации с ограничениями
Последний сюжет — прямое продолжение урока 167, теперь с правильным названием.
Задача «минимизировать $f(x)$ при ограничениях $Ax = b$» решается так называемым методом нуль-пространства. Находим одно частное решение $x_p$ и базис ядра $Z$ (столбцы — векторы ФСР). Тогда все допустимые точки имеют вид
$$x = x_p + Zc,$$где $c$ пробегает $\mathbb{R}^{n-r}$. Подставляя это в $f$, получаем задачу без ограничений относительно $c$, причём переменных стало $n - r$ вместо $n$.
import numpy as np
from scipy.linalg import null_space
A = np.array([[1., 2., 1., 0.],
[0., 1., 1., 1.]])
b = np.array([4., 3.])
Z = null_space(A) # базис ядра: 2 столбца
xp = np.linalg.lstsq(A, b, rcond=None)[0]
print(Z.shape[1]) # 2 -> вместо 4 переменных осталось 2
c = np.random.randn(2)
print(np.round(A @ (xp + Z @ c) - b, 12)) # [0. 0.] -> ограничения выполнены точно
Здесь $n = 4$, $r = 2$, ядро двумерно — и четырёхмерная задача с двумя ограничениями превращается в двумерную без ограничений. Ограничения выполняются точно, по построению, а не приближённо через штраф. Тот же приём используется в equality-constrained QP, в методах внутренней точки и в задачах калибровки, где часть параметров связана жёсткими балансовыми уравнениями.
Обрати внимание, что здесь работают ровно те факты, ради которых писался урок: ФСР — базис ядра, размерность ядра равна $n - r$, и любой выбор базиса даёт одинаковое число параметров. Численные библиотеки возвращают свой базис (null_space строит его через сингулярное разложение), он не совпадает с посчитанным вручную — но количество столбцов совпадает всегда, и множество допустимых точек получается то же самое.
Практика: 30 заданий
Базовые задания (1–10)
Задание 1: Является ли система $a_1 = (1, 3)$, $a_2 = (2, 7)$ базисом пространства $\mathbb{R}^2$?
Задание 2: Является ли система $a_1 = (1, 2, 3)$, $a_2 = (2, 4, 6)$, $a_3 = (0, 1, 1)$ базисом $\mathbb{R}^3$?
Задание 3: Найди координаты вектора $v = (7, 4)$ в базисе $f_1 = (1, 2)$, $f_2 = (3, 1)$.
Задание 4: Найди координаты вектора $v = (4, 5, 6)$ в базисе $f_1 = (1, 0, 0)$, $f_2 = (1, 1, 0)$, $f_3 = (1, 1, 1)$.
Задание 5: Найди базис и размерность линейной оболочки векторов $a_1 = (1, 2, 1)$, $a_2 = (2, 4, 2)$, $a_3 = (1, 0, 1)$.
Задание 6: Найди базис и размерность подпространства $U = \{\, x \in \mathbb{R}^4 : x_1 + x_2 + x_3 + x_4 = 0 \,\}$.
Задание 7: Найди базис и размерность ядра матрицы $A = \begin{pmatrix} 1 & 2 & -1 \\ 2 & 4 & -2 \end{pmatrix}$.
Задание 8: Найди размерность и укажи базис пространства верхнетреугольных матриц размера $3 \times 3$ (то есть матриц, у которых все элементы ниже главной диагонали равны нулю).
Задание 9: Является ли система $q_1 = 2 + x$, $q_2 = 1 + 2x$ базисом пространства $P_1$ многочленов степени не выше первой? Если да, найди координаты многочлена $p(x) = 5 + 4x$ в этом базисе.
Задание 10: Для матрицы $A = \begin{pmatrix} 1 & 2 & 3 & 4 \\ 2 & 4 & 6 & 8 \\ 1 & 1 & 1 & 1 \end{pmatrix}$ найди размерности строчного пространства, столбцового пространства и ядра.
Средние задания (11–20)
Задание 11: Является ли система $a_1 = (1, 2, 1)$, $a_2 = (2, 1, 1)$, $a_3 = (1, 1, 2)$ базисом $\mathbb{R}^3$?
Задание 12: Найди координаты вектора $v = (3, -1, 2)$ в базисе из задания 11.
Задание 13: Найди базис и размерность линейной оболочки векторов $a_1 = (1,1,2,1)$, $a_2 = (2,1,3,2)$, $a_3 = (1,0,1,1)$, $a_4 = (3,2,5,3)$ в $\mathbb{R}^4$.
Задание 14: Найди размерность и укажи базис пространства матриц $2 \times 2$ с нулевым следом.
Задание 15: Найди размерность и базис подпространства $W = \{\, p \in P_3 : p(1) = 0 \,\}$. Затем найди координаты многочлена $p(x) = x^3 - 2x^2 + x$ в этом базисе.
Задание 16: Дополни линейно независимую систему $a_1 = (1, 0, 1, 0)$, $a_2 = (0, 1, 0, 1)$ до базиса $\mathbb{R}^4$.
Задание 17: В $\mathbb{R}^2$ дан базис $f_1 = (3, 2)$, $f_2 = (4, 3)$. Построй матрицу перехода от стандартного базиса к $f$ и найди координаты вектора $v = (1, 1)$ в базисе $f$.
Задание 18: В $\mathbb{R}^3$ даны подпространства $U = \operatorname{span}\big((1,3,2),\ (2,1,0)\big)$ и $W = \operatorname{span}\big((0,5,4),\ (1,1,1)\big)$. Найди $\dim(U + W)$, $\dim(U \cap W)$ и базис пересечения.
Задание 19: При каких значениях параметра $a$ система $u_1 = (1, 2)$, $u_2 = (a, 4)$ является базисом $\mathbb{R}^2$?
Задание 20: Найди базис и размерность ядра матрицы
$$A = \begin{pmatrix} 1 & 2 & 0 & 1 & 3 \\ 2 & 4 & 1 & 3 & 7 \\ 1 & 2 & 1 & 2 & 4 \end{pmatrix}$$Продвинутые задания (21–30)
Задание 21: При каких значениях параметра $\lambda$ система $u_1 = (1, 1, 1)$, $u_2 = (1, \lambda, 1)$, $u_3 = (1, 1, \lambda)$ является базисом $\mathbb{R}^3$?
Задание 22: При каких значениях параметра $a$ система $u_1 = (1, 2, 3)$, $u_2 = (2, a, 6)$, $u_3 = (3, 6, 9)$ является базисом $\mathbb{R}^3$?
Задание 23: При каких значениях параметра $t$ система $u_1 = (t, 1, 1)$, $u_2 = (1, t, 1)$, $u_3 = (1, 1, t)$ является базисом $\mathbb{R}^3$?
Задание 24: При каких значениях параметра $a$ система многочленов $p_1 = 1 + ax$, $p_2 = 1 + x + x^2$, $p_3 = a + x$ является базисом пространства $P_2$?
Задание 25: При каких значениях параметра $p$ система $v_1 = (1,1,0,0)$, $v_2 = (0,1,1,0)$, $v_3 = (0,0,1,1)$, $v_4 = (p,0,0,1)$ является базисом $\mathbb{R}^4$?
Задание 26: В $\mathbb{R}^2$ даны два базиса: $e_1 = (1, 1)$, $e_2 = (1, 2)$ и $f_1 = (2, 3)$, $f_2 = (3, 4)$. Построй матрицу перехода $T_{e \to f}$, найди обратную и пересчитай в базис $f$ координаты вектора, у которого $[v]_e = (3, 1)^T$. Проверь результат прогоном в обе стороны.
Задание 27: В $\mathbb{R}^4$ даны $U = \operatorname{span}\big((1,0,1,0),\ (0,1,0,1)\big)$ и $W = \operatorname{span}\big((1,1,1,1),\ (1,0,0,1)\big)$. Найди $\dim(U+W)$, $\dim(U \cap W)$ и базис пересечения.
Задание 28: Найди размерности пространства симметричных матриц $S$ и пространства кососимметричных матриц $K$ размера $3 \times 3$. Затем докажи с помощью формулы Грассмана, что $S \oplus K = M_{3\times3}$.
Задание 29: Докажи: если $\dim V = n$ и векторы $b_1, \dots, b_n$ порождают $V$, то они образуют базис (то есть автоматически линейно независимы).
Задание 30: Является ли базисом пространства $M_{2 \times 2}$ система матриц
$$A_1 = \begin{pmatrix} 1 & 0 \\ 0 & 1 \end{pmatrix}, \quad A_2 = \begin{pmatrix} 1 & 1 \\ 0 & 1 \end{pmatrix}, \quad A_3 = \begin{pmatrix} 0 & 1 \\ 1 & 0 \end{pmatrix}, \quad A_4 = \begin{pmatrix} 1 & 0 \\ 1 & 1 \end{pmatrix}?$$Если нет — предъяви явную линейную зависимость.
Частые ошибки
Ошибка 1. В базис линейной оболочки берут столбцы преобразованной матрицы.
Как выглядит: привели матрицу к ступенчатому виду, увидели пивоты в столбцах 1 и 3 и написали в ответ столбцы $(1,0,0)$ и $(0,1,0)$ из ступенчатой матрицы вместо исходных векторов.
Почему возникает: по инерции с задач на ранг, где преобразованная матрица и есть ответ.
Как правильно: элементарные преобразования строк сохраняют соотношения между столбцами, но не сами столбцы как векторы. Ступенчатый вид говорит только о том, какие номера столбцов независимы. В базис берутся исходные векторы с этими номерами. Проверка простая: базисные векторы обязаны лежать в исходной оболочке, а столбцы преобразованной матрицы там, как правило, не лежат.
Ошибка 2. $\dim P_n = n$.
Как выглядит: «пространство многочленов степени не выше третьей трёхмерно».
Почему возникает: число в обозначении путают с размерностью, забывая про свободный член.
Как правильно: базис $P_n$ — это $1, x, x^2, \dots, x^n$, всего $n + 1$ элемент, значит $\dim P_n = n + 1$. Способ не ошибаться: посчитать элементы базиса пальцем, начиная с константы. Для $P_3$: $1, x, x^2, x^3$ — четыре штуки.
Ошибка 3. Считают, что у вектора есть «его координаты» без указания базиса.
Как выглядит: в задаче фигурируют два базиса, и в середине решения появляется фраза «вектор $v = (3, 2)$» без уточнения, где.
Почему возникает: весь предыдущий курс базис был стандартным и не назывался вообще.
Как правильно: писать $[v]_e$ и $[v]_f$ с явным указанием базиса. Один и тот же вектор в разных базисах имеет разные координатные столбцы. Запись «$v = (5, 1)$» по умолчанию означает координаты в стандартном базисе — и только в $\mathbb{R}^n$, где стандартный базис есть.
Ошибка 4. Пересчитывают координаты умножением на $T$ вместо $T^{-1}$.
Как выглядит: нашли матрицу перехода $T_{e\to f}$, домножили на неё старые координаты и записали результат как новые.
Почему возникает: кажется естественным: «переход от $e$ к $f$ — значит умножаем на матрицу перехода от $e$ к $f$».
Как правильно: базисные векторы и координаты преобразуются противоположно. Правильные формулы: $[v]_e = T[v]_f$ и $[v]_f = T^{-1}[v]_e$. Мнемоника: удлинили базисные векторы вдвое — координаты уменьшились вдвое. Проверка занимает полминуты: собери вектор из найденных координат и сравни с исходным.
Ошибка 5. Применяют «достаточно проверить независимость» к системе, длина которой не совпадает с размерностью.
Как выглядит: в $\mathbb{R}^4$ проверили, что два вектора независимы, и написали «значит базис».
Почему возникает: следствие 2 запоминают без условия «ровно $n$ векторов».
Как правильно: следствия 2 и 3 работают только когда число векторов уже равно размерности. Если векторов меньше — независимости мало, порождаемости нет; если больше — они заведомо зависимы. Первый шаг любой проверки на базис: сравнить количество векторов с размерностью пространства.
Ошибка 6. $\dim(U + W) = \dim U + \dim W$.
Как выглядит: две плоскости в $\mathbb{R}^3$, «размерность суммы $2 + 2 = 4$» — при том, что всё пространство трёхмерно.
Почему возникает: аналогия со сложением чисел без учёта пересечения.
Как правильно: формула Грассмана: $\dim(U+W) = \dim U + \dim W - \dim(U \cap W)$. Равенство без вычитания верно только для прямой суммы, когда $U \cap W = \{0\}$. И полезная проверка на здравый смысл: размерность суммы не может превышать размерность объемлющего пространства.
Ошибка 7. Включают нулевой вектор в базис.
Как выглядит: «$\ker A = \{0\}$, значит базис ядра — это $\{(0,0,0)\}$, размерность 1».
Почему возникает: кажется, что раз множество непусто, у него должен быть непустой базис.
Как правильно: система, содержащая нулевой вектор, всегда линейно зависима ($1 \cdot 0 = 0$ — нетривиальная комбинация). Базис нулевого пространства пуст, его размерность равна нулю. Правило: $\dim\{0\} = 0$, и в ФСР при $r = n$ векторов ноль штук.
Ошибка 8. Считают, что строчное и столбцовое пространства матрицы совпадают.
Как выглядит: «размерности равны, значит это одно и то же подпространство».
Почему возникает: обе размерности равны рангу, и совпадение чисел принимают за совпадение объектов.
Как правильно: для матрицы $m \times n$ столбцовое пространство лежит в $\mathbb{R}^m$, строчное — в $\mathbb{R}^n$. При $m \ne n$ они даже не в одном пространстве живут и сравнивать их бессмысленно. Совпадает только размерность — это и есть содержание теоремы о равенстве строчного и столбцового рангов.
Ошибка 9. Строят матрицу перехода по строкам вместо столбцов.
Как выглядит: координаты новых базисных векторов записывают в строки $T$.
Почему возникает: привычка выписывать векторы «в строчку» при перечислении.
Как правильно: в матрице перехода $T_{e \to f}$ координаты вектора $f_j$ в базисе $e$ стоят в $j$-м столбце. Транспонированная матрица даст неверный пересчёт (кроме симметричных случаев, которые как раз и скрывают ошибку). Быстрая проверка: умножь $T$ на столбец $(1, 0, \dots, 0)^T$ — должен получиться координатный столбец $[f_1]_e$.
Ошибка 10. Считают, что $k$ уравнений всегда срезают $k$ измерений.
Как выглядит: «подпространство в $\mathbb{R}^5$ задано тремя уравнениями, значит его размерность $5 - 3 = 2$» — без проверки того, независимы ли эти уравнения.
Почему возникает: правило «одно условие — минус одна размерность» запоминают без оговорки.
Как правильно: размерность равна $n - r$, где $r$ — ранг матрицы условий, а не число уравнений. Если среди трёх уравнений одно является следствием двух других, ранг равен 2 и размерность равна 3, а не 2. Так что уравнения надо сначала привести к ступенчатому виду.
Главное запомнить
-
Базис — линейно независимая система, порождающая всё пространство. Оба требования обязательны: независимость даёт единственность разложения, порождаемость — его существование.
-
Теорема о единственности: по базису каждый вектор раскладывается ровно одним способом. Верно и обратное: если разложение единственно для каждого вектора, система — базис.
-
Координаты вектора в базисе — коэффициенты его разложения; записываются столбцом $[v]_e$. Поиск координат в $\mathbb{R}^n$ — это решение системы $Fx = v$, где столбцы $F$ — базисные векторы.
-
У одного и того же вектора в разных базисах разные координаты. Без указания базиса координатный столбец смысла не имеет.
-
Размерность $\dim V$ — число векторов в базисе. Определение корректно: все базисы одного пространства состоят из одинакового числа векторов.
-
Основная лемма: если каждый вектор независимой системы из $k$ векторов выражается через систему из $m$ векторов, то $k \le m$. Доказывается через «однородная система, где неизвестных больше, чем уравнений, имеет нетривиальное решение».
-
В $n$-мерном пространстве: любые $n+1$ векторов зависимы; любые $n$ независимых векторов — базис; любые $n$ порождающих векторов — базис. Если число векторов совпало с размерностью, проверяют одно условие из двух.
-
Теорема о дополнении: любую независимую систему можно достроить до базиса. Для подпространства: $\dim U \le \dim V$, и равенство означает $U = V$.
-
Размерности: $\dim \mathbb{R}^n = n$; $\dim M_{m\times n} = mn$; $\dim P_n = n+1$; симметричные $n\times n$ — $\dfrac{n(n+1)}{2}$; кососимметричные — $\dfrac{n(n-1)}{2}$; след ноль — $n^2 - 1$. Пространство всех многочленов и пространство функций бесконечномерны.
-
ФСР — это базис ядра, и потому в ней ровно $n - r$ векторов при любом способе построения. Разные ФСР — разные базисы одного и того же подпространства.
-
Для матрицы $m \times n$ ранга $r$: $\dim \operatorname{Col} A = \dim \operatorname{Row} A = r$, $\dim \ker A = n - r$. Столбцовое пространство живёт в $\mathbb{R}^m$, строчное и ядро — в $\mathbb{R}^n$.
-
Матрица перехода $T_{e\to f}$: в её $j$-м столбце стоят координаты нового вектора $f_j$ в старом базисе. Она всегда обратима, и $T_{f\to e} = T_{e\to f}^{-1}$.
-
Координаты преобразуются обратной матрицей: $[v]_e = T[v]_f$, $[v]_f = T^{-1}[v]_e$. Базисные векторы и координаты меняются в противоположные стороны.
-
Формула Грассмана: $\dim(U+W) = \dim U + \dim W - \dim(U \cap W)$. На практике чаще применяется наоборот — для вычисления размерности пересечения через размерность суммы.
-
В ML размерность — это число реальных степеней свободы (ранг, эффективное df при регуляризации), а смена базиса — смена представления данных: DCT в JPEG, вейвлеты, базис главных компонент, разреженные словари.
Связь с другими темами курса
Что нужно было знать до этого урока
Урок стоит на трёх опорах. Из урока 168 — понятие векторного пространства и подпространства, линейная оболочка $\operatorname{span}$, сумма и пересечение подпространств: без них нечего было бы наделять базисом и размерностью. Из урока 169 — линейная зависимость и независимость, сведение проверки к рангу однородной системы, теорема о базисном миноре и следствие «ранг равен максимальному числу независимых строк и столбцов»: на этом следствии построен весь раздел про строчное и столбцовое пространство, а критерий независимости через определитель работает в каждой второй задаче урока. Из урока 167 — ядро матрицы и фундаментальная система решений: то, что раньше было рецептом, здесь получило имя «базис ядра», а также следствие «если уравнений меньше, чем неизвестных, нетривиальное решение есть» — оно оказалось единственным содержательным шагом в доказательстве основной леммы. Из уроков 162–166 — ранг, метод Гаусса, RREF, определители, обратная матрица: техническая база, на которой считается всё, включая матрицы перехода.
Что изучить дальше
Урок 171 «Линейные преобразования» — прямое продолжение. Там появится матрица линейного оператора, и вот тут выяснится, зачем нам была нужна матрица перехода: одно и то же преобразование в разных базисах задаётся разными матрицами, связанными формулой $A' = T^{-1}AT$ (подобие матриц). Ядро и образ оператора окажутся подпространствами, а теорема о ранге и дефекте — обобщением равенства $\dim \operatorname{Col} A + \dim \ker A = n$. Урок 172 «Собственные векторы и собственные значения» ответит на вопрос, который здесь напрашивается сам собой: существует ли базис, в котором матрица выглядит максимально просто — и там же строится базис из главных компонент, лежащий в основе PCA. Урок 173 «Диагонализация» доводит эту мысль до конца: матрица диагонализуема ровно тогда, когда из собственных векторов удаётся составить базис. Урок 175 «Евклидово пространство» добавит к базису понятие ортогональности: среди всех базисов выделятся ортонормированные, у которых координаты считаются без решения систем, а матрицы перехода обращаются транспонированием.
Где это нужно в жизни
💻 Программирование. Любая система координат в графике — это базис: мировые координаты, координаты камеры, координаты объекта, и переходы между ними — матрицы перехода. Функции sympy.Matrix.columnspace(), rowspace(), nullspace() возвращают именно базисы соответствующих подпространств; numpy.linalg.matrix_rank — их размерность. Сжатие данных, работа с разреженными форматами, выбор представления в вычислительной геометрии — всё это выбор базиса.
🤖 ML/AI. Размерность эмбеддинга (768 у BERT-base, 300 у классических word2vec-векторов) — это буквально размерность пространства представлений. Эффективное число степеней свободы регуляризованной модели считается через след «шляпной» матрицы. Базис из главных компонент, вейвлетные и фурье-базисы, разреженные словари в sparse coding — разные ответы на вопрос «в каком базисе хранить данные». Метод нуль-пространства сводит оптимизацию с линейными ограничениями к задаче меньшей размерности.
📊 Data Science. Эффективная (внутренняя) размерность данных почти всегда меньше числа колонок, и её оценка — стандартный шаг диагностики. Ковариационная матрица $n$ признаков — симметричная матрица, у неё $\dfrac{n(n+1)}{2}$ независимых элементов; отсюда требования к объёму выборки. Поиск базиса столбцового пространства матрицы признаков — это поиск минимального набора признаков, через который выражаются остальные.
🔬 Наука. В квантовой механике состояние системы раскладывается по базису; смена базиса — переход между представлениями (координатное, импульсное). В кристаллографии базис решётки задаёт всю структуру кристалла. В химии размерность ядра матрицы стехиометрических коэффициентов равна числу независимых реакций в системе. В механике число степеней свободы конструкции — это в точности размерность подпространства допустимых перемещений.
💰 Финансы. В факторных моделях доходности базис факторов задаёт систему координат для описания портфелей; число независимых факторов — размерность. Если факторы линейно зависимы, веса неидентифицируемы, и модель нужно перестраивать. Хеджирование сводится к тому, чтобы выразить позицию через базис торгуемых инструментов, а множество безрисковых комбинаций — это ядро матрицы чувствительностей.
Интересные факты
-
Герман Грассман, построивший теорию $n$-мерных пространств в 1844 году, при жизни был гораздо известнее как филолог, а не как математик. Разочаровавшись в равнодушии коллег к «Учению о линейном протяжении», он занялся санскритом: его словарь к «Ригведе», изданный в 1873 году, стал классическим справочником и переиздаётся до сих пор. Математическую же его книгу оценили лишь спустя десятилетия, когда те же идеи переоткрыли независимо.
-
Первое строгое аксиоматическое определение векторного пространства дал Джузеппе Пеано в 1888 году — и спрятал его в последней главе книги, посвящённой изложению идей Грассмана. Там же он определил размерность и сразу привёл пример пространства без конечного базиса — пространство функций. Книгу почти не читали; современный вид аксиоматика приобрела после того, как её воспроизвёл Герман Вейль в 1918 году в «Пространстве, времени, материи».
-
Георг Гамель в 1905 году доказал, что базис есть у любого векторного пространства, в том числе у $\mathbb{R}$ как пространства над полем рациональных чисел. Мотивом была не абстракция: с помощью такого базиса Гамель построил разрывное решение функционального уравнения Коши $f(x + y) = f(x) + f(y)$ — функцию, аддитивную, но не линейную. Существование базиса Гамеля опирается на аксиому выбора, и выписать его явно невозможно в принципе.
-
Дискретное косинусное преобразование, на котором стоит JPEG, предложил Насир Ахмед с соавторами в 1974 году. Пространство блоков $8 \times 8$ имеет размерность 64, и DCT — это просто другой базис в нём, из 64 «волн» нарастающей частоты. Сам стандарт JPEG утвердили в 1992 году. Количество чисел при переходе в этот базис не меняется — меняется только то, что почти все они становятся маленькими и после квантования обращаются в ноль.
-
Ковариационная матрица симметрична, поэтому у $n$ признаков она содержит не $n^2$, а $\dfrac{n(n+1)}{2}$ независимых чисел. Для сотни признаков это $\dfrac{100 \cdot 101}{2} = 5050$ параметров — и именно поэтому надёжная оценка ковариации требует объёма выборки, заметно превышающего это число, а не «хотя бы сто наблюдений». Размерность пространства симметричных матриц здесь — не абстракция, а прямая оценка сложности задачи.
Лайфхаки и полезные трюки
-
Первым делом сравни число векторов с размерностью. Если векторов больше — система заведомо зависима, ответ готов без вычислений. Если меньше — базисом она быть не может, максимум базисом своей оболочки. И только если ровно столько, сколько нужно, имеет смысл считать определитель. Этот шаг занимает секунду и закрывает примерно треть задач на проверку базиса.
-
Ровно $n$ векторов — считай один определитель. По следствиям 2 и 3 при совпадении числа векторов с размерностью достаточно проверить независимость. Ненулевой определитель — базис, нулевой — не базис. Порождаемость доказывать не нужно, и писать про неё в решении тоже.
-
Абстрактные объекты сразу переводи в столбцы. Многочлен $a + bx + cx^2$ — это столбец $(a, b, c)$; матрица $2\times2$ — столбец из четырёх чисел. После перевода задача про многочлены или матрицы становится обычной задачей про $\mathbb{R}^n$, и работает весь привычный аппарат. Главное — зафиксировать один базис для перевода и не менять его посреди решения.
-
Проверяй координаты обратной подстановкой. Нашёл $[v]_f$ — собери вектор обратно: умножь базисные векторы на найденные коэффициенты и сложи. Должен получиться исходный вектор. Это ловит все арифметические ошибки и занимает двадцать секунд. То же для матрицы перехода: прогоняй в обе стороны, $T^{-1}$ на старые координаты и $T$ на новые.
-
В задачах на смену базиса считай сам вектор в стандартном базисе. Он общий для обеих систем координат и служит «третейским судьёй»: собери вектор через старые координаты, собери через новые, сравни. Совпало — ошибки нет.
-
Размерность подпространства с условиями считай как $n - r$. Каждое независимое линейное условие срезает единицу. Симметричность матрицы — это не одно условие, а $\dfrac{n(n-1)}{2}$ равенств $a_{ij} = a_{ji}$; отсюда $n^2 - \dfrac{n(n-1)}{2} = \dfrac{n(n+1)}{2}$. Если условий несколько, сначала проверь, нет ли среди них следствий других.
-
Пересечение считай через сумму. Размерность суммы находится легко: объединил образующие, посчитал ранг. Размерность пересечения тогда получается по формуле Грассмана бесплатно: $\dim(U \cap W) = \dim U + \dim W - \dim(U+W)$. Решать систему на пересечение нужно только тогда, когда требуется сам базис, а не размерность.
-
В задачах с параметром обязательно разбирай критические значения. Найдя корни определителя, подставь каждый обратно и посчитай ранг: он может упасть не на единицу, а сразу на несколько. Кратный корень — характерный признак: в задании 21 при $\lambda = 1$ ранг рухнул с 3 до 1, а не до 2. И проверяй значения по обе стороны от корня — это ловит ошибки в самом определителе.
-
Не доверяй совпадению размерностей. Два подпространства одинаковой размерности — не одно и то же подпространство. Строчное и столбцовое пространства матрицы имеют равные размерности и при этом обычно живут в разных пространствах. Совпадение чисел — необходимое условие равенства, но никак не достаточное.
-
Сверяйся с кодом, но по правильным признакам.
sympy.Matrix.nullspace()иcolumnspace()вернут свои базисы, и они почти наверняка не совпадут с твоими — это нормально, базисов много. Сверять надо три вещи: количество векторов, принадлежность каждого твоего вектора нужному подпространству и то, что твои векторы независимы. Если все три пункта сошлись, ответ верен независимо от того, как он выглядит.
Базис и размерность — та точка, где линейная алгебра из набора приёмов превращается в язык. До этого урока мы умели решать системы и считать ранги; теперь мы умеем говорить о пространствах: у каждого есть размерность, у каждого подпространства — базис, у каждого вектора — координаты. И главное, что стоит унести из урока: координаты зависят от выбора, а сам объект — нет. Вся дальнейшая линейная алгебра — это, по существу, поиск базиса, в котором интересующий нас объект выглядит проще всего. В следующем уроке мы наконец начнём двигать векторы, а не только переименовывать их координаты, — и увидим, что матрица бывает двух совершенно разных сортов: та, что меняет систему отсчёта, и та, что меняет сам вектор.
Понял тему? Закрепи в боте! 🚀
Попрактикуйся на задачах и получи персональные рекомендации от AI
💪 Начать тренировку