Матрицы умножения – Умножение матриц “на пальцах”, примеры, правила и пошаговая схема перемножения матриц

Содержание

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

Расчет умножения матриц онлайн. Умножьте матрицы порядка 2×3, 1×3, 3×3, 2×2 с 3×2, 3×1, 3×3, 2×2. Динамические расчеты, нахождения произведения матриц.

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

Матрица 1

X

Матрица 2

3x33x22x33x11x32x2

X

3x33x22x33x11x32x2

В первой части мы рассмотрим умножение квадратных матриц. В следующей части Вы узнаете, как умножить разные матрицы (например, 2х3 до 3х3).

Здесь мы будем умножать матрицу 3х3 (3 ряда, 3 колонки) на другую матрицу 3х3 (3 ряда, 3 колонки).

Матрица A Матрица B
a11 a12 a13
a21 a22 a23
a31 a32 a33
x
b11 b12 b13
b21 b22 b23
b31 b32 b33

В результате мы получим матрицу 3х3. Нам придется рассчитать каждую клетку результатов матрицы отдельно. Результат выразим через X.

Шаг 1:Рассчитаем x11
Для того, чтобы вычислить результат  x11 мы будем использовать первую строку матрицы А и первый столбец матрицы В.

Результат X Матрица A Матрица B
x11 x12 x13
x21 x22 x23
x31 x32 x33
=
a11 a12 a13
a21 a22 a23
a31 a32 a33
x
b11 b12 b13
b21 b22 b23
b31 b32 b33

Мы можем представить результат  x11 = a11 x b11 + a12 x b21 + a13 x b31

Шаг 2: Рассчитаем x12
Для того, чтобы вычислить результат x12 мы будем использовать первую строку матрицы А и втором столбце матрицы В.

Результат X Матрица A Матрица B
x11 x12 x13
x21 x22 x23
x31 x32 x33
=
a11 a12 a13
a21 a22 a23
a31 a32 a33
x
b11 b12 b13
b21 b22 b23
b31 b32 b33

Мы можем представить резальтат x12 = a11 x b12 + a12 x b22 + a13 x b32

По той же методике мы вычислим значения для всех ячеек.

Результат Матрица
a11xb11 + a12xb21 + a13xb31 a11xb12 + a12xb22 + a13xb32 a11xb13 + a12xb23 + a13xb33
a21xb11 + a22xb21 + a23xb31 a21xb12 + a22xb22 + a23xb32 a21xb13 + a22xb23 + a23xb33
a31xb11 + a32xb21 + a33xb31 a31xb12 + a32xb22 + a33xb32 a31xb13 + a32xb23 + a33xb33

wpcalc.com

Умножение матриц "на пальцах", примеры, правила и пошаговая схема перемножения матриц

Назад (Математика).

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

Какие матрицы можно умножать?

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

Как умножать матрицы?

Внимание! A*B не равно(!) B*A (Большими латинскими буквами обозначены умножаемые матрицы).

Пусть дана матрица размерностью 2*3:

которую необходимо умножить на матрицу 3*2:

При этом (по правилу умножения матриц) должна получиться матрица размерностью 2*2:

Перемножим элементы первой строки матрицы 2*3 на соответствующие элементы первого столбца матрицы 3*2. Делается это следующим образом: мысленно поворачиваем матрицу 2*3, перемножаем элементы: 1*7, 2*9, 3*11. Складываем полученные произведения и записываем результат в "красную ячейку":

Далее - по аналогии:

Ответ - матрица 2*2:

Пример: выполнить умножение матриц:

Решение:

  1. 0*1+1*(-1)+(-1)*0 = -1
  2. 0*2+1*0+(-1)*1 = -1
  3. 0*1+2*(-1)+1*0 = -2
  4. 0*2+2*0+1*1 = 1

Ответ:


akak-ich.ru

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

Произведением двух матриц A порядка m×n и B порядка n×k называется матрица C такая, что

n
cij= aiq ·bqj    (i=1,2,...,m; j=1,2,...k),
q=1

где cij элементы матрицы C стоящие на пересечении i-ой строки и j-го столбца.

 

Для обозначения произведения матрицы A на матрицу B используют запись

C=A·B или C=AB.

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

Операция нахождения произведения матрицы A на матрицу B называется умножением этих матриц.

Из сформулированного выше определения следует,что эта операция обладает следующими свойствами:

  1. (AB)C=A(BC).
  2. (A+B)C=AC+BC.
  3. A(B+C)=AB+AC.
  4. (αA)B=A(αB)=α(AB)=(AB)α.

Здесь α вещественное число.

Пример умножения двух матриц

Пусть заданы матрица A размера 2×3 и матрица B размера 3×3.

Тогда

где

c11=a11b11+a12b21+a13b31, c12=a11b12+a12b22+a13b32, c13=a11b13+a12b23+a13b33, c21=a21b11+a22b21+a23b31, c22=a21b12+a22b

22+a23b32, c23=a21b13+a22b23+a32b33.

Умножение матрицы в общем случае не обладает свойством коммутативности:

AB≠BA.

Пример:

 

Если AB=BA, то матрицы A и B называются коммутативными.

Умножение матриц онлайн

Для умножения матриц пользуйтесь матричным онлайн калькулятором.

matworld.ru

Умножение матриц Википедия

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

Содержание

  • 1 Определение
  • 2 Иллюстрация
  • 3 Обсуждение
  • 4 Свойства
  • 5 Обратная матрица
  • 6 Алгоритмы быстрого перемножения матриц
  • 7 Степени матриц
  • 8 См. также
  • 9 Литература
  • 10 Примечания

Определение[ | ]

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

A=[a11a12⋯a1ma21a22⋯a2m⋮⋮⋱⋮al1al2⋯alm],B=[b11b12⋯b1nb21b22⋯b2n⋮⋮⋱⋮bm1bm2⋯bmn].{\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}:

ru-wiki.ru

Умножение матриц - это... Что такое Умножение матриц?

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

произведе́нием ма́триц.

Определение

Пусть даны две прямоугольные матрицы и размерности и соответственно:

Тогда матрица размерностью называется их произведением:

где:

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

Следует заметить, что из существования произведения вовсе не следует существование произведения

Иллюстрация

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

Иллюстрация справа демонстрирует вычисление произведения двух матриц A и B, она показывает как каждые пересечения в произведении матриц соответствуют строкам матрицы

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

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

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

Элемент произведения матриц приведённых выше вычисляется следующим образом

Первая координата в обозначении матрицы обозначает строку, вторая координата — столбец; этот порядок используют как при индексации, так и при обозначении размера. Элемент на пересечении строки и столбца результирующей матрицы является скалярным произведением -й строки первой матрицы и -го столбца второй матрицы. Это объясняет почему ширина и высота умножаемых матриц должны совпадать: в противном случае скалярное произведение не определено.

Мотивировка

Описанное правило матричного умножения прозрачнее всего мотивируется исходя из умножения вектора на матрицу.

Последнее естественно вводится исходя из того, что при разложении векторов по базису действие (любого) линейного оператора

A дает выражение компонент вектора v' = Av:

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

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

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

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

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

Свойства

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

Распределительное свойство:

.

Произведение матрицы на единичную матрицу подходящего порядка равно самой матрице:

Произведение матрицы на нулевую матрицу подходящей размерности равно нулевой матрице:

Если и — квадратные матрицы одного и того же порядка, то произведение матриц обладает ещё рядом свойств.

Умножение матриц в целом некоммутативно:

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

Определитель и след произведения не зависят от порядка умножения матриц:

Обратная матрица

Квадратная матрица называется неособенной (невырожденной), если она имеет единственную обратную матрицу такую, что выполняется условие:

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

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

где — алгебраическое дополнение элемента в определителе

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

Сложность вычисления произведения матриц по определению составляет Θ(n3), однако существуют более эффективные алгоритмы[1], применяющиеся для больших матриц.

  • Алгоритм Штрассена (1969)
    Первый алгоритм быстрого умножения матриц был разработан В. Штрассеном[2] в 1969. В основе алгоритма лежит рекурсивное разбиение матриц на блоки. На каждом этапе рекурсии выполняется семь умножений вместо восьми. В результате сложность этого алгоритма составляет . Недостатком данного метода является бо́льшая сложность программирования по сравнению со стандартным алгоритмом, численная неустойчивость и большой объём используемой памяти.
    Разработано большое количество алгоритмов на основе метода Штрассена, которые улучшают его численную устойчивость и уменьшают объём используемой памяти.
  • Алгоритм Пана (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] опубликовали алгоритм, умножающий матрицы со сложностью O(n2.3727).[7] Этот алгоритм использует идеи, схожие с алгоритмом Штрассена. На сегодняшний день алгоритм Копперсмита-Винограда является наиболее асимптотически быстрым, но он эффективен только на очень больших матрицах и поэтому не применяется.
  • Алгоритмы с использованием теории групп (2003)
    В 2003 Кох и др. рассмотрели в своих работах[8] алгоритмы Штрассена и Копперсмита-Винограда в контексте теории групп. Они показали возможность существования алгоритмов умножения матриц со сложностью Θ(n2)[9].

См. также

Литература

  • Корн Г., Корн Т. Алгебра матриц и матричное исчисление // Справочник по математике. — 4-е издание. — М: Наука, 1978. — С. 392—394..

Примечания

  1. Кибернетический сборник. Новая серия. Вып. 25. Сб. статей 1983 — 1985 гг.: Пер. с англ. — М.: Мир, 1988 — В.Б. Алекссев. Сложность умножения матриц. Обзор.
  2. Strassen, Volker, Gaussian Elimination is not Optimal, Numer. Math. 13, p. 354-356, 1969
  3. 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
  4. Bini D., Capovani M., Lotti G., Romani F. — complexity for approximate matrix multiplication. — Inform. Process. Lett., 1979
  5. Schonhage A. Partial and total matrix multiplication. - SIAM J. Comput., 1981
  6. Don Coppersmith and Shmuel Winograd. Matrix multiplication via arithmetic progressions. Journal of Symbolic Computation, 9:251–280, 1990.
  7. Williams, Virginia (2011), Breaking the Coppersmith-Winograd barrier.
  8. Group-theoretic Algorithms for Matrix Multiplication
  9. Toward an Optimal Algorithm for Matrix Multiplication

dal.academic.ru

Умножение матриц - это... Что такое Умножение матриц?

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

Определение

Пусть даны две прямоугольные матрицы и размерности и соответственно:

Тогда матрица размерностью называется их произведением:

где:

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

Следует заметить, что из существования произведения вовсе не следует существование произведения

Иллюстрация

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

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

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

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

Элемент произведения матриц приведённых выше вычисляется следующим образом

Первая координата в обозначении матрицы обозначает строку, вторая координата — столбец; этот порядок используют как при индексации, так и при обозначении размера. Элемент на пересечении строки и столбца результирующей матрицы является скалярным произведением -й строки первой матрицы и -го столбца второй матрицы. Это объясняет почему ширина и высота умножаемых матриц должны совпадать: в противном случае скалярное произведение не определено.

Мотивировка

Описанное правило матричного умножения прозрачнее всего мотивируется исходя из умножения вектора на матрицу.

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

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

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

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

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

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

Свойства

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

Распределительное свойство:

.

Произведение матрицы на единичную матрицу подходящего порядка равно самой матрице:

Произведение матрицы на нулевую матрицу подходящей размерности равно нулевой матрице:

Если и — квадратные матрицы одного и того же порядка, то произведение матриц обладает ещё рядом свойств.

Умножение матриц в целом некоммутативно:

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

Определитель и след произведения не зависят от порядка умножения матриц:

Обратная матрица

Квадратная матрица называется неособенной (невырожденной), если она имеет единственную обратную матрицу такую, что выполняется условие:

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

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

где — алгебраическое дополнение элемента в определителе

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

Сложность вычисления произведения матриц по определению составляет Θ(n3), однако существуют более эффективные алгоритмы[1], применяющиеся для больших матриц.

  • Алгоритм Штрассена (1969)
    Первый алгоритм быстрого умножения матриц был разработан В. Штрассеном[2] в 1969. В основе алгоритма лежит рекурсивное разбиение матриц на блоки. На каждом этапе рекурсии выполняется семь умножений вместо восьми. В результате сложность этого алгоритма составляет . Недостатком данного метода является бо́льшая сложность программирования по сравнению со стандартным алгоритмом, численная неустойчивость и большой объём используемой памяти.
    Разработано большое количество алгоритмов на основе метода Штрассена, которые улучшают его численную устойчивость и уменьшают объём используемой памяти.
  • Алгоритм Пана (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] опубликовали алгоритм, умножающий матрицы со сложностью O(n2.3727).[7] Этот алгоритм использует идеи, схожие с алгоритмом Штрассена. На сегодняшний день алгоритм Копперсмита-Винограда является наиболее асимптотически быстрым, но он эффективен только на очень больших матрицах и поэтому не применяется.
  • Алгоритмы с использованием теории групп (2003)
    В 2003 Кох и др. рассмотрели в своих работах[8] алгоритмы Штрассена и Копперсмита-Винограда в контексте теории групп. Они показали возможность существования алгоритмов умножения матриц со сложностью Θ(n2)[9].

См. также

Литература

  • Корн Г., Корн Т. Алгебра матриц и матричное исчисление // Справочник по математике. — 4-е издание. — М: Наука, 1978. — С. 392—394..

Примечания

  1. Кибернетический сборник. Новая серия. Вып. 25. Сб. статей 1983 — 1985 гг.: Пер. с англ. — М.: Мир, 1988 — В.Б. Алекссев. Сложность умножения матриц. Обзор.
  2. Strassen, Volker, Gaussian Elimination is not Optimal, Numer. Math. 13, p. 354-356, 1969
  3. 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
  4. Bini D., Capovani M., Lotti G., Romani F. — complexity for approximate matrix multiplication. — Inform. Process. Lett., 1979
  5. Schonhage A. Partial and total matrix multiplication. - SIAM J. Comput., 1981
  6. Don Coppersmith and Shmuel Winograd. Matrix multiplication via arithmetic progressions. Journal of Symbolic Computation, 9:251–280, 1990.
  7. Williams, Virginia (2011), Breaking the Coppersmith-Winograd barrier.
  8. Group-theoretic Algorithms for Matrix Multiplication
  9. Toward an Optimal Algorithm for Matrix Multiplication

dikc.academic.ru

Умножение матриц - это... Что такое Умножение матриц?

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

Определение

Пусть даны две прямоугольные матрицы и размерности и соответственно:

Тогда матрица размерностью называется их произведением:

где:

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

Следует заметить, что из существования произведения вовсе не следует существование произведения

Иллюстрация

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

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

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

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

Элемент произведения матриц приведённых выше вычисляется следующим образом

Первая координата в обозначении матрицы обозначает строку, вторая координата — столбец; этот порядок используют как при индексации, так и при обозначении размера. Элемент на пересечении строки и столбца результирующей матрицы является скалярным произведением -й строки первой матрицы и -го столбца второй матрицы. Это объясняет почему ширина и высота умножаемых матриц должны совпадать: в противном случае скалярное произведение не определено.

Мотивировка

Описанное правило матричного умножения прозрачнее всего мотивируется исходя из умножения вектора на матрицу.

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

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

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

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

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

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

Свойства

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

Распределительное свойство:

.

Произведение матрицы на единичную матрицу подходящего порядка равно самой матрице:

Произведение матрицы на нулевую матрицу подходящей размерности равно нулевой матрице:

Если и — квадратные матрицы одного и того же порядка, то произведение матриц обладает ещё рядом свойств.

Умножение матриц в целом некоммутативно:

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

Определитель и след произведения не зависят от порядка умножения матриц:

Обратная матрица

Квадратная матрица называется неособенной (невырожденной), если она имеет единственную обратную матрицу такую, что выполняется условие:

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

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

где — алгебраическое дополнение элемента в определителе

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

Сложность вычисления произведения матриц по определению составляет Θ(n3), однако существуют более эффективные алгоритмы[1], применяющиеся для больших матриц.

  • Алгоритм Штрассена (1969)
    Первый алгоритм быстрого умножения матриц был разработан В. Штрассеном[2] в 1969. В основе алгоритма лежит рекурсивное разбиение матриц на блоки. На каждом этапе рекурсии выполняется семь умножений вместо восьми. В результате сложность этого алгоритма составляет . Недостатком данного метода является бо́льшая сложность программирования по сравнению со стандартным алгоритмом, численная неустойчивость и большой объём используемой памяти.
    Разработано большое количество алгоритмов на основе метода Штрассена, которые улучшают его численную устойчивость и уменьшают объём используемой памяти.
  • Алгоритм Пана (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] опубликовали алгоритм, умножающий матрицы со сложностью O(n2.3727).[7] Этот алгоритм использует идеи, схожие с алгоритмом Штрассена. На сегодняшний день алгоритм Копперсмита-Винограда является наиболее асимптотически быстрым, но он эффективен только на очень больших матрицах и поэтому не применяется.
  • Алгоритмы с использованием теории групп (2003)
    В 2003 Кох и др. рассмотрели в своих работах[8] алгоритмы Штрассена и Копперсмита-Винограда в контексте теории групп. Они показали возможность существования алгоритмов умножения матриц со сложностью Θ(n2)[9].

См. также

Литература

  • Корн Г., Корн Т. Алгебра матриц и матричное исчисление // Справочник по математике. — 4-е издание. — М: Наука, 1978. — С. 392—394..

Примечания

  1. Кибернетический сборник. Новая серия. Вып. 25. Сб. статей 1983 — 1985 гг.: Пер. с англ. — М.: Мир, 1988 — В.Б. Алекссев. Сложность умножения матриц. Обзор.
  2. Strassen, Volker, Gaussian Elimination is not Optimal, Numer. Math. 13, p. 354-356, 1969
  3. 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
  4. Bini D., Capovani M., Lotti G., Romani F. — complexity for approximate matrix multiplication. — Inform. Process. Lett., 1979
  5. Schonhage A. Partial and total matrix multiplication. - SIAM J. Comput., 1981
  6. Don Coppersmith and Shmuel Winograd. Matrix multiplication via arithmetic progressions. Journal of Symbolic Computation, 9:251–280, 1990.
  7. Williams, Virginia (2011), Breaking the Coppersmith-Winograd barrier.
  8. Group-theoretic Algorithms for Matrix Multiplication
  9. Toward an Optimal Algorithm for Matrix Multiplication

3dic.academic.ru