Какими свойствами обладает произведение матриц
Умноже́ние ма́триц — одна из основных операций над матрицами. Матрица, получаемая в результате операции умножения, называется произведе́нием ма́триц. Элементы новой матрицы получаются из элементов старых матриц в соответствии с правилами, проиллюстрированными ниже.
Матрицы и могут быть перемножены, если они совместимы в том смысле, что число столбцов матрицы равно числу строк .
Матрицы обладают многими алгебраическими свойствами умножения, присущими обычным числам, за исключением коммутативности.
Для квадратных матриц, помимо умножения, может быть введена операция возведения матрицы в степень и обратная матрица.
Тогда как матрицы используются для описания, в частности, преобразований математических пространств (поворот, отражение, растяжение и другие), произведение матриц будет описывать композицию преобразований.
Определение[править | править код]
Пусть даны две прямоугольные матрицы и размерности и соответственно:
Тогда матрица размерностью :
в которой:
называется их произведением.
Операция умножения двух матриц выполнима только в том случае, если число столбцов в первом сомножителе равно числу строк во втором; в этом случае говорят, что матрицы согласованы. В частности, умножение всегда выполнимо, если оба сомножителя — квадратные матрицы одного и того же порядка.
Таким образом, из существования произведения вовсе не следует существование произведения
Иллюстрация[править | править код]
Произведение матриц AB состоит из всех возможных комбинаций скалярных произведений вектор-строк матрицы A и вектор-столбцов матрицы B. Элемент матрицы AB с индексами i, j есть скалярное произведение i-ой вектор-строки матрицы A и j-го вектор-столбца матрицы B.
Иллюстрация справа демонстрирует вычисление произведения двух матриц A и B, она показывает как каждые пересечения в произведении матриц соответствуют строкам матрицы A и столбцам матрицы B. Размер результирующей матрицы всегда максимально возможный, то есть для каждой строки матрицы A и столбца матрицы B есть всегда соответствующее пересечение в произведении матрицы.
Значения на пересечениях, отмеченных кружочками, будут:
В общем случае, произведение матриц не является коммутативной операцией. К примеру:
Элемент произведения матриц, приведённых выше, вычисляется следующим образом
Первая координата в обозначении матрицы обозначает строку, вторая координата — столбец; этот порядок используют как при индексации, так и при обозначении размера. Элемент на пересечении строки и столбца результирующей матрицы является скалярным произведением -й строки первой матрицы и -го столбца второй матрицы.
Это объясняет почему ширина и высота умножаемых матриц должны совпадать: в противном случае скалярное произведение не определено.
Обсуждение[править | править код]
Увидеть причины описанного правила матричного умножения легче всего, рассмотрев умножение вектора на матрицу.
Последнее естественно вводится исходя из того, что при разложении векторов по базису действие (любого) линейного оператора A даёт выражение компонент вектора v’ = Av:
То есть линейный оператор оказывается представлен матрицей, векторы — векторами-столбцами, а действие оператора на вектор — матричным умножением вектора-столбца слева на матрицу оператора (это частный случай матричного умножения, когда одна из матриц — вектор-столбец — имеет размер ).
(Равно переход к любому новому базису при смене координат представляется полностью аналогичным выражением, только в этом случае уже не компоненты нового вектора в старом базисе, а компоненты старого вектора в новом базисе; при этом — элементы матрицы перехода к новому базису).
Рассмотрев последовательное действие на вектор двух операторов: сначала A, а потом B (или преобразование базиса A, а затем преобразование базиса B), дважды применив нашу формулу, получим:
откуда видно, что композиции BA действия линейных операторов A и B (или аналогичной композиции преобразований базиса) соответствует матрица, вычисляемая по правилу произведения соответствующих матриц:
Определённое таким образом произведение матриц оказывается совершенно естественным и очевидно полезным (даёт простой и универсальный способ вычисления композиций произвольного количества линейных преобразований).
Свойства[править | править код]
Сочетательное свойство, ассоциативность:
Распределительное свойство, дистрибутивность относительно сложения:
.
Произведение матрицы на единичную матрицу подходящего порядка равно самой матрице:
Произведение матрицы на нулевую матрицу подходящей размерности равно нулевой матрице:
Если и — квадратные матрицы одного и того же порядка, то произведение матриц обладает ещё рядом свойств.
Умножение матриц в общем случае некоммутативно:
Если , то матрицы и называются коммутирующими между собой.
Простейшие примеры коммутирующих матриц:
Определитель и след произведения не зависят от порядка умножения матриц:
Обратная матрица[править | править код]
Квадратная матрица называется неособенной (невырожденной), если она имеет единственную обратную матрицу такую, что выполняется условие:
В противном случае матрица называется особенной (вырожденной).
Матрица порядка является невырожденной в том и только в том случае, если в этом случае есть квадратная матрица того же порядка
где — алгебраическое дополнение элемента в определителе
Алгоритмы быстрого перемножения матриц[править | править код]
Сложность вычисления произведения матриц по определению составляет , однако существуют более эффективные алгоритмы[1], применяющиеся для больших матриц. Вопрос о предельной скорости умножения больших матриц, также как и вопрос о построении наиболее быстрых и устойчивых практических алгоритмов умножения больших матриц остаётся одной из нерешённых проблем линейной алгебры.
- Алгоритм Штрассена (1969)
Первый алгоритм быстрого умножения больших матриц был разработан Фолькером Штрассеном[2] в 1969. В основе алгоритма лежит рекурсивное разбиение матриц на блоки 2Х2. Штрассен доказал, что матрицы 2Х2 можно некоммутативно перемножить с помощью семи умножений, поэтому на каждом этапе рекурсии выполняется семь умножений вместо восьми. В результате асимптотическая сложность этого алгоритма составляет . Недостатком данного метода является бо́льшая сложность программирования по сравнению со стандартным алгоритмом, слабая численная устойчивость и больший объём используемой памяти. Разработан ряд алгоритмов на основе метода Штрассена, которые улучшают численную устойчивость, скорость по константе и другие его характеристики. Тем не менее, в силу простоты алгоритм Штрассена остаётся одним из практических алгоритмов умножения больших матриц. Штрассен также выдвинул следующую гипотезу Штрассена: для сколь угодно малого существует алгоритм, при достаточно больших натуральных n гарантирующий перемножение двух матриц размера за операций.
- Дальнейшие улучшения показателя степени ω для скорости матричного умножения
Хронология улучшения оценок показателя степени ω для скорости матричного умножения.
В дальнейшем оценки скорости умножения больших матриц многократно улучшались. Однако эти алгоритмы носили теоретический, в основном приближённый характер. В силу неустойчивости алгоритмов приближённого умножения в настоящее время они не используются на практике.
- Алгоритм Пана (1978)
В 1978 Пан[3] предложил свой метод умножения матриц, сложность которого составила Θ(n2.78041).
- Алгоритм Бини (1979)
В 1979 группа итальянских учёных во главе с Бини[4] разработала алгоритм умножения матриц с использованием тензоров. Его сложность составляет Θ(n2.7799).
- Алгоритмы Шёнхаге (1981)
В 1981 Шёнхаге[5] представил метод, работающий со скоростью Θ(n2.695). Оценка получена с помощью подхода, названного частичным матричным умножением. Позже ему удалось получить оценку Θ(n2.6087).
Затем Шёнхаге на базе метода прямых сумм получил оценку сложности Θ(n2.548). Романи сумел понизить оценку до Θ(n2.5166), а Пан — до Θ(n2.5161).
- Алгоритм Копперсмита — Винограда (1990)
В 1990 Копперсмит и Виноград[6] опубликовали алгоритм, который в модификации Вильямс Василевской[7]2011 года умножает матрицы со скоростью O(n2.3727). Этот алгоритм использует идеи, схожие с алгоритмом Штрассена. На сегодняшний день модификации алгоритма Копперсмита-Винограда являются наиболее асимптотически быстрыми. Но тот факт, что полученные улучшения ничтожны, позволяет говорить о существовании «барьера Копперсмита-Винограда» в асимптотических оценках скорости алгоритмов. Алгоритм Копперсмита-Винограда эффективен только на матрицах астрономического размера и на практике применяться не может.
- Связь с теорией групп (2003)
В 2003 Кох и др. рассмотрели в своих работах[8] алгоритмы Штрассена и Копперсмита-Винограда в контексте теории групп. Они показали, что гипотеза Штрассена справедлива, если выполняется одна из гипотез теории групп[9].
Степени матриц[править | править код]
Квадратные матрицы можно многократно умножать сами на себя так же, как обычные числа, так как у них одинаковое число строк и столбцов.
Такое последовательное умножение можно назвать возведением матрицы в степень — это будет частный случай обычного умножения нескольких матриц. У прямоугольных матриц число строк и столбцов разное, поэтому их никогда нельзя возводить в степень.
Матрица A размерности n × n, возведённая в степень, определяется формулой
и обладает следующими свойствами (λ — некоторый скаляр):
Нулевая степень:
где E — единичная матрица. Это аналог того факта, что нулевая степень любого числа равна единице.
Умножение на скаляр:
Определитель:
Наивный способ вычисления степени матрицы — это умножать k раз матрицу A на результат предыдущего умножения, начиная с единичной матрицы, как это часто делают для скаляров.
Для диагонализируемых матриц существует лучший метод, основанный на использовании спектрального разложения матрицы A.
Ещё один метод, основанный на теореме Гамильтона — Кэли, строит более эффективное выражение для Ak, в котором в требуемую степень возводится скаляр, а не вся матрица.
Особый случай составляют диагональные матрицы.
Так как произведение диагональных матриц сводится к умножению соответствующих диагональных элементов, то k-ая степень диагональной матрицы A состоит из элементов, возведённых в требуемую степень:
Таким образом, возвести диагональную матрицу в степень несложно.
При возведении произвольной матрицы (не обязательно диагональной) в степень часто полезным оказывается использовать сначала свойства диагонализируемых матриц.
Используя умножение матриц и возведение матриц в степень, можно определить другие операции над матрицами. Например, матричная экспонента может быть определена через степенной ряд, матричный логарифм[en] — как обратная к матричной экспоненте функция и так далее.
См. также[править | править код]
- Произведение Кронекера
Литература[править | править код]
- Корн Г., Корн Т. Алгебра матриц и матричное исчисление // Справочник по математике. — 4-е издание. — М: Наука, 1978. — С. 392—394.
Примечания[править | править код]
- ↑ Кибернетический сборник. Новая серия. Вып. 25. Сб. статей 1983 — 1985 гг.: Пер. с англ. — М.: Мир, 1988 — В.Б. Алекссев. Сложность умножения матриц. Обзор.
- ↑ Strassen V. Gaussian Elimination is not Optimal (англ.) // Numer. Math / F. Brezzi — Springer Science+Business Media, 1969. — Vol. 13, Iss. 4. — P. 354—356. — ISSN 0029-599X; 0945-3245 — doi:10.1007/BF02165411
- ↑ Pan V. Ya, Strassen’s algorithm is not optimal — trilinear technique of aggregating uniting and canceling for constructing fast algorithms for matrix operations. — Proc. 19th Annual Symposium on Foundations of Computer Science, Ann Arbor, Mich., 1978
- ↑ Bini D., Capovani M., Lotti G., Romani F. — complexity for approximate matrix multiplication. — Inform. Process. Lett., 1979
- ↑ Schonhage A. Partial and total matrix multiplication. — SIAM J. Comput., 1981
- ↑ Don Coppersmith and Shmuel Winograd. Matrix multiplication via arithmetic progressions. Journal of Symbolic Computation, 9:251-280, 1990.
- ↑ Williams, Virginia (2011), Multiplying matices in O(n2.3727 time
- ↑ Group-theoretic Algorithms for Matrix Multiplication
- ↑ Toward an Optimal Algorithm for Matrix Multiplication (недоступная ссылка). Дата обращения 26 сентября 2009. Архивировано 31 марта 2010 года.
Произведение двух матриц
Определение 1
Произведение матриц (С= АВ) — операция только для согласованных матриц А и В, у которых число столбцов матрицы А равно числу строк матрицы В:
C⏟m×n=A⏟m×p×B⏟p×n
Пример 1
Даны матрицы:
- A=a(ij) размеров m×n;
- B=b(ij) размеров p×n
Матрицу C, элементы cij которой вычисляются по следующей формуле:
cij=ai1×b1j+ai2×b2j+…+aip×bpj, i=1,…m, j=1,…m
Пример 2
Вычислим произведения АВ=ВА:
А=121012, В=100111
Решение, используя правило умножения матриц:
А⏟2×3×В⏟3×2=121012×100111=1×1+2×0+1×11×0+2×1+1×10×1+1×0+2×10×0+1×1+2×1==2323⏟2×2
В⏟3×2×А⏟2×3=100111×121012=1×1+0×01×2+0×11×1+0×20×1+1×00×2+1×10×1+1×21×1+1×01×2+1×11×1+1×2=121012133⏟3×3
Произведение АВ и ВА найдены, но являются матрицами разных размеров: АВ не равна ВА.
Свойства умножения матриц
Свойства умножения матриц:
- (АВ)С = А(ВС) — ассоциативность умножения матриц;
- А(В+С) = АВ + АС — дистрибутивность умножения;
- (А+В)С = АС + ВС — дистрибутивность умножения;
- λ(АВ)=(λА)В
Пример 1
Проверяем свойство №1: (АВ)С = А(ВС):
(А×В)×А=1234×5678×1002=19224350×1002=194443100,
А(В×С)=1234×56781002=1234×512716=194443100.
Пример 2
Проверяем свойство №2: А(В+С) = АВ + АС:
А×(В+С)=1234×5678+1002=1234×66710=20264658,
АВ+АС=1234×5678+1234×1002=19224350+1438=20264658.
Произведение трех матриц
Произведение трех матриц АВС вычисляют 2-мя способами:
- найти АВ и умножить на С: (АВ)С;
- либо найти сначала ВС, а затем умножить А(ВС).
Пример 3
Перемножить матрицы 2-мя способами:
4375×-289338-126×7321
Алгоритм действий:
- найти произведение 2-х матриц;
- затем снова найти произведение 2-х матриц.
1). АВ=4375×-289338-126=4(-28)+3×384×93+3(-126)7(-28)+5×387×93+5(-126)=2-6-621
2). АВС=(АВ)С=2-6-6217321=2×7-6×22×3-6×1-6×7+21×2-6×3+21×1=2003.
Используем формулу АВС=(АВ)С:
1). ВС=-289338-1267321=-28×7+93×2-28×3+93×138×7-126×238×3-126×1=-10914-12
2). АВС=(АВ)С=7321-10914-12=4(-10)+3×144×9+3(-12)7(-10)+5×147×9+5(-12)=2003
Ответ: 4375-289338-1267321=2003
Умножение матрицы на число
Определение 2
Произведение матрицы А на число k — это матрица В=Аk того же размера, которая получена из исходной умножением на заданное число всех ее элементов:
bi,j=k×ai,j
Свойства умножения матрицы на число:
- 1×А=А
- 0×А=нулевая матрица
- k(A+B)=kA+kB
- (k+n)A=kA+nA
- (k×n)×A=k(n×A)
Пример 4
Найдем произведение матрицы А=4290 на 5.
Решение:
5А=542905×45×25×95×0=2010450
Умножение матрицы на вектор
Определение 3
Чтобы найти произведение матрицы и вектора, необходимо умножать по правилу «строка на столбец»:
- если умножить матрицу на вектор-столбец число столбцов в матрице должно совпадать с числом строк в векторе-столбце;
- результатом умножения вектора-столбца является только вектор-столбец:
АВ=а11а12⋯а1nа21а22⋯а2n⋯⋯⋯⋯аm1аm2⋯аmnb1b2⋯b1n=a11×b1+a12×b2+⋯+a1n×bna21×b1+a22×b2+⋯+a2n×bn⋯⋯⋯⋯am1×b1+am2×b2+⋯+amn×bn=c1c2⋯c1m
- если умножить матрицу на вектор-строку, то умножаемая матрица должна быть исключительно вектором-столбцом, причем количество столбцов должно совпадать с количеством столбцов в векторе-строке:
АВ=аа⋯аbb⋯b=a1×b1a1×b2⋯a1×bna2×b1a2×b2⋯a2×bn⋯⋯⋯⋯an×b1an×b2⋯an×bn=c11c12⋯c1nc21c22⋯c2n⋯⋯⋯⋯cn1cn2⋯cnn
Пример 5
Найдем произведение матрицы А и вектора-столбца В:
АВ=240-213-10112-1=2×1+4×2+0×(-1)-2×1+1×2+3×(-1)-1×1+0×2+1×(-1)=2+8+0-2+2-3-1+0-1=10-3-2
Пример 6
Найдем произведение матрицы А и вектора-строку В:
А=320-1, В=-1102
Решение:
АВ=3201×-1102=3×(-1)3×13×03×22×(-1)2×12×02×20×(-1)0×10×00×21×(-1)1×11×01×2=-3306-22040000-1102
Ответ: АВ=-3306-22040000-1102
Если вы заметили ошибку в тексте, пожалуйста, выделите её и нажмите Ctrl+Enter
2.3.1. Определение. Произведением строки A=(а1, а2, … аn) на столбец B=(b1, b2, … bn)T называется число a1b1+a2b2+…+anbn.
Это произведение обозначается через AB.
Например, если A=(1, 2, 4), B=(-1, 2, 3)Т, то
AB=(1, 2, 4) =1×(-1)+2×2+4×3=15.
Таким образом, по определению
(а1, а2, … аn) =a1b1+a2b2+…+anbn,
то есть для того, чтобы строку умножить на столбец, необходимо, чтобы число элементов строки равнялось числу элементов столбца.
2.3.2. Определение. Произведением матрицы A=(aij)m´nна матрицу B=(bij)n´k называется матрица C=(cij)m´k, такая, что
cij=ai1b1j+ai2b2j+…+ainbnj.
Произведение матрицы A на матрицу B обозначается через AB.
Таким образом, AB=(ai1b1j+ai2b2j+…+ainbnj)m´n, то есть элемент cij произведения A на B получается как произведение i—й строки (то есть строки под номером i) матрицы A на j—й столбец (то есть столбца под номером j) матрицы B. В частности, для того, чтобы умножить матрицу A на матрицу B, необходимо, чтобы число элементов в строке матрицы A совпадало с числом элементов в столбцах матрицы B, что означает, что число столбцов первого сомножителя должно совпадать с числом строк второго. В противном случае произведение матриц не существует. При этом число строк произведения AB равно числу строк первой матрицы A, а число столбцов равно числу столбцов второй матрицы B. Так, произведение матрицы A=(aij)2´2 на матрицу B=(bij)2´2 является матрицей C=(cij)2´2 размерности 2´2:
= ;
а произведение матрицы A=(aij)2´2 на матрицу B=(bij)2´3 является матрицей C=(cij)2´3:
= .
Произведение B=(bij)2´3 на A=(aij)2´2 не существует, так как число 3 столбцов матрицы B не равно числу 2 строк матрицы A. Например, если A= , B= , C= , то
AB= = = ,
BA= = = ,
AC= = = ,
CA не определено (то есть не существует).
В частности, мы видим, что, вообще говоря, AB≠BA, то есть привычное для чисел правило «от перестановки мест сомножителей призведение не меняется» для матриц не работает.
2.3.3. Теорема. Операция произведения матриц обладает следующими свойствами:
1о. Вообще говоря, AB≠BA.
2о. Если произведения AB и BC определены, то определены также произведения (AB)C, A(BC) и при этом выполняется равенство
(AB)C=A(BC).
3о. Am´nЕn=ЕmAm´n=Am´n. В частности, если A — квадратная матрица порядка n, то AЕ=ЕA=A, где E — единичная матрица порядка n.
4о. Если AB определено, то для любого числа a произведения (aA)B,A(aB) также определены и имеют место равенства
a(AB)=(aA)B=A(aB).
5о. Если определено произведение A(B+C), то определены также произведения AB, AC и сумма AB+AC, и справедливо равенство
A(B+C)=AB+AC.
6о. Если определено произведение (A+B)C, то определены также произведения AC, BC и сумма AC+BC, и справедливо равенство
(A+B)C=AC+BC.
7о. Если определено произведение AB, то определено также произведение BTATи справедливо равенство
(AB)T=BTAT.
2.3.4. Перечисленные свойства естественным образом обобщаются. Например, как и в случае суммы, свойство 2о обобщается следующим образом:
2¢о. Если произведения A1A2, A2A3, …, Ak-1Ak, определены, то определено также произведение
(…((A1A2)A3)…Ak-1)Ak (2.2)
и результат произведения не зависит от расстановки скобок.
В силу этого в произведениях типа (2.2) скобки принято опускать:
A1A2…Ak (2.3)
Вообще, в произведении (2.3) определено произведение любого количества l друг за другом идущих матриц: AiAi+1…Ai+l-1. В силу свойства 1о результат произведения зависит от порядка следования сомножителей. Более того, при перестановке сомножителей произведение может быть вообще не определённым (то есть не существовать).
4¢о. Если определено произведение A1A2…Ak, то определены также произведения (aA1)A2…Ak, A1(aA2)…Ak, A1A2…(aAk), и имеют место равенства
(aA1)A2…Ak=A1(aA2)…Ak=…=A1A2…(aAk).
5¢о, 6¢о. Если определены произведения A(B1±B2±…±Bk) и (A1±A2±…±Ak)B, то определены соответственно произведения AB1, AB2, …, ABk и A1B, A2B, …, AkB и имеют место равенства
A(B1±B2±…±Bk)=AB1±AB2±…±ABk,
(A1±A2±…±Ak)B=A1B±A2B±…±AkB.
Здесь сочетания знаков «+» и «-» произвольные.
7¢о. Если произведение A1A2…Ak-1Ak определено, то определено также произведение и при этом имеет место равенство
(A1A2…Ak-1Ak)Т=.
2.3.5. Определение. Если A — квадратная матрица, то произведение называется k—й степенью матрицы A и обозначается через Ak:
Ak= .