Векторные пространства 🌌
Предыдущий урок закончился наблюдением, которое стоит перечитать ещё раз. Множество решений однородной системы $Ax = 0$ устроено правильно: сложи два решения — получишь решение, умножь решение на число — снова решение. Из-за этого решения заполняют не какую попало фигуру, а прямую, плоскость или их многомерный аналог, обязательно проходящие через начало координат. Мы назвали это принципом суперпозиции и на нём построили всю технику ФСР.
Теперь останови взгляд и вспомни, где ты уже видел ровно то же самое.
Стрелки на плоскости (уроки 151–155): две стрелки складываются по правилу параллелограмма, стрелку можно растянуть в $\alpha$ раз. Сложение коммутативно, есть нулевая стрелка, у каждой стрелки есть противоположная. Столбцы чисел из $\mathbb{R}^n$: складываются покоординатно, умножаются на число покоординатно, есть нулевой столбец. Матрицы одного размера (уроки 156–157): складываются поэлементно, умножаются на число поэлементно, есть нулевая матрица, есть противоположная. Многочлены: складываются, умножаются на числа, есть нулевой многочлен. Функции на отрезке: та же история — $(f+g)(x) = f(x)+g(x)$, $(\alpha f)(x) = \alpha f(x)$. И, наконец, множество решений однородной системы, с которого мы начали.
Шесть совершенно разных по природе объектов. Стрелка — это геометрия. Матрица — таблица чисел. Многочлен — формула. Функция — правило. Решение системы — ответ на задачу. Между ними нет ничего общего, кроме одного: правила игры со сложением и умножением на число у них абсолютно одинаковые. Настолько одинаковые, что любое утверждение, доказанное только через эти правила, автоматически верно для всех шести — и для всех остальных объектов с такими же правилами, которые мы ещё даже не встретили.
Вот это и есть содержание урока. Мы выпишем правила игры в виде восьми аксиом, договоримся называть любой объект, который им подчиняется, векторным пространством, а его элементы — векторами, независимо от того, стрелка это, матрица или синус. И дальше будем доказывать теоремы один раз — для всех сразу. Это не философия и не украшательство: это ровно то, что превращает линейную алгебру из набора рецептов для столбцов чисел в инструмент, который работает на функциях, сигналах, изображениях и эмбеддингах слов.
Слово «вектор» после этого урока перестаёт означать «стрелку» или «столбик чисел». Вектор — это любой элемент любого векторного пространства. Многочлен $x^2 - 3x + 5$ — вектор. Функция $\sin x$ — вектор. Матрица $\begin{pmatrix} 1 & 2 \\ 0 & -1 \end{pmatrix}$ — вектор. Это звучит непривычно ровно один день, а потом становится единственным удобным способом говорить.
И ещё одно, чисто практическое. Абстракция здесь окупается не когда-нибудь потом, а сразу: вместо того чтобы для каждого нового множества заново проверять восемь аксиом, мы получим критерий подпространства — проверку из двух пунктов, которая закрывает 90% реальных задач. Проверить, что множество симметричных матриц или множество функций с нулевым интегралом — векторное пространство, будет занимать три строчки вместо трёх страниц.
🎯 Ты узнаешь:
-
Почему у стрелок, столбцов, матриц, многочленов и решений однородной системы обнаруживаются одни и те же правила игры — и что даёт вынесение этих правил в отдельное определение
-
Восемь аксиом векторного пространства над $\mathbb{R}$: четыре про сложение, четыре про умножение на скаляр — и что именно ломается, если выбросить любую из них
-
Зачем нужна странная на вид аксиома $1 \cdot v = v$ и какой «урод» пролезает в определение без неё
-
Как доказывать простейшие факты только из аксиом: единственность нуля, $0 \cdot v = \mathbf{0}$, $(-1)v = -v$ — и почему привычная школьная арифметика тут не аргумент
-
Зоопарк примеров: $\mathbb{R}^n$, матрицы, многочлены, функции, последовательности, ядро матрицы, нулевое пространство — и контрпримеры, где аксиомы рушатся
-
Что такое подпространство и почему критерий подпространства из двух пунктов заменяет проверку всех восьми аксиом
-
Что такое линейная оболочка $\operatorname{span}(v_1, \dots, v_k)$, почему это всегда подпространство и в каком смысле она наименьшая
-
Как ведут себя пересечение, объединение и сумма подпространств — и почему объединение почти никогда не подпространство
История: откуда это взялось?
История векторных пространств — редкий случай, когда абстрактное определение появилось раньше, чем в нём возникла массовая нужда, было проигнорировано на полвека, а потом внезапно оказалось ровно тем, что всем требовалось.
Начало положил школьный учитель из Штеттина Герман Грассман (1809–1877). В 1844 году он выпустил книгу с длинным названием «Die lineale Ausdehnungslehre» — «Учение о линейном протяжении». В ней он строил исчисление объектов, которые можно складывать и умножать на числа, причём сознательно не привязывался ни к плоскости, ни к пространству: у Грассмана «протяжённые величины» могли иметь сколько угодно измерений. По сути это было первое построение того, что мы сейчас называем векторным пространством, вместе с линейной независимостью, подпространствами и размерностью.
Книгу не понял почти никто. Грассман писал философским языком, следуя манере своего отца-математика, определений в современном смысле не давал, а примеров приводил мало. Тираж не разошёлся, часть его была пущена на макулатуру. Грассман переписал книгу в 1862 году гораздо более формально — результат оказался тем же. Признание пришло к нему только в самом конце жизни, да и то больше как к лингвисту: за работы по санскриту и «закон Грассмана» в фонетике он получил докторскую степень раньше, чем математики оценили «Ausdehnungslehre».
Параллельно, в 1843 году, ирландец Уильям Роуэн Гамильтон придумал кватернионы, а его последователи — прежде всего Джозайя Уиллард Гиббс в США и Оливер Хевисайд в Англии — вытащили из кватернионов трёхмерный векторный анализ, тот самый со скалярным и векторным произведениями, который ты проходил в уроках 151–155. Именно от Гиббса и Хевисайда идёт привычная физикам и инженерам работа с векторами как со стрелками.
Первое аксиоматическое определение векторного пространства в современном виде дал итальянец Джузеппе Пеано в 1888 году в книге «Calcolo geometrico secondo l'Ausdehnungslehre di H. Grassmann» — «Геометрическое исчисление по учению о протяжении Г. Грассмана». Пеано был большим мастером аксиоматики (его же аксиомы натуральных чисел ты, возможно, встречал), и он выписал свойства сложения и умножения на число списком — фактически те самые аксиомы, которые мы разберём в этом уроке. Более того, Пеано сразу привёл в пример пространство функций, показав, что его определение работает не только для геометрии. И это в 1888 году, за тридцать лет до функционального анализа.
Пеано тоже опередил время. Массово абстрактный подход пошёл в ход только после Первой мировой. Герман Вейль в книге «Raum, Zeit, Materie» (1918), излагая общую теорию относительности, аксиоматически ввёл векторное (аффинное) пространство — и физикам пришлось это выучить. Стефан Банах в диссертации 1920 года (опубликована в 1922-м) определил полное нормированное пространство, которое теперь носит его имя, и функциональный анализ стартовал всерьёз: пространства функций перестали быть экзотикой. Эмми Нётер в Гёттингене в 1920-е годы задала общий стиль «структурной» алгебры, где сначала выписывают аксиомы, а потом смотрят, что из них следует, — и этот стиль победил.
Термин «вектор» происходит от латинского vector — «несущий», «перевозчик» (от vehere, «везти»); его в математику ввёл Гамильтон в 1840-е. Слово «скаляр» — от латинского scalaris, «относящийся к шкале, лестнице» (scala — лестница): скаляр это то, что просто отмеряется по шкале, в отличие от вектора, у которого есть ещё и направление. Оба слова тоже гамильтоновские.
Забавная деталь про русскую терминологию: то, что по-английски называется vector space, у нас часто называют линейным пространством, и оба термина совершенно равноправны. «Линейное» подчёркивает, что разрешены только линейные операции — сложение и умножение на число; «векторное» подчёркивает, что элементы играют роль векторов. В учебниках можно встретить и то и другое, иногда в одной книге.
Одни и те же правила игры
Интуиция: пять разных объектов и один набор законов
Возьмём пять множеств и посмотрим на них не по существу, а «через прищур» — интересуясь только тем, как в них устроены сложение и умножение на число.
Столбцы из $\mathbb{R}^3$. Складываем покоординатно: $(1, 2, 3) + (4, 0, -1) = (5, 2, 2)$. Умножаем на число покоординатно: $2 \cdot (1, 2, 3) = (2, 4, 6)$. Нулевой элемент — $(0,0,0)$. Противоположный к $(1,2,3)$ — это $(-1,-2,-3)$.
Матрицы $2 \times 2$. Складываем поэлементно, умножаем на число поэлементно:
$$\begin{pmatrix} 1 & 2 \\ 3 & 4 \end{pmatrix} + \begin{pmatrix} 0 & -1 \\ 5 & 5 \end{pmatrix} = \begin{pmatrix} 1 & 1 \\ 8 & 9 \end{pmatrix}, \qquad 2\begin{pmatrix} 1 & 2 \\ 3 & 4 \end{pmatrix} = \begin{pmatrix} 2 & 4 \\ 6 & 8 \end{pmatrix}.$$Нулевой элемент — нулевая матрица. Противоположный — матрица со всеми знаками наоборот.
Многочлены степени не выше двух. $(x^2 - 3x + 1) + (2x^2 + 3x) = 3x^2 + 1$, $\;2(x^2 - 3x + 1) = 2x^2 - 6x + 2$. Нулевой элемент — многочлен, тождественно равный нулю. Противоположный — многочлен с обратными коэффициентами.
Функции на отрезке $[0, 1]$. Сумма функций определяется поточечно: $(f + g)(x) = f(x) + g(x)$. Умножение на число — тоже поточечно: $(\alpha f)(x) = \alpha \cdot f(x)$. Нулевой элемент — функция, тождественно равная нулю. Противоположная к $f$ — функция $-f$.
Решения однородной системы $Ax = 0$. Складываем как столбцы, умножаем на число как столбцы. Из принципа суперпозиции (урок 167) результат снова остаётся решением. Нулевой элемент — тривиальное решение, оно есть всегда. Противоположный к решению $X$ — это $-X$, тоже решение.
А теперь главное. Проверь любое из следующих утверждений в каждом из пяти множеств:
-
$u + v = v + u$ — сумма не зависит от порядка;
-
$(u + v) + w = u + (v + w)$ — скобки можно не расставлять;
-
есть элемент $\mathbf{0}$, который при сложении ничего не меняет;
-
у каждого элемента есть противоположный, дающий в сумме $\mathbf{0}$;
-
$\alpha(u + v) = \alpha u + \alpha v$;
-
$(\alpha + \beta)v = \alpha v + \beta v$;
-
$\alpha(\beta v) = (\alpha\beta)v$;
-
$1 \cdot v = v$.
Все восемь верны везде. В каждом из пяти случаев проверка занимает одну-две строчки и опирается на школьные свойства сложения и умножения чисел — потому что все пять операций в конечном счёте покоординатны, поэлементны или поточечны.
Что даёт вынесение правил за скобки
Пока это выглядит как забавное совпадение. Но вот что из него следует.
Представь, что ты доказал какое-то утверждение — скажем, «если $\alpha v = \mathbf{0}$ и $\alpha \ne 0$, то $v = \mathbf{0}$» — пользуясь только этими восемью свойствами и ничем больше. Ни разу не сославшись на то, что $v$ — это столбец чисел, ни разу не заглянув «внутрь» вектора. Тогда доказательство слово в слово работает и для матриц, и для многочленов, и для функций, и для решений однородной системы. Ты доказал одну теорему — а получил пять. Или пятьдесят, если считать все известные примеры векторных пространств.
Это и есть вся выгода абстракции, и она чисто экономическая: одна теория вместо десяти частных случаев. Никакой мистики, никакого «высшего смысла» — просто отказ переписывать одно и то же доказательство пять раз с заменой слова «столбец» на слово «многочлен».
Второе следствие даже важнее первого. Когда правила игры выписаны явно, становится видно, где именно они нарушаются. Если про какое-то множество непонятно, работает ли на нём линейная алгебра, — теперь есть чёткая процедура: пройтись по восьми пунктам и посмотреть, какой сломается. Не «кажется, тут что-то не так», а «нарушена аксиома существования противоположного элемента, вот контрпример». Это превращает расплывчатые ощущения в проверяемые утверждения, и половина задач этого урока будет ровно про это.
Третье следствие — практическое, из области, куда мы идём. Слова «эмбеддинг слова — это вектор в 768-мерном пространстве» имеют смысл ровно потому, что для эмбеддингов определены сложение и умножение на число с теми же восемью свойствами. Именно поэтому в них осмысленны такие выражения, как $v_{\text{king}} - v_{\text{man}} + v_{\text{woman}}$: это законная линейная комбинация в векторном пространстве, а не произвольная манипуляция с числами. Подробно — в разделе про машинное обучение.
Разбор примеров
Пример 1. Проверяем коммутативность для матриц.
Пусть $A = (a_{ij})$ и $B = (b_{ij})$ — матрицы одного размера $m \times n$. По определению сложения матриц элемент на месте $(i,j)$ у суммы $A + B$ равен $a_{ij} + b_{ij}$, а у суммы $B + A$ равен $b_{ij} + a_{ij}$. Числа коммутируют: $a_{ij} + b_{ij} = b_{ij} + a_{ij}$. Значит, все соответствующие элементы совпадают, а значит, совпадают и матрицы: $A + B = B + A$.
Обрати внимание на устройство доказательства: свойство «наверху» (для матриц) выводится из такого же свойства «внизу» (для чисел) через определение операции. Точно так же будет доказываться коммутативность для столбцов, многочленов и функций — меняется только слово, обозначающее «место», где живут числа: координата, коэффициент, точка $x$.
Пример 2. Проверяем дистрибутивность для функций.
Пусть $f, g$ — функции на отрезке, $\alpha$ — число. Надо проверить $\alpha(f + g) = \alpha f + \alpha g$. Две функции равны, если их значения совпадают в каждой точке. Берём произвольную точку $x$:
$$\big(\alpha(f+g)\big)(x) = \alpha \cdot (f+g)(x) = \alpha\big(f(x) + g(x)\big) = \alpha f(x) + \alpha g(x) = (\alpha f)(x) + (\alpha g)(x) = (\alpha f + \alpha g)(x).$$Первое и последнее равенства — определения операций над функциями; среднее — дистрибутивность для чисел. Совпало в каждой точке, значит функции равны.
Пример 3. Проверяем существование противоположного для решений однородной системы.
Пусть $X$ — решение системы $Ax = 0$, то есть $AX = 0$. Рассмотрим $-X$. Тогда $A(-X) = -(AX) = -0 = 0$, значит $-X$ тоже решение. И $X + (-X) = 0$ — тривиальное решение, которое в множестве решений заведомо есть. Аксиома выполнена.
Здесь важно, что противоположный элемент должен лежать в том же множестве. Само по себе «у столбца $X$ есть противоположный столбец $-X$» ничего не даёт — надо ещё убедиться, что $-X$ не выпал из рассматриваемого множества. Ровно на этом ломаются многие контрпримеры, которые мы разберём ниже.
Почему это важно
Есть соблазн отнестись к аксиоматике как к формальности: «понятно же, что векторы складываются, зачем это восемь раз проговаривать». Соблазн ошибочный, и вот почему.
Во-первых, множеств, в которых сложение и умножение на число определены, но не все восемь свойств выполнены, полно, и они встречаются в реальных задачах. Неотрицательные величины (объёмы, количества, вероятности), множества с ограничениями типа «сумма равна единице» (те же вероятности, доли рынка, one-hot векторы), множества, замкнутые относительно сложения, но не относительно умножения на отрицательное число, — во всех этих случаях линейная алгебра работает не полностью, и знать, что именно отвалилось, критично.
Во-вторых, аксиоматика — это единственный способ понять, какие объекты вообще можно обрабатывать линейными методами. Ответ «любые, для которых определены сложение и умножение на число с этими восемью свойствами» гораздо содержательнее, чем «стрелки и столбцы». Из-за него в линейную алгебру попадают сигналы, изображения, распределения, случайные величины, решения дифференциальных уравнений — и, конечно, всё то, что в машинном обучении называется словом «вектор признаков» или «эмбеддинг».
В-третьих, дальше по курсу мы будем строить довольно тонкую теорию: базис, размерность, линейные операторы, собственные векторы. Она вся будет опираться исключительно на аксиомы. Если сейчас пропустить фундамент, потом каждое доказательство будет выглядеть как магия, потому что непонятно, откуда берутся разрешённые ходы.
Восемь аксиом векторного пространства
Определение
Определение. Пусть $V$ — непустое множество, элементы которого мы будем называть векторами, и пусть заданы две операции:
сложение: каждой паре $u, v \in V$ сопоставлен элемент $u + v \in V$;
умножение на скаляр: каждому числу $\alpha \in \mathbb{R}$ и каждому $v \in V$ сопоставлен элемент $\alpha v \in V$.
Множество $V$ с этими операциями называется векторным (линейным) пространством над полем $\mathbb{R}$, если для любых $u, v, w \in V$ и любых $\alpha, \beta \in \mathbb{R}$ выполнены восемь условий:
A1 (коммутативность сложения): $u + v = v + u$
A2 (ассоциативность сложения): $(u + v) + w = u + (v + w)$
A3 (нулевой вектор): существует такой элемент $\mathbf{0} \in V$, что $v + \mathbf{0} = v$ для всех $v \in V$
A4 (противоположный вектор): для каждого $v \in V$ существует такой элемент $-v \in V$, что $v + (-v) = \mathbf{0}$
A5 (дистрибутивность по векторам): $\alpha(u + v) = \alpha u + \alpha v$
A6 (дистрибутивность по скалярам): $(\alpha + \beta)v = \alpha v + \beta v$
A7 (ассоциативность скаляров): $\alpha(\beta v) = (\alpha\beta)v$
A8 (умножение на единицу): $1 \cdot v = v$
Прежде чем разбирать пункты по одному, обрати внимание на две вещи, которые формально не входят в список, но без которых он бессмысленен.
Первое — замкнутость. В самом начале определения сказано: $u + v$ лежит в $V$, и $\alpha v$ лежит в $V$. Это часть условия «операции заданы на $V$», а не отдельная аксиома, но проверять её надо всегда и в первую очередь. Если сумма двух элементов множества из множества вылетает, разговаривать не о чем: остальные восемь пунктов даже не имеют смысла, потому что записанные в них равенства могут не быть равенствами элементов $V$. В задачах на «является ли множество векторным пространством» замкнутость ломается чаще всего.
Второе — скаляры. Мы всюду берём в качестве скаляров вещественные числа, и это фиксируется словами «над полем $\mathbb{R}$». Скаляры можно брать и из других числовых систем — из рациональных чисел, из комплексных, из конечных полей; тогда получаются другие пространства, и некоторые факты меняются. Над $\mathbb{C}$ картина местами устроена иначе, но техники комплексных чисел нам в этом курсе не понадобится: всюду дальше скаляр — вещественное число.
Четыре аксиомы про сложение
A1, коммутативность: $u + v = v + u$. Порядок слагаемых не важен. Кажется, что это само собой, но это неправда: умножение матриц, например, некоммутативно, и никто не обязан заранее давать нам коммутативность. Аксиома A1 её требует. Практический смысл: в любой сумме векторов слагаемые можно переставлять как угодно, не задумываясь.
A2, ассоциативность: $(u+v)+w = u+(v+w)$. Скобки в сумме трёх векторов можно расставлять как угодно, а значит, выражение $u+v+w$ без скобок имеет однозначный смысл. Вместе с A1 это даёт полную свободу: в сумме любого числа векторов можно менять и порядок, и группировку. Именно A1 и A2 разрешают писать $c_1v_1 + c_2v_2 + \dots + c_kv_k$ без единой скобки — а на таких выражениях, линейных комбинациях, стоит вся дальнейшая теория.
A3, нулевой вектор: существует $\mathbf{0}$ с $v + \mathbf{0} = v$. В множестве обязан быть «нейтральный» элемент. Заметь формулировку: не «ноль — это вектор с нулевыми координатами» (у абстрактного вектора никаких координат может и не быть), а «существует элемент, который при сложении ничего не меняет». Для столбцов это нулевой столбец, для матриц — нулевая матрица, для функций — тождественно нулевая функция, для многочленов — нулевой многочлен.
Аксиома A3 имеет прямое практическое следствие: любое векторное пространство непусто, в нём как минимум есть $\mathbf{0}$. И обратно: если в множестве нет нейтрального элемента — например, множество задано условием $x_1 + x_2 = 1$, которому нулевой вектор не удовлетворяет, — оно векторным пространством не является, и проверять остальное незачем. Это самый быстрый тест на свете, и мы будем им пользоваться постоянно.
Жирный шрифт в $\mathbf{0}$ — не украшение. Ноль-вектор и ноль-число это разные объекты: первый живёт в $V$, второй в $\mathbb{R}$. Пока они выглядят похоже, но в выражении $0 \cdot v = \mathbf{0}$ слева стоит число, а справа вектор, и путать их нельзя.
A4, противоположный вектор: для каждого $v$ существует $-v$ с $v + (-v) = \mathbf{0}$. У каждого элемента есть «обратный по сложению». Это то, что позволяет вычитать: разность определяется как $u - v := u + (-v)$. Без A4 вычитание невозможно, а вместе с ним рушится вся техника решения уравнений вида $x + a = b$.
Ключевой момент: $-v$ обязан лежать в том же множестве $V$. Именно тут ломается множество векторов с неотрицательными координатами: у вектора $(1, 2)$ противоположный это $(-1, -2)$, и он из множества выпадает.
Обрати внимание: в A3 и A4 записано только $v + \mathbf{0} = v$ и $v + (-v) = \mathbf{0}$, но не $\mathbf{0} + v = v$ и не $(-v) + v = \mathbf{0}$. Вторые равенства не нужно требовать отдельно — они следуют из первых по коммутативности A1. Аксиоматика сознательно экономная: каждое требование, которое можно вывести из остальных, из списка выбрасывается.
Четыре аксиомы про умножение на скаляр
A5, дистрибутивность по векторам: $\alpha(u+v) = \alpha u + \alpha v$. Растянуть сумму — то же, что растянуть слагаемые и сложить. Геометрически для стрелок это подобие треугольников: увеличив обе стороны параллелограмма в $\alpha$ раз, увеличиваешь в $\alpha$ раз и диагональ.
A6, дистрибутивность по скалярам: $(\alpha + \beta)v = \alpha v + \beta v$. Растянуть в $\alpha+\beta$ раз — то же, что растянуть в $\alpha$ раз, растянуть в $\beta$ раз и сложить. Здесь очень легко не заметить фокус: слева знак «плюс» стоит между числами, справа — между векторами. Это две разные операции, обозначенные одинаковым символом, и A6 как раз утверждает, что они согласованы. Аналогично в A5 слева «плюс» между векторами, справа тоже между векторами, но растяжение перенеслось внутрь.
A6 — самая «рабочая» из аксиом: именно она позволяет собирать подобные слагаемые. Выражение $3v + 5v$ можно свернуть в $8v$ только благодаря A6.
A7, ассоциативность скаляров: $\alpha(\beta v) = (\alpha\beta)v$. Растянуть в $\beta$ раз, а потом в $\alpha$ — то же, что сразу в $\alpha\beta$ раз. Снова две разные операции под одним значком: слева два умножения вектора на число, справа сначала умножение чисел, потом умножение вектора на число. Эта аксиома разрешает переносить числовые множители «сквозь» векторные выражения и группировать их: $2(3(4v)) = 24v$.
A8, умножение на единицу: $1 \cdot v = v$. А вот это выглядит настолько тривиальным, что вызывает главный вопрос урока: зачем это вообще писать? Разберёмся отдельно, потому что ответ показательный.
Зачем нужна аксиома $1 \cdot v = v$
Логика такая: аксиомы A5–A7 связывают умножение на скаляр с арифметикой чисел, но нигде не говорят, что хоть один конкретный скаляр действует конкретным образом. Они полностью «однородны»: если правило умножения на скаляр как-то согласовано со сложением, оно может быть согласовано и будучи вырожденным. A8 — единственный пункт, который «прибивает» операцию к реальности, задавая её значение хотя бы в одной точке.
Покажем это на конкретном примере. Он выглядит искусственно — потому что он и есть искусственный, его задача ровно одна: доказать, что без A8 определение дырявое.
Контрпример. Возьмём $V = \mathbb{R}^2$ с обычным сложением векторов, но с извращённым умножением на скаляр:
$$\alpha \odot v := \mathbf{0} \quad \text{для любых } \alpha \in \mathbb{R}, \ v \in V,$$то есть умножение на любое число превращает любой вектор в нулевой.
Проверим все аксиомы, кроме A8.
A1–A4 — про сложение, а сложение мы не трогали, оно обычное покоординатное. Все четыре выполнены.
A5: $\alpha \odot (u + v) = \mathbf{0}$ по определению нашей операции. С другой стороны, $\alpha \odot u \;+\; \alpha \odot v = \mathbf{0} + \mathbf{0} = \mathbf{0}$. Равенство выполнено.
A6: $(\alpha + \beta) \odot v = \mathbf{0}$. И $\alpha \odot v + \beta \odot v = \mathbf{0} + \mathbf{0} = \mathbf{0}$. Выполнено.
A7: $\alpha \odot (\beta \odot v) = \alpha \odot \mathbf{0} = \mathbf{0}$, и $(\alpha\beta) \odot v = \mathbf{0}$. Выполнено.
A8: $1 \odot v = \mathbf{0}$, а должно быть $v$. Для любого ненулевого $v$ это неверно. Аксиома нарушена.
Итого: семь аксиом из восьми выполняются, а объект получился абсолютно бессмысленный. Умножение на скаляр в нём не несёт никакой информации: все растяжения дают ноль, любая линейная комбинация $c_1v_1 + \dots + c_kv_k$ равна $\mathbf{0}$, никакой геометрии, никаких прямых и плоскостей. Если бы A8 не было в списке, вся дальнейшая теория — базис, координаты, ранг, собственные векторы — на таком «пространстве» рассыпалась бы в труху, а формально придраться было бы не к чему.
Смысл A8 можно сформулировать так: аксиомы A5–A7 говорят, что операция умножения на скаляр ведёт себя как умножение, а A8 говорит, что она действительно умножение, а не пустышка. Это типичная ситуация в аксиоматике: самое безобидное на вид требование оказывается тем, которое отсекает вырожденные случаи.
Есть и более тонкие «уроды». Возьми $V = \mathbb{R}^2$ с обычным сложением и операцией $\alpha \odot (x, y) := (\alpha x, 0)$. Проверка (она вынесена в задание 25) показывает: A1–A7 выполнены, а A8 — нет, потому что $1 \odot (x, y) = (x, 0) \ne (x, y)$ при $y \ne 0$. Здесь умножение на скаляр уже не совсем пустышка — оно что-то делает, — но оно теряет часть вектора, и без A8 такая потеря остаётся незамеченной.
Разбор примеров
Пример 1. $\mathbb{R}^3$ — проверяем аксиомы полностью.
Элементы — столбцы $x = (x_1, x_2, x_3)$, операции покоординатные. Проверка каждой аксиомы сводится к соответствующему свойству чисел, применённому в каждой из трёх координат.
A1: $i$-я координата суммы $u+v$ равна $u_i + v_i$, у суммы $v+u$ равна $v_i + u_i$; числа коммутируют — совпало.
A2: $i$-я координата у $(u+v)+w$ равна $(u_i+v_i)+w_i$, у $u+(v+w)$ равна $u_i+(v_i+w_i)$; числа ассоциативны — совпало.
A3: $\mathbf{0} = (0,0,0)$, и $x_i + 0 = x_i$ в каждой координате.
A4: $-x = (-x_1,-x_2,-x_3)$, и $x_i + (-x_i) = 0$ в каждой координате.
A5: $i$-я координата слева $\alpha(u_i+v_i)$, справа $\alpha u_i + \alpha v_i$ — дистрибутивность чисел.
A6: слева $(\alpha+\beta)v_i$, справа $\alpha v_i + \beta v_i$ — она же.
A7: слева $\alpha(\beta v_i)$, справа $(\alpha\beta)v_i$ — ассоциативность умножения чисел.
A8: $1 \cdot x_i = x_i$ — свойство единицы.
Все восемь выполнены, $\mathbb{R}^3$ — векторное пространство. Ровно тем же текстом, с заменой «трёх координат» на «$n$ координат», доказывается это для $\mathbb{R}^n$ при любом $n \ge 1$.
Пример 2. Множество $\{(x_1, x_2) : x_1 \ge 0,\ x_2 \ge 0\}$ — первый квадрант.
Замкнутость относительно сложения есть: сумма неотрицательных чисел неотрицательна. Ноль есть: $(0,0)$ лежит в множестве. A1, A2, A5, A6, A7, A8 наследуются от $\mathbb{R}^2$ автоматически — они верны для всех векторов плоскости, значит и для тех, что попали в квадрант.
А вот A4 нарушена: возьмём $v = (3, 1)$. Противоположный к нему в $\mathbb{R}^2$ это $(-3,-1)$, и другого элемента, дающего с $v$ в сумме $(0,0)$, не существует. Но $(-3,-1)$ не лежит в первом квадранте: обе координаты отрицательны. Значит, у вектора $(3,1)$ внутри рассматриваемого множества нет противоположного.
Заодно ломается и замкнутость относительно умножения на скаляр: $(-1) \cdot (3,1) = (-3,-1)$ из множества вылетает. Так что тут отвалились и требование замкнутости, и A4 — и одного этого уже достаточно для приговора.
Ответ: первый квадрант плоскости векторным пространством не является; нарушена аксиома A4 (и замкнутость относительно умножения на отрицательный скаляр).
Пример 3. Множество многочленов ровно второй степени.
Обозначим $M = \{\,p(x) = ax^2+bx+c \;:\; a \ne 0\,\}$ — многочлены, у которых старший коэффициент обязательно ненулевой.
Замкнутость относительно сложения нарушена. Возьмём $p(x) = x^2 + x$ и $q(x) = -x^2 + 1$. Оба лежат в $M$ (старшие коэффициенты $1$ и $-1$, оба ненулевые). Но
$$p(x) + q(x) = (x^2 + x) + (-x^2 + 1) = x + 1,$$и это многочлен первой степени, старший коэффициент при $x^2$ равен нулю. Сумма выпала из множества.
A3 тоже нарушена: нулевой многочлен не имеет второй степени, значит $\mathbf{0} \notin M$.
Ответ: множество многочленов ровно второй степени векторным пространством не является; нарушены замкнутость относительно сложения и A3 (нет нулевого элемента).
Пример 4. Прямая, не проходящая через начало координат.
Пусть $L = \{(x, y) \in \mathbb{R}^2 : y = 2x + 1\}$.
Проверка на ноль занимает пять секунд: подставим $(0,0)$, получим $0 = 2\cdot 0 + 1 = 1$ — неверно. Нулевого вектора в $L$ нет, A3 нарушена, дальше можно не смотреть.
Для наглядности покажем и слом замкнутости. Точки $(0, 1)$ и $(1, 3)$ лежат на $L$. Их сумма $(1, 4)$: проверяем, $4 \ne 2 \cdot 1 + 1 = 3$. Не лежит. Геометрически это понятно: сложение векторов «тянет» результат в сторону от прямой, потому что прямая сдвинута относительно начала координат.
Ответ: прямая $y = 2x+1$ векторным пространством (и подпространством $\mathbb{R}^2$) не является; нарушена A3.
Пример 5. Множество решений неоднородной системы.
Возьмём одно уравнение с тремя неизвестными: $x_1 + x_2 + x_3 = 1$, и пусть $S$ — множество его решений. В уроке 167 мы уже выяснили, что для неоднородной системы принцип суперпозиции не работает; теперь назовём это на языке аксиом.
Нулевой вектор: $0 + 0 + 0 = 0 \ne 1$, значит $(0,0,0) \notin S$. A3 нарушена.
Замкнутость: $u = (1,0,0) \in S$ и $v = (0,1,0) \in S$, но $u + v = (1,1,0)$ даёт $1+1+0 = 2 \ne 1$. Сумма из $S$ выпала.
Геометрически $S$ — плоскость, параллельная плоскости $x_1+x_2+x_3=0$, но сдвинутая от начала координат. А множество решений приведённой однородной системы $x_1+x_2+x_3=0$ — плоскость через ноль, и она пространством является. Это ровно та картинка «$X_{\text{общ}} = X_{\text{частн}} + X_{\text{одн}}$», которой закончился прошлый урок: ядро — пространство, сдвинутое ядро — уже нет.
Ответ: множество решений неоднородной системы векторным пространством не является; нарушена A3 и замкнутость относительно сложения.
Почему это важно
Восемь аксиом — это не список, который надо зазубрить, а чек-лист диагностики. Когда перед тобой незнакомое множество и вопрос «можно ли тут работать линейными методами», ты не гадаешь, а идёшь по пунктам. И в 95% случаев ответ выясняется на первых трёх проверках: лежит ли $\mathbf{0}$, не вылетает ли сумма, не вылетает ли произведение на $-1$.
Практический порядок проверки, который экономит время:
-
Есть ли $\mathbf{0}$? Если нет — приговор мгновенный, множество даже не непустое в нужном смысле.
-
Замкнуто ли относительно сложения? Ищем два элемента, сумма которых выпадает.
-
Замкнуто ли относительно умножения на скаляр? Особое внимание отрицательным множителям и нулю.
-
Если множество — часть уже известного пространства (столбцов, матриц, функций), то A1, A2, A5, A6, A7, A8 наследуются автоматически, и проверять их не надо. Почему — разберём в разделе про подпространства; это и есть содержание критерия подпространства.
-
Если множество не является частью известного пространства, а операции заданы каким-то экзотическим правилом — придётся проходить все восемь пунктов честно. Тогда особое внимание A8: как мы видели, именно она отсеивает вырожденные конструкции.
Что следует из аксиом
Это первый раздел курса, где мы будем доказывать утверждения из аксиом, а не вычислять. Правила игры тут жёсткие, и их стоит проговорить до того, как начнём.
Механика доказательства: что можно, а что нельзя
Разрешено использовать:
-
восемь аксиом A1–A8 — в любом порядке, сколько угодно раз;
-
замкнутость: сумма векторов из $V$ лежит в $V$, произведение вектора из $V$ на число лежит в $V$;
-
обычную арифметику чисел (скаляров): $0 + 0 = 0$, $1 + (-1) = 0$, $\alpha \cdot \alpha^{-1} = 1$ при $\alpha \ne 0$ — скаляры это вещественные числа, с ними можно всё привычное;
-
уже доказанные ранее следствия аксиом.
Запрещено использовать:
-
любые представления о том, что «внутри» вектора: координаты, коэффициенты, значения функции. Абстрактный вектор — это точка множества, у него нет внутренностей;
-
«привычные» свойства, которых нет в списке аксиом, — например, что из $\alpha v = \alpha w$ следует $v = w$, или что $v + v = 2v$. Второе, кстати, доказывается (через A6 и A8), но именно доказывается, а не постулируется;
-
деление вектора на вектор, умножение вектора на вектор — таких операций в определении нет вообще.
Особенно важен запрет на «внутренности». Вся ценность доказательства из аксиом ровно в том, что оно не смотрит внутрь: поэтому оно и работает одновременно для столбцов, матриц, многочленов и функций. Как только в рассуждении появляется фраза «посмотрим на первую координату», доказательство перестаёт быть общим.
Есть один инструмент, который понадобится почти в каждом доказательстве, — закон сокращения. Докажем его первым.
Лемма (закон сокращения). Если $u + v = u + w$, то $v = w$.
Доказательство. По A4 у вектора $u$ есть противоположный $-u$. Прибавим его к обеим частям слева:
$$(-u) + (u + v) = (-u) + (u + w).$$Слева по A2 (ассоциативность) переставим скобки: $((-u) + u) + v$. По A1 и A4 имеем $(-u) + u = u + (-u) = \mathbf{0}$, значит слева $\mathbf{0} + v$, а это по A1 и A3 равно $v$. Точно так же справа получается $w$. Итого $v = w$. $\blacksquare$
Этот приём — «прибавить противоположный и свернуть по ассоциативности» — будет повторяться постоянно. Дальше мы будем ссылаться на лемму, не расписывая её каждый раз.
Следствие 1: нулевой вектор единственный
Аксиома A3 требует, чтобы нейтральный элемент существовал, но не запрещает существовать двум разным. Проверим, что двух быть не может.
Утверждение. В векторном пространстве $V$ существует ровно один вектор $\mathbf{0}$, обладающий свойством $v + \mathbf{0} = v$ для всех $v \in V$.
Доказательство. Пусть таких элементов два: $\mathbf{0}_1$ и $\mathbf{0}_2$, и оба нейтральны, то есть
$$v + \mathbf{0}_1 = v \quad \text{для всех } v, \qquad v + \mathbf{0}_2 = v \quad \text{для всех } v.$$Рассмотрим сумму $\mathbf{0}_1 + \mathbf{0}_2$ и посчитаем её двумя способами.
Первый: применим второе свойство при $v = \mathbf{0}_1$. Получим $\mathbf{0}_1 + \mathbf{0}_2 = \mathbf{0}_1$.
Второй: применим первое свойство при $v = \mathbf{0}_2$. Получим $\mathbf{0}_2 + \mathbf{0}_1 = \mathbf{0}_2$, а по коммутативности A1 левая часть равна $\mathbf{0}_1 + \mathbf{0}_2$.
Одно и то же выражение оказалось равно и $\mathbf{0}_1$, и $\mathbf{0}_2$, значит $\mathbf{0}_1 = \mathbf{0}_2$. $\blacksquare$
Приём тут стандартный для всех доказательств единственности: предположить, что объектов два, заставить их «встретиться» в одном выражении и убедиться, что они совпадают. Ту же схему мы применим к противоположному вектору.
Следствие 2: противоположный вектор единственный
Утверждение. Для каждого $v \in V$ существует ровно один вектор $w$, для которого $v + w = \mathbf{0}$.
Доказательство. Существование даёт A4. Пусть теперь есть два таких: $v + w_1 = \mathbf{0}$ и $v + w_2 = \mathbf{0}$. Тогда
$$v + w_1 = v + w_2,$$и по лемме о сокращении $w_1 = w_2$. $\blacksquare$
Именно эта единственность даёт право на обозначение: символ $-v$ означает тот самый, единственный противоположный вектор, а не «какой-нибудь из подходящих». И только теперь корректно определяется вычитание:
$$u - v := u + (-v).$$Следствие 3: $0 \cdot v = \mathbf{0}$
Вот утверждение, которое выглядит настолько привычным, что его хочется принять без доказательства. Не выйдет: в аксиомах нигде не сказано, что умножение на число ноль даёт нулевой вектор. Слева стоит число $0$, справа — вектор $\mathbf{0}$, и связь между ними надо установить.
Утверждение. Для любого $v \in V$ выполнено $0 \cdot v = \mathbf{0}$.
Доказательство. Оттолкнёмся от числового равенства $0 + 0 = 0$. Умножим вектор $v$ на обе части:
$$(0 + 0)\,v = 0 \cdot v.$$Левую часть раскроем по A6 (дистрибутивность по скалярам):
$$0 \cdot v + 0 \cdot v = 0 \cdot v.$$Правую часть запишем как $0 \cdot v + \mathbf{0}$ — это законно по A3:
$$0 \cdot v + 0 \cdot v = 0 \cdot v + \mathbf{0}.$$Теперь слева и справа стоит сумма, у которой первое слагаемое одинаковое. По лемме о сокращении убираем его:
$$0 \cdot v = \mathbf{0}. \qquad \blacksquare$$Разбери это доказательство внимательно, оно образцовое. Всё началось с тождества для чисел ($0+0=0$), потом аксиома A6 перенесла его на векторы, а закон сокращения довёл дело до конца. Никаких координат, никаких «ну понятно же». Ровно поэтому результат верен и для матриц, и для функций, и для решений однородной системы, и для любого пространства, которое кто-нибудь придумает завтра.
Следствие 4: $\alpha \cdot \mathbf{0} = \mathbf{0}$
Симметричное утверждение: теперь ноль-вектор умножаем на произвольное число.
Утверждение. Для любого $\alpha \in \mathbb{R}$ выполнено $\alpha \cdot \mathbf{0} = \mathbf{0}$.
Доказательство. Оттолкнёмся от векторного равенства $\mathbf{0} + \mathbf{0} = \mathbf{0}$ (это A3, применённая к $v = \mathbf{0}$). Умножим обе части на $\alpha$:
$$\alpha(\mathbf{0} + \mathbf{0}) = \alpha \mathbf{0}.$$Левую часть раскроем по A5 (дистрибутивность по векторам):
$$\alpha\mathbf{0} + \alpha\mathbf{0} = \alpha\mathbf{0}.$$Справа допишем нейтральный элемент по A3: $\alpha\mathbf{0} = \alpha\mathbf{0} + \mathbf{0}$. Получаем
$$\alpha\mathbf{0} + \alpha\mathbf{0} = \alpha\mathbf{0} + \mathbf{0},$$и по лемме о сокращении $\alpha\mathbf{0} = \mathbf{0}$. $\blacksquare$
Сравни доказательства следствий 3 и 4: они устроены одинаково, но одно стартует от тождества для чисел и использует A6, а другое — от тождества для векторов и использует A5. Это не совпадение: A5 и A6 — зеркальные аксиомы, и все факты, где ноль стоит с одной стороны, доказываются зеркально.
Следствие 5: $(-1)v = -v$
Ещё одно «само собой разумеющееся» утверждение, требующее доказательства. Тут особенно важно понимать, что именно доказывается. Символ $-v$ введён аксиомой A4 как единственный вектор, дающий с $v$ в сумме ноль. Символ $(-1)v$ — это результат умножения вектора $v$ на число $-1$. Априори это два разных объекта: один определён через сложение, второй через умножение на скаляр.
Утверждение. Для любого $v \in V$ выполнено $(-1)v = -v$.
Доказательство. Чтобы доказать, что $(-1)v$ — это и есть противоположный к $v$, достаточно проверить, что $v + (-1)v = \mathbf{0}$: ведь противоположный единственный (следствие 2), значит любой вектор с таким свойством и есть $-v$.
Считаем:
$$v + (-1)v \overset{\text{A8}}{=} 1 \cdot v + (-1)v \overset{\text{A6}}{=} \big(1 + (-1)\big)v = 0 \cdot v \overset{\text{сл.3}}{=} \mathbf{0}.$$Первый переход — аксиома A8: заменяем $v$ на $1 \cdot v$ (вот она и пригодилась). Второй — A6, собираем скаляры. Дальше $1 + (-1) = 0$ — арифметика чисел. Последний переход — следствие 3. Итого $v + (-1)v = \mathbf{0}$, а значит $(-1)v = -v$. $\blacksquare$
Заметь, где сработала A8. Без неё нельзя было бы записать $v$ как $1 \cdot v$, и вся цепочка не завелась бы. В том вырожденном «пространстве» из предыдущего раздела, где $\alpha \odot v = \mathbf{0}$ всегда, утверждение и правда неверно: там $(-1) \odot v = \mathbf{0}$, а $-v$ — это нормальный вектор с противоположными координатами, и они не совпадают при $v \ne \mathbf{0}$. Аксиома A8 не декоративная — конкретно на ней стоит этот факт.
Из следствия 5 сразу получается привычный вид вычитания:
$$u - v = u + (-v) = u + (-1)v,$$то есть вычитание — частный случай линейной комбинации с коэффициентами $1$ и $-1$.
Следствие 6: если $\alpha v = \mathbf{0}$, то $\alpha = 0$ или $v = \mathbf{0}$
Это самое содержательное из следствий. Оно говорит, что в векторном пространстве нет делителей нуля: произведение обращается в ноль только если один из сомножителей нулевой.
Утверждение. Пусть $\alpha \in \mathbb{R}$, $v \in V$ и $\alpha v = \mathbf{0}$. Тогда $\alpha = 0$ или $v = \mathbf{0}$.
Доказательство. Разберём два случая.
Случай 1: $\alpha = 0$. Тогда утверждение уже выполнено — первая из двух возможностей верна, доказывать нечего.
Случай 2: $\alpha \ne 0$. Раз $\alpha$ — ненулевое вещественное число, у него есть обратное $\dfrac{1}{\alpha}$. Умножим обе части равенства $\alpha v = \mathbf{0}$ на это число:
$$\frac{1}{\alpha}(\alpha v) = \frac{1}{\alpha} \cdot \mathbf{0}.$$Левую часть свернём по A7 (ассоциативность скаляров):
$$\frac{1}{\alpha}(\alpha v) = \left(\frac{1}{\alpha} \cdot \alpha\right) v = 1 \cdot v \overset{\text{A8}}{=} v.$$Правая часть по следствию 4 равна $\mathbf{0}$. Значит $v = \mathbf{0}$, то есть верна вторая возможность. $\blacksquare$
Обрати внимание на ход: «$\alpha \ne 0$, значит существует $1/\alpha$» — это использование того, что скаляры образуют поле (числовую систему, где можно делить на всё, кроме нуля). Именно из-за этого требования в определении сказано «над полем $\mathbb{R}$», а не «над какими-нибудь числами». Если бы скаляры брались, скажем, из целых чисел, обратного к двойке не нашлось бы, и следствие 6 пришлось бы доказывать иначе — или оно оказалось бы неверным.
Практическая ценность следствия 6 огромна. Именно оно позволяет из равенства $\alpha v = \mathbf{0}$ при $v \ne \mathbf{0}$ немедленно заключить $\alpha = 0$ — а такой шаг встречается почти в каждом доказательстве дальше по курсу.
Разбор примеров
Пример 1. Вывести, что $v + v = 2v$.
$$v + v \overset{\text{A8}}{=} 1\cdot v + 1 \cdot v \overset{\text{A6}}{=} (1+1)v = 2v.$$Три шага: расписали $v$ через единичный множитель (A8), собрали скаляры (A6), сложили числа. Тем же способом получается $v + v + v = 3v$ и вообще $\underbrace{v + \dots + v}_{k} = kv$.
Пример 2. Доказать, что $-(-v) = v$.
По определению $-(-v)$ — это единственный вектор, дающий с $(-v)$ в сумме ноль. Но такой вектор мы знаем: это $v$, поскольку $(-v) + v = v + (-v) = \mathbf{0}$ по A1 и A4. По единственности противоположного (следствие 2) отсюда $-(-v) = v$. $\blacksquare$
Пример 3. Доказать, что $\alpha(u - v) = \alpha u - \alpha v$.
Распишем разность через противоположный и воспользуемся следствием 5:
$$\alpha(u - v) = \alpha\big(u + (-1)v\big) \overset{\text{A5}}{=} \alpha u + \alpha\big((-1)v\big) \overset{\text{A7}}{=} \alpha u + \big(\alpha \cdot (-1)\big)v = \alpha u + (-\alpha)v.$$Осталось показать, что $(-\alpha)v = -(\alpha v)$. Это делается тем же приёмом, что и следствие 5:
$$\alpha v + (-\alpha)v \overset{\text{A6}}{=} \big(\alpha + (-\alpha)\big)v = 0 \cdot v = \mathbf{0},$$значит $(-\alpha)v$ и есть противоположный к $\alpha v$. Подставляя, получаем $\alpha(u-v) = \alpha u - \alpha v$. $\blacksquare$
Пример 4. Найти ошибку в «доказательстве».
Некто рассуждает так: «Пусть $\alpha v = \beta v$. Сократим на $v$ и получим $\alpha = \beta$».
Ошибка в слове «сократим»: деления на вектор не существует, такой операции нет в определении. Правильный ход другой:
$$\alpha v = \beta v \;\Longrightarrow\; \alpha v - \beta v = \mathbf{0} \;\overset{\text{A6}}{\Longrightarrow}\; (\alpha - \beta)v = \mathbf{0}.$$Теперь по следствию 6 либо $\alpha - \beta = 0$, либо $v = \mathbf{0}$. То есть вывод $\alpha = \beta$ верен только при $v \ne \mathbf{0}$. При $v = \mathbf{0}$ равенство $\alpha \mathbf{0} = \beta \mathbf{0}$ выполняется при любых $\alpha, \beta$, и никакого сокращения быть не может.
Это типичная ловушка: привычка школьной алгебры подсказывает «сократить», а в абстрактном пространстве сокращать можно только по сложению (лемма) и никогда — по умножению на вектор.
Почему это важно
Кажется, что мы потратили целый раздел на доказательство очевидных вещей. На самом деле произошло три важных события.
Первое. Все шесть следствий доказаны один раз — и работают во всех векторных пространствах сразу. Когда через два урока мы будем работать с многочленами и функциями как с векторами, факт «$0 \cdot p = \mathbf{0}$» для многочлена $p$ не потребует отдельной проверки: он уже доказан.
Второе. Ты увидел, как выглядит рассуждение, опирающееся только на аксиомы. Это ровно тот стиль, в котором написаны все дальнейшие доказательства курса — про базис, про линейные операторы, про собственные векторы. Механика везде одна: взять аксиому, применить, сослаться на ранее доказанное, довести до цели. Отдельно стоит запомнить два самых частых хода: закон сокращения и проверка «этот вектор и есть противоположный, потому что даёт в сумме ноль».
Третье, самое неочевидное. Мы выяснили, какие привычные операции в абстрактном пространстве запрещены: делить на вектор, сокращать на вектор, перемножать два вектора. Знать границы дозволенного важнее, чем знать сами правила: большинство ошибок в линейной алгебре — это применение операции, которой в определении нет.
Зоопарк примеров
Интуиция: чем шире зоопарк, тем ценнее теория
Каждый новый пример векторного пространства — это ещё одна область, куда бесплатно переезжает вся линейная алгебра. Поэтому зоопарк стоит держать в голове целиком: увидев в задаче многочлены или функции, ты должен сразу узнавать в них векторы, а не сначала два часа соображать, применимы ли тут привычные методы.
Разберём восемь пространств. Для каждого укажем, что считается вектором, как устроены операции, что играет роль нуля и что — противоположного элемента.
Пример 1: арифметическое пространство $\mathbb{R}^n$
Векторы: упорядоченные наборы из $n$ вещественных чисел $x = (x_1, \dots, x_n)$. Их удобно записывать столбцами.
Операции: покоординатные.
Ноль: $(0, \dots, 0)$. Противоположный: $(-x_1, \dots, -x_n)$.
Полная проверка восьми аксиом сделана выше, в примере 1 предыдущего раздела: каждая сводится к соответствующему свойству чисел, применённому в каждой координате.
При $n = 1$ получается сама числовая прямая $\mathbb{R}$: числа складываются и умножаются на числа, все аксиомы — обычная арифметика. Это законное, хотя и скучное, векторное пространство. При $n=2$ и $n=3$ получаются знакомые по урокам 151–155 плоскость и трёхмерное пространство, где вектор изображается стрелкой из начала координат.
$\mathbb{R}^n$ — эталонный пример, к которому в конце концов сводится любое «конечное» пространство. Но начинать с него как с определения было бы ошибкой: тогда пришлось бы каждый раз объяснять, почему многочлены «тоже как бы столбцы».
Пример 2: матрицы фиксированного размера $M_{m \times n}$
Векторы: все матрицы размера $m \times n$ с вещественными элементами.
Операции: поэлементное сложение и поэлементное умножение на число (уроки 156–157).
Ноль: нулевая матрица $O$, у которой все элементы нули. Противоположный к $A$: матрица $-A$ со всеми знаками наоборот.
Проверка. A1: элемент $(i,j)$ у $A+B$ равен $a_{ij}+b_{ij}$, у $B+A$ равен $b_{ij}+a_{ij}$ — числа коммутируют. A2 аналогично. A3: $a_{ij} + 0 = a_{ij}$ в каждой клетке. A4: $a_{ij} + (-a_{ij}) = 0$. A5–A8 — те же свойства чисел, применённые поклеточно. Все восемь выполнены.
Отдельно проговорим то, что смущает при первом знакомстве: умножение матриц в этой конструкции не участвует вообще. Векторное пространство знает только сложение и умножение на число. Матричное произведение — дополнительная структура, из-за которой $M_{n \times n}$ становится ещё и алгеброй, но к аксиомам векторного пространства оно отношения не имеет. Именно поэтому некоммутативность произведения матриц никак не мешает $M_{m \times n}$ быть векторным пространством.
Размер обязан быть фиксирован: множество «всех матриц вообще» пространством не является, потому что сложить матрицу $2\times3$ с матрицей $3\times2$ нельзя — операция не определена.
Пример 3: многочлены степени не выше $n$, пространство $P_n$
Векторы: многочлены $p(x) = a_0 + a_1x + \dots + a_nx^n$ с вещественными коэффициентами, где степень не превосходит $n$. Сюда входит и нулевой многочлен.
Операции: сложение по обычным правилам (коэффициенты при одинаковых степенях складываются), умножение на число — умножение всех коэффициентов.
Ноль: нулевой многочлен. Противоположный: многочлен с противоположными коэффициентами.
Проверка замкнутости. Складывая два многочлена степени не выше $n$, получаем многочлен степени не выше $n$: коэффициенты при степенях выше $n$ у обоих нулевые, значит и у суммы нулевые. Степень может упасть (например, $(x^2 + x) + (-x^2) = x$) — и это никак не мешает, потому что условие «не выше $n$» падение степени допускает. Умножение на число степень тоже не поднимает.
Остальные аксиомы проверяются по коэффициентам ровно так же, как в $\mathbb{R}^n$ по координатам. Фактически $P_n$ и $\mathbb{R}^{n+1}$ устроены одинаково: многочлену $a_0 + a_1x + \dots + a_nx^n$ отвечает набор коэффициентов $(a_0, a_1, \dots, a_n)$, и операции согласованы. Точный смысл этого «устроены одинаково» будет дан позже в курсе; сейчас достаточно понимать, что $P_2$ ведёт себя как $\mathbb{R}^3$, а $P_3$ — как $\mathbb{R}^4$.
Слово «не выше» в определении критично. Множество многочленов ровно степени $n$ пространством не является — контрпример разобран в предыдущем разделе: сумма двух таких многочленов может иметь меньшую степень.
Пример 4: все многочлены, пространство $P$
Векторы: многочлены произвольной степени с вещественными коэффициентами, без ограничения сверху.
Операции, ноль, противоположный: те же, что в $P_n$.
Проверка замкнутости. Сумма двух многочленов — многочлен (степень не превосходит максимума из двух степеней). Произведение на число — многочлен. Ограничения сверху нет, поэтому ничего не может «вылезти» за пределы множества. Остальные аксиомы наследуются от арифметики коэффициентов.
Принципиальное отличие от $P_n$: здесь нет конечного набора векторов, через который выражаются все остальные. Сколько бы многочленов мы ни взяли, среди них будет один наибольшей степени $N$, а из линейных комбинаций многочленов степени не выше $N$ получаются только многочлены степени не выше $N$ — до $x^{N+1}$ не добраться. Такие пространства называют бесконечномерными; аккуратная теория этого — в следующих уроках, но сам факт полезно понимать уже сейчас: аксиомы про конечность ничего не говорят, и бесконечномерные пространства ими вполне охватываются.
Пример 5: функции на отрезке
Векторы: все вещественнозначные функции, определённые на отрезке $[a, b]$. Обозначают $F[a,b]$ или $\mathbb{R}^{[a,b]}$.
Операции: поточечные, $(f+g)(x) = f(x)+g(x)$ и $(\alpha f)(x) = \alpha f(x)$.
Ноль: функция $\mathbf{0}(x) \equiv 0$, тождественный ноль. Противоположная: функция $(-f)(x) = -f(x)$.
Проверка. Все аксиомы проверяются одинаково: две функции равны, если равны их значения в каждой точке; фиксируем произвольную точку $x$ и сводим равенство к свойству чисел. Разбор A5 сделан выше, остальные — дословно так же.
Полезная деталь: точки отрезка играют здесь роль «координат», только их несчётно много. Функция — это «вектор с континуумом координат», где координата с номером $x$ равна $f(x)$. Такая картинка помогает не бояться пространств функций: всё, что мы делали с координатами, тут делается со значениями.
Важные подпространства этого пространства: непрерывные функции $C[a,b]$ (сумма непрерывных непрерывна, произведение непрерывной на число непрерывно), дифференцируемые функции, функции, интегрируемые на отрезке. Все они получаются наложением условия, устойчивого относительно сложения и умножения на число, — и все они пространства. Отдельно отметим: многочлены из примера 4 — это тоже подмножество функций, причём замкнутое, то есть подпространство $F[a,b]$.
Пример 6: последовательности
Векторы: бесконечные последовательности вещественных чисел $x = (x_1, x_2, x_3, \dots)$. Обозначение: $\mathbb{R}^\infty$ или $s$.
Операции: почленные, $(x + y)_k = x_k + y_k$, $(\alpha x)_k = \alpha x_k$.
Ноль: последовательность из одних нулей. Противоположная: последовательность с обратными знаками.
Проверка повторяет $\mathbb{R}^n$ буквально: всё делается почленно, номер члена играет роль координаты, а бесконечность их числа ничему не мешает — каждая аксиома проверяется в каждом номере отдельно.
Содержательные подпространства: сходящиеся последовательности (сумма сходящихся сходится, произведение на число сходится), последовательности, сходящиеся к нулю, ограниченные последовательности, финитные последовательности (у которых лишь конечное число членов ненулевые). А вот расходящиеся последовательности подпространства не образуют: сумма двух расходящихся может сойтись, например $(1, -1, 1, -1, \dots)$ и $(-1, 1, -1, 1, \dots)$ дают в сумме нулевую последовательность.
Пример 7: множество решений однородной системы $Ax = 0$
Вот тот самый мост из прошлого урока.
Векторы: столбцы $x \in \mathbb{R}^n$, для которых $Ax = 0$, то есть элементы ядра $\ker A$.
Операции: обычные, как в $\mathbb{R}^n$.
Проверка замкнутости — это в точности принцип суперпозиции из урока 167:
$$A(x + y) = Ax + Ay = 0 + 0 = 0, \qquad A(\alpha x) = \alpha(Ax) = \alpha \cdot 0 = 0.$$Ноль: тривиальное решение, оно в ядре всегда. Противоположный: $-x$, оно тоже решение (проверено выше).
Аксиомы A1, A2, A5, A6, A7, A8 верны для всех столбцов из $\mathbb{R}^n$, в том числе и для тех, что оказались решениями. Проверять их отдельно не нужно.
Конкретный пример. Пусть
$$B = \begin{pmatrix} 1 & 2 & -1 \\ 2 & 3 & 1 \end{pmatrix}.$$Приводим к ступенчатому виду: $R_2 \to R_2 - 2R_1$ даёт $(0, -1, 3)$. Ранг $r = 2$, неизвестных $n = 3$, дефект $3-2=1$. Из второй строки $-x_2 + 3x_3 = 0$, то есть $x_2 = 3x_3$; из первой $x_1 = -2x_2 + x_3 = -6x_3 + x_3 = -5x_3$. При $x_3 = 1$ получаем вектор $(-5, 3, 1)$.
Проверка: $1\cdot(-5) + 2\cdot 3 - 1 = -5+6-1 = 0$ и $2\cdot(-5) + 3\cdot 3 + 1 = -10+9+1 = 0$. Сошлось.
Значит $\ker B$ — прямая в $\mathbb{R}^3$, проходящая через ноль в направлении $(-5,3,1)$, и это векторное пространство (точнее, подпространство $\mathbb{R}^3$ — термин появится через раздел).
Именно этот пример объясняет, почему разговор про аксиоматику идёт сразу после однородных систем. Всё, что мы наблюдали в 167-м уроке «руками» — что решения складываются, что множество решений «плоское» и проходит через ноль, что его можно задать конечным набором векторов, — есть не особенность матриц, а проявление общих свойств векторного пространства. И ФСР окажется частным случаем базиса, а число $n - r$ — частным случаем размерности.
Пример 8: нулевое пространство $\{\mathbf{0}\}$
Векторы: ровно один элемент, нулевой.
Операции: $\mathbf{0} + \mathbf{0} = \mathbf{0}$, $\alpha \mathbf{0} = \mathbf{0}$.
Проверка. Замкнутость есть: результат любой операции — единственный имеющийся элемент. A1: $\mathbf{0}+\mathbf{0} = \mathbf{0}+\mathbf{0}$. A2, A3, A4 — аналогично, причём $-\mathbf{0} = \mathbf{0}$. A5–A8: обе части каждого равенства равны $\mathbf{0}$, в том числе $1 \cdot \mathbf{0} = \mathbf{0}$. Все восемь выполнены.
Это самое маленькое возможное векторное пространство: меньше не бывает, потому что аксиома A3 требует наличия нуля, и пустое множество пространством быть не может. Нулевое пространство встречается постоянно как ответ: ядро невырожденной матрицы, пересечение двух прямых, идущих в разные стороны, множество решений системы с $\operatorname{rank} A = n$.
Отдельно стоит отметить «пограничный» случай: пространство $\mathbb{R}^0$, состоящее из единственного пустого набора, — это ровно оно же. Формализм тут работает без исключений, и никаких оговорок вида «кроме тривиального случая» дальше не понадобится.
Контрпримеры: где ломаются аксиомы
Соберём в одном месте случаи, когда множество похоже на векторное пространство, но им не является. Четыре из них разобраны выше, добавим ещё два.
Многочлены ровно степени $n$ — сумма может понизить степень и выпасть из множества; нулевого многочлена в множестве нет. Ломаются замкнутость и A3.
Векторы с неотрицательными координатами — нет противоположного, множество не замкнуто относительно умножения на отрицательное число. Ломается A4.
Прямая, не проходящая через ноль — нулевого вектора нет, сумма двух точек прямой с неё уходит. Ломается A3.
Множество решений неоднородной системы — то же самое: нуля нет, сумма решений решением не является. Ломается A3.
Многочлены с целыми коэффициентами. Здесь любопытный случай: сложение работает идеально, ноль есть, противоположный есть, все четыре «аддитивные» аксиомы выполнены. А ломается замкнутость относительно умножения на скаляр: возьмём $p(x) = x$ (целые коэффициенты) и $\alpha = \tfrac12$. Тогда $\alpha p(x) = \tfrac12 x$, и коэффициент $\tfrac12$ целым не является. Множество из-под операции выпало.
Этот пример показывает, что векторное пространство над $\mathbb{R}$ обязано «выдерживать» умножение на любое вещественное число, включая дробные и иррациональные. Множество, устойчивое только к целым множителям, — это другая алгебраическая структура (модуль над кольцом целых чисел), и линейная алгебра к нему в полном объёме не применима.
Единичная окружность $\{(x,y) : x^2+y^2 = 1\}$. Нулевого вектора нет: $0^2+0^2 = 0 \ne 1$, ломается A3. Замкнутость тоже отсутствует: $(1,0)$ и $(0,1)$ лежат на окружности, а их сумма $(1,1)$ даёт $1+1 = 2 \ne 1$. Общая причина: условие $x^2+y^2=1$ нелинейно — в нём координаты стоят в квадрате.
Отсюда полезное практическое правило. Множество, заданное системой линейных однородных уравнений (все члены первой степени, справа нули), почти наверняка окажется пространством. Если же в условии есть квадраты, произведения координат, модули, неравенства или ненулевые правые части — почти наверняка не окажется, и надо искать конкретный контрпример.
Почему это важно
Зоопарк — это не коллекция курьёзов, а рабочий инструмент, и вот в каком смысле.
Он задаёт словарь. Услышав «пространство многочленов степени не выше 5», ты должен без паузы понимать: это как $\mathbb{R}^6$, векторы — многочлены, ноль — нулевой многочлен, всё привычное работает. Без такого автоматизма чтение любой книги по линейной алгебре превращается в мучение.
Он объясняет, почему линейные методы применимы к нечисловым данным. Обработка сигналов, аппроксимация функций, сглаживание, интерполяция, метод наименьших квадратов на функциях, разложения по системам функций — всё это линейная алгебра в пространстве функций. Ровно потому, что функции удовлетворяют восьми аксиомам.
Он даёт технику опровержения. Чтобы доказать, что множество — пространство, нужна общая проверка. Чтобы доказать, что не пространство, достаточно одного контрпримера. Асимметрия огромная, и грамотный ответ на задачу «является ли...» с отрицательным исходом всегда содержит конкретные числа: вот эти два элемента множества, вот их сумма, вот проверка, что она из множества выпала.
Подпространства и критерий подпространства
Интуиция: пространство внутри пространства
Посмотри ещё раз на список примеров. Многие из них — не самостоятельные конструкции, а части уже известных пространств: ядро матрицы живёт внутри $\mathbb{R}^n$, непрерывные функции — внутри всех функций, многочлены степени не выше $n$ — внутри всех многочленов, сходящиеся последовательности — внутри всех последовательностей.
В таких случаях проверять восемь аксиом заново — расточительство. Возьмём, скажем, ядро матрицы $B$ из примера 7. Аксиома A1 говорит: $u + v = v + u$. Но $u$ и $v$ — обычные столбцы из $\mathbb{R}^3$, а для всех столбцов из $\mathbb{R}^3$ равенство уже доказано. Оно не может внезапно перестать быть верным оттого, что мы сузили круг рассматриваемых столбцов. То же с A2, A5, A6, A7, A8 — это тождества, верные для всех элементов объемлющего пространства, и они автоматически верны для элементов любого его подмножества.
А вот A3 и A4 — не тождества, а утверждения о существовании: «в множестве существует нейтральный элемент», «в множестве существует противоположный». Такие утверждения при сужении множества запросто ломаются: нужный элемент может остаться за границей. Плюс отдельно надо следить за замкнутостью — операции не должны выводить за пределы подмножества.
Отсюда рождается очень экономная проверка, которую мы сейчас и оформим.
Определение и критерий
Определение. Пусть $V$ — векторное пространство. Подмножество $U \subseteq V$ называется подпространством пространства $V$, если $U$ само является векторным пространством относительно тех же операций сложения и умножения на скаляр, что и в $V$.
Слова «относительно тех же операций» существенны: мы не придумываем для $U$ новые правила, а пользуемся унаследованными.
Критерий подпространства. Подмножество $U \subseteq V$ является подпространством тогда и только тогда, когда выполнены три условия:
(0) $U$ непусто — достаточно проверить, что $\mathbf{0} \in U$;
(1) для любых $u, w \in U$ выполнено $u + w \in U$ (замкнутость относительно сложения);
(2) для любого $u \in U$ и любого $\alpha \in \mathbb{R}$ выполнено $\alpha u \in U$ (замкнутость относительно умножения на скаляр).
Доказательство. Необходимость условий понятна: если $U$ — векторное пространство с теми же операциями, то операции обязаны из $U$ не выводить (иначе они на $U$ не определены), а нулевой вектор в $U$ обязан быть по A3. Единственная тонкость: нуль подпространства и нуль объемлющего пространства — один и тот же элемент. Действительно, пусть $\mathbf{0}_U$ — нейтральный элемент в $U$. Тогда $\mathbf{0}_U + \mathbf{0}_U = \mathbf{0}_U$, а поскольку это равенство между элементами $V$, по закону сокращения в $V$ получаем $\mathbf{0}_U = \mathbf{0}_V$.
Достаточность. Пусть условия (0)–(2) выполнены. Операции на $U$ определены — это условия (1) и (2). Аксиомы A1, A2, A5, A6, A7, A8 верны для всех элементов $V$, в частности для элементов $U$; они не требуют существования каких-либо элементов, а только утверждают равенство выражений, поэтому переносятся автоматически. Аксиома A3 выполнена: $\mathbf{0} \in U$ по условию (0), и $u + \mathbf{0} = u$ верно, поскольку верно в $V$. Аксиома A4: для $u \in U$ возьмём $\alpha = -1$ в условии (2), получим $(-1)u \in U$, а по следствию 5 из аксиом $(-1)u = -u$; значит, противоположный элемент лежит в $U$. Все восемь аксиом выполнены. $\blacksquare$
Обрати внимание, как в доказательстве достаточности сработали ранее доказанные следствия. Аксиома A4 «бесплатно» получилась из условия (2) именно потому, что мы заранее доказали $(-1)u = -u$. Без этого следствия критерий пришлось бы формулировать длиннее.
Практические замечания к критерию.
Условия (1) и (2) часто объединяют в одно: $U$ — подпространство тогда и только тогда, когда $U \ne \varnothing$ и для любых $u, w \in U$, любых $\alpha, \beta \in \mathbb{R}$ выполнено $\alpha u + \beta w \in U$. То есть $U$ замкнуто относительно линейных комбинаций. Эта форма удобна, когда проверка обоих условий делается одним вычислением.
Условие (0) можно заменить просто на «$U$ непусто»: если в $U$ есть хоть какой-то элемент $u$, то по (2) с $\alpha = 0$ получаем $0 \cdot u = \mathbf{0} \in U$. Но на практике удобнее сразу проверять наличие нуля — это и быстрее, и мгновенно отсеивает половину неправильных множеств.
Про нуль есть важная тонкость. Наличие $\mathbf{0}$ — условие необходимое, но не достаточное. Множество может содержать ноль и всё равно не быть подпространством: например, объединение двух прямых через начало координат ноль содержит, а подпространством не является. Так что «ноль есть» — это не ответ, а разрешение продолжать проверку.
Разбор примеров
Пример 1. Плоскость через начало координат в $\mathbb{R}^3$.
$$U = \{\,(x_1,x_2,x_3) \in \mathbb{R}^3 \;:\; x_1 - 2x_2 + 5x_3 = 0\,\}.$$(0) Ноль: $0 - 2\cdot 0 + 5\cdot 0 = 0$. Верно, $\mathbf{0} \in U$.
(1) Пусть $u = (u_1,u_2,u_3)$ и $w = (w_1,w_2,w_3)$ лежат в $U$, то есть $u_1 - 2u_2 + 5u_3 = 0$ и $w_1 - 2w_2 + 5w_3 = 0$. Проверим сумму:
$$(u_1+w_1) - 2(u_2+w_2) + 5(u_3+w_3) = \underbrace{(u_1 - 2u_2 + 5u_3)}_{=0} + \underbrace{(w_1 - 2w_2 + 5w_3)}_{=0} = 0.$$Сумма условию удовлетворяет, значит $u + w \in U$.
(2) Для $\alpha \in \mathbb{R}$:
$$\alpha u_1 - 2\alpha u_2 + 5\alpha u_3 = \alpha(u_1 - 2u_2 + 5u_3) = \alpha \cdot 0 = 0,$$значит $\alpha u \in U$.
Все три условия выполнены. $U$ — подпространство $\mathbb{R}^3$. Геометрически это плоскость с нормальным вектором $(1,-2,5)$, проходящая через начало координат.
Заодно виден общий механизм: работает линейность и однородность условия. Левая часть — линейная функция координат, правая — ноль. Именно из-за нуля справа условие «переживает» и сложение, и растяжение.
Пример 2. Та же плоскость, сдвинутая.
$$U' = \{\,(x_1,x_2,x_3) \;:\; x_1 - 2x_2 + 5x_3 = 4\,\}.$$(0) Ноль: $0 - 0 + 0 = 0 \ne 4$. Нулевого вектора нет — не подпространство, проверку можно прекращать.
Для наглядности покажем и слом замкнутости: $u = (4,0,0) \in U'$ и $w = (0,-2,0) \in U'$ (проверка: $0 - 2\cdot(-2) + 0 = 4$). Их сумма $(4,-2,0)$ даёт $4 + 4 + 0 = 8 \ne 4$. Выпала.
Обобщение: множество решений уравнения $a_1x_1 + \dots + a_nx_n = b$ есть подпространство тогда и только тогда, когда $b = 0$. Это ровно граница между однородной и неоднородной системой из урока 167, переформулированная на новом языке.
Пример 3. Верхнетреугольные матрицы $2\times 2$.
$$U = \left\{ \begin{pmatrix} a & b \\ 0 & c \end{pmatrix} \;:\; a,b,c \in \mathbb{R} \right\} \subseteq M_{2\times 2}.$$(0) Нулевая матрица имеет вид $\begin{pmatrix} 0&0\\0&0\end{pmatrix}$ — под левым углом стоит ноль, условие выполнено, $O \in U$.
(1) Сумма двух верхнетреугольных матриц:
$$\begin{pmatrix} a_1 & b_1 \\ 0 & c_1 \end{pmatrix} + \begin{pmatrix} a_2 & b_2 \\ 0 & c_2 \end{pmatrix} = \begin{pmatrix} a_1+a_2 & b_1+b_2 \\ 0 & c_1+c_2 \end{pmatrix}.$$В левом нижнем углу $0 + 0 = 0$ — матрица снова верхнетреугольная.
(2) $\alpha \begin{pmatrix} a & b \\ 0 & c\end{pmatrix} = \begin{pmatrix} \alpha a & \alpha b \\ 0 & \alpha c\end{pmatrix}$, в углу $\alpha \cdot 0 = 0$.
$U$ — подпространство $M_{2\times 2}$. Механизм тот же: условие «элемент на позиции $(2,1)$ равен нулю» линейно и однородно.
Пример 4. Функции с условием $f(0) = f(1)$.
$$U = \{\, f \in F[0,1] \;:\; f(0) = f(1) \,\} .$$(0) Тождественный ноль: $\mathbf{0}(0) = 0 = \mathbf{0}(1)$. Условие выполнено.
(1) Пусть $f(0)=f(1)$ и $g(0)=g(1)$. Тогда
$$(f+g)(0) = f(0)+g(0) = f(1)+g(1) = (f+g)(1).$$(2) $(\alpha f)(0) = \alpha f(0) = \alpha f(1) = (\alpha f)(1)$.
$U$ — подпространство. А вот множество $\{f : f(0) = f(1) + 3\}$ подпространством не является: тождественный ноль даёт $0 = 0 + 3$, что неверно, и нуля в множестве нет. Опять та же граница: однородное условие проходит, неоднородное — нет.
Пример 5. Контрпример, где замкнутость по скаляру есть, а по сложению нет.
$$U = \{\, (x_1, x_2) \in \mathbb{R}^2 \;:\; |x_1| = |x_2| \,\}.$$Геометрически это объединение двух биссектрис — прямых $x_2 = x_1$ и $x_2 = -x_1$.
(0) $|0| = |0|$, ноль есть.
(2) $|\alpha x_1| = |\alpha| \cdot |x_1| = |\alpha| \cdot |x_2| = |\alpha x_2|$ — замкнутость относительно умножения на скаляр есть.
(1) А вот сложение ломается. Возьмём $u = (1,1) \in U$ и $w = (1,-1) \in U$. Их сумма $u + w = (2, 0)$, и $|2| = 2 \ne 0 = |0|$. Сумма из множества вылетела.
Не подпространство. Этот пример полезно запомнить: условия (1) и (2) независимы, ни одно не следует из другого, и проверять надо оба.
Пример 6. Контрпример, где замкнутость по сложению есть, а по скаляру нет.
$$U = \{\, (x_1,x_2) \in \mathbb{R}^2 \;:\; x_1, x_2 \in \mathbb{Z} \,\}$$— векторы с целыми координатами, целочисленная решётка.
(0) Ноль целочисленный, есть.
(1) Сумма двух целочисленных векторов целочисленна — замкнутость по сложению есть. Более того, есть и противоположный: $-u$ целочисленный.
(2) Ломается: $\tfrac{1}{2} \cdot (1, 3) = (0{,}5;\ 1{,}5)$, координаты не целые.
Не подпространство. Обрати внимание: тут выполнены все четыре аддитивные аксиомы, множество вполне приличное — и всё равно не подпространство, потому что вещественные скаляры выводят из него.
Почему это важно
Критерий подпространства — самый практичный результат урока. Именно им пользуются, а не определением, и вот почему.
Экономия на проверке. Восемь аксиом против трёх условий, из которых первое проверяется подстановкой нуля за пять секунд. На практике это разница между «страница выкладок» и «три строчки».
Универсальная схема ответа. Задача «является ли $U$ подпространством» решается по одному шаблону всегда:
-
Подставить $\mathbf{0}$ в условие, задающее $U$. Не подошло — ответ «нет», задача решена.
-
Взять два произвольных элемента $u, w \in U$ (в общем виде, с буквами), сложить, проверить условие. Не проходит — искать конкретный числовой контрпример и предъявлять его.
-
Взять произвольный $u \in U$ и произвольное $\alpha$, умножить, проверить условие. Особое внимание отрицательным и дробным $\alpha$.
Быстрая эвристика. Если множество задано линейными однородными равенствами относительно координат (коэффициентов, значений функции) — это подпространство. Если в условии есть неравенства, произведения, модули, квадраты, целочисленность или ненулевая правая часть — почти наверняка нет, и надо предъявлять контрпример. Эвристика не заменяет проверку, но подсказывает, что искать: доказательство или контрпример.
Мостик к прошлому уроку. Теперь понятно, чем на самом деле было ядро матрицы: подпространством $\mathbb{R}^n$, заданным системой линейных однородных уравнений. И понятно, чем не было множество решений неоднородной системы: сдвинутым подпространством, которое подпространством не является. Такие сдвинутые объекты называют аффинными подпространствами; они полезны, но линейной алгеброй в чистом виде не описываются.
Линейная оболочка
Интуиция: что можно построить из данных векторов
Пусть в пространстве $V$ даны несколько векторов: $v_1, v_2, \dots, v_k$. Что из них можно собрать, пользуясь только разрешёнными операциями?
Разрешено складывать и умножать на числа. Значит, из $v_1$ получаются все векторы вида $\alpha v_1$; из $v_1$ и $v_2$ — все векторы $\alpha_1 v_1 + \alpha_2 v_2$; и так далее. Больше ничего сделать нельзя: скобки и порядок ничего нового не дают (A1, A2), повторное умножение сворачивается в одно (A7), суммы одинаковых слагаемых собираются (A6). Любая последовательность разрешённых действий над $v_1, \dots, v_k$ в итоге сводится к выражению вида
$$c_1 v_1 + c_2 v_2 + \dots + c_k v_k, \qquad c_i \in \mathbb{R}.$$Определение. Выражение $c_1v_1 + c_2v_2 + \dots + c_kv_k$ с вещественными коэффициентами $c_1, \dots, c_k$ называется линейной комбинацией векторов $v_1, \dots, v_k$.
Термин уже встречался в прошлом уроке: общее решение однородной системы записывалось как линейная комбинация векторов ФСР. Теперь он определён в общем виде и работает в любом пространстве.
Множество всех линейных комбинаций и есть то, «что можно построить».
Определение. Линейной оболочкой векторов $v_1, \dots, v_k \in V$ называется множество всех их линейных комбинаций:
$$\operatorname{span}(v_1, \dots, v_k) = \{\, c_1v_1 + \dots + c_kv_k \;:\; c_1, \dots, c_k \in \mathbb{R} \,\}.$$Обозначения: $\operatorname{span}(v_1,\dots,v_k)$ (от англ. span — «охватывать»), в русской традиции также $\mathcal{L}(v_1,\dots,v_k)$ или $\langle v_1, \dots, v_k\rangle$. Говорят, что векторы $v_1,\dots,v_k$ порождают это множество, или натягивают его.
Коэффициенты пробегают все вещественные числа независимо друг от друга, включая нули и отрицательные. В частности, при всех $c_i = 0$ получается $\mathbf{0}$, а при $c_i = 1$ и остальных нулевых — сам вектор $v_i$. Значит, линейная оболочка всегда содержит и нулевой вектор, и все исходные векторы.
Линейная оболочка — это подпространство
Теорема. Для любых $v_1, \dots, v_k \in V$ множество $\operatorname{span}(v_1,\dots,v_k)$ является подпространством пространства $V$.
Доказательство. Проверим три условия критерия.
(0) Взяв все коэффициенты нулевыми, получаем
$$0\cdot v_1 + \dots + 0 \cdot v_k = \mathbf{0} + \dots + \mathbf{0} = \mathbf{0}$$(каждое слагаемое равно $\mathbf{0}$ по следствию 3, сумма нулей равна нулю по A3). Значит $\mathbf{0} \in \operatorname{span}(v_1,\dots,v_k)$, множество непусто.
(1) Возьмём два элемента оболочки:
$$u = c_1v_1 + \dots + c_kv_k, \qquad w = d_1v_1 + \dots + d_kv_k.$$Сложим их. Пользуясь A1 и A2, перегруппируем слагаемые так, чтобы члены с одинаковыми $v_i$ оказались рядом, а затем свернём каждую пару по A6:
$$u + w = (c_1v_1 + d_1v_1) + \dots + (c_kv_k + d_kv_k) = (c_1+d_1)v_1 + \dots + (c_k+d_k)v_k.$$Справа снова линейная комбинация тех же векторов, с коэффициентами $c_i + d_i$. Значит $u + w$ лежит в оболочке.
(2) Умножим $u$ на число $\alpha$. По A5 множитель распределяется по слагаемым, по A7 сворачивается с коэффициентами:
$$\alpha u = \alpha(c_1v_1) + \dots + \alpha(c_kv_k) = (\alpha c_1)v_1 + \dots + (\alpha c_k)v_k.$$Снова линейная комбинация. Значит $\alpha u$ лежит в оболочке. $\blacksquare$
Доказательство целиком опирается на аксиомы и не смотрит внутрь векторов — значит, оно верно в любом пространстве: для столбцов, для матриц, для многочленов, для функций. Линейная оболочка трёх функций $\sin x$, $\cos x$, $1$ — такое же полноценное подпространство, как плоскость в $\mathbb{R}^3$.
Геометрия линейной оболочки
Разберём, как оболочка выглядит в привычном трёхмерном пространстве.
Оболочка одного ненулевого вектора $v \ne \mathbf{0}$ — это множество $\{cv : c \in \mathbb{R}\}$, то есть все растяжения и отражения вектора $v$. Геометрически — прямая, проходящая через начало координат в направлении $v$. При $c > 0$ получается луч в сторону $v$, при $c<0$ — противоположный луч, при $c=0$ — начало координат.
Оболочка одного нулевого вектора $\operatorname{span}(\mathbf{0}) = \{c\mathbf{0}\} = \{\mathbf{0}\}$ — нулевое подпространство. Прямой тут не получается: растягивать нечего.
Оболочка двух неколлинеарных векторов (то есть таких, что ни один не является кратным другого) — плоскость, проходящая через начало координат и содержащая оба вектора. Действительно, комбинации $c_1v_1 + c_2v_2$ по правилу параллелограмма заметают всю плоскость, натянутую на две стрелки.
Оболочка двух коллинеарных векторов схлопывается в прямую: если $v_2 = \lambda v_1$, то
$$c_1v_1 + c_2v_2 = c_1v_1 + c_2\lambda v_1 = (c_1 + c_2\lambda)v_1,$$и всё множество совпадает с $\operatorname{span}(v_1)$. Вектор $v_2$ не добавил ничего нового.
Оболочка трёх векторов в $\mathbb{R}^3$ может быть чем угодно: всем пространством (если три вектора «смотрят в три существенно разные стороны»), плоскостью (если все три лежат в одной плоскости через ноль), прямой (если все три коллинеарны) или нулём (если все три нулевые). Точное условие, различающее эти случаи, разбирается в следующих уроках; сейчас важнее сам факт, что оболочка всегда «плоская» и всегда проходит через ноль.
Отсюда общее правило: линейная оболочка — это всегда точка, прямая, плоскость или их многомерный аналог, обязательно содержащие начало координат. Ровно так же выглядели множества решений однородной системы в прошлом уроке. Это не совпадение: обе конструкции дают подпространства, а подпространства только так и выглядят.
Оболочка как наименьшее подпространство
У линейной оболочки есть характеристика, не использующая слово «комбинация».
Теорема. $\operatorname{span}(v_1,\dots,v_k)$ — наименьшее по включению подпространство пространства $V$, содержащее все векторы $v_1,\dots,v_k$. Иначе говоря: если $W$ — подпространство и $v_1,\dots,v_k \in W$, то $\operatorname{span}(v_1,\dots,v_k) \subseteq W$.
Доказательство. Пусть $W$ — подпространство, содержащее все $v_i$. Возьмём произвольный элемент оболочки $u = c_1v_1 + \dots + c_kv_k$ и покажем, что $u \in W$.
По условию (2) критерия, применённому в $W$: каждое произведение $c_iv_i$ лежит в $W$, поскольку $v_i \in W$. По условию (1), применённому многократно: сумма $c_1v_1 + c_2v_2$ лежит в $W$; прибавив к ней $c_3v_3 \in W$, снова остаёмся в $W$; и так далее до последнего слагаемого. Значит $u \in W$.
Мы показали, что любой элемент оболочки лежит в $W$, то есть $\operatorname{span}(v_1,\dots,v_k) \subseteq W$. Сама оболочка при этом является подпространством (предыдущая теорема) и содержит все $v_i$, значит она входит в число «кандидатов» и оказывается наименьшим из них. $\blacksquare$
Содержательный смысл: оболочка — это результат «замыкания» набора векторов относительно разрешённых операций. Ты берёшь несколько векторов и добавляешь всё, что обязано оказаться рядом с ними в подпространстве, — ни больше, ни меньше. Отсюда и практическое правило: чтобы проверить, что подпространство $W$ содержит оболочку, достаточно проверить, что оно содержит порождающие векторы. Проверка бесконечного множества сводится к проверке $k$ штук.
Разбор примеров
Пример 1. Оболочка одного вектора в $\mathbb{R}^2$.
$$\operatorname{span}\big((3,-1)\big) = \{\, (3c, -c) \;:\; c \in \mathbb{R} \,\}.$$Точки вида $(3c, -c)$ удовлетворяют соотношению $x_2 = -\tfrac{1}{3}x_1$, то есть $x_1 + 3x_2 = 0$. Это прямая через начало координат с угловым коэффициентом $-\tfrac13$. Проверим на конкретных значениях: $c=2$ даёт $(6,-2)$, и $6 + 3\cdot(-2) = 0$; $c=-1$ даёт $(-3,1)$, и $-3+3 = 0$.
Ответ: прямая $x_1 + 3x_2 = 0$.
Пример 2. Оболочка двух векторов в $\mathbb{R}^3$: найти уравнение.
$$U = \operatorname{span}\big((1,2,0),\ (0,1,1)\big).$$Векторы неколлинеарны (первый имеет нулевую третью координату, второй — ненулевую, при этом первая координата у второго нулевая, а у первого нет; кратными друг другу они быть не могут). Значит оболочка — плоскость через ноль.
Найти её уравнение можно через векторное произведение (урок 154): нормальный вектор плоскости перпендикулярен обоим порождающим.
$$n = (1,2,0) \times (0,1,1) = \big(2\cdot 1 - 0 \cdot 1,\ \ 0\cdot 0 - 1\cdot 1,\ \ 1\cdot 1 - 2\cdot 0\big) = (2,\ -1,\ 1).$$Уравнение плоскости через начало координат с нормалью $(2,-1,1)$:
$$2x_1 - x_2 + x_3 = 0.$$Проверка на порождающих: для $(1,2,0)$ получаем $2 - 2 + 0 = 0$; для $(0,1,1)$ получаем $0 - 1 + 1 = 0$. Оба лежат в плоскости.
Ответ: $U$ — плоскость $2x_1 - x_2 + x_3 = 0$.
Пример 3. Принадлежит ли вектор оболочке.
Лежат ли векторы $(2,5,1)$ и $(7,4,1)$ в оболочке $U$ из примера 2?
Способ 1, через уравнение плоскости. Для $(2,5,1)$: $2\cdot 2 - 5 + 1 = 0$ — лежит. Для $(7,4,1)$: $2\cdot 7 - 4 + 1 = 11 \ne 0$ — не лежит.
Способ 2, через систему — он работает всегда, даже когда уравнение плоскости неизвестно или векторов больше двух. Вопрос «лежит ли $b$ в $\operatorname{span}(v_1,\dots,v_k)$» означает «существуют ли числа $c_1,\dots,c_k$, для которых $c_1v_1 + \dots + c_kv_k = b$». Записав это покоординатно, получаем систему линейных уравнений с неизвестными $c_i$ — и решаем её техникой уроков 163–164.
Для $b = (2,5,1)$:
$$c_1\begin{pmatrix}1\\2\\0\end{pmatrix} + c_2\begin{pmatrix}0\\1\\1\end{pmatrix} = \begin{pmatrix}2\\5\\1\end{pmatrix} \quad\Longleftrightarrow\quad \begin{cases} c_1 = 2 \\ 2c_1 + c_2 = 5 \\ c_2 = 1\end{cases}$$Из первого $c_1 = 2$, из третьего $c_2 = 1$; подставляем во второе: $4 + 1 = 5$ — верно, система совместна. Значит $(2,5,1) = 2(1,2,0) + 1\cdot(0,1,1)$, проверим прямым сложением: $(2,4,0) + (0,1,1) = (2,5,1)$. Сходится.
Для $b = (7,4,1)$:
$$\begin{cases} c_1 = 7 \\ 2c_1 + c_2 = 4 \\ c_2 = 1\end{cases}$$Из первого и третьего $c_1 = 7$, $c_2 = 1$, подставляем во второе: $14 + 1 = 15 \ne 4$. Система несовместна.
Ответ: $(2,5,1) \in U$, $(7,4,1) \notin U$.
Заметь, что задача «принадлежит ли вектор оболочке» — это ровно задача о совместности линейной системы, где столбцами матрицы служат порождающие векторы, а правой частью — проверяемый вектор. По теореме Кронекера — Капелли (урок 163) ответ определяется сравнением рангов $\operatorname{rank}(v_1|\dots|v_k)$ и $\operatorname{rank}(v_1|\dots|v_k|b)$: ранги совпали — принадлежит, не совпали — нет.
Пример 4. Оболочка коллинеарных векторов.
$$\operatorname{span}\big((1,-1,2),\ (-2,2,-4)\big).$$Второй вектор равен первому, умноженному на $-2$: $(-2)\cdot(1,-1,2) = (-2,2,-4)$. Значит
$$c_1(1,-1,2) + c_2(-2,2,-4) = c_1(1,-1,2) - 2c_2(1,-1,2) = (c_1 - 2c_2)(1,-1,2),$$и коэффициент $c_1 - 2c_2$ пробегает все вещественные числа. Оболочка совпадает с $\operatorname{span}\big((1,-1,2)\big)$ — прямой через ноль.
Ответ: прямая в направлении $(1,-1,2)$, а не плоскость. Число порождающих векторов само по себе ничего не говорит о «размере» оболочки.
Пример 5. Оболочка в пространстве многочленов.
$$U = \operatorname{span}\big(1,\ x^2\big) \subseteq P_2.$$Элементы — многочлены вида $c_1 \cdot 1 + c_2 \cdot x^2 = c_2x^2 + c_1$, то есть все многочлены из $P_2$ без линейного члена. Это подпространство $P_2$, что можно проверить и напрямую по критерию: сумма двух многочленов без члена $x$ не имеет члена $x$, умножение на число тоже его не создаёт, нулевой многочлен подходит.
Лежит ли $p(x) = 3x^2 - 5$ в $U$? Да: $c_1 = -5$, $c_2 = 3$. Лежит ли $q(x) = x^2 + x$? Нет: у любого элемента $U$ коэффициент при $x$ равен нулю, а у $q$ он равен единице.
Этот пример показывает, что вся техника переносится на нечисловые векторы буквально: единственное отличие — вместо координат сравниваются коэффициенты.
Почему это важно
Линейная оболочка — это способ задавать подпространства конструктивно. У подпространства есть два принципиально разных описания:
-
неявное (уравнениями): «все $x$, для которых $2x_1 - x_2 + x_3 = 0$» — сразу видно, как проверить принадлежность, но непонятно, как перечислить элементы;
-
явное (оболочкой): «все комбинации $c_1(1,2,0) + c_2(0,1,1)$» — сразу видно, как порождать элементы, но проверка принадлежности требует решения системы.
Переход между этими описаниями — рутинная операция всей линейной алгебры. Из уравнений в оболочку переводит метод Гаусса: ФСР однородной системы — это в точности набор порождающих для её множества решений, и общее решение $X = c_1X_1 + \dots + c_{n-r}X_{n-r}$ из урока 167 буквально означает $\ker A = \operatorname{span}(X_1, \dots, X_{n-r})$. Обратный переход — из оболочки в уравнения — делается так, как в примере 2: ищутся условия на координаты, выполняющиеся для всех комбинаций.
В прикладных задачах явное описание используется, когда нужно порождать объекты (генерация, интерполяция, аппроксимация: «представим сигнал как комбинацию базовых»), а неявное — когда нужно проверять и фильтровать («лежат ли данные в этом подпространстве»). Обе задачи встречаются постоянно, и умение переходить туда-обратно стоит отработать до автоматизма.
Пересечение, объединение и сумма подпространств
Интуиция: операции над подпространствами
Подпространства — это множества, а над множествами есть привычные операции: пересечение и объединение. Естественный вопрос: сохраняют ли они свойство «быть подпространством»?
Ответ асимметричный и поучительный. Пересечение — да, всегда. Объединение — почти никогда. И именно из-за провала объединения приходится вводить третью операцию, специфическую для линейной алгебры, — сумму подпространств.
Пересечение — всегда подпространство
Теорема. Пусть $U$ и $W$ — подпространства пространства $V$. Тогда $U \cap W$ — тоже подпространство $V$.
Доказательство. Проверяем критерий.
(0) По критерию подпространства $\mathbf{0} \in U$ и $\mathbf{0} \in W$, значит $\mathbf{0} \in U \cap W$ — пересечение непусто.
(1) Пусть $u, w \in U \cap W$. Тогда оба лежат в $U$, и по замкнутости $U$ имеем $u + w \in U$. Оба лежат и в $W$, значит $u + w \in W$. Следовательно, $u+w \in U \cap W$.
(2) Пусть $u \in U \cap W$ и $\alpha \in \mathbb{R}$. Тогда $\alpha u \in U$ (замкнутость $U$) и $\alpha u \in W$ (замкнутость $W$), значит $\alpha u \in U \cap W$. $\blacksquare$
Доказательство настолько короткое, потому что пересечение требует принадлежности обоим множествам, а каждое из них замкнуто. Ровно тем же рассуждением доказывается более общий факт: пересечение любого — хоть бесконечного — семейства подпространств снова подпространство. Проверки (1) и (2) проводятся в каждом подпространстве семейства отдельно, а ноль лежит в каждом из них.
Геометрический смысл. Две различные плоскости через ноль в $\mathbb{R}^3$ пересекаются по прямой через ноль. Плоскость и прямая через ноль пересекаются либо по этой прямой (если она лежит в плоскости), либо только в нуле. Две различные прямые через ноль пересекаются только в нуле. Во всех случаях пересечение — снова «плоский объект через ноль», то есть подпространство. Никакой другой картинки и быть не могло: пересечение содержится в обоих подпространствах, а те устроены плоско.
Объединение — почти никогда не подпространство
Контрпример. В $\mathbb{R}^2$ возьмём две координатные оси:
$$U = \operatorname{span}\big((1,0)\big) = \{(c, 0)\}, \qquad W = \operatorname{span}\big((0,1)\big) = \{(0, d)\}.$$
Каждое из них — подпространство (линейная оболочка всегда подпространство). Их объединение $U \cup W$ — это «крест» из двух осей. Ноль в нём есть, замкнутость относительно умножения на скаляр тоже есть: растягивая точку на оси, остаёшься на той же оси.
А сложение ломается моментально. Возьмём $u = (1,0) \in U$ и $w = (0,1) \in W$. Оба лежат в объединении. Их сумма
$$u + w = (1, 1)$$не лежит ни на одной из осей: первая координата ненулевая, значит не в $W$; вторая координата ненулевая, значит не в $U$. Сумма из объединения выпала.
Общая причина. Объединение содержит элементы «из разных кусков», а их сумма уходит «между кусками», куда ни один из кусков не дотягивается. Единственный способ этого избежать — чтобы кусков фактически было не два, а один.
Утверждение. $U \cup W$ является подпространством тогда и только тогда, когда $U \subseteq W$ или $W \subseteq U$.
Одна сторона понятна: если одно подпространство вложено в другое, объединение совпадает с большим, а оно подпространство. Обратная сторона — хорошее упражнение на рассуждение от противного, оно вынесено в задание 30.
Практический вывод: объединять подпространства бессмысленно. Нужна операция, которая по двум подпространствам даёт подпространство и при этом содержит оба. Ею и будет сумма.
Сумма подпространств
Определение. Суммой подпространств $U$ и $W$ пространства $V$ называется множество
$$U + W = \{\, u + w \;:\; u \in U,\ w \in W \,\},$$то есть множество всех векторов, представимых в виде суммы вектора из $U$ и вектора из $W$.
Это «исправленное объединение»: мы берём объединение и добавляем к нему всё, что получается сложением. Само объединение при этом внутри: любой $u \in U$ записывается как $u + \mathbf{0}$, где $\mathbf{0} \in W$, значит $U \subseteq U + W$; аналогично $W \subseteq U + W$.
Теорема. $U + W$ — подпространство пространства $V$, причём наименьшее подпространство, содержащее и $U$, и $W$.
Доказательство.
(0) $\mathbf{0} = \mathbf{0} + \mathbf{0}$, где первое слагаемое из $U$, второе из $W$. Значит $\mathbf{0} \in U + W$.
(1) Пусть $x_1 = u_1 + w_1$ и $x_2 = u_2 + w_2$, где $u_i \in U$, $w_i \in W$. Тогда, перегруппировав по A1 и A2,
$$x_1 + x_2 = (u_1 + u_2) + (w_1 + w_2).$$Первая скобка лежит в $U$ (замкнутость $U$), вторая — в $W$. Значит сумма имеет требуемый вид и лежит в $U + W$.
(2) Для $x = u + w$ и числа $\alpha$ по A5 получаем $\alpha x = \alpha u + \alpha w$, где $\alpha u \in U$ и $\alpha w \in W$. Значит $\alpha x \in U + W$.
Осталось про наименьшесть. Пусть $S$ — какое-то подпространство, содержащее и $U$, и $W$. Возьмём произвольный $x = u + w \in U + W$. Тогда $u \in U \subseteq S$ и $w \in W \subseteq S$, а $S$ замкнуто относительно сложения, значит $x = u + w \in S$. Итого $U + W \subseteq S$. $\blacksquare$
Полезная связка с линейной оболочкой: если $U = \operatorname{span}(u_1,\dots,u_p)$ и $W = \operatorname{span}(w_1,\dots,w_q)$, то
$$U + W = \operatorname{span}(u_1,\dots,u_p,\ w_1,\dots,w_q).$$Порождающие просто складываются в один список. Это самый быстрый способ считать сумму подпространств на практике.
Прямая сумма: анонс
Иногда разложение вектора в сумму «часть из $U$ плюс часть из $W$» единственно, а иногда нет. Различие удобно оформить отдельным понятием.
Определение. Сумма $U + W$ называется прямой и обозначается $U \oplus W$, если $U \cap W = \{\mathbf{0}\}$.
Смысл условия такой. Пусть $U \cap W = \{\mathbf{0}\}$ и вектор $x$ записан двумя способами: $x = u_1 + w_1 = u_2 + w_2$. Тогда
$$u_1 - u_2 = w_2 - w_1.$$Слева стоит элемент $U$ (разность элементов $U$), справа — элемент $W$. Раз они равны, этот вектор лежит в пересечении, то есть равен $\mathbf{0}$. Значит $u_1 = u_2$ и $w_1 = w_2$: разложение единственно.
Если же пересечение содержит ненулевой вектор $z$, единственности нет: из $x = u + w$ получаем $x = (u + z) + (w - z)$, где $u + z \in U$ и $w - z \in W$, — второе, отличное представление того же вектора.
Прямая сумма нам понадобится дальше по курсу, и там же появится формула, связывающая «размеры» подпространств $U$, $W$, их суммы и пересечения. Пока запомним неформальную суть: прямая сумма — это разложение пространства на независимые куски, где каждый вектор раскладывается ровно одним способом.
Разбор примеров
Пример 1. Пересечение двух координатных плоскостей.
В $\mathbb{R}^3$ возьмём
$$U = \{\,(x_1,x_2,x_3) : x_3 = 0\,\} \quad (\text{плоскость } Oxy), \qquad W = \{\,(x_1,x_2,x_3) : x_1 = 0\,\} \quad (\text{плоскость } Oyz).$$Оба множества — подпространства (условия линейные однородные). Их пересечение задаётся сразу двумя условиями: $x_3 = 0$ и $x_1 = 0$. Значит
$$U \cap W = \{\,(0, x_2, 0) : x_2 \in \mathbb{R}\,\} = \operatorname{span}\big((0,1,0)\big)$$— ось $Oy$, прямая через начало координат.
Ответ: $U \cap W$ — ось $Oy$.
Пример 2. Сумма тех же плоскостей.
$U = \operatorname{span}\big((1,0,0),(0,1,0)\big)$, $W = \operatorname{span}\big((0,1,0),(0,0,1)\big)$. По правилу «порождающие складываются в один список»:
$$U + W = \operatorname{span}\big((1,0,0),\ (0,1,0),\ (0,1,0),\ (0,0,1)\big) = \operatorname{span}\big((1,0,0),(0,1,0),(0,0,1)\big) = \mathbb{R}^3.$$Любой вектор $(a,b,c)$ действительно раскладывается: $(a,b,c) = (a,b,0) + (0,0,c)$, где первое слагаемое в $U$, второе в $W$.
Сумма не прямая: пересечение — ось $Oy$, а не ноль. И правда, разложение неединственно: тот же вектор можно записать как $(a, 0, 0) + (0, b, c)$, где $(a,0,0) \in U$ и $(0,b,c) \in W$. Два разных представления одного вектора — ровно то, что и предсказывает ненулевое пересечение.
Ответ: $U + W = \mathbb{R}^3$, сумма не прямая.
Пример 3. Прямая сумма двух осей.
$$U = \operatorname{span}\big((1,0,0)\big), \qquad W = \operatorname{span}\big((0,0,1)\big).$$Пересечение: элемент $U$ имеет вид $(c,0,0)$, элемент $W$ — вид $(0,0,d)$. Равенство $(c,0,0) = (0,0,d)$ требует $c = 0$ и $d = 0$, значит $U \cap W = \{\mathbf{0}\}$.
Сумма: $U + W = \{(c, 0, d)\} = \{x : x_2 = 0\}$ — плоскость $Oxz$.
Пересечение нулевое, значит сумма прямая: $U \oplus W = \{x : x_2 = 0\}$, и каждый вектор плоскости $Oxz$ раскладывается на «часть по оси $Ox$» и «часть по оси $Oz$» единственным образом.
Ответ: $U \oplus W$ — плоскость $x_2 = 0$, разложение единственно.
Пример 4. Пересечение прямой и плоскости.
$$U = \{\,x \in \mathbb{R}^3 : x_1 + x_2 + x_3 = 0\,\}, \qquad W = \operatorname{span}\big((1,1,1)\big).$$Элемент $W$ имеет вид $(c,c,c)$. Подставляем в уравнение $U$: $c + c + c = 3c = 0$, откуда $c = 0$.
Ответ: $U \cap W = \{\mathbf{0}\}$. Геометрически: прямая, натянутая на нормаль плоскости, протыкает плоскость ровно в начале координат.
Пример 5. Объединение подпространств в пространстве матриц.
Пусть $U$ — множество матриц вида $\begin{pmatrix} a & 0 \\ 0 & 0\end{pmatrix}$, $W$ — множество матриц вида $\begin{pmatrix} 0 & 0 \\ 0 & d\end{pmatrix}$. Оба — подпространства $M_{2\times2}$.
Их объединение подпространством не является:
$$\begin{pmatrix} 1 & 0 \\ 0 & 0\end{pmatrix} + \begin{pmatrix} 0 & 0 \\ 0 & 1\end{pmatrix} = \begin{pmatrix} 1 & 0 \\ 0 & 1\end{pmatrix},$$а единичная матрица не имеет ни вида $U$, ни вида $W$.
Зато сумма — множество всех диагональных матриц $\begin{pmatrix} a & 0 \\ 0 & d\end{pmatrix}$, и она прямая: пересечение $U \cap W$ состоит только из нулевой матрицы, поскольку матрица не может одновременно иметь нулевой нижний правый угол и нулевой верхний левый, оставаясь при этом ненулевой в одном из них.
Ответ: объединение — не подпространство, $U \oplus W$ — диагональные матрицы.
Почему это важно
Пересечение — рабочий инструмент. Задача «найти все векторы, удовлетворяющие сразу двум наборам условий» — это ровно пересечение подпространств, и решается она объединением систем уравнений в одну. Практически: если $U$ задано системой $A x = 0$, а $W$ системой $Bx = 0$, то $U \cap W$ задаётся системой, у которой матрица получается приписыванием строк $B$ под строки $A$. Дальше — обычный метод Гаусса.
Сумма — тоже рабочий инструмент, но с другой стороны. Если подпространства заданы порождающими, сумма считается склейкой списков. Отсюда типичный приём: «расширить набор признаков» на практике означает перейти от $U$ к $U + W$, добавив новые порождающие.
Провал объединения — важный урок про линейность в целом. Линейные структуры плохо переносят «или»: условие «лежит либо тут, либо там» нелинейно по своей природе, и результат линейностью не обладает. Именно поэтому в задачах, где данные распадаются на несколько кусков-подпространств, одной линейной моделью не обойтись, и появляются кусочно-линейные конструкции, смеси моделей и нейросети с нелинейностями. «Или» приходится чем-то оплачивать.
Векторные пространства в машинном обучении
Слово «вектор» в машинном обучении звучит примерно в каждом втором предложении, и почти всегда — именно в том смысле, который мы разобрали. Разберём, где аксиоматика реально работает, а где термин употребляется вольно.
Эмбеддинги: почему арифметика над ними осмысленна
Эмбеддинг слова, картинки или пользователя — это набор из нескольких сотен вещественных чисел, то есть элемент $\mathbb{R}^d$ (типичные $d$: 300 у word2vec и GloVe, 768 у BERT-base, 1536 у ряда коммерческих моделей). $\mathbb{R}^d$ — векторное пространство, аксиомы выполнены, значит над эмбеддингами законны сложение, умножение на число и любые линейные комбинации.
Именно это делает осмысленным знаменитый пример
$$v_{\text{king}} - v_{\text{man}} + v_{\text{woman}} \approx v_{\text{queen}}.$$Здесь нет ничего мистического: это обычная линейная комбинация с коэффициентами $1, -1, 1$, и её результат — законный вектор того же пространства. Дальше ищется ближайший к нему по косинусной близости эмбеддинг из словаря.
Но с честной оговоркой, потому что легенда сильнее эффекта. В стандартной процедуре оценки (метод 3CosAdd из работы Миколова и соавторов, 2013) три исходных слова исключаются из списка кандидатов. Томаш Линзен в работе 2016 года «Issues in evaluating semantic spaces using word analogies» показал, что без этого исключения ближайшим к результату очень часто оказывается одно из исходных слов — чаще всего сам $v_{\text{king}}$, — а вовсе не искомый ответ. То есть часть «магии» обеспечивается процедурой отбора кандидатов, а не геометрией. Плюс успех сильно зависит от типа аналогии: пары «страна — столица» и «мужской род — женский род» отрабатываются заметно лучше, чем морфологические или редкие семантические отношения.
Практический вывод: линейная структура в эмбеддингах есть и она реальна, но это статистическая тенденция, а не тождество. Аксиомы гарантируют, что выражение $v_1 - v_2 + v_3$ определено; они ничего не гарантируют про то, что результат окажется осмысленным.
Проверить, что аксиомы действительно выполняются для эмбеддингов, можно в три строчки — просто потому, что это numpy-массивы:
import numpy as np
rng = np.random.default_rng(0)
u, v = rng.normal(size=8), rng.normal(size=8) # два "эмбеддинга"
a, b = 2.5, -0.75
print(np.allclose(u + v, v + u)) # A1: True
print(np.allclose(a*(u + v), a*u + a*v)) # A5: True
print(np.allclose((a + b)*v, a*v + b*v)) # A6: True
print(np.allclose(a*(b*v), (a*b)*v)) # A7: True
print(np.allclose(1.0*v, v)) # A8: True
Функция np.allclose вместо точного равенства нужна из-за чисел с плавающей точкой: аксиомы верны в $\mathbb{R}$ точно, а в float64 — с погрешностью порядка $10^{-16}$. Это, кстати, отдельный сюжет: множество чисел float64 векторным пространством не является, потому что сложение в нём неассоциативно из-за округлений. Практически это редко мешает, но помнить стоит.
Latent space: пространство, которого не было в данных
Автоэнкодер сжимает вход (скажем, картинку $28\times28$, то есть точку $\mathbb{R}^{784}$) в код небольшой размерности — например, $\mathbb{R}^{32}$, — а потом восстанавливает обратно. Это скрытое пространство и называют latent space.
Оно тоже $\mathbb{R}^d$ и тоже удовлетворяет аксиомам, поэтому в нём законны линейные операции: интерполяция между двумя кодами $(1-t)z_1 + t z_2$, сложение «направлений» (в лицах — направление «улыбка», «очки», «поворот головы»), усреднение кодов группы объектов. Именно эти операции дают эффектные демонстрации плавных переходов между изображениями.
Тут снова нужна оговорка. Линейные операции определены всегда, но декодер не обязан выдавать осмысленный результат на произвольной точке. Обычный автоэнкодер учится восстанавливать только те коды, которые реально встречались, а между ними может быть пусто. Вариационный автоэнкодер (VAE) как раз и добавляет к функции потерь член, штрафующий отклонение распределения кодов от нормального, — чтобы «дырок» стало меньше и интерполяция работала. То есть осмысленность интерполяции — не следствие аксиом, а результат специальной тренировки.
Нейросеть как точка в пространстве параметров
Есть два разных векторных пространства, которые легко перепутать.
Пространство параметров. Все веса сети, вытянутые в один длинный столбец, — это точка в $\mathbb{R}^N$, где $N$ — число обучаемых параметров (у ResNet-50 это порядка $2{,}5 \cdot 10^7$). Обучение — движение этой точки: шаг градиентного спуска записывается как $\theta \leftarrow \theta - \eta \nabla L(\theta)$, и это линейная операция в $\mathbb{R}^N$: вычитание вектора, умноженного на число. Усреднение весов нескольких моделей (weight averaging, федеративное обучение) — тоже линейная комбинация в этом пространстве. В PyTorch векторизация параметров делается функцией torch.nn.utils.parameters_to_vector.
Пространство функций. Сама сеть — это функция из $\mathbb{R}^{\text{in}}$ в $\mathbb{R}^{\text{out}}$, то есть элемент пространства функций из примера 5 зоопарка. Оно тоже векторное. Но вот что важно: множество функций, реализуемых сетью фиксированной архитектуры, подпространством не является. Сумма двух таких функций, вообще говоря, не реализуется той же архитектурой — из-за нелинейных активаций. Отсюда и следует, что нейросеть — не линейная модель, хотя и живёт в линейном пространстве функций.
А вот линейный слой без активации — реализует именно линейное отображение, и множество таких функций подпространством является. Это и есть граница между «линейными методами» и всем остальным.
Тензоры в PyTorch: shape — это не пространство
Частая путаница. В PyTorch и NumPy у массива есть атрибут shape — например, (32, 3, 224, 224) для батча картинок. Возникает соблазн сказать «это четырёхмерное пространство». Это неверно.
shape описывает способ хранения и индексации — как числа разложены по осям. Векторное пространство определяется тем, какие операции определены и какие аксиомы выполнены. Батч из 32 картинок $3\times224\times224$ — это $32 \cdot 3 \cdot 224 \cdot 224 = 4\,816\,896$ вещественных чисел, то есть элемент $\mathbb{R}^{4816896}$, если складывать и умножать на число поэлементно. Все аксиомы выполнены, потому что операции поэлементные, — но «четырёхмерности» тут нет никакой.
Практическое следствие: tensor.reshape(...) меняет shape, но не меняет ни один из результатов линейных операций. Сложение до reshape и после дают один и тот же набор чисел. Это ровно то, что мы говорили про многочлены и $\mathbb{R}^{n+1}$: способ записи и структура пространства — разные вещи.
Отдельно стоит запомнить: broadcasting в numpy — это не операция векторного пространства. Сложение массивов разной формы ((3,1) + (1,4) даёт (3,4)) выходит за рамки аксиом, потому что аксиомы требуют, чтобы обе операции применялись к элементам одного и того же множества. Удобство — да, векторное пространство — нет.
Подпространство признаков и гипотеза о многообразии
Фраза «данные лежат в подпространстве меньшей размерности» означает буквально следующее: строки матрицы объекты-признаки, будучи точками $\mathbb{R}^n$, все попадают в некоторое подпространство $U \subsetneq \mathbb{R}^n$. Признаков формально $n$, а независимой информации меньше.
Проверяется это рангом: если $\operatorname{rank} X = k < n$, столбцы связаны линейно, и данные лежат в подпространстве. Смоделируем ситуацию явно:
import numpy as np
rng = np.random.default_rng(0)
A = rng.normal(size=(200, 2)) # 200 объектов, 2 "истинных" фактора
B = rng.normal(size=(2, 5)) # 5 наблюдаемых признаков как их комбинации
D = A @ B
print(D.shape) # (200, 5) — пять признаков
print(np.linalg.matrix_rank(D)) # 2 — а информации на два
print(np.linalg.svd(D, compute_uv=False))
# [4.48e+01 1.89e+01 5.01e-15 3.78e-15 1.29e-15]
Пять столбцов, ранг 2. Два сингулярных числа большие, остальные три — машинные нули порядка $10^{-15}$, то есть на уровне точности float64. Данные заполняют не всё $\mathbb{R}^5$, а плоское двумерное подпространство внутри него. Именно это и ищет метод главных компонент: подпространство, в котором данные лежат (или почти лежат).
Слово «почти» существенно. На реальных данных строгих линейных зависимостей нет — есть шум, и вместо точных нулей получаются маленькие, но ненулевые сингулярные числа. Ранг тогда становится вопросом выбранного порога, и np.linalg.matrix_rank принимает параметр tol именно для этого. Мы уже сталкивались с тем же эффектом в прошлом уроке, когда обсуждали численный ранг.
И наконец, гипотеза о многообразии (manifold hypothesis) — честный анонс без техники. Она утверждает, что реальные данные высокой размерности (фотографии, записи речи, тексты) сосредоточены вблизи множества гораздо меньшей размерности, чем объемлющее пространство. Но это множество, вообще говоря, не подпространство: оно искривлено, и линейными уравнениями не задаётся. Подпространство — частный, самый простой случай такого множества; на нём работают PCA и линейные методы. Для искривлённых случаев нужны нелинейные подходы — автоэнкодеры, t-SNE, UMAP. Строгая теория многообразий выходит далеко за рамки линейной алгебры, и мы её здесь не строим; важно только понимать разницу между «данные лежат в подпространстве» (плоско, линейно) и «данные лежат на многообразии» (искривлённо).
Пространство многочленов и полиномиальная регрессия
Пространство $P_n$ из зоопарка используется в ML напрямую. Полиномиальная регрессия предсказывает
$$\hat{y} = w_0 + w_1x + w_2x^2 + \dots + w_nx^n,$$то есть ищет наилучший элемент пространства $P_n$. Модель нелинейна по $x$, но линейна по параметрам $w_i$ — и именно поэтому решается обычным методом наименьших квадратов, без всякого градиентного спуска.
Технически из одного признака $x$ строятся $n+1$ новых признаков $1, x, x^2, \dots, x^n$; в scikit-learn это делает PolynomialFeatures. Вот та же конструкция вручную:
import numpy as np
X = np.array([[0.0], [1.0], [2.0], [3.0]])
Phi = np.hstack([X**k for k in range(4)]) # столбцы 1, x, x^2, x^3
print(Phi)
# [[ 1. 0. 0. 0.]
# [ 1. 1. 1. 1.]
# [ 1. 2. 4. 8.]
# [ 1. 3. 9. 27.]]
print(np.linalg.matrix_rank(Phi)) # 4
Матрица со степенями в столбцах называется матрицей Вандермонда; при попарно различных узлах её ранг полный, здесь $4$ при четырёх столбцах. Ранг полный — значит ядро тривиально, и коэффициенты полинома определяются однозначно (это критерий из прошлого урока).
Практическая ловушка: при больших $n$ столбцы $x^k$ становятся почти пропорциональными на узком диапазоне значений $x$, матрица оказывается близка к вырожденной, а число обусловленности (урок 166) взлетает. Отсюда стандартные лекарства — ортогональные системы многочленов вместо степеней и регуляризация; но это уже темы дальнейших уроков.
Практика: 30 заданий
Базовые задания (1–10)
Задание 1: Является ли множество $U = \{\,(x_1, x_2) \in \mathbb{R}^2 \;:\; x_2 = 3x_1\,\}$ подпространством $\mathbb{R}^2$?
Задание 2: Является ли множество $U = \{\,(x_1, x_2) \in \mathbb{R}^2 \;:\; x_1 - 2x_2 = 3\,\}$ подпространством $\mathbb{R}^2$? Если нет — укажи нарушенное условие и приведи числовой контрпример.
Задание 3: Является ли множество $U = \{\,x \in \mathbb{R}^3 \;:\; x_1 \ge 0\,\}$ подпространством $\mathbb{R}^3$? Укажи конкретную нарушенную аксиому.
Задание 4: Является ли множество $U = \{\,x \in \mathbb{R}^3 \;:\; x_1 + x_2 + x_3 = 0\,\}$ подпространством $\mathbb{R}^3$? Опиши его геометрически.
Задание 5: Является ли множество $U = \{\,x \in \mathbb{R}^3 \;:\; x_1 x_2 = 0\,\}$ подпространством $\mathbb{R}^3$?
Задание 6: Принадлежит ли вектор $b = (5, 5)$ линейной оболочке $\operatorname{span}\big((1,2),\ (3,1)\big)$? Если да — найди коэффициенты.
Задание 7: Принадлежит ли вектор $b = (1, 2, 3)$ линейной оболочке $\operatorname{span}\big((1,1,0),\ (0,1,1)\big)$?
Задание 8: Опиши геометрически множества $\operatorname{span}\big((2,-1,3)\big)$ и $\operatorname{span}\big((2,-1,3),\ (-4,2,-6)\big)$.
Задание 9: Является ли множество решений системы
$$\begin{cases} x_1 - 2x_2 + x_3 = 0 \\ 3x_1 + x_2 - x_3 = 0 \end{cases}$$подпространством $\mathbb{R}^3$? Опиши его геометрически и укажи порождающий вектор.
Задание 10: Является ли множество $U = \{\,p \in P_3 \;:\; p(0) = 0\,\}$ подпространством пространства многочленов степени не выше третьей?
Средние задания (11–20)
Задание 11: Является ли подпространством в $M_{2\times 2}$ множество симметричных матриц $S = \{A : A^T = A\}$? А множество $T = \{A : a_{11} = 1\}$?
Задание 12: Является ли подпространством в $M_{n\times n}$ множество матриц с нулевым следом $\{A : \operatorname{tr} A = 0\}$? А множество матриц со следом 1?
Задание 13: Образуют ли невырожденные матрицы $2\times2$ (то есть матрицы с $\det A \ne 0$) подпространство в $M_{2\times2}$?
Задание 14: Образуют ли чётные функции (то есть функции с $f(-x) = f(x)$ при всех $x$) подпространство в пространстве всех функций на $\mathbb{R}$? Чему равно пересечение множества чётных функций с множеством нечётных ($g(-x) = -g(x)$)?
Задание 15: Являются ли подпространствами в $P_2$ множества $U = \{p : p(1) = 0\}$ и $W = \{p : p(1) = 1\}$?
Задание 16: При каком значении параметра $a$ множество $M_a = \{\,x \in \mathbb{R}^3 \;:\; 2x_1 - x_2 + a x_3 = a - 1\,\}$ является подпространством $\mathbb{R}^3$?
Задание 17: Принадлежит ли вектор $b = (4,5,6)$ линейной оболочке $\operatorname{span}\big((1,1,1),\ (1,2,3)\big)$? Если да — найди коэффициенты.
Задание 18: При каком значении $\lambda$ вектор $(1, \lambda, 3)$ принадлежит линейной оболочке $\operatorname{span}\big((1,0,1),\ (0,1,1)\big)$?
Задание 19: Найди пересечение подпространств $U = \{x \in \mathbb{R}^3 : x_1 + x_2 + x_3 = 0\}$ и $W = \{x \in \mathbb{R}^3 : x_1 - x_3 = 0\}$ и опиши его геометрически.
Задание 20: Пусть $U = \operatorname{span}\big((1,2)\big)$ и $W = \operatorname{span}\big((3,-1)\big)$ — две прямые в $\mathbb{R}^2$. Является ли подпространством их объединение $U \cup W$? Чему равна их сумма $U + W$?
Продвинутые задания (21–30)
Задание 21: Пользуясь только аксиомами A1–A8 и доказанными в уроке следствиями, докажи два утверждения: (а) $(\alpha - \beta)v = \alpha v - \beta v$ для любых $\alpha, \beta \in \mathbb{R}$ и $v \in V$; (б) $-(u+v) = (-u) + (-v)$.
Задание 22: При каких значениях параметра $a$ множество $W_a = \{\,p \in P_2 \;:\; p(2) = a \cdot p(0)\,\}$ является подпространством $P_2$? А множество $V_a = \{\,p \in P_2 \;:\; p(2) = a\,\}$?
Задание 23: На множестве $V = \mathbb{R}^2$ введена операция сложения $(x_1,x_2) \oplus (y_1,y_2) = (x_1+y_1,\ 0)$, а умножение на скаляр обычное: $\alpha \odot (x_1,x_2) = (\alpha x_1, \alpha x_2)$. Какие из восьми аксиом нарушены?
Задание 24: На множестве положительных вещественных чисел $V = \{x \in \mathbb{R} : x > 0\}$ введены операции
$$x \oplus y = xy, \qquad \alpha \odot x = x^{\alpha}.$$Докажи, что $V$ с этими операциями — векторное пространство над $\mathbb{R}$. Что является нулевым вектором и что — противоположным к $x$?
Задание 25: На множестве $V = \mathbb{R}^2$ сложение обычное, а умножение на скаляр задано как $\alpha \odot (x_1, x_2) = (\alpha x_1,\ 0)$. Проверь аксиомы и найди ту единственную, которая нарушена.
Задание 26: Является ли подпространством $\mathbb{R}^3$ множество решений системы
$$\begin{cases} x_1 + x_2 - x_3 = 2 \\ 2x_1 - x_2 + x_3 = 1 \end{cases}$$Если нет — приведи два конкретных решения, сумма которых решением не является.
Задание 27: Являются ли подпространствами в $P_3$ множества $U = \{p : p'(0) = 0\}$ и $W = \{p : p(0)\cdot p(1) = 0\}$?
Задание 28: Являются ли подпространствами в $C[0,1]$ (пространстве непрерывных функций на отрезке) множества
$$U = \left\{ f : \int_0^1 f(x)\,dx = 0 \right\}, \qquad W = \left\{ f : \int_0^1 f(x)\,dx = 5 \right\}?$$Задание 29: Пусть $U = \operatorname{span}\big((1,1,0)\big)$ и $W = \operatorname{span}\big((1,-1,0),\ (0,0,1)\big)$ — подпространства $\mathbb{R}^3$. Найди $U \cap W$ и $U + W$. Является ли сумма прямой?
Задание 30: Пусть $U$ и $W$ — подпространства пространства $V$. Докажи: если объединение $U \cup W$ является подпространством, то $U \subseteq W$ или $W \subseteq U$.
Частые ошибки
Ошибка 1. «Вектор — это стрелка или столбец чисел».
Как выглядит: при виде задачи «докажи, что множество многочленов с $p(1)=0$ — подпространство» человек начинает искать координаты, рисовать оси и теряется, потому что многочлен «не похож на вектор».
Почему возникает: инерция уроков 151–155, где вектор вводился геометрически, а потом отождествлялся со столбцом координат.
Как правильно: после этого урока вектор — любой элемент любого векторного пространства. Многочлен, функция, матрица, последовательность — всё это векторы, если операции над ними удовлетворяют восьми аксиомам. Проверка подпространства делается не через координаты, а через критерий: ноль, сумма, скаляр. В случае с многочленами все три проверки — это подстановка значения $x=1$ и школьные свойства.
Ошибка 2. Проверять все восемь аксиом для подмножества известного пространства.
Как выглядит: задача «является ли множество симметричных матриц подпространством» решается на три страницы, с честной проверкой коммутативности, ассоциативности и дистрибутивности.
Почему возникает: определение выучено, а критерий — нет.
Как правильно: если множество лежит внутри уже известного векторного пространства и операции унаследованы, аксиомы A1, A2, A5, A6, A7, A8 выполняются автоматически — они верны для всех элементов объемлющего пространства. Проверять нужно ровно три вещи: наличие нуля, замкнутость относительно сложения, замкнутость относительно умножения на скаляр. Три строчки вместо трёх страниц.
Ошибка 3. «Ноль в множестве есть — значит подпространство».
Как выглядит: «Множество $\{x : x_1x_2 = 0\}$ содержит начало координат, значит это подпространство».
Почему возникает: проверка на ноль — самая быстрая и потому запоминается лучше остальных; её путают с достаточным условием.
Как правильно: наличие нуля — условие необходимое, но не достаточное. Объединение двух прямых через ноль, множество $\{x_1x_2=0\}$, объединение чётных и нечётных функций — все они содержат ноль и подпространствами не являются. После проверки на ноль обязательно идут проверки на сложение и на скаляр.
Ошибка 4. Проверять замкнутость только по сложению или только по скаляру.
Как выглядит: «Сумма двух целочисленных векторов целочисленна, значит целочисленная решётка — подпространство» или «умножение на скаляр не выводит из множества $\{|x_1| = |x_2|\}$, значит это подпространство».
Почему возникает: оба условия кажутся «одинаковыми», проверив одно, второе делают по инерции.
Как правильно: условия (1) и (2) независимы: ни одно не следует из другого. Целочисленная решётка замкнута относительно сложения, но не относительно умножения на $\tfrac12$. Множество $\{|x_1|=|x_2|\}$ замкнуто относительно умножения на скаляр, но не относительно сложения. Проверять надо оба, и оба — с конкретными числами, если ищешь контрпример.
Ошибка 5. «Аксиома $1 \cdot v = v$ лишняя, она же тривиальна».
Как выглядит: при перечислении аксиом её пропускают; при проверке экзотических операций её не проверяют.
Почему возникает: в привычных примерах она выполняется автоматически и не даёт никакой работы.
Как правильно: без A8 в определение пролезают вырожденные конструкции, где умножение на скаляр теряет информацию или обнуляет всё подряд, а остальные семь аксиом при этом выполняются. Именно A8 «прибивает» операцию к реальности. И на ней стоит следствие $(-1)v = -v$, без которого не работает даже критерий подпространства. При проверке экзотических операций A8 надо проверять первой, а не последней.
Ошибка 6. Считать, что $0\cdot v = \mathbf{0}$ и $(-1)v = -v$ — часть определения.
Как выглядит: в доказательстве какого-нибудь утверждения человек ссылается на «аксиому $0 \cdot v = 0$».
Почему возникает: эти факты настолько привычны, что кажутся аксиомами.
Как правильно: в списке восьми аксиом их нет — это доказываемые следствия. И доказываются они нетривиально: $0 \cdot v = \mathbf{0}$ выводится из A6 и закона сокращения, а $(-1)v = -v$ дополнительно требует A8 и единственности противоположного. Ссылаться на них можно и нужно, но как на следствия, а не как на аксиомы.
Ошибка 7. Пытаться «сократить на вектор».
Как выглядит: из $\alpha v = \beta v$ делают вывод $\alpha = \beta$; из $\alpha u = \alpha v$ делают вывод $u = v$.
Почему возникает: школьная привычка делить обе части на общий множитель.
Как правильно: деления на вектор не существует. Правильный ход: перенести всё в одну часть, свернуть по A6 (или A5) и применить следствие 6. Из $\alpha v = \beta v$ следует $(\alpha - \beta)v = \mathbf{0}$, откуда $\alpha = \beta$ или $v = \mathbf{0}$. Из $\alpha u = \alpha v$ следует $\alpha(u - v) = \mathbf{0}$, откуда $\alpha = 0$ или $u = v$. Оговорки обязательны, без них вывод неверен.
Ошибка 8. Считать объединение подпространств подпространством.
Как выглядит: «Возьмём объединение двух плоскостей — это же множество векторов, значит подпространство».
Почему возникает: пересечение подпространств действительно всегда подпространство, и по аналогии то же ожидается от объединения.
Как правильно: объединение подпространством не является никогда, кроме вырожденного случая, когда одно из них вложено в другое. Механизм слома всегда один: берём вектор из первого куска, вектор из второго, складываем — сумма попадает «между кусками». Для объединения нужна замена: сумма подпространств $U + W$, то есть множество всех сумм $u + w$. Она подпространством является всегда.
Ошибка 9. Путать число порождающих векторов с «размером» оболочки.
Как выглядит: «$\operatorname{span}$ трёх векторов в $\mathbb{R}^3$ — это всё пространство» или «оболочка двух векторов — обязательно плоскость».
Почему возникает: в типовых примерах порождающие обычно берут «в общем положении», и совпадение количества с ожидаемым размером входит в привычку.
Как правильно: оболочка двух коллинеарных векторов — прямая, а не плоскость; оболочка трёх векторов, лежащих в одной плоскости, — плоскость, а не всё пространство; оболочка нулевого вектора — точка. Количество порождающих даёт только оценку сверху. Точная связь между набором векторов и «размером» оболочки — тема ближайших уроков.
Ошибка 10. Считать, что раз множество задано уравнением, оно подпространство.
Как выглядит: «$x_1^2 + x_2^2 = 0$ — это уравнение, значит подпространство» или «$x_1 + x_2 = 1$ — линейное уравнение, значит подпространство».
Почему возникает: правило «линейное однородное уравнение задаёт подпространство» запоминается наполовину — без слов «линейное» или без слова «однородное».
Как правильно: нужны оба слова. Линейное — переменные только в первой степени, без квадратов, произведений, модулей и корней. Однородное — справа ноль. Если хоть одно требование нарушено, множество почти наверняка не подпространство, и надо искать контрпример. Отдельный курьёз: $x_1^2+x_2^2=0$ на самом деле задаёт $\{\mathbf{0}\}$ и потому подпространством является — но не благодаря форме записи, а вопреки ей.
Главное запомнить
-
Векторное пространство над $\mathbb{R}$ — множество с операциями сложения и умножения на вещественное число, удовлетворяющими восьми аксиомам: A1 коммутативность, A2 ассоциативность, A3 нулевой вектор, A4 противоположный вектор, A5 и A6 два дистрибутивных закона, A7 ассоциативность скаляров, A8 умножение на единицу. Плюс неявное требование замкнутости: операции не должны выводить из множества.
-
Вектор — это любой элемент любого векторного пространства: столбец, матрица, многочлен, функция, последовательность, решение однородной системы. Геометрическая стрелка — лишь один из примеров.
-
Аксиома $1 \cdot v = v$ не лишняя. Без неё в определение пролезают вырожденные конструкции (например, $\alpha \odot v = \mathbf{0}$ для всех $\alpha$), где остальные семь аксиом выполняются, а осмысленной геометрии нет.
-
Следствия аксиом, доказанные один раз для всех пространств: нулевой вектор единственный; противоположный единственный; $0 \cdot v = \mathbf{0}$; $\alpha \cdot \mathbf{0} = \mathbf{0}$; $(-1)v = -v$; из $\alpha v = \mathbf{0}$ следует $\alpha = 0$ или $v = \mathbf{0}$.
-
Запрещённые операции: делить на вектор, сокращать на вектор, перемножать два вектора. Из $\alpha v = \beta v$ следует $\alpha = \beta$ только при $v \ne \mathbf{0}$.
-
Критерий подпространства: $U \subseteq V$ является подпространством тогда и только тогда, когда $\mathbf{0} \in U$, сумма любых двух элементов $U$ лежит в $U$, и произведение любого элемента $U$ на любое число лежит в $U$. Остальные шесть аксиом наследуются от объемлющего пространства автоматически.
-
Наличие нуля необходимо, но не достаточно. Объединение двух прямых через ноль содержит $\mathbf{0}$ и подпространством не является.
-
Быстрая эвристика: линейные однородные условия (переменные в первой степени, справа ноль) задают подпространства; неравенства, квадраты, произведения координат, модули, целочисленность и ненулевые правые части — нет.
-
Линейная оболочка $\operatorname{span}(v_1,\dots,v_k)$ — множество всех линейных комбинаций $c_1v_1+\dots+c_kv_k$. Это всегда подпространство, причём наименьшее из содержащих все $v_i$. Геометрически — точка, прямая, плоскость или их многомерный аналог, обязательно через начало координат.
-
Принадлежность вектора оболочке — это вопрос о совместности системы: $b \in \operatorname{span}(v_1,\dots,v_k)$ тогда и только тогда, когда система $c_1v_1 + \dots + c_kv_k = b$ разрешима относительно $c_i$.
-
Пересечение подпространств — всегда подпространство, в том числе для бесконечного семейства. Объединение — почти никогда: только если одно вложено в другое.
-
Сумма подпространств $U + W = \{u + w\}$ — подпространство, наименьшее из содержащих $U$ и $W$; если подпространства заданы порождающими, списки просто склеиваются. Сумма называется прямой ($U \oplus W$), когда $U \cap W = \{\mathbf{0}\}$; тогда разложение каждого вектора единственно.
-
Мост к уроку 167: множество решений однородной системы — подпространство $\mathbb{R}^n$ (это принцип суперпозиции на новом языке), а ФСР — набор порождающих для него: $\ker A = \operatorname{span}(X_1,\dots,X_{n-r})$. Множество решений неоднородной системы подпространством не является — в нём нет нуля.
Связь с другими темами курса
Что нужно было знать до этого урока
Из уроков 151–155 взята геометрическая интуиция: сложение стрелок по правилу параллелограмма, растяжение вектора числом, коллинеарность и компланарность. Всё это в уроке превратилось из определений в примеры. Векторное произведение из урока 154 использовалось как рабочий инструмент — чтобы находить уравнение плоскости, натянутой на два вектора.
Из уроков 156–157 — операции над матрицами: сложение, умножение на число, транспонирование, распределительное свойство $A(x+y) = Ax + Ay$. Именно оно даёт замкнутость ядра матрицы. Пространство $M_{m\times n}$ — один из главных примеров зоопарка.
Из уроков 158–161 — определители и обратная матрица: определитель применяется для проверки того, что три вектора порождают всё $\mathbb{R}^3$, а невырожденность — в контрпримере про матрицы с $\det \ne 0$.
Из уроков 162–164 — ранг, элементарные преобразования, теорема Кронекера — Капелли и метод Гаусса. На них стоит вся техника ответа на вопрос «принадлежит ли вектор линейной оболочке»: это задача о совместности системы, где порождающие векторы стоят столбцами.
Из урока 167 — принцип суперпозиции, ядро матрицы, ФСР и структура общего решения. Этот урок — прямое продолжение: то, что там наблюдалось на конкретных системах, здесь оформлено в общую теорию. Ядро оказалось подпространством, суперпозиция — проверкой критерия, ФСР — набором порождающих, а невозможность применить всё это к неоднородной системе — отсутствием нулевого вектора.
Что изучить дальше
Урок 169 «Линейная зависимость векторов» ответит на вопрос, который в этом уроке аккуратно обходился: когда набор порождающих избыточен, а когда нет. Мы говорили «коллинеарны» и «второй вектор ничего не добавляет» — там это получит точное определение, критерии и связь с рангом. Урок 170 «Базис и размерность» объяснит, почему у каждого пространства есть минимальный порождающий набор, почему число векторов в нём не зависит от выбора и что такое $\dim$; там же ФСР окончательно опознается как базис ядра, а число $n - r$ — как его размерность, и появится формула, связывающая размерности $U$, $W$, $U+W$ и $U\cap W$. Урок 171 «Линейные преобразования» введёт отображения между пространствами, сохраняющие линейные операции; ядро и образ оператора окажутся подпространствами, а теорема о ранге и дефекте обобщит связь $r + (n-r) = n$. Урок 172 «Собственные векторы» будет искать направления, которые оператор не поворачивает, и собственные подпространства снова окажутся ядрами. Урок 175 «Евклидовы пространства» добавит к восьми аксиомам девятую структуру — скалярное произведение, из которого появятся длина, угол и ортогональность в абстрактном пространстве.
Где это нужно в жизни
💻 Программирование. Массивы numpy и тензоры PyTorch — прямая реализация $\mathbb{R}^n$: сложение и умножение на скаляр поэлементны, аксиомы выполняются (с поправкой на точность float). Понятие подпространства лежит в основе сжатия данных и проверок корректности: если признаки должны лежать в подпространстве, отклонение от него — сигнал ошибки. В компьютерной графике пространство цветов RGB, пространство коэффициентов сплайнов, пространство преобразований — всё это векторные пространства.
🤖 ML/AI. Эмбеддинги слов, картинок и пользователей — элементы $\mathbb{R}^d$, и именно аксиомы делают законными операции вида $v_1 - v_2 + v_3$. Latent space автоэнкодеров и генеративных моделей — снова векторное пространство, где определена интерполяция. Веса нейросети — точка в пространстве параметров, а шаг градиентного спуска — линейная операция в нём. Полиномиальная регрессия ищет наилучший элемент пространства $P_n$.
📊 Data Science. Гипотеза о том, что данные лежат в подпространстве меньшей размерности, — основа PCA, факторного анализа и снижения размерности вообще. Проверка «лежат ли данные в подпространстве» делается через ранг и сингулярные числа. Линейные ограничения на данные («доли суммируются в единицу», «баланс сходится») задают либо подпространства, либо их сдвиги.
🔬 Наука. В квантовой механике состояния системы — векторы в пространстве волновых функций, и принцип суперпозиции там буквально аксиома A-уровня: сумма состояний снова состояние. В теории сигналов пространство функций и разложения по системам функций — рабочий аппарат. В механике пространство перемещений конструкции и подпространство движений твёрдого тела описывают то, что деформацией не является.
💰 Финансы. Портфель — вектор долей активов, а множество портфелей с заданным ограничением («суммарная стоимость равна нулю») — подпространство. Именно поэтому арбитражные стратегии складываются: комбинация двух арбитражных портфелей снова арбитражный. Факторные модели доходности выражают доход как элемент линейной оболочки факторов.
Интересные факты
-
Книга Германа Грассмана «Die lineale Ausdehnungslehre» (1844), где фактически впервые построена теория векторных пространств, продавалась настолько плохо, что издатель в итоге пустил нераспроданный тираж на макулатуру. Грассман переписал её в 1862 году в более формальном виде — результат оказался ничуть не лучше. Признание к нему при жизни пришло не за математику, а за санскритологию: за словарь к «Ригведе» и за открытый им фонетический закон, который в лингвистике до сих пор называется законом Грассмана.
-
Первое современное аксиоматическое определение векторного пространства опубликовал Джузеппе Пеано в 1888 году — в книге, написанной как изложение идей Грассмана. Пеано сразу привёл в качестве примера пространство функций, за тридцать с лишним лет до того, как функциональный анализ стал самостоятельной дисциплиной. Массово его определение подхватили только после работ Германа Вейля (1918) и Стефана Банаха (1922).
-
Слова «вектор» и «скаляр» ввёл Уильям Роуэн Гамильтон в 1840-е годы, работая над кватернионами. Кватернион он записывал как сумму «скалярной части» и «векторной части» — отсюда и оба термина. Латинское vector означает «несущий, перевозчик», а scalaris — «относящийся к шкале»: скаляр отмеряется по шкале, а вектор ещё и указывает направление.
-
Множество чисел типа
float64, которым пользуется весь численный софт, векторным пространством не является. Причина — округления: сложение чисел с плавающей точкой неассоциативно, и $(a+b)+c$ может отличаться от $a+(b+c)$. Классический пример: при $a = 10^{16}$, $b = -10^{16}$, $c = 1$ первая скобка даёт $1$, а вторая — $0$, потому что $10^{16}+1$ округляется обратно к $10^{16}$. Вся численная линейная алгебра работает в структуре, которая аксиомам не удовлетворяет, — отсюда и целая наука об устойчивости алгоритмов. -
Термин span по-английски буквально означает «охватывать, перекрывать» (как мост перекрывает реку). В русской традиции прижилось описательное «линейная оболочка», и обозначения разошлись: в англоязычных книгах пишут $\operatorname{span}(v_1,\dots,v_k)$, в русских — $\mathcal{L}(v_1,\dots,v_k)$ или $\langle v_1,\dots,v_k\rangle$. Все три обозначения означают одно и то же, и в современных русских текстах $\operatorname{span}$ встречается всё чаще.
Лайфхаки и полезные трюки
-
Начинай с нуля — буквально. Первая проверка всегда одна: подставь нулевой вектор в условие, задающее множество. Если не проходит — ответ «не подпространство» готов за пять секунд, и никаких выкладок больше не нужно. Так мгновенно отсеиваются все множества с ненулевой правой частью: $x_1 - 2x_2 = 3$, $\operatorname{tr}A = 1$, $p(1) = 1$, $\int_0^1 f = 5$.
-
Смотри на форму условия, а не на смысл. Линейное однородное условие (переменные в первой степени, справа ноль) — почти наверняка подпространство. Появились квадрат, произведение переменных, модуль, знак неравенства, требование целочисленности или ненулевая правая часть — почти наверняка нет, и надо искать контрпример. Эта эвристика за секунду подсказывает, что ты будешь писать: доказательство или опровержение.
-
Слово «или» в условии — красный флаг. Условия вида $x_1x_2 = 0$, $p(0)p(1) = 0$, $|x_1| = |x_2|$ на самом деле означают «либо то, либо это» и задают объединение подпространств. Такие множества почти всегда не подпространства, и контрпример строится по шаблону: берём элемент из одного куска, элемент из другого, складываем.
-
Для опровержения нужны конкретные числа, для доказательства — буквы. Если множество не подпространство, ответ обязан содержать два конкретных вектора и посчитанную сумму. Если подпространство — рассуждение ведётся в общем виде, с $u$, $w$ и $\alpha$. Смешивать нельзя: «проверил на паре примеров, работает» — не доказательство, а «в общем виде видно, что не работает» — не опровержение.
-
Проверяй обе замкнутости, и по скаляру — с отрицательным числом. Условия «замкнуто по сложению» и «замкнуто по умножению на скаляр» независимы. При проверке второго бери $\alpha = -1$: именно отрицательные множители ломают все множества с неравенствами, и заодно это прямая проверка аксиомы A4.
-
Принадлежность оболочке сводится к системе — и решается Гауссом. Вопрос $b \in \operatorname{span}(v_1,\dots,v_k)$ — это система, где порождающие стоят столбцами, а $b$ — правая часть. Составил расширенную матрицу, привёл к ступенчатому виду, сравнил ранги: совпали — принадлежит, не совпали — нет. Никакой новой техники, всё из уроков 163–164.
-
Для двух векторов в $\mathbb{R}^3$ быстрее через нормаль. Если нужно понять, лежит ли вектор в оболочке двух неколлинеарных векторов, посчитай их векторное произведение — это нормаль к плоскости-оболочке. Дальше проверка сводится к одному скалярному произведению: ноль — лежит, не ноль — не лежит. Это быстрее, чем решать систему, особенно когда проверяемых векторов несколько.
-
Пересечение — это объединение уравнений, сумма — объединение порождающих. Два способа задания подпространств ведут себя зеркально. Если $U$ и $W$ заданы системами, для пересечения просто выписываешь все уравнения вместе. Если заданы оболочками, для суммы просто склеиваешь списки порождающих. Смешивать не стоит: пересечение оболочек «в лоб» не считается, сначала переведи их в уравнения.
-
Прямоту суммы проверяй через пересечение. Чтобы понять, единственно ли разложение $x = u + w$, не надо разбирать разложения — достаточно посчитать $U \cap W$. Пусто (кроме нуля) — сумма прямая, разложение единственно. Есть ненулевой вектор $z$ — единственности нет, и второе разложение строится сразу: $x = (u+z) + (w-z)$.
-
Проверяй себя в sympy, но проверяй правильные вещи. Принадлежность оболочке проверяется сравнением рангов:
Matrix.hstack(*vs).rank()противMatrix.hstack(*vs, b).rank()— совпали, значит принадлежит. Коэффициенты даётlinsolve. А вот утверждения «это подпространство» компьютер не проверит: они логические, и здесь единственный инструмент — критерий из трёх пунктов, применённый руками.
Этот урок открыл блок абстрактной линейной алгебры — и заодно объяснил, зачем абстракция вообще нужна. Мы не придумали новых объектов: столбцы, матрицы, многочлены и функции были у нас и раньше. Мы заметили, что правила игры у них одинаковые, выписали эти правила в восемь строк и договорились доказывать всё сразу для всех. Дальше эта экономия будет только расти: линейная зависимость, базис, размерность, операторы, собственные векторы — каждое следующее понятие определяется через аксиомы и потому работает во всём зоопарке разом. А пока стоит закрепить главное умение урока: увидев незнакомое множество, за минуту понять, подпространство это или нет, — и если нет, предъявить конкретные числа, на которых всё ломается.
Понял тему? Закрепи в боте! 🚀
Попрактикуйся на задачах и получи персональные рекомендации от AI
💪 Начать тренировку