Возведение матрицы в степень. Вычисление результатов выражений с матрицами

Линейная алгебра для чайников

Чтобы изучить линейную алгебру, вы можете прочесть и вникнуть в книгу И. В. Белоусова "Матрицы и определители". Однако она написана строгим и сухим математическим языком, который людям со средним умом воспринимать тяжело. Поэтому я сделал пересказ наиболее трудных для понимания мест этой книги, стараясь изложить материал как можно понятнее, максимально используя для этого рисунки. Доказательства теорем я опустил. Признаться, я и сам не стал в них вникать. Верю г-ну Белоусову! Судя по его работе, он грамотный и толковый математик. Скачать его книгу можно по адресу http://eqworld.ipmnet.ru/ru/library/books/Belousov2006ru.pdf Если собираетесь вникать в мою работу, это нужно сделать, потому что я буду на Белоусова часто ссылаться.

Начнём с определений. Что такое матрица? Это прямоугольная таблица чисел, функций или алгебраических выражений. Зачем нужны матрицы? Они сильно облегчают сложные математические расчёты. У матрицы можно выделить строки и столбцы (рис. 1).

Строки и столбцы нумеруются, начиная слева

сверху (рис. 1-1). Когда говорят: матрица размером m n (или m на n ), подразумевают под m количество строк , а под n количество столбцов . Например, матрица на рисунке 1-1 имеет размер "4 на 3", а не "3 на 4".

Смотрите на рис. 1-3, какие бывают матрицы. Если матрица состоит из одной строки, она называется матрицей–строкой, а если из одного столбца, то матрицей–столбцом. Матрица называется квадратной n–го порядка, если число строк у неё равно числу столбцов и равно n. Если все элементы матрицы равны нулю, то это нулевая матрица. Квадратная матрица называется диагональной, если равны нулю все её элементы, кроме расположенных на главной диагонали.

Сразу объясняю, что такое главная диагональ. На ней номера строк и столбцов одинаковые. Идёт она слева направо сверху вниз. (рис. 3) Элементы называются диагональными, если они расположены на главной диагонали. Если все диагональные элементы равны единице (а остальные нулю), матрица называется единичной. Две матрицы A и B одинакового размера называются равными, если все их элементы одинаковые.

2 Операции над матрицами и их свойства

Произведением матрицы на число x является матрица того же размера. Чтобы получить это произведение, нужно каждый элемент умножить на это число (рис 4). Чтобы получить сумму двух матриц одинакового размера, нужно сложить их соответствующие элементы (рис. 4). Чтобы получить разность A - B двух матриц одинакового размера, нужно умножить матрицу B на -1 и сложить получившуюся матрицу с матрицей А (рис. 4). Для операций над матрицами справедливы свойства: А+В=В+А (свойство коммутативности).

(A + B)+C = A+(B + C) (свойство ассоциативности). По простому говоря, от перемены мест слагаемых сумма не меняется. Для операций над матрицами и числами справедливы свойства:

(обозначим числа буквами x и y, а матрицы буквами A и B) x(yA)=(xy)A

Эти свойства аналогичны свойствам, действующим при операциях над числами. Смотрите

примеры на рисунке 5. Также смотрите примеры 2.4 - 2.6 у Белоусова на стр. 9 .

Умножение матриц.

Умножение двух матриц определено лишь тогда (в переводе на русский: матрицы можно умножать лишь тогда), когда число столбцов первой матрицы в произведении равно числу строк второй (рис. 7 , наверху, синие скобки). Чтобы лучше запомнить: цифра 1 больше похожа на столбец. В результате умножения получается матрица размером (смотри рисунок 6). Чтобы было проще запомнить, что на что надо умножать, предлагаю следующий алгоритм: смотрим рисунок 7. Умножаем матрицу A на матрицу B. У

матрицы A два столбца,

у матрицы B две строки - умножать можно.

1) Займёмся первым столбиком матрицы B (он у неё один только и есть). Записываем этот столбик в строку (транспонируем

столбик, о транспонировании чуть ниже).

2) Копируем эту строку, чтобы у нас получилась матрица размером с матрицу A.

3) Умножаем элементы этой матрицы на соответствующие элементы матрицы A.

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

На рисунке 7-1 даны примеры умножения матриц, которые размером поболее.

1) Здесь у первой матрицы три столбца, значит у второй должно быть три строчки. Алгоритм ровно тот же, что в предыдушем примере, только тут в каждой строчке три слагаемых, а не два.

2) Здесь у второй матрицы два столбца. Сначала проделываем алгоритм с первым столбцом, затем со вторым, и получаем матрицу "два на два".

3) Тут у второй матрицы столбец состоит из одного элемента, от транспонирования столбец не изменится. И складывать ничего не надо, так как в первой матрице всего один столбец. Проделываем алгоритм три раза и получаем матрицу "три на три".

Имеют место следующие свойства:

1. Если сумма B + C и произведение AB существуют, то A (B + C) = AB + AC

2. Если произведение AB существует, то x (AB) = (xA) B = = A (xB).

3. Если произведения AB и BC существуют, то A (BC) = (AB) C .

Если произведение матриц AB существует, то произведение BA может не существовать. Если даже произведения AB и BA существуют, то они могут оказаться матрицами разных размеров.

Оба произведения AB и BA существуют и являются матрицами одинакового размера лишь в случае квадратных матриц A и B одного и того же порядка. Однако, даже в этом случае AB может не равняться BA.

Возведение в степень

Возведение матрицы в степень имеет смысл лишь для квадратных матриц (подумайте, почему?). Тогда целой положительной степенью m матрицы A является произведение m матриц, равных A. Так же, как и у чисел. Под нулевой степенью квадратной матрицы A понимается единичная матрица того же порядка что и A. Если позабыли, что такое единичная матрица, гляньте на рис. 3.

Так же, как и у чисел, имеют место следующие соотношения:

A mA k=A m+k (A m)k=A mk

Смотрите примеры у Белоусова на стр. 20.

Транспонирование матриц

Транспонирование -это преобразование матрицы A в матрицу AT ,

при котором строки матрицы A записываются в столбцы AT с сохранением порядка. (рис. 8). Можно сказать по другому:

столбцы матрицы A записываются в строки матрицы AT с сохранением порядка. Обратите внимание, как при транспонировании меняется размер матрицы, то есть количество строк и столбцов. Также обратите внимание, что элементы на первой строке, первом столбце, и последней строке, последнем столбце остаются на месте.

Имеют место следующие свойства: (AT )T =A (транспонируй

матрицу два раза - получишь такую же матрицу)

(xA)T =xAT (под x имеется в виду число, под A, разумеется, матрица) (если надо матрицу умножить на число и транспонировать, можешь сначала умножить, затем транспонировать, а можешь наоборот)

(A+B)T = AT +BT (AB)T =BT AT

Симметричные и антисимметричные матрицы

На рисунке 9 вверху слева изображена симметричная матрица. Её элементы, симметричные относительно главной диагонали, равны. А теперь определение: Квадратная матрица

A называется симметричной, если AT =A . То есть симметричная матрица при транспонировании не меняется. В частности, симметричной является любая диагональная матрица. (Такая матрица изображена на рис. 2).

Теперь посмотрите на антисимметричную матрицу (рис. 9, внизу). Чем она отличается от симметричной? Обратите внимание, что все её диагональные элементы равны нулю. У антисимметричных матриц все диагональные элементы равны нулю. Подумайте, почему? Определение: Квадратная матрица A называется

антисимметричной, если AT = -A . Отметим некоторые свойства операций над симметричными и антисимметричными

матрицами. 1. Если A и B - симметричные (антисимметричные) матрицы, то и A + B - симметричная (антисимметричная) матрица.

2.Если A - симметричная (антисимметричная) матрица, то xA также является симметричной (антисимметричной) матрицей. (в самом деле, если умножить матрицы из рисунка 9 на какое - нибудь число, симметрия то всё равно сохранится)

3. Произведение AB двух симметричных или двух антисимметричных матриц A и B есть матрица симметричная при AB = BA и антисимметричная при AB = -BA.

4. Если A - симметричная матрица, то и A m (m = 1, 2, 3, . . .) - симметричная матрица. Если A

Антисимметричная матрица, то Am (m = 1, 2, 3, . . .) яв ляется симметричной матрицей при четном m и антисимметричной - при нечетном.

5. Произвольную квадратную матрицу A можно представить в виде суммы двух матриц. (назовём эти матрицы, например A(s) и A(a) )

A=A (s)+A (a)

Здесь мы продолжим начатую в первой части тему операций над матрицами и разберём пару примеров, в которых потребуется применять несколько операций сразу.

Возведение матрицы в степень.

Пусть k - целое неотрицательное число. Для любой квадратной матрицы $A_{n\times n}$ имеем: $$ A^k=\underbrace{A\cdot A\cdot \ldots \cdot A}_{k \; раз} $$

При этом полагаем, что $A^0=E$, где $E$ - единичная матрица соответствующего порядка.

Пример №4

Задана матрица $ A=\left(\begin{array} {cc} 1 & 2 \\ -1 & -3 \end{array} \right)$. Найти матрицы $A^2$ и $A^6$.

Согласно определению $A^2=A\cdot A$, т.е. для нахождения $A^2$ нам просто нужно умножить матрицу $A$ саму на себя. Операция умножения матриц рассматривалась в первой части темы , поэтому тут просто запишем процесс решения без подробных пояснений:

$$ A^2=A\cdot A=\left(\begin{array} {cc} 1 & 2 \\ -1 & -3 \end{array} \right)\cdot \left(\begin{array} {cc} 1 & 2 \\ -1 & -3 \end{array} \right)= \left(\begin{array} {cc} 1\cdot 1+2\cdot (-1) & 1\cdot 2+2\cdot (-3) \\ -1\cdot 1+(-3)\cdot (-1) & -1\cdot 2+(-3)\cdot (-3) \end{array} \right)= \left(\begin{array} {cc} -1 & -4 \\ 2 & 7 \end{array} \right). $$

Чтобы найти матрицу $A^6$ у нас есть два варианта. Вариант первый: банально продолжить домножать $A^2$ на матрицу $A$:

$$ A^6=A^2\cdot A\cdot A\cdot A\cdot A. $$

Однако можно пойти несколько более простым путём, используя свойство ассоциативности умножения матриц. Расставим скобки в выражении для $A^6$:

$$ A^6=A^2\cdot A\cdot A\cdot A\cdot A=A^2\cdot (A\cdot A)\cdot (A\cdot A)=A^2\cdot A^2\cdot A^2. $$

Если при решении первым способом потребовалось бы четыре операции умножения, то для второго способа - лишь две. Поэтому пойдём вторым путём:

$$ A^6=A^2\cdot A^2\cdot A^2=\left(\begin{array} {cc} -1 & -4 \\ 2 & 7 \end{array} \right)\cdot \left(\begin{array} {cc} -1 & -4 \\ 2 & 7 \end{array} \right)\cdot \left(\begin{array} {cc} -1 & -4 \\ 2 & 7 \end{array} \right)=\\= \left(\begin{array} {cc} -1\cdot (-1)+(-4)\cdot 2 & -1\cdot (-4)+(-4)\cdot 7 \\ 2\cdot (-1)+7\cdot 2 & 2\cdot (-4)+7\cdot 7 \end{array} \right)\cdot \left(\begin{array} {cc} -1 & -4 \\ 2 & 7 \end{array} \right)= \left(\begin{array} {cc} -7 & -24 \\ 12 & 41 \end{array} \right)\cdot \left(\begin{array} {cc} -1 & -4 \\ 2 & 7 \end{array} \right)=\\= \left(\begin{array} {cc} -7\cdot(-1)+(-24)\cdot 2 & -7\cdot (-4)+(-24)\cdot 7 \\ 12\cdot (-1)+41\cdot 2 & 12\cdot (-4)+41\cdot 7 \end{array} \right)= \left(\begin{array} {cc} -41 & -140 \\ 70 & 239 \end{array} \right). $$

Ответ : $A^2=\left(\begin{array} {cc} -1 & -4 \\ 2 & 7 \end{array} \right)$, $A^6=\left(\begin{array} {cc} -41 & -140 \\ 70 & 239 \end{array} \right)$.

Пример №5

Заданы матрицы $ A=\left(\begin{array} {cccc} 1 & 0 & -1 & 2 \\ 3 & -2 & 5 & 0 \\ -1 & 4 & -3 & 6 \end{array} \right)$, $ B=\left(\begin{array} {ccc} -9 & 1 & 0 \\ 2 & -1 & 4 \\ 0 & -2 & 3 \\ 1 & 5 & 0 \end{array} \right)$, $ C=\left(\begin{array} {ccc} -5 & -20 & 13 \\ 10 & 12 & 9 \\ 3 & -15 & 8 \end{array} \right)$. Найти матрицу $D=2AB-3C^T+7E$.

Вычисление матрицы $D$ начнем с нахождения результата произведения $AB$. Матрицы $A$ и $B$ можно перемножать, так как количество столбцов матрицы $A$ равно количеству строк матрицы $B$. Обозначим $F=AB$. При этом матрица $F$ будет иметь три столбца и три строки, т.е. будет квадратной (если этот вывод кажется неочевидным, посмотрите описание умножения матриц в первой части этой темы). Найдем матрицу $F$, вычислив все её элементы:

$$ F=A\cdot B=\left(\begin{array} {cccc} 1 & 0 & -1 & 2 \\ 3 & -2 & 5 & 0 \\ -1 & 4 & -3 & 6 \end{array} \right)\cdot \left(\begin{array} {ccc} -9 & 1 & 0 \\ 2 & -1 & 4 \\ 0 & -2 & 3 \\ 1 & 5 & 0 \end{array} \right)\\ \begin{aligned} & f_{11}=1\cdot (-9)+0\cdot 2+(-1)\cdot 0+2\cdot 1=-7; \\ & f_{12}=1\cdot 1+0\cdot (-1)+(-1)\cdot (-2)+2\cdot 5=13; \\ & f_{13}=1\cdot 0+0\cdot 4+(-1)\cdot 3+2\cdot 0=-3;\\ \\ & f_{21}=3\cdot (-9)+(-2)\cdot 2+5\cdot 0+0\cdot 1=-31;\\ & f_{22}=3\cdot 1+(-2)\cdot (-1)+5\cdot (-2)+0\cdot 5=-5;\\ & f_{23}=3\cdot 0+(-2)\cdot 4+5\cdot 3+0\cdot 0=7;\\ \\ & f_{31}=-1\cdot (-9)+4\cdot 2+(-3)\cdot 0+6\cdot 1=23; \\ & f_{32}=-1\cdot 1+4\cdot (-1)+(-3)\cdot (-2)+6\cdot 5=31;\\ & f_{33}=-1\cdot 0+4\cdot 4+(-3)\cdot 3+6\cdot 0=7. \end{aligned} $$

Итак, $F=\left(\begin{array} {ccc} -7 & 13 & -3 \\ -31 & -5 & 7 \\ 23 & 31 & 7 \end{array} \right)$. Пойдём далее. Матрица $C^T$ - транспонированная матрица для матрицы $C$, т.е. $ C^T=\left(\begin{array} {ccc} -5 & 10 & 3 \\ -20 & 12 & -15 \\ 13 & 9 & 8 \end{array} \right) $. Что же касаемо матрицы $E$, то это есть единичная матрица. В данном случае порядок этой матрицы равен трём, т.е. $E=\left(\begin{array} {ccc} 1 & 0 & 0 \\ 0 & 1 & 0 \\ 0 & 0 & 1 \end{array} \right)$.

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

$$ D=2AB-3C^T+7E=2\cdot \left(\begin{array} {ccc} -7 & 13 & -3 \\ -31 & -5 & 7 \\ 23 & 31 & 7 \end{array} \right)-3\cdot \left(\begin{array} {ccc} -5 & 10 & 3 \\ -20 & 12 & -15 \\ 13 & 9 & 8 \end{array} \right)+7\cdot \left(\begin{array} {ccc} 1 & 0 & 0 \\ 0 & 1 & 0 \\ 0 & 0 & 1 \end{array} \right) $$

Умножим матрицы в правой части равенства на соответствующие числа (т.е. на 2, 3 и 7):

$$ 2\cdot \left(\begin{array} {ccc} -7 & 13 & -3 \\ -31 & -5 & 7 \\ 23 & 31 & 7 \end{array} \right)-3\cdot \left(\begin{array} {ccc} -5 & 10 & 3 \\ -20 & 12 & -15 \\ 13 & 9 & 8 \end{array} \right)+7\cdot \left(\begin{array} {ccc} 1 & 0 & 0 \\ 0 & 1 & 0 \\ 0 & 0 & 1 \end{array} \right)=\\= \left(\begin{array} {ccc} -14 & 26 & -6 \\ -62 & -10 & 14 \\ 46 & 62 & 14 \end{array} \right)-\left(\begin{array} {ccc} -15 & 13 & 9 \\ -60 & 36 & -45 \\ 39 & 27 & 24 \end{array} \right)+\left(\begin{array} {ccc} 7 & 0 & 0 \\ 0 & 7 & 0 \\ 0 & 0 & 7 \end{array} \right) $$

Выполним последние действия: вычитание и сложение:

$$ \left(\begin{array} {ccc} -14 & 26 & -6 \\ -62 & -10 & 14 \\ 46 & 62 & 14 \end{array} \right)-\left(\begin{array} {ccc} -15 & 30 & 9 \\ -60 & 36 & -45 \\ 39 & 27 & 24 \end{array} \right)+\left(\begin{array} {ccc} 7 & 0 & 0 \\ 0 & 7 & 0 \\ 0 & 0 & 7 \end{array} \right)=\\ =\left(\begin{array} {ccc} -14-(-15)+7 & 26-30+0 & -6-9+0 \\ -62-(-60)+0 & -10-36+7 & 14-(-45)+0 \\ 46-39+0 & 62-27+0 & 14-24+7 \end{array} \right)= \left(\begin{array} {ccc} 8 & -4 & -15 \\ -2 & -39 & 59 \\ 7 & 35 & -3 \end{array} \right). $$

Задача решена, $D=\left(\begin{array} {ccc} 8 & -4 & -15 \\ -2 & -39 & 59 \\ 7 & 35 & -3 \end{array} \right)$.

Ответ : $D=\left(\begin{array} {ccc} 8 & -4 & -15 \\ -2 & -39 & 59 \\ 7 & 35 & -3 \end{array} \right)$.

Пример №6

Пусть $f(x)=2x^2+3x-9$ и матрица $ A=\left(\begin{array} {cc} -3 & 1 \\ 5 & 0 \end{array} \right) $. Найти значение $f(A)$.

Если $f(x)=2x^2+3x-9$, то под $f(A)$ понимают матрицу:

$$ f(A)=2A^2+3A-9E. $$

Именно так определяется многочлен от матрицы. Итак, нам нужно подставить матрицу $A$ в выражение для $f(A)$ и получить результат. Так как все действия были подробно разобраны ранее, то тут я просто приведу решение. Если процесс выполнения операции $A^2=A\cdot A$ для вас неясен, то советую глянуть описание умножения матриц в первой части этой темы.

$$ f(A)=2A^2+3A-9E=2A\cdot A+3A-9E=2 \left(\begin{array} {cc} -3 & 1 \\ 5 & 0 \end{array} \right)\cdot \left(\begin{array} {cc} -3 & 1 \\ 5 & 0 \end{array} \right)+3 \left(\begin{array} {cc} -3 & 1 \\ 5 & 0 \end{array} \right)-9\left(\begin{array} {cc} 1 & 0 \\ 0 & 1 \end{array} \right)=\\ =2 \left(\begin{array} {cc} (-3)\cdot(-3)+1\cdot 5 & (-3)\cdot 1+1\cdot 0 \\ 5\cdot(-3)+0\cdot 5 & 5\cdot 1+0\cdot 0 \end{array} \right)+3 \left(\begin{array} {cc} -3 & 1 \\ 5 & 0 \end{array} \right)-9\left(\begin{array} {cc} 1 & 0 \\ 0 & 1 \end{array} \right)=\\ =2 \left(\begin{array} {cc} 14 & -3 \\ -15 & 5 \end{array} \right)+3 \left(\begin{array} {cc} -3 & 1 \\ 5 & 0 \end{array} \right)-9\left(\begin{array} {cc} 1 & 0 \\ 0 & 1 \end{array} \right) =\left(\begin{array} {cc} 28 & -6 \\ -30 & 10 \end{array} \right)+\left(\begin{array} {cc} -9 & 3 \\ 15 & 0 \end{array} \right)-\left(\begin{array} {cc} 9 & 0 \\ 0 & 9 \end{array} \right)=\left(\begin{array} {cc} 10 & -3 \\ -15 & 1 \end{array} \right). $$

Ответ : $f(A)=\left(\begin{array} {cc} 10 & -3 \\ -15 & 1 \end{array} \right)$.

Умноже́ние ма́триц - одна из основных операций над матрицами . Матрица, получаемая в результате операции умножения, называется произведе́нием ма́триц . Элементы новой матрицы получаются из элементов старых матриц в соответствии с правилами, проиллюстрированными ниже .

Матрицы A {\displaystyle A} и B {\displaystyle B} могут быть перемножены, если они совместимы в том смысле, что число столбцов матрицы A {\displaystyle A} равно числу строк B {\displaystyle B} .

Матрицы обладают многими алгебраическими свойствами умножения , присущими обычным числам, за исключением коммутативности .

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

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

Определение

Пусть даны две прямоугольные матрицы A {\displaystyle A} и B {\displaystyle B} размерности l × m {\displaystyle l\times m} и m × n {\displaystyle m\times n} соответственно:

A = [ a 11 a 12 ⋯ a 1 m a 21 a 22 ⋯ a 2 m ⋮ ⋮ ⋱ ⋮ a l 1 a l 2 ⋯ a l m ] , B = [ b 11 b 12 ⋯ b 1 n b 21 b 22 ⋯ b 2 n ⋮ ⋮ ⋱ ⋮ b m 1 b m 2 ⋯ b m n ] . {\displaystyle A={\begin{bmatrix}a_{11}&a_{12}&\cdots &a_{1m}\\a_{21}&a_{22}&\cdots &a_{2m}\\\vdots &\vdots &\ddots &\vdots \\a_{l1}&a_{l2}&\cdots &a_{lm}\end{bmatrix}},\;\;\;B={\begin{bmatrix}b_{11}&b_{12}&\cdots &b_{1n}\\b_{21}&b_{22}&\cdots &b_{2n}\\\vdots &\vdots &\ddots &\vdots \\b_{m1}&b_{m2}&\cdots &b_{mn}\end{bmatrix}}.}

Тогда матрица C {\displaystyle C} размерностью l × n {\displaystyle l\times n} :

C = [ c 11 c 12 ⋯ c 1 n c 21 c 22 ⋯ c 2 n ⋮ ⋮ ⋱ ⋮ c l 1 c l 2 ⋯ c l n ] , {\displaystyle C={\begin{bmatrix}c_{11}&c_{12}&\cdots &c_{1n}\\c_{21}&c_{22}&\cdots &c_{2n}\\\vdots &\vdots &\ddots &\vdots \\c_{l1}&c_{l2}&\cdots &c_{ln}\end{bmatrix}},}

в которой:

c i j = ∑ r = 1 m a i r b r j (i = 1 , 2 , … l ; j = 1 , 2 , … n) . {\displaystyle c_{ij}=\sum _{r=1}^{m}a_{ir}b_{rj}\;\;\;\left(i=1,2,\ldots l;\;j=1,2,\ldots n\right).}

называется их произведением .

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

Таким образом, из существования произведения A B {\displaystyle AB} вовсе не следует существование произведения B A . {\displaystyle BA.}

Иллюстрация

Произведение матриц AB состоит из всех возможных комбинаций скалярных произведений вектор-строк матрицы A и вектор-столбцов матрицы B . Элемент матрицы AB с индексами i, j есть скалярное произведение i -ой вектор-строки матрицы A и j -го вектор-столбца матрицы B .

Иллюстрация справа демонстрирует вычисление произведения двух матриц A и B , она показывает как каждые пересечения в произведении матриц соответствуют строкам матрицы A и столбцам матрицы B . Размер результирующей матрицы всегда максимально возможный, то есть для каждой строки матрицы A и столбца матрицы B есть всегда соответствующее пересечение в произведении матрицы.

Значения на пересечениях, отмеченных кружочками, будут:

X 1 , 2 = (a 1 , 1 , a 1 , 2) ⋅ (b 1 , 2 , b 2 , 2) = a 1 , 1 b 1 , 2 + a 1 , 2 b 2 , 2 x 3 , 3 = (a 3 , 1 , a 3 , 2) ⋅ (b 1 , 3 , b 2 , 3) = a 3 , 1 b 1 , 3 + a 3 , 2 b 2 , 3 {\displaystyle {\begin{aligned}{\color {Red}x_{1,2}}&=(a_{1,1},a_{1,2})\cdot (b_{1,2},b_{2,2})\\&=a_{1,1}b_{1,2}+a_{1,2}b_{2,2}\\{\color {Blue}x_{3,3}}&=(a_{3,1},a_{3,2})\cdot (b_{1,3},b_{2,3})\\&=a_{3,1}b_{1,3}+a_{3,2}b_{2,3}\end{aligned}}}

В общем случае, произведение матриц не является коммутативной операцией. К примеру:

[ ⋅ ⋅ ⋅ ⋅ ⋅ ⋅ ⋅ ⋅ 1 2 3 4 ] 3 × 4 matrix [ ⋅ ⋅ ⋅ a ⋅ ⋅ ⋅ ⋅ b ⋅ ⋅ ⋅ ⋅ c ⋅ ⋅ ⋅ ⋅ d ⋅ ] 4 × 5 matrix = [ ⋅ ⋅ ⋅ ⋅ ⋅ ⋅ ⋅ ⋅ ⋅ ⋅ ⋅ ⋅ ⋅ x 3 , 4 ⋅ ] 3 × 5 matrix {\displaystyle {\overset {3\times 4{\text{ matrix}}}{\begin{bmatrix}\cdot &\cdot &\cdot &\cdot \\\cdot &\cdot &\cdot &\cdot \\\color {Blue}1&\color {Blue}2&\color {Blue}3&\color {Blue}4\\\end{bmatrix}}}{\overset {4\times 5{\text{ matrix}}}{\begin{bmatrix}\cdot &\cdot &\cdot &\color {Red}a&\cdot \\\cdot &\cdot &\cdot &\color {Red}b&\cdot \\\cdot &\cdot &\cdot &\color {Red}c&\cdot \\\cdot &\cdot &\cdot &\color {Red}d&\cdot \\\end{bmatrix}}}={\overset {3\times 5{\text{ matrix}}}{\begin{bmatrix}\cdot &\cdot &\cdot &\cdot &\cdot \\\cdot &\cdot &\cdot &\cdot &\cdot \\\cdot &\cdot &\cdot &x_{3,4}&\cdot \\\end{bmatrix}}}}

Элемент x 3 , 4 {\displaystyle x_{3,4}} произведения матриц, приведённых выше, вычисляется следующим образом

x 3 , 4 = (1 , 2 , 3 , 4) ⋅ (a , b , c , d) = 1 ⋅ a + 2 ⋅ b + 3 ⋅ c + 4 ⋅ d {\displaystyle x_{3,4}=({\color {Blue}1},{\color {Blue}2},{\color {Blue}3},{\color {Blue}4})\cdot ({\color {Red}a},{\color {Red}b},{\color {Red}c},{\color {Red}d})={\color {Blue}1}\cdot {\color {Red}a}+{\color {Blue}2}\cdot {\color {Red}b}+{\color {Blue}3}\cdot {\color {Red}c}+{\color {Blue}4}\cdot {\color {Red}d}}

Первая координата в обозначении матрицы обозначает строку, вторая координата - столбец; этот порядок используют как при индексации, так и при обозначении размера. Элемент x i j {\displaystyle x_{{\color {Blue}i}{\color {Red}j}}} на пересечении строки i {\displaystyle i} и столбца j {\displaystyle j} результирующей матрицы является скалярным произведением i {\displaystyle i} -й строки первой матрицы и j {\displaystyle j} -го столбца второй матрицы. Это объясняет почему ширина и высота умножаемых матриц должны совпадать: в противном случае скалярное произведение не определено.

Обсуждение

Увидеть причины описанного правила матричного умножения легче всего, рассмотрев умножение вектора на матрицу.

Последнее естественно вводится исходя из того, что при разложении векторов по базису действие (любого) линейного оператора A даёт выражение компонент вектора v" = A v :

v i ′ = ∑ j A i j v j {\displaystyle v"_{i}=\sum \limits _{j}A_{ij}v_{j}}

То есть линейный оператор оказывается представлен матрицей, векторы - векторами-столбцами, а действие оператора на вектор - матричным умножением вектора-столбца слева на матрицу оператора (это частный случай матричного умножения, когда одна из матриц - вектор-столбец - имеет размер n × 1 {\displaystyle n\times 1} ).

(Равно переход к любому новому базису при смене координат представляется полностью аналогичным выражением, только v i ′ {\displaystyle v"_{i}} в этом случае уже не компоненты нового вектора в старом базисе, а компоненты старого вектора в новом базисе; при этом A i j {\displaystyle A_{ij}} - элементы матрицы перехода к новому базису).

Рассмотрев последовательное действие на вектор двух операторов: сначала A , а потом B (или преобразование базиса A , а затем преобразование базиса B ), дважды применив нашу формулу, получим:

v i ″ = ∑ j B i j ∑ k A j k v k = ∑ j ∑ k B i j A j k v k = ∑ k ∑ j (B i j A j k) v k , {\displaystyle v""_{i}=\sum \limits _{j}B_{ij}\sum \limits _{k}A_{jk}v_{k}=\sum \limits _{j}\sum \limits _{k}B_{ij}A_{jk}v_{k}=\sum \limits _{k}\sum \limits _{j}(B_{ij}A_{jk})v_{k},}

откуда видно, что композиции BA действия линейных операторов A и B (или аналогичной композиции преобразований базиса) соответствует матрица, вычисляемая по правилу произведения соответствующих матриц:

(B A) i k = ∑ j B i j A j k . {\displaystyle (BA)_{ik}=\sum \limits _{j}B_{ij}A_{jk}.}

Определённое таким образом произведение матриц оказывается совершенно естественным и очевидно полезным (даёт простой и универсальный способ вычисления композиций произвольного количества линейных преобразований).

Свойства

Сочетательное свойство , ассоциативность :

A (B C) = (A B) C ; {\displaystyle \mathbf {A} (\mathbf {BC})=(\mathbf {AB})\mathbf {C} ;} α (A B) = (α A) B = A (α B) . {\displaystyle \alpha (\mathbf {AB})=(\alpha \mathbf {A})\mathbf {B} =\mathbf {A} (\alpha \mathbf {B}).}

Распределительное свойство , дистрибутивность относительно сложения :

A (B + C) = A B + A C ; {\displaystyle \mathbf {A} (\mathbf {B} +\mathbf {C})=\mathbf {AB} +\mathbf {AC} ;} (A + B) C = A C + B C . {\displaystyle (\mathbf {A} +\mathbf {B})\mathbf {C} =\mathbf {AC} +\mathbf {BC} .} . A B ≠ B A . {\displaystyle \mathbf {AB} \neq \mathbf {BA} .}

Если A B = B A {\displaystyle \mathbf {AB} =\mathbf {BA} } , то матрицы A {\displaystyle \mathbf {A} } и B {\displaystyle \mathbf {B} } называются коммутирующими между собой.

Простейшие примеры коммутирующих матриц:

Матрица A = [ a i k ] {\displaystyle A=\left} порядка n {\displaystyle n} является невырожденной в том и только в том случае, если det A = det [ a i k ] ≠ 0 ; {\displaystyle \det A=\det \left\neq 0;} в этом случае A − 1 {\displaystyle A^{-1}} есть квадратная матрица того же порядка n: {\displaystyle n:}

A − 1 = [ a i k ] − 1 = [ A k i det A ] , {\displaystyle A^{-1}=\left^{-1}=\left[{\frac {A_{ki}}{\det A}}\right],}

где A i k {\displaystyle A_{ik}} - алгебраическое дополнение элемента a i k {\displaystyle a_{ik}} в определителе det [ a i k ] . {\displaystyle \det \left.}

Алгоритмы быстрого перемножения матриц

Сложность вычисления произведения матриц по определению составляет O (n 3) {\displaystyle \ O(n^{3})} , однако существуют более эффективные алгоритмы , применяющиеся для больших матриц. Вопрос о предельной скорости умножения больших матриц, также как и вопрос о построении наиболее быстрых и устойчивых практических алгоритмов умножения больших матриц остаётся одной из нерешённых проблем линейной алгебры .

  • Алгоритм Штрассена (1969)
Первый алгоритм быстрого умножения больших матриц был разработан Фолькером Штрассеном в 1969. В основе алгоритма лежит рекурсивное разбиение матриц на блоки 2Х2 . Штрассен доказал, что матрицы 2Х2 можно некоммутативно перемножить с помощью семи умножений, поэтому на каждом этапе рекурсии выполняется семь умножений вместо восьми. В результате асимптотическая сложность этого алгоритма составляет O (n log 2 ⁡ 7) ≈ O (n 2.81) {\displaystyle O(n^{\log _{2}7})\approx O(n^{2.81})} . Недостатком данного метода является бо́льшая сложность программирования по сравнению со стандартным алгоритмом, слабая численная устойчивость и больший объём используемой памяти. Разработан ряд алгоритмов на основе метода Штрассена, которые улучшают численную устойчивость, скорость по константе и другие его характеристики. Тем не менее, в силу простоты алгоритм Штрассена остаётся одним из практических алгоритмов умножения больших матриц. Штрассен также выдвинул следующую гипотезу Штрассена : для сколь угодно малого ε > 0 {\displaystyle \varepsilon >0} существует алгоритм, при достаточно больших натуральных n гарантирующий перемножение двух матриц размера n × n {\displaystyle n\times n} за O (n 2 + ε) {\displaystyle O(n^{2+\varepsilon })} операций.
  • Дальнейшие улучшения показателя степени ω для скорости матричного умножения
В дальнейшем оценки скорости умножения больших матриц многократно улучшались. Однако эти алгоритмы носили теоретический, в основном приближённый характер. В силу неустойчивости алгоритмов приближённого умножения в настоящее время они не используются на практике.
  • Алгоритм Пана (1978)
В 1978 Пан предложил свой метод умножения матриц, сложность которого составила Θ(n 2.78041) .
  • Алгоритм Бини (1979)
В 1979 группа итальянских учёных во главе с Бини разработала алгоритм умножения матриц с использованием тензоров. Его сложность составляет Θ(n 2.7799) .
  • Алгоритмы Шёнхаге (1981)
В 1981 Шёнхаге представил метод, работающий со скоростью Θ(n 2.695) . Оценка получена с помощью подхода, названного частичным матричным умножением . Позже ему удалось получить оценку Θ(n 2.6087) . Затем Шёнхаге на базе метода прямых сумм получил оценку сложности Θ(n 2.548) . Романи сумел понизить оценку до Θ(n 2.5166) , а Пан - до Θ(n 2.5161) .
  • Алгоритм Копперсмита - Винограда (1990)
В 1990 Копперсмит и Виноград