!!§!! Вспомогательная страница к разделу ((:algebra2 МАТРИЦА)) ---- В настоящем разделе $ \mathbb A^{m \times n} $ обозначает множество матриц порядка $ m \times n $ с элементами из какого-то из множеств $ \mathbb Q, \mathbb R $ или $ \mathbb C $. ==Умножение матриц== Для матрицы-строки $ U=(u_{1},\dots,u_n) $ и матрицы-столбца $ V=\left(\begin{array}{c} v_{1}\\ \vdots\\ v_n \end{array}\right) $ определим произведение $ U\cdot V_{} $ как число \\ $$ U\cdot V= u_1v_1+\dots+u_nv_n . $$ Для произвольных матриц $ A_{} $ и $ B_{} $ произведение матрицы $ A_{} $ на матрицу $ B_{} $ определяется тогда и только тогда, когда их порядки связаны ограничением:\\ \\ **количество столбцов матрицы** $ A $ = **количество строк матрицы** $ B_{} $ т.е. если матрица $ A_{} $ имеет порядок $ m\times n_{} $, то матрица $ B_{} $ может иметь порядок $ n\times k_{} $ при $ \forall k\in{\mathbb N}_{} $. В этом случае произведение матрицы $ A_{} $ на матрицу $ B_{} $ обозначается[[Я также буду использовать и обозначение $ A\times B_{} $, хотя и реже...]] $ A\cdot B_{} $ и представляет собой матрицу $ C_{} $ порядка $ m\times k_{} $: $$ \begin{array}{ccccc} C&=&A&\cdot&B ,\\ {m\times k}&&{m\times n}&&{n\times k} \end{array} $$ элементы которой вычисляются по следующему правилу $$ C=[c_{j\ell}]_{_{j=1,\dots,m\atop \ell=1,\dots,k }},\quad c_{j\ell}= A^{[j]}B_{[\ell]}=a_{j1}b_{1\ell}+a_{j2}b_{2\ell}+\dots+a_{jn}b_{n\ell} . $$ Таким образом, элемент, стоящий в $ j_{} $-й строке и $ \ell_{} $-м столбце матрицы $ C_{} $, равен произведению $ j_{} $-й строки матрицы $ A_{} $ на $ \ell_{} $-й столбец матрицы $ B_{} $. В схематичном виде: {{ :mat_mul.gif?600 |}} Порядок ("размеры") матрицы $ C_{} $ определяется следующим образом: высота берется от первого сомножителя, а ширина --- от второго. При этом произведение $ B \cdot A_{} $ может и не быть определено! !!Т!! **Теорема 1.** //Умножение матрицы// $ A $ //на матрицу// $ B $ //сводится к умножению матрицы// $ A $ //на столбцы матрицы// $ B $: //если// $$ B=\left[ B_{[1]} \mid B_{[2]} \mid \dots \mid B_{[k]} \right]\ , $$ //то//[[произведение распараллеливается]] $$ AB= \left[ AB_{[1]} \mid AB_{[2]} \mid \dots \mid AB_{[k]} \right] \, . $$ //Здесь// $ \mid $ //означает ((:algebra2#konkatenacija конкатенацию))//. Аналогичным образом можно было бы свести вычисление произведения $ AB $ к умножению строк матрицы $ A $ на матрицу $ B $. !!П!! **Пример.** $$ A=\left(\begin{array}{rr} 1&2\\ -1&0\\ 3&7 \end{array}\right),B=\left(\begin{array}{rrrr} \mathbf i&0&0&-1\\ 4&2&0&-2 \end{array}\right) \Longrightarrow A\cdot B=\left(\begin{array}{rrrr} 8+ \mathbf i&4&0&-5\\ -\mathbf i&0&0&1\\ 28+3\mathbf i&14&0&-17 \end{array}\right) $$ !!П!! **Пример.** $$ A=\left( \begin{array}{rrr} 3&-1&-1\\ 2&0&1\\ 1&1&1 \end{array}\right),B=\left(\begin{array}{rr} 2&1\\ -1&0\\ 0&1 \end{array}\right)\Longrightarrow A\cdot B= \left(\begin{array}{rr} 7&2\\ 4&3\\ 1&2 \end{array}\right) $$ !!П!! **Пример.** $$ A=\left(\begin{array}{c} 1\\ 0\\ 1\\ 1 \end{array}\right), B=(1,2,-1,-2) \Longrightarrow A\cdot B= \left(\begin{array}{rrrr} 1&2&-1&-2\\ 0&0&0&0\\ 1&2&-1&-2\\ 1&2&-1&-2 \end{array}\right) $$ $$ B \cdot A = ( - 2 ) \ . $$ Последний пример показывает некоторую неоднозначность определения произведения матриц. Что явилось результатом умножения: матрица порядка $ 1 \times 1_{} $ или ее (единственный) элемент? Обычно в математических рассуждениях эта неоднозначность не влияет на результаты и потому не принимается во внимание. Хотя с формальной точки зрения, можно, например, обсуждать следующее противоречие. Такое действие как умножение квадратичной формы $ f(x,y)=2\,x^2-4\,xy+3\,y^2 $ на матрицу произвольного порядка вполне определено. В то же время, если ту же квадратичную форму представить в ((:2form#матричная_форма_записи_квадратичной_формы матричном виде)), то результат действий $$ (x,y) \cdot \left(\begin{array}{rr} 2 & -2 \\ -2 & 3 \end{array}\right) \left( \begin{array}{c} x \\ y \end{array} \right) $$ представится матрицей порядка $ 1\times 1 $. Последняя --- в соответствии с формальным правилом умножения матриц --- не может быть умножена ни на какую матрицу порядка $ m\times n_{} $ при $ m_{}>1 $. Кроме того, приходится учитывать неоднозначность определения операции умножения строки на столбец при программировании алгоритмов: типы объектов --- число и матрица (массив) --- все-таки различны. Операция умножения матриц некоммутативна : даже если определены оба произведения $ A\cdot B_{} $ и $ B \cdot A_{} $, то, __как правило__, $ A\cdot B \ne B \cdot A $. === Ассоциативность== !!Т!! **Теорема 2.** //Операция умножения матриц подчиняется ассоциативному закону:// $$ (A\cdot B) \cdot D = A\cdot (B \cdot D) $$ //если хотя бы в одной части равенства произведение определено//. **Доказательство.** Пусть $ A \in \mathbb A^{m \times n}, B \in \mathbb A^{n \times k}, D \in \mathbb A^{k \times h} $. Пусть $$ A= \left( \begin{array}{lllll} a_{11} & a_{12} & a_{13}& \dots & a_{1n} \\ a_{21} & a_{22} & a_{23}& \dots & a_{2n} \\ \dots & & & & \dots \\ a_{m1} & a_{m2} & a_{m3}& \dots & a_{mn} \end{array} \right) \ , \quad B= \left(\begin{array}{llll} b_{11} & b_{12} & \dots & b_{1k} \\ b_{21} & b_{22} & \dots & b_{2k} \\ \dots & & & \dots \\ b_{m1} & b_{m2} & \dots & b_{mk} \end{array}\right) \, . $$ Докажем сначала справедливость равенства для частного случая матрицы $ D $: пусть она состоит только из одного столбца, т.е. $ h=1 $. Обозначим этот столбец $$ X= \left(\begin{array}{l} x_1 \\ x_2 \\ \vdots \\ x_n \end{array}\right) $$ Сделаем в векторе $$ AX=\left( \begin{array}{c} a_{11}x_1 +a_{12}x_2+ \ldots+a_{1n}x_n \\ a_{21}x_1 +a_{22}x_2+ \ldots +a_{2n}x_n \\ \dots \\ a_{m1}x_1 +a_{m2}x_2+ \ldots+a_{mn}x_n \end{array} \right) $$ замену переменных (подстановку) по формулам $$ X=BY \quad \iff \quad \left\{\begin{array}{l} x_1=b_{11}y_1+b_{12}y_2+\dots+b_{1k}y_k\ ,\\ \vdots\\ x_n=b_{n1}y_1+b_{n2}y_2+\dots+b_{nk}y_k\ . \end{array}\right. $$ Здесь $$ Y= \left(\begin{array}{l} y_1 \\ y_2 \\ \vdots \\ y_k \end{array}\right) $$ --- вектор новых переменных. Подстановка в $ a_{j1}x_1+a_{j2}x_2+\dots+a_{jn}x_n $ приводит к следующему: $$\begin{array}{rlc} a_{j1}x_1+a_{j2}x_2+\dots+a_{jn}x_n= &a_{j1}(b_{11}y_1+b_{12}y_2+\dots+b_{1k}y_k)&+\\ +&a_{j2}(b_{21}y_1+b_{22}y_2+\dots+b_{2k}y_k)&+\\ +& \qquad \qquad \dots & +\\ +&a_{jn}(b_{n1}y_1+b_{n2}y_2+\dots+b_{nk}y_k)&=\\ =&(a_{j1}b_{11}+a_{j2}b_{21}+\dots+a_{jn}b_{n1})y_1&+\\ +&(a_{j1}b_{12}+a_{j2}b_{22}+\dots+a_{jn}b_{n2})y_2&+\\ +& \qquad \qquad \dots&+\\ +&(a_{j1}b_{1k}+a_{j2}b_{2k}+\dots+a_{jn}b_{nk})y_k&=\\ =c_{j1}y_1+c_{j2}y_2+\dots+c_{jk}y_k ,& & \end{array} $$ где коэффициенты определяются формулой $$ c_{j\ell}=a_{j1}b_{1\ell}+a_{j2}b_{2\ell}+\dots+a_{jn}b_{n\ell} \, . $$ Однако, этой же формулой определяются элементы матрицы $$ C = A \cdot B \, . $$ Таким образом, справедливость равенства $$ A(BY)=(AB)Y $$ доказана для любого столбца $ Y \in \mathbb A^{k\times 1} $. Распространить же его на матрицу $ D $ с произвольным количеством столбцов позволяет теорема $1$. Умножение матрицы $ C $ на матрицу $ D $ сводится к умножению матрицы $ C $ на каждый из столбцов матрицы $ D $: $$C\cdot [D_{[1]} \mid \dots \mid D_{[h]} ] =\left[C\cdot D_{[1]} \mid \dots \mid C \cdot D_{[h]} \right] = $$ На основании уже доказанной формулы имеем право записать $$(AB)D_{[1]}=A\left(BD_{[1]}\right),\dots, (AB)D_{[h]}=A\left(BD_{[h]}\right) \ . $$ Следовательно, наше произведение $$ = \left[A \left(BD_{[1]} \right) \mid \dots \mid A\left(BD_{[h]} \right) \right] = $$ Снова используем правило умножения матрицы на матрицу по теореме $ 1 $ (только теперь идем в обратном направлении --- от столбцов переходим к матрице): $$ =A \left[BD_{[1]} \mid \dots \mid BD_{[h]} \right] = $$ и завершит доказательство еще одно применение того же правила: $$ =A(BD) \ . $$ ===Обоснование правила умножения матриц == Что послужило причиной введения такой операции умножения? В приложениях используются и другие определения произведения двух матриц. Например, для матриц $ A_{} $ и $ B_{} $ одинакового порядка их **адамаровым произведением** называется матрица того же порядка, состоящая из поэлементных произведений: $ C=\left[ a_{jk} b_{jk} \right] $. Это умножение, очевидно, обладает свойством коммутативности. См. также и ((algebra2:kronecker_prod КРОНЕКЕРОВО ПРОИЗВЕДЕНИЕ)). -- Для ответа на поставленный вопрос следует обратиться к изначальной области применения матричного формализма: матрицы служат удобным средством исследования ((:algebra2:linearsystems#системы_линейных_уравнений систем линейных уравнений)). !!П!! **Пример:** Cистему уравнений от четырех переменных $$ \left\{ \begin{array}{rrrrcr} 2x_1&-3x_2&+x_3 &-5x_4 &=& 1 \\ -x_1& &+4x_3 &-3x_4 &=& -2 \\ & x_2 &-3x_3 &+7x_4 &=& 5 \end{array} \right. $$ можно переписать в виде: $$ \left( \begin{array}{r} 2 \\ -1 \\ 0 \end{array} \right)x_1 + \left( \begin{array}{r} -3 \\ 0 \\ 1 \end{array} \right)x_2+ \left( \begin{array}{r} 1 \\ 4 \\ -3 \end{array} \right)x_3+ \left( \begin{array}{r} -5 \\ -3 \\ 7 \end{array} \right)x_4= \left( \begin{array}{r} 1 \\ -2 \\ 5 \end{array} \right) , $$ и переформулировать задачу поиска решений этой системы в виде: найти такую ((:linear_space#линейная_зависимость_базис_координаты линейную комбинацию)) столбцов $$ \left( \begin{array}{r} 2 \\ -1 \\ 0 \end{array} \right), \left( \begin{array}{r} -3 \\ 0 \\ 1 \end{array} \right), \left( \begin{array}{r} 1 \\ 4 \\ -3 \end{array} \right), \left( \begin{array}{r} -5 \\ -3 \\ 7 \end{array} \right) \ , $$ которая будет совпадать со столбцом $$ \left( \begin{array}{r} 1 \\ -2 \\ 5 \end{array} \right) \ . $$ Таким образом, мы задействовали операцию сложения матриц. С другой стороны, ту же самую систему уравнений можно переписать с помощью операции умножения матриц. Так, c использованием правила умножения строки на столбец, первое из уравнений системы переписывается в виде: $$ (2,-3,1,-5) \cdot \left( \begin{array}{r} x_1 \\ x_2 \\ x_3 \\ x_4 \end{array} \right) = 1 \ ; $$ обобщая этот результат, получаем **матричную форму записи системы уравнений**: $$ \left( \begin{array}{rrrr} 2&-3&1 &-5 \\ -1&0 &4 &-3 \\ 0& 1 &-3 &7 \end{array} \right) \left( \begin{array}{r} x_1 \\ x_2 \\ x_3 \\ x_4 \end{array} \right)= \left( \begin{array}{r} 1 \\ -2 \\ 5 \end{array} \right) \ . $$ Преимущества такой формы записи по сравнению с обычной, на первый взгляд, не очевидны. Попробуем, однако, усложнить задачу. Предположим, что неизвестные $ x_1,x_2,x_3,x_4 $, в свою очередь, зависят от других неизвестных --- $ y_1,y_2,y_3 $, и эта зависимость линейная: $$ \begin{array}{rrrrr} x_1&=&3y_1 &-2y_2&+3y_3, \\ x_2&=&-y_1 &+5y_2&-7y_3, \\ x_3&=&y_1 &-y_2&+y_3, \\ x_4&=& &2y_2&-2y_3. \end{array} $$ Задачей ставится нахождение значений именно неизвестных $ y_1,y_2,y_3 $. Задачу в такой постановке можно решать последовательно: сначала выразить $ x_1,x_2,x_3,x_4 $ из системы уравнений (отметим, что приведенная система имеет бесконечное множество решений), а потом подставить каждый из получившихся наборов значений $ x_1,x_2,x_3,x_4 $ в уравнения, связывающую их с $ y_1,y_2,y_3 $. И попытаться решить получившиеся системы линейных уравнений относительно новых переменных (а вот эти новые системы, в большинстве своем, решений иметь не будут). Ту же задачу можно решать и напрямую: в исходную систему уравнений относительно $ x_1,x_2,x_3,x_4 $ подставить выражения этих переменных через $ y_1,y_2,y_3 $ и решать уже получившуюся систему --- которая, очевидно, также будет линейной. Осталось только выяснить по какому правилу образуются коэффициенты этой новой системы. При подстановке в первое уравнение системы $$ 2x_1-3x_2+x_3 -5x_4 = 1 $$ выражений для $ x_1,x_2,x_3,x_4 $ получаем: $$ 2(3y_1 -2y_2+3y_3)-3(-y_1 +5y_2-7y_3)+(y_1 -y_2+y_3) -5(2y_2-2y_3) = 1 \ . $$ Понаблюдаем каким образом генерируются коэффициенты при новых переменных: $$ \begin{array}{llllcl} (2\cdot 3 &+ (-3)\cdot (-1)& + 1 \cdot 1 & + (-5) \cdot 0)y_1 &+ \\ (2\cdot (-2)& + (-3)\cdot 5 & + 1 \cdot (-1)& + (-5) \cdot 2)y_2 &+ \\ (2\cdot 3 &+ (-3)\cdot (-7) &+ 1 \cdot 1 &+ (-5) \cdot (-2))y_3 &=1. \end{array} $$ Эти коэффициенты могут быть получены как результат перемножения матриц. Если переписать замену переменных в матричном виде: $$ \left( \begin{array}{r} x_1 \\ x_2 \\ x_3 \\ x_4 \end{array} \right)=\left( \begin{array}{rrr} 3&-2 &3 \\ -1& 5 &-7 \\ 1 &-1 &1 \\ 0 & 2 & -2 \end{array} \right) \left( \begin{array}{r} y_1 \\ y_2 \\ y_3 \end{array} \right) \ , $$ то умножение $$ (2,-3,1, -5) \left( \begin{array}{rrr} 3&-2 &3 \\ -1& 5 &-7 \\ 1 &-1 &1 \\ 0 & 2 & -2 \end{array} \right) \left( \begin{array}{r} y_1 \\ y_2 \\ y_3 \end{array} \right) $$ даст ту же левую часть уравнения относительно $ y_1,y_2,y_3 $. А результат замены переменных во всей системе может быть записан в матричном виде. Обозначим матрицу системы уравнений $$ A=\left( \begin{array}{rrrr} 2&-3&1 &-5 \\ -1&0 &4 &-3 \\ 0& 1 &-3 &7 \end{array} \right) $$ столбец правых частей системы: $$ {\mathcal H}= \left( \begin{array}{r} 1 \\ -2 \\ 5 \end{array} \right)\ , $$ и матрицу замены переменных $$ B=\left( \begin{array}{rrr} 3&-2 &3 \\ -1& 5 &-7 \\ 1 &-1 &1 \\ 0 & 2 & -2 \end{array} \right) \ . $$ Имеем: $$ A \cdot X={\mathcal H},\ X=B \cdot Y $$ и замена переменных в системе уравнений производится так, как если бы это были обычные числовые равенства: $$ A \cdot B \cdot Y ={\mathcal H} \ \iff \ \left( \begin{array}{rrrr} 2&-3&1 &-5 \\ -1&0 &4 &-3 \\ 0& 1 &-3 &7 \end{array} \right) \left( \begin{array}{rrr} 3&-2 &3 \\ -1& 5 &-7 \\ 1 &-1 &1 \\ 0 & 2 & -2 \end{array} \right) \left( \begin{array}{r} y_1 \\ y_2 \\ y_3 \end{array} \right) = \left( \begin{array}{r} 1 \\ -2 \\ 5 \end{array} \right) $$ $$ \left( \begin{array}{rrr} 10&-30 &38 \\ 1& -8 &7 \\ -4 &22 &-24 \end{array} \right)\left( \begin{array}{r} y_1 \\ y_2 \\ y_3 \end{array} \right) = \left( \begin{array}{r} 1 \\ -2 \\ 5 \end{array} \right) \ . $$ Переписав теперь это уравнение в привычном виде системы уравнений: $$ \left\{ \begin{array}{rrrr} 10y_1 &-30y_2&+38y_3 & = 1 \\ y_1 &-8y_2&+7y_3 &=-2 \\ -4y_1 &+22y_2&-24y_3 & =5. \end{array} \right. $$ мы можем ее решить, последовательно выражая переменные (см. ((algebra2:linearsystems#исключение_переменных_метод_гаусса метод Гаусса))): $$ y_1=23/10,\ y_2=1/10,\ y_3=-1/2 \ . $$ **Вывод.** Произведение матриц вводится именно так, чтобы обеспечить операцию линейной замены переменных в системе линейных уравнений. Некоторые из свойств этой операции совпадают со свойствами обычного произведения чисел --- и эта аналогия упрощает формализацию ряда алгоритмов. Однако, эта аналогия не распространяется на __все__ свойства числовых операций --- из-за отсутствия хотя бы той же коммутативности умножения матриц. !!?!! Выполнение равенства $ A \cdot B = 0 $ для чисел $ A $ и $ B $ влечет за собой обязательное выполнение хотя бы одного из равенств $ A = 0 $ или $ B = 0 $. Справедливо ли аналогичное утверждение для матриц? !!?!! Какую матрицу надо умножить на матрицу $ A_{} $, чтобы результатом стала матрица $ c\,A $, где $ c_{} $ --- произвольное фиксированное число? ===Алгоритмы быстрого умножения матриц== ===Коммутирующие матрицы== Говорят, что квадратные матрицы $ A $ и $ B $ **коммутируют** (или **перестановочны**), если $ AB=BA $. !!Т!! **Теорема.** //Степени квадратной матрицы// $ A $ //коммутируют. Именно, справедливы равенства//: $$ A^k \cdot A^{\ell}=A^{\ell} \cdot A^k = A^{k+\ell} \quad npu \quad \forall \quad \{k,\ell\} \subset \{0,1,2,\dots \} \, . $$ !!?!! Доказать, что если матрицы $ A $ и $ B $ коммутируют, то и произвольные степени этих матриц тоже коммутируют: $$ AB = BA \ \Rightarrow \ A^k B^{\ell}=B^{\ell} A^k \quad npu \quad \forall \quad \{k,\ell\} \subset \{0,1,2,\dots \} \, . $$ ==Задачи==