Примечание: данная заметка представляет собой обзорный ликбез для нематематиков, знакомящий с одним конкретным приложением абстрактных векторных пространств, попутно напоминая в общем виде основные алгебраические понятия. Если вы математик, например студент НМУ, то читать не имеет смысла, так как вещи здесь действительно описаны крайне примитивные. Тем не менее даже этих примитивных вещей многие не знают и не понимают, о чем сообщают читатели.
Примечание 2: если есть желание взять эту статью и где-то разместить в другом месте, либо опубликовать, то вначале ознакомьтесь с этим коротким текстом.
Я уже писал о комплексных числах и в частности указывал, что их можно представлять в виде матриц. Однако никаких объяснений этого факта я не представлял, сославшись на то, что «можете сами проверить». Проверить, что матричное представление, что я привел, верное, действительно легко, но всегда интересно знать откуда у той или иной идеи ноги растут.
Матричное представление комплексного числа может получить достаточно легко любой нормальный школьник (ну или в современной России таки только второкурсник технического ВУЗа). Мы знаем, что у комплексного числа есть действительная и мнимая часть. Просто предположим, что действительная часть в нашей матрице будет находиться в элементе матрицы
размером 2×2
. Остальные элементы матрицы нам не известны, и нам хочется их найти. При умножении комплексных переменных
и
получается следующее «уравнение»:
То есть я знаю как ведет себя при умножении действительная часть числа, ее я и записываю в явном виде. Все остальные позиции в матрице мне не известны, но как только я попытаюсь решить эту «систему», то незамедлительно приду к комплексному виду матрицы. Первый шаг прост: мы явно видим, что
, и стало быть
, откуда мы сразу получаем половину матрицы. Довести рассуждения до конца — дело совершенно не хитрое.
Однако изложенный простой метод требует некоторый хитрости и сноровки. Математики этого не любят. Математики любят, чтобы не было никакой хитрости, чтобы все было строго и логично. Как кто-то написал: «Цель математика — найти такие математические методы, чтобы больше вообще не надо было думать». Поэтому я покажу сейчас классический метод получения матричной записи комплексного числа, как оно принято у взрослых ребят. Между прочим, используя понятия алгебры, которые в технических ВУЗах заставляют заучить, но совершенно не объясняют зачем это все надо и как это применять. Многим, думаю, это прольет свет на приложение тех самых абстрактных знаний, которые «непонятно зачем нужны».
Для начала вспомним что такое векторное (оно же линейное) пространство. Векторное пространство — это множество некоторых элементов, которые можно складывать и умножать на числа. Я не буду приводить строгое определение, так как оно нам совершенно не нужно. При желании вы сможете найти его где угодно. Примерами векторных пространств являются, например, сами числа (действительные и комплексные), функции, матрицы, привычные векторы из физики/математики. Я здесь не вдаюсь в тонкости вроде того над каким полем строится векторное пространство — работаем только с обычными вещественными числами.
Может случиться так, что у векторного пространства будет существовать набор элементов, через которые можно будет выразить любой другой элемент. Говорят, что такие элементы образовывают базис. Например, если рассматривать векторное пространство многочленов (функции вида
), то базисом могут служить функции
— этот базис будет содержать бесконечное число элементов, что вполне нормально. Такие пространства называются бесконечномерными.
Может однако случиться и так, что базис будет состоять лишь из конечного числа элементов
. В этом случае говорят, что векторное пространство конечномерно и имеет размерность
. Примером может служить пространство
, которое представляет собой множество столбцов (по сути матриц n×1), содержащих
элементов:
При сложении таких векторов складываются соответствующие элементы
, при умножении вектора на число, умножаются все элементы. То есть это просто пространство матриц n×1 — операции полностью соответствуют элементарным матричным. Базисными элементами являются следующие вектора:
Вот посмотрите пример как вектор может быть разложен в таком базисе:
Это пример вектора из пространства
. На самом деле когда мы имеем векторное пространство некоторой конечной размерности, то нам уже совершенно не важна природа этого пространства. Если рассматривать векторное пространства многочленов степени не выше третьей (то есть вида
), либо матрицы размера 2×2, то с точки зрения векторного пространства оно ни чем не отличается от обычного
— разница действительно не более чем в записи:
Если вы попробуете складывать или умножать на число матрицы 2×2, многочлены степени не выше третьей или векторы из
, то вы увидите, что их координаты подчиняются одним и тем же законам. В этом сила линейной алгебры, да и алгебры вообще — совершенно различные объекты в очень простых терминах оказываются одинаковыми по сути, если забыть о специфических операциях вроде умножения элементов друг на друга. И в этом однообразии кроется возможность находить удивительные закономерности и устанавливать совершенно неочевидные факты.
Такое соответствие между по сути разными пространствами называется изоморфизмом векторных пространств. Из наших рассуждений становится совершенно очевидно, что и множество комплексных чисел является конечномерным векторным пространством:
Или короче это можно записать так: 
Но нам комплексные числа надо умножать, а векторные пространства ничего не говорят об умножении! Здесь нам придет на выручку понятие линейного оператора. По определению линейным оператором называется функция на векторных пространствах, которая удовлетворяет свойству линейности. На языке формул линейность записывается так (здесь
и
— векторы):
1)
, где 
2) 
Непосредственно из этого определения следует, что если мы работаем в конечномерном векторном пространстве с заданным базисом, то действие линейного оператора целиком определяется его действием на базисные элементы:
— это вообще говоря вектор:
А самому линейному оператору таких векторов соответствует
штук:
Отсюда так и просится вывод о том, что множество линейных операторов на заданном векторном пространстве размерности
и само является векторным пространством размерности
. Обозначать такое пространство мы будем как
. Так же к слову отмечу, что я не случайно обозначаю матрицу линейного оператора просто заглавной буквой, а линейной оператор буквой каллиграфической — их стоит всегда различать, поскольку любое векторное пространство имеет множество разных базисов, и в каждом из базисов матрица линейного оператора будет различна. Линейный же оператор от выбора базиса не зависит — это просто функция, которая ставит одному вектору в соответствие другой (придумайте примеры и убедитесь в моих словах). Более того, в случае бесконечномерных пространств, базиса может и вовсе не быть (если рассматривать пространство функций, например), и соответственно матрицу линейного оператора тоже не удастся задать, хотя сами линейные операторы могут быть вполне определены.
Замечателен тот факт, что если мы выбрали некоторый базис в нашем пространстве, то применение линейного оператора к вектору равносильно умножению этого вектора на матрицу линейного оператора (сам вектор так же записывается в координатах данного базиса):
Я не останавливаюсь здесь подробно на преобразованиях координат и на разложении векторов в разных базисах, так как это подробно расписано в любом учебнике, да и напрямую к нашему повествованию не относится.
После применения линейного оператора, мы получаем новый вектор, к которому опять же можно применить линейный оператор. Пусть мы вначале применили линейный оператор
, а затем линейный оператор
. Это называется композицией линейных операторов и обозначается как
(полная аналогия с композицией обычных функций). Легко видеть, что матрица композиции линейных операторов равна произведению матриц линейных операторов:
Запись в последней скобке есть ни что иное как выражение элементов для произведения матриц. Собственно именно такая связь между композицией линейных операторов и произведением матриц может являться объяснением причудливой формулы матричного произведения (правильнее конечно это объяснять через последовательные преобразования базисов, но мы сейчас не будем этим заниматься).
Однако вернемся к комплексным числам. Определим оператор
просто как умножение на
, если интерпретировать вектор из
как комплексное число:
В том, что это действительно линейный оператор можно убедиться непосредственной проверкой (собственно это следует напрямую из того, что умножение на комплексное число коммутативно и дистрибутивно). А раз так, то мы можем найти матрицу этого линейного оператора:
Басис:
и 
Как видно, это и есть та форма комплексного числа, которую я приводил. Здесь
— действительная часть, а
— мнимая. Умножение на два числа
и
будет соответственно эквивалентно умножению на число
, либо умножение на произведение наших матриц. Сложение комплексных чисел покоординатное, так что эти матрицы и при сложении так же действуют в аналогии с правилами для комплексных чисел. А это и есть то что мы искали.
Приведенный прием с линейным оператором в действительности очень широко применим. Вероятно я в обозримом будущем еще вернусь к теме подобных приложений линейной алгебры, хотя и не уверен. А пока в качестве разминки предлагаю подумать над матричным представлением кватернионов (их множество обозначается как
).
Кватернионы это числа вида
, где
. Этого вполне достаточно, чтобы установить все свойства кватернионов. Стоит обратить внимание на то, что вообще говоря для кватернионов
, то есть произведение уже зависит от порядка сомножителей. Так,
, но
. Эти свойства можно найти в любой вводной статье. Нас же как и в случае с комплексными числами интересует возможность представить кватернионы в матричном виде.
Для этого можно рассматривать кватернионы либо как элементы векторного пространства
, либо как элементы векторного пространства
. В обоих случаях умножение на кватернион можно представить как действие линейного оператора и точно так же получить матричное представление (для
мы получим матрицы 4×4, а для
матрицы 2×2, но с комплексными элементами).
Попробуйте проделать это самостоятельно. Следует однако обратить внимание на то обстоятельство, что
— это делает значительным вопрос о том, с какой стороны происходит умножение под действием линейного оператора. И если вы определите
, то это не будет линейным оператором в случае
, так как нарушается первое свойство линейности (покажите это!). Чтобы таки представить кватернион в виде линейного оператора, необходимо, чтобы умножение на кватернион происходило не слева, а справа — это устранит неприятность с невозможностью переставить местами сомножители.