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

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

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

Пример.
Найдем матрицу, которая равна АВ+13А при и .

Решение.
Сначала найдем произведение матриц А и В. Для этого последовательно перемножаем элементы каждой строки первой матрицы на элементы каждого столбца второй матрицы:

   

   

   

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

   

Осталось найти результат сложения полученных матриц, для чего суммируем соответствующие элементы обеих матриц:

   

   

Ответ. .

ru.solverbook.com

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

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

Определение

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

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

где:

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

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

Иллюстрация

Произведение матриц 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

dis.academic.ru

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

Действия с матрицами

 

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

Я буду стараться минимизировать теоретические выкладки, кое-где возможны объяснения «на пальцах» и использование ненаучных терминов. Любители основательной теории, пожалуйста, не занимайтесь критикой, наша задача – научиться выполнять действия с матрицами.

Начнем.

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

ЭЛЕМЕНТ – это термин. Термин желательно запомнить, он будет часто встречаться, не случайно я использовал для его выделения жирный шрифт.

Обозначение: матрицы обычно обозначают прописными латинскими буквами

Пример: рассмотрим матрицу «два на три»:

Данная матрица состоит из шести элементов:

Все числа (элементы) внутри матрицы существуют сами по себе, то есть ни о каком вычитании речи не идет:

Это просто таблица (набор) чисел!

Также договоримся не переставлять числа, если иного не сказано в объяснениях. У каждого числа свое местоположение, и перетасовывать их нельзя!

Рассматриваемая матрица имеет две строки:

и три столбца:

СТАНДАРТ: когда говорят о размерах матрицы, то сначала указывают количество строк, а только потом – количество столбцов. Мы только что разобрали по косточкам матрицу «два на три».

Если количество строк и столбцов матрицы совпадает, то матрицу называют квадратной, например: – матрица «три на три».

Если в матрице один столбец или одна строка , то такие матрицы также называют

векторами.

На самом деле понятие матрицы мы знаем еще со школы, рассмотрим, например точку с координатами «икс» и «игрек»: . По существу, координаты точки записаны в матрицу «один на два». Кстати, вот Вам и пример, почему порядок чисел имеет значение: и – это две совершенно разные точки плоскости.

Теперь переходим непосредственно к изучению действий с матрицами:

1) Действие первое. Вынесение минуса из матрицы (внесение минуса в матрицу).

Вернемся к нашей матрице . Как вы наверняка заметили, в данной матрице слишком много отрицательных чисел. Это очень неудобно с точки зрения выполнения различных действий с матрицей, неудобно писать столько минусов, да и просто в оформлении некрасиво выглядит.

Вынесем минус за пределы матрицы, сменив у КАЖДОГО элемента матрицы знак:

У нуля, как Вы понимаете, знак не меняется, ноль – он и в Африке ноль.

Обратный пример: . Выглядит безобразно.

Внесем минус в матрицу, сменив у КАЖДОГО элемента матрицы знак:

Ну вот, гораздо симпатичнее получилось. И, самое главное, выполнять какие-либо действия с матрицей будет ПРОЩЕ. Потому-что есть такая математическая народная примета: чем больше минусов – тем больше путаницы и ошибок.

2) Действие второе. Умножение матрицы на число.

Пример:

Всё просто, для того чтобы умножить матрицу на число, нужно каждый элемент матрицы умножить на данное число. В данном случае – на тройку.

Еще один полезный пример:

– умножение матрицы на дробь

Сначала рассмотрим то, чего делать НЕ НАДО:

Вносить дробь в матрицу НЕ НУЖНО, во-первых, это только затрудняет дальнейшие действия с матрицей, во-вторых, затрудняет проверку решения преподавателем (особенно, если – окончательный ответ задания).

И, тем более, НЕ НАДО делить каждый элемент матрицы на минус семь:

Из статьи Математика для чайников или с чего начать, мы помним, что десятичных дробей с запятой в высшей математике стараются всячески избегать.

Единственное, что желательно сделать в этом примере – это внести минус в матрицу:

А вот если бы ВСЕ элементы матрицы делились на 7 без остатка, то тогда можно (и нужно!) было бы поделить.

Пример:

В этом случае можно и НУЖНО умножить все элементы матрицы на , так как все числа матрицы делятся на 2 без остатка.

Примечание: в теории высшей математики школьного понятия «деление» нет. Вместо фразы «это поделить на это» всегда можно сказать «это умножить на дробь». То есть, деление – это частный случай умножения.

3) Действие третье. Транспонирование матрицы.

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

Пример:

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

Строка здесь всего одна и, согласно правилу, её нужно записать в столбец:

– транспонированная матрица.

Транспонированная матрица обычно обозначается надстрочным индексом или штрихом справа вверху.

Пошаговый пример:

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

Сначала переписываем первую строку в первый столбец:

Потом переписываем вторую строку во второй столбец:

И, наконец, переписываем третью строку в третий столбец:

Готово. Грубо говоря, транспонировать – это значит повернуть матрицу набок.

4) Действие четвертое. Сумма (разность) матриц.

Сумма матриц действие несложное.
НЕ ВСЕ МАТРИЦЫ МОЖНО СКЛАДЫВАТЬ. Для выполнения сложения (вычитания) матриц, необходимо, чтобы они были ОДИНАКОВЫМИ ПО РАЗМЕРУ.

Например, если дана матрица «два на два», то ее можно складывать только с матрицей «два на два» и никакой другой!

Пример:

Сложить матрицы и

Для того чтобы сложить матрицы, необходимо сложить их соответствующие элементы:

Для разности матриц правило аналогичное, необходимо найти разность соответствующих элементов.

Пример:

Найти разность матриц ,

А как решить данный пример проще, чтобы не запутаться? Целесообразно избавиться от лишних минусов, для этого внесем минус в матрицу :

Примечание: в теории высшей математики школьного понятия «вычитание» нет. Вместо фразы «из этого вычесть это» всегда можно сказать «к этому прибавить отрицательное число». То есть, вычитание – это частный случай сложения.

5) Действие пятое. Умножение матриц.

Чем дальше в лес, тем толще партизаны. Скажу сразу, правило умножения матриц выглядит очень странно, и объяснить его не так-то просто, но я все-таки постараюсь это сделать, используя конкретные примеры.

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

Чтобы матрицу можно было умножить на матрицу нужно, чтобы число столбцов матрицы равнялось числу строк матрицы .

Пример:
Можно ли умножить матрицу на матрицу ?

, значит, умножать данные матрицы можно.

А вот если матрицы переставить местами, то, в данном случае, умножение уже невозможно!

, следовательно, выполнить умножение невозможно:

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

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

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

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

Начнем с самого простого:

Пример:

Умножить матрицу на матрицу
Я буду сразу приводить формулу для каждого случая:

– попытайтесь сразу уловить закономерность.

Пример сложнее:

Умножить матрицу на матрицу

Формула:

В результате получена так называемая нулевая матрица.

Попробуйте самостоятельно выполнить умножение (правильный ответ ).

Обратите внимание, что ! Это почти всегда так!

Таким образом, при умножении переставлять матрицы нельзя!

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

Переходим к матрицам третьего порядка:

Умножить матрицу на матрицу

Формула очень похожа на предыдущие формулы:

А теперь попробуйте самостоятельно разобраться в умножении следующих матриц:

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

Вот готовое решение, но постарайтесь сначала в него не заглядывать!

6) Действие шестое. Нахождение обратной матрицы.

Данная тема достаточно обширна, и я вынес этот пункт на отдельную страницу.

А пока спектакль закончен.

 

studopedya.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}:

C=[c11c12⋯c1nc21

encyclopaedia.bid