- Условие умножения матриц
- Как умножать матрицы
- Еще один пример
- Формулы умножения
- Свойства матричного умножения
- Выводы
Мы уже выяснили, что в математике матрица — это прямоугольный массив или таблица чисел, символов или выражений, расположенных в строках и столбцах. Мы можем выполнять различные операции над матрицами, такие как сложение, вычитание, умножение и так далее. В этом уроке вы узнаете, как умножить матрицу на другую матрицу с примерами в деталях.
Условие умножения матриц
Мы можем умножить две матрицы друг на друга только в том случае, если количество столбцов в первой матрице равно количеству строк во второй матрице:
- Умножение матрицы
7 * 1на матрицу1 * 2дает матрицу7 * 2 - Умножение матрицы
4 * 3на матрицу3 * 4дает матрицу4 * 4 - Умножение матрицы
4 * 3и матрицы2 * 3невозможно, потому что они несовместимы
Другими словами, после умножения мы получим матрицу, в которой:
- Столько же строк, что и в первой матрице
- Столько же столбцов, что и во второй матрице
Теперь давайте разберемся, как выполнять матричное умножение с разными порядками или разными типами матриц.
Как умножать матрицы
Общий принцип умножения матриц можно коротко сформулировать так:
Сначала строки поэлементно умножаются на столбцы, а затем строки заполняются
Разберем эту формулировку на отдельные шаги:
- Проверяем, что количество столбцов в первой матрице равно количеству строк во второй матрице (это называется совместимость матриц)
- Умножаем элементы первой строки первой матрицы на элементы из первого столбца второй матрицы
- Складываем полученные произведения. Это будет элемент, который находится в первой строке и первом столбце нашей итоговой матрицы
- Записываем сложенные произведения на соответствующие места
- Повторяем эти шаги для всех остальных строк и столбцов
Разберем эти шаги умножения матриц на примере. Предположим, что у нас есть две матрицы:
- Матрица
Aразмером вiстолбцов иjстрок - Матрица
Bразмером вjстолбцов иkстрок
Умножим их друг на друга. В итоге мы получим матрицу C, у которой будет i строк и k столбцов.
Каждый элемент в матрице C можно вычислить по формуле:
C_(ik) = sum_j * A_(ij) * B_(jk)
Разберем формулу подробнее:
C_(ik)= элемент в строкеiи столбцеkиз матрицыCA_(ij)= элемент в строкеiи столбцеjиз матрицыAB_(jk)= элемент в строкеjи столбцеkиз матрицыBsum_j= знак суммирования, который указывает, что членыa,i,j,b,jиkдолжны быть просуммированы поj
Что это значит? Давайте на примере покажем, как работает приведенная выше формула. Предположим, мы хотим умножить матрицу A на матрицу B:
Матрица A:
A * B = [[0,1,2],[3,4,5]] * [[6,7],[8,9],[10,11]]
Результат умножения матрицы A на матрицу B обозначим как матрицу C. Сначала определим размер будущей матрицы C:
- У матрицы
Cбудет две строки, как у матрицыA - У матрицы
Cбудет два столбца, как у матрицыB
Чтобы вычислить значение каждого элемента в матрице C, мы используем такую формулу:
C_(ik) = sum_j * A_(ij) * B_(jk)
Применим ее:
C_11 = sum * A_(1j) * B_(j1) = 0*6 + 1*8 +2*10 = 0 + 8 + 20 = 28
C_12 = sum * A_(1j) * B_(j2) = 0*7 + 1*9 +2*11 = 0 + 9 + 22 = 31
C_21 = sum * A_(2j) * B_(j1) = 3*6 + 4*8 +5*10 = = 18 + 32 + 50 = 100
C_22 = sum * A_(2j) * B_(j2) = 3*7 + 4*9 +5*11 = 21 + 36 +55 = 112
Исходя из вышеприведенных расчетов, получаем:
[[0,1,2],[3,4,5]]*[[6,7],[8,9],[10,11]]=[[28,31],[100,112]]
В итоге мы вычислили матрицу C — умножили элементы строк матрицы A на соответствующие элементы столбцов матрицы B и сложили результаты в нужных местах.
Чтобы лучше запомнить, соберем все вычисления вместе и посмотрим на них еще раз:
[[0,1,2],[3,4,5]]*[[6,7],[8,9],[10,11]]=[[0*6+1*8+2*10,0*7+1*9+2*11],[3*6+4*8+5*10,3*7+4*9+5*11]]=[[28,31],[100,112]]
Еще один пример
Рассмотрим еще один пример. Умножим друг на друга две матрицы — A и B:
C=A*B=[[1,1],[3,4],[9,8]]*[[6],[8]]
У этих матриц разный порядок:
- У матрицы
A—3строки и2столбца - У матрицы
B—2строки и1столбец
Таким образом, данные матрицы совместимы — мы можем умножить их. Матрица произведения будет состоять из 3 строк и 1 столбца:
[[C_11],[C_21],[C_31]]
Посчитаем компоненты матрицы C:
C_11 = a_11 * b_11 + a_12 * b_21 = 1 * 6 + 1 * 8 = 6 + 8 = 14
C_21 = a_21 * b_11 + a_22 * b_21 = 3 * 6 + 4 * 8 = 18 + 32 = 50
C_31 = a_31 * b_11 + a_32 * b_21 = 9 * 6 + 8 * 8 = 54 + 64 = 118
В итоге мы получим такую матрицу C:
C=A*B=[[1,1],[3,4],[9,8]]*[[6],[8]]=[[14],[50],[118]]
Формулы умножения
Не всегда обязательно проверять матрицы на совместимость, а также вычислять количество столбцов и строк. В некоторых случаях результат можно предсказать и без вычислений.
Например, если умножить две матрицы 2*2, получится матрица 2*2:
[[0,1],[3,4]]*[[6,7],[8,9]]=[[0*6+1*8,0*7+1*9],[3*6+4*8,3*7+4*9]]=[[8,9],[50,57]]
Если умножить две матрицы 3*3, получится матрица 3*3:
[[0,1,2],[3,4,5],[6,7,8]]*[[9,10,11],[12,13,14],[15,16,17]] =
[[0*9+1*12+2*15,0*10+1*13+2*16,0*11+1*14+2*17],[3*9+4*12+5*15,3*10+4*13+5*16,3*11+4*14+5*17],[6*9+7*12+8*15,6*10+7*13+8*16,6*11+7*14+8*17]]
[[0,1,2],[3,4,5],[6,7,8]]*[[9,10,11],[12,13,14],[15,16,17]] =[[42,45,48],[150,162,174],[258,279,300]]
Тот же принцип работает с матрицами 4*4, 5*5 и так далее.
Свойства матричного умножения
В линейной алгебре существуют определенные свойства операции умножения матриц. Эти свойства приведены ниже.
Некоммутативность. Мы знаем, что обычное умножение коммутативно. Мы можем переставить множители местами, и ничего не поменяется:
2*5=10\
5*2=10
Но с матрицами этот принцип не работает. Умножение матриц некоммутативно, то есть:
A*B\neB*A
Дистрибутивность. При умножении матриц на скобки нужно учитывать, с какой стороны стоит умножение. Нужно раскрывать скобки без потери последовательности:
A*(B+C)=AB+AC\
(A+B)*C=AC+BC
Произведение со скаляром. То же самое правило действует, когда мы умножаем матрицу на любое скалярное число c. Нельзя терять последовательность:
c * (AB) = (cA) * B = A * (Bc)
Ассоциативность. Умножение матриц является ассоциативным. Опять же, нельзя терять последовательность. При этом не важно, в каком порядке мы выполняем умножение:
(AB)*C = A*(BC)
Еще одно связанное с этими свойствами понятие определитель матрицы (детерминант матрицы) — это одна из основных численных характеристик квадратной матрицы, применяемая при решении многих задач, мы рассмотрим в следующем уроке.
Выводы
В этом уроке мы изучили инструменты математики, которые помогают упростить вычисления. На практике вы столкнетесь с большим объемом вводных данных и дополнительных характеристик — работать с ними без изученных сокращений было бы очень трудно.
Самостоятельная работа
Выполните умножение матриц A и B:
A * B = [[1,4],[1,2]] * [[9,2],[7,2]]
Нажмите, чтобы увидеть ответ
Выполняем умножение и вычисляем матрицу AB:
a_(11)*b_(11)+a_(12)*b_(21)=1*9+4*7=9+28=37a_(11)*b_(12)+a_(12)*b_(22)=1*2+4*2=2+8=10a_(21)*b_(11)+a_(22)*b_(21)=1*9+2*7=9+14=23a_(21)*b_(12)+a_(22)*b_(22)=1*2+2*2=2+4=6
Ответ:
AB = [[37,10],[23,6]]
Для полного доступа к курсу нужен базовый план
Базовый план откроет полный доступ ко всем курсам, упражнениям и урокам Хекслета, проектам и пожизненный доступ к теории пройденных уроков. Подписку можно отменить в любой момент.