Перемножение матрицы: Онлайн калькулятор. Умножение матриц

Почему умножение матриц такое / Хабр

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

Маленькое предисловие

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

Во-первых, — это следующее множество

где таким образом обозначен вектор-столбец высотыто есть

Во-вторых, для любых векторовопределено сложение

и для любого вектораопределено умножение на скаляр

В-третьих, каждый векторединственным образом представим в следующем виде

где — скаляры, а — следующая система векторов

Такая система векторов называется базис, а скаляры, участвующие в разложение вектора, называются координатами этого вектора в данном базисе. Стоит отметить, что в это не единственный базис, но везде далее под «зафиксируем базис» можно понимать именно эту систему векторов.

Умножение матрицы на вектор

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

То, что— линейное отображение, означает, что для любых векторови любого скаляравыполняются следующие два условия:

Или их можно объединить в одно

Нас интересует, как линейное отображениедействует на произвольный вектор Для этого зафиксируем в базис а в базис Теперь мы можем разложить векторпо базису

и представитьв следующем виде

Заметим, что а поскольку в зафиксирован базис, то эти векторы также можно разложить по базису

или тоже самое в векторной записи

Подставляем в равенство выше и получаем

Но правая часть равенства есть не что иное, как формула умножения матрицы на вектор-столбец

где столбцы матрицы есть векторы

Получается, можно ввести умножение матрицы на вектор по следующему правилу

И такое определение умножения будет согласовано с тем, как линейное отображениедействует на вектор

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

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

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

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

Такая матрица называется матрицей линейного отображенияв выбранных базисах пространств и

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

Теперь мы можем перейти к умножению матрицы на матрицу.

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

Рассмотрим линейные отображенияи

и их композицию

Легко проверяется, что будет линейным отображением

Поэтому, если зафиксировать в и базисы, то каждому линейному отображению можно поставить в соответствие его матрицу

Нас теперь интересует, как между собой они связаны. Для этого рассмотрим следующее равенство

и найдём координаты вектора через координаты вектора

Так както

Но из равенстваследует, что

Подставляем в равенство выше и получаем

С другой стороны,то есть

Сравнивая первое и второе равенство для координатполучаем такое соотношение

которое является формулой умножения матрицы на матрицу.

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

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

Отсюда, кстати, следует, что матрицыиможно умножить только тогда, когда число столбцов матрицыравно числу строк матрицы

Пусть — матрица размера а — матрица размера Тогда, если в пространствах и зафиксировать базисы, то этим матрицам ставятся в соответствие линейные отображенияи

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

Заключение

Таким образом, умножение матриц вводится исходя из того, как действуют линейные отображения. И это намекает на некую связь между ними.

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

Ссылки на литературу и различные источники

Основное:

[1] Введение в алгебру. В 3 частях. Часть 1. Основы алгебры. Кострикин А.И.

Дополнительное:

[1] Введение в алгебру. В 3 частях. Часть 2. Линейная алгебра. Кострикин А.И.

[2] Линейная алгебра и геометрия, Кострикин А.И., Манин Ю.И.

Прочее:

Для создания графики использовался manimCE: https://github.com/manimCommunity/manim

Кому интересно, то вот видео к статье:

определение, свойства и примеры решения задач

Содержание:

  • Определение
  • Свойства произведения матриц

Определение

Произведением матрицы $A_{m \times n}$ на матрицу $B_{n \times k}$ называется матрица $C_{m \times k}$ такая, что элемент матрицы $C$, стоящий в $i$-ой строке и $j$-ом столбце, т. е. элемент $c_{ij}$, равен сумме произведений элементов $i$-ой строки матрицы $A$ на соответствующие элементы $j$-ого столбца матрицы $B$.

Замечание

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

Пример

Задание. Вычислить $AB$ и $BA$, если $ A=\left( \begin{array}{rr}{1} & {-1} \\ {2} & {0} \\ {3} & {0}\end{array}\right) $ , $ B=\left( \begin{array}{ll}{1} & {1} \\ {2} & {0}\end{array}\right) $

Решение. Так как $ A=A_{3 \times 2} $ , а $ B=B_{2 \times 2} $ , то произведение возможно и результатом операции умножения будет матрица $ C=C_{3 \times 2} $ , а это матрица вида $ C=\left( \begin{array}{ll}{c_{11}} & {c_{12}} \\ {c_{21}} & {c_{22}} \\ {c_{31}} & {c_{32}}\end{array}\right) $ .

Вычислим элементы матрицы $C$ :

$ c_{11}=a_{11} \cdot b_{11}+a_{12} \cdot b_{21}=1 \cdot 1+(-1) \cdot 2=-1 $

$ c_{12}=a_{11} \cdot b_{12}+a_{12} \cdot b_{22}=1 \cdot 1+(-1) \cdot 0=1 $

$ c_{21}=a_{21} \cdot b_{11}+a_{22} \cdot b_{21}=2 \cdot 1+0 \cdot 2=2 $

$ c_{22}=a_{21} \cdot b_{12}+a_{22} \cdot b_{22}=2 \cdot 1+0 \cdot 0=2 $

$ c_{31}=a_{31} \cdot b_{11}+a_{32} \cdot b_{21}=3 \cdot 1+0 \cdot 2=3 $

$ c_{32}=a_{31} \cdot b_{12}+a_{32} \cdot b_{22}=3 \cdot 1+0 \cdot 0=3 $

Итак, $ C=A B=\left( \begin{array}{rr}{-1} & {1} \\ {2} & {2} \\ {3} & {3}\end{array}\right) $ .

Выполним произведения в более компактном виде:

$ C=A B=\left( \begin{array}{rr}{1} & {-1} \\ {2} & {0} \\ {3} & {0}\end{array}\right)_{3 \times 2} \cdot \left( \begin{array}{ll}{1} & {1} \\ {2} & {0}\end{array}\right)_{2 \times 2}= $

$ =\left( \begin{array}{ccc}{1 \cdot 1+(-1) \cdot 2} & {1 \cdot 1+(-1) \cdot 0} \\ {2 \cdot 1+0 \cdot 2} & {2 \cdot 1+0 \cdot 0} \\ {3 \cdot 1+0 \cdot 2} & {3 \cdot 1+0 \cdot 0}\end{array}\right)=\left( \begin{array}{rr}{-1} & {1} \\ {2} & {2} \\ {3} & {3}\end{array}\right) $

Найдем теперь произведение $ D=B A=B_{2 \times 2} \cdot A_{3 \times 2} $. Так как количество столбцов матрицы $B$ (первый сомножитель) не совпадает с количеством строк матрицы $A$ (второй сомножитель), то данное произведение неопределенно. Умножить матрицы в данном порядке невозможно.

Ответ.

$ A B=\left( \begin{array}{rr}{-1} & {1} \\ {2} & {2} \\ {3} & {3}\end{array}\right) $ . В обратном порядке умножить данные матрицы невозможно, так как количество столбцов матрицы $B$ не совпадает с количеством строк матрицы $A$ .

  1. Ассоциативность $ (A \cdot B) \cdot C=A \cdot(B \cdot C) $
  2. Ассоциативность по умножению $ (\mu \cdot A) \cdot B=\mu \cdot(A \cdot B) $
  3. Дистрибутивность $ A \cdot(B+C)=A \cdot B+A \cdot C$, $(A+B) \cdot C=A \cdot C+B \cdot C $,
  4. Умножение на единичную матрицу $ E_{m} \cdot A_{m \times n}=A_{m \times n} \cdot E_{n}=A_{m \times n} $
  5. В общем случае умножение матриц не коммутативно, т.е. $ A B \neq B A $
  6. $ E A=A $

Читать дальше: транспонирование матрицы.

236

проверенных автора готовы помочь в написании работы любой сложности

Мы помогли уже 4 396 ученикам и студентам сдать работы от решения задач до дипломных на отлично! Узнай стоимость своей работы за 15 минут!

Объяснение умножения матриц

(с примерами Python): Полное руководство

В этой статье мы обсудим шаги и интуицию для умножения матриц с примерами, использующими Python.

Содержание

  • Введение
  • Что представляет собой матрица
  • Объяснение умножения матрицы на вектор
  • Умножение матрицы на вектор объяснено графически
  • Умножение матрицы на вектор в Python
  • 0Объяснение умножения матриц
  • Умножение матриц в графическом виде
  • Умножение матриц в Python
  • Заключение

Введение

Умножение матриц — одна из самых популярных тем в линейной алгебре, но ее часто преподают без объяснения какой-либо интуиции, стоящей за ней. Мы все знаем формулы и используем их все время, но действительно ли мы понимаем механику, стоящую за ними?

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

В этой статье мы объясним интуицию и покажем графические объяснения матрицы на вектор и матрицы на умножение матрицы.

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

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

Чтобы продолжить следовать этому руководству, нам понадобится следующая библиотека Python: число .

Если они у вас не установлены, откройте «Командную строку» (в Windows) и установите их, используя следующий код:

пип установить numpy
 

Книги, которые я рекомендую:

  • Ускоренный курс Python
  • Автоматизируйте скучные вещи с помощью Python
  • Помимо базовых вещей с помощью Python
  • Серьезный Python

  • 90 Что представляет собой матрица a 90 030

    Чтобы начать, мы хотим понять, что такое матрица на самом деле и что представляет собой матрица.

    В качестве примера рассмотрим квадратную матрицу 2×2 (где количество строк равно количеству столбцов) и назовем ее матрицей \(A\):

    $$A = \begin{bmatrix} 1 & 6 \\ 2 & 3\end{bmatrix}$$

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


    Например, для каждого входа \(X\) (зеленый) мы получим:

    вывод \(X\) \(1\) (желтый):

    и \(Y\) выход \(2\) (желтый):


    Аналогично, для каждого \(Y\) входа (зеленый) мы получим:

    \(X\) выход \(6\) (желтый):

    a \(Y\) вывод \(3\) (желтый):


    До сих пор это должно быть простой интуицией. Но вопрос в том, зачем нам это вообще нужно? И как это можно использовать?

    В следующем разделе следует наглядный пример, где мы берем эту матрицу \(A\) и пытаемся умножить ее на разные векторы.


    Объяснение умножения матрицы на вектор

    В этом разделе мы продолжим работу с матрицей \(A\):

    $$A = \begin{bmatrix} 1 & 6 \\ 2 & 3 \end{bmatrix}$$

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


    Пример 1. Умножение матрицы на \(\begin{bmatrix} 1 \\ 0 \end{bmatrix} \)vector:

    Допустим, мы хотим умножить матрицу \(A\) на вектор \(b = \begin{bmatrix} 1 \\ 0 \end{bmatrix} \):

    $$ A \times b = \begin{bmatrix} 1 & 6 \\ 2 & 3 \end{bmatrix} \times \begin{bmatrix} 1 \\ 0 \end{bmatrix} = ?$$

    Мы видим, что вектор \(\begin{bmatrix} 1 \\ 0 \end{bmatrix} \) является только входом \(X\), поэтому мы можем вернуться к таблице и спросить: каковы \(X\) и \(Y\) для каждого входа \(X\)?

    Мы можем видеть, что для ввода \(1\) \(X\) выход равен \(1\) \(X\) и \(2\) \(Y\):

    таким образом, что:

    $$A \times b = \begin{bmatrix} 1 & 6 \\ 2 & 3 \end{bmatrix} \times \begin{bmatrix} 1 \\ 0 \end{bmatrix} = \begin{bmatrix} 1 \ \ 2 \end{bmatrix}$$


    Пример 2.

    Умножение матрицы на \(\begin{bmatrix} 0 \\ 1 \end{bmatrix} \)vector:

    В этом примере. допустим, мы хотим умножить матрицу \(A\) на вектор \(c = \begin{bmatrix} 0 \\ 1 \end{bmatrix} \):

    $$A \times c = \begin{bmatrix} 1 & 6 \\ 2 & 3 \end{bmatrix} \times \begin{bmatrix} 0 \\ 1 \end{bmatrix} = ?$$

    Мы видим, что вектор \(\begin{bmatrix} 0 \\ 1 \end{bmatrix} \) является только входом \(Y\), поэтому мы можем вернуться к таблице и спросить: каковы \(X\) и \(Y\) для каждого входа \(Y\)?

    Мы можем видеть, что для ввода \(1\) \(Y\) выход равен \(6\) \(X\) и \(3\) \(Y\):

    таким образом, что:

    $$A \times c = \begin{bmatrix} 1 & 6 \\ 2 & 3 \end{bmatrix} \times \begin{bmatrix} 0 \\ 1 \end{bmatrix} = \begin{bmatrix} 6 \ \ 3 \end{bmatrix}$$


    Пример 3. Умножение матрицы на вектор \(\begin{bmatrix} 3 \\ 2 \end{bmatrix} \):

    В этом примере мы комбинируем логику из предыдущие два примера и посмотрите на умножение матрицы на вектор \(d = \begin{bmatrix} 3 \\ 2 \end{bmatrix} \) со значениями \(X\) и \(Y\):

    $$A \times d = \begin{bmatrix} 1 & 6 \\ 2 & 3 \end{bmatrix} \times \begin{bmatrix} 3 \\ 2 \end{bmatrix} = ?$$

    Мы уже известны выходные данные для каждого входа \(1\) \(X\) и \(1\) \(Y\). Но как оно меняется для больших чисел?

    Выход просто умножается на входное значение. Посмотрим, как мы это посчитаем!

    Для ввода \(X\) теперь у нас есть ввод \(3\) \(X\). Зная, что вывод для каждого значения \(1\) \(X\) равен \(\begin{bmatrix} 1 \\ 2 \end{bmatrix}\), тогда для значений \(3\) \(X\) это: \(\begin{bmatrix} 1 \times 3 \\ 2 \times 3 \end{bmatrix} = \begin{bmatrix} 3 \\ 6 \end{bmatrix} \)

    Для ввода \(Y\) у нас теперь есть ввод \(2\) \(Y\). Зная, что вывод для каждого значения \(1\) \(Y\) равен \(\begin{bmatrix} 6 \\ 3 \end{bmatrix}\), тогда для значений \(2\) \(Y\) это: \(\begin{bmatrix} 6 \times 2 \\ 3 \times 2 \end{bmatrix} = \begin{bmatrix} 12 \\ 6 \end{bmatrix} \)

    И, наконец, нам нужно сложить эти два промежуточных результата вместе:

    $$\begin{bmatrix} 3 \\ 6 \end{bmatrix} + \begin{bmatrix} 12 \\ 6 \end{bmatrix} = \begin{bmatrix} 3+12 \\ 6+6 \end{bmatrix} = \begin{bmatrix} 15 \\ 12 \end{bmatrix} $$

    поэтому:

    $$A \times d = \begin{bmatrix} 1 & 6 \\ 2 & 3 \end{bmatrix} \times \begin{bmatrix} 3 \\ 2 \end{bmatrix} = \begin {bmatrix} 15 \\ 12 \end{bmatrix} $$

    Используя эти шаги, вы можете выполнять умножение матриц, используя любые значения.


    Умножение матрицы на вектор объяснено графически

    Продолжаем работать с матрицей \(A\):

    $$A = \begin{bmatrix} 1 & 6 \\ 2 & 3\end{bmatrix}$$

    а теперь подумайте об этом как о двух отдельных векторах, которые вместе создают эту матрицу.

    Исходные базовые векторы равны \(\vec{v}_1 = (1, 0)\) и \(\vec{v}_2 = (0, 1)\), но после применения матрицы \(A\) на них мы видим, как они сдвигаются и становятся:

    $$\vec{v}_1 = (1, 2)$$

    $$\vec{v}_2 = (6, 3)$$

    и это сдвинутые базовые векторы:

    И вектор \(d = \begin{bmatrix} 3 \\ 2 \end{bmatrix} \) (на который мы умножаем) представляет скаляры для базовых векторов \(\vec{v }_1\) и \(\vec{v}_2\).

    Что это означает, когда дело доходит до умножения в нашем примере? Это означает, что мы сначала умножим каждый базовый вектор (\(\vec{v}_1\) и \(\vec{v}_2\)) на их скаляры (3 и 2 соответственно), а затем найдем сумму векторов результирующие векторы. 9n\)), который является красным вектором, показанным ниже:

    Координаты результирующего вектора (15, 12), который является точно таким же результирующим вектором, как и в решении линейной алгебры, так что:

    $$A \times d = \begin{bmatrix} 1 и 6 \\ 2 & 3 \end{bmatrix} \times \begin{bmatrix} 3 \\ 2 \end{bmatrix} = \begin{bmatrix} 15 \\ 12 \end {bmatrix} $$


    Умножение матрицы на вектор в Python

    Чтобы выполнить умножение матрицы на вектор в Python, мы будем использовать библиотека numpy .

    И первым шагом будет его импорт:

    импортировать numpy как np
     

    Numpy имеет множество полезных функций, и для этой операции мы будем использовать функцию matmul(), которая вычисляет матричное произведение двух массивов.

    Напомним, что в Python матрицы строятся как массивы. И следующим шагом будет определение входных матриц. Мы собираемся использовать те же матрицы 2×2 и 2×1, что и в примере 3 из предыдущего раздела:

    .
    A = np.массив([[1, 6],
                  [2, 3]])
    d = np.массив([[3],
                  [2]])
     

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

    результат = np.matmul(A,d)
    печать (результат)
     

    И вы должны получить:

     [[15]
     [12]] 

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


    Объяснение умножения матриц

    Этот раздел представляет собой просто расширение объяснения умножения матриц на вектор.

    Продолжаем работать с матрицей \(A\):

    $$A = \begin{bmatrix} 1 & 6 \\ 2 & 3 \end{bmatrix}$$

    А теперь попробуем умножить на другую матрицу, \(B\):

    $$ B = \begin{bmatrix} 5 & 1 \\ 3 & 2 \end{bmatrix}$$

    Итак, мы имеем:

    $$A \times B = \begin{bmatrix} 1 & 6 \\ 2 & 3 \end{bmatrix} \times \begin{bmatrix} 5 & 1 \\ 3 & 2 \end{bmatrix} = ?$$


    При умножении матриц важно отметить, что количество строк, если первая матрица (матрица \(A\)) должна быть равна количеству столбцов во второй матрице (матрице \(B\)). И полученная матрица (\(A \times B\)) должна иметь количество строк первой матрицы (матрицы \(A\)) и количество столбцов второй матрицы (матрицы \(B\)), так что:

    Источник

    Как упростить вычисление \(A \times B\)?

    Что мы сделаем, так это попробуем разделить матрицу \(B\) на два вектора в нашем воображении, проведя воображаемую линию между двумя столбцами:

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

    Как вы понимаете, здесь будет три шага:


    Шаг 1:

    Вычислить левую часть полученной матрицы:

    $$A \times \begin{bmatrix} 5 \\ 3 \end{bmatrix} = \begin{bmatrix} 1 & 6 \\ 2 & 3 \end{bmatrix} \times \begin{bmatrix} 5 \\ 3 \end{bmatrix} = \begin{bmatrix} 23 \\ 19 \end{bmatrix}$$


    Шаг 2 :

    Вычислить правую часть полученной матрицы:

    $$A \times \ begin{bmatrix} 1 \\ 2 \end{bmatrix} = \begin{bmatrix} 1 & 6 \\ 2 & 3 \end{bmatrix} \times \begin{bmatrix} 1 \\ 2 \end{bmatrix} = \ begin{bmatrix} 13 \\ 8 \end{bmatrix}$$


    Шаг 3:

    Запишите полученную матрицу в виде:

    $$A \times B = \begin{bmatrix} 1 & 6 \\ 2 & 3 \end{bmatrix} \times \begin{bmatrix} 5 & ​​1 \\ 3 & 2 \end{bmatrix} = \begin{bmatrix} 23 & 13 \\ 19 & 8 \end{bmatrix}$$


    Графическое объяснение умножения матриц

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

    $$A = \begin{bmatrix} 1 & 6 \\ 2 & 3 \end{bmatrix}$$

    $$B = \begin{bmatrix} 5 & 1 \\ 3 & 2 \end{bmatrix}$$

    И давайте снова представим, что мы можем разбить матрицу \(B\) на два вектора следующим образом:

    Мы возьмите матрицу \(A\) и подумайте о ней как о двух отдельных векторах, чем вместе создайте эту матрицу.

    Исходные базовые векторы равны \(\vec{v}_1 = (1, 0)\) и \(\vec{v}_2 = (0, 1)\), но после применения матрицы \(A\) на них мы видим, как они сдвигаются и становятся:

    $$\vec{v}_1 = (1, 2)$$

    $$\vec{v}_2 = (6, 3)$$

    и они являются сдвинутыми базовыми векторами:

    И матрица \(B\) (на которую мы умножаем) представляет два векторных скаляра для базовых векторов \(\vec{v}_1\) и \(\vec{ v}_2\).

    Что это означает, когда дело доходит до умножения в нашем примере?


    Шаг 1:

    Сначала мы умножим каждый базовый вектор (\(\vec{v}_1\) и \(\vec{v}_2\)) на их скаляры (5 и 3 соответственно) из левую половину матрицы \(B\), а затем найти сумму полученных векторов. 9{nr}\)), который является красным вектором, показанным ниже:

    , и теперь это решает левую половину нашей матрицы результатов с этим вектором суммирования (13, 8).


    Шаг 3:

    Объедините результаты предыдущих шагов или просто «склейте» два полученных вектора в одну матрицу.

    На шаге 1 у нас есть результирующий вектор (29, 19), а на шаге 2 у нас есть результирующий вектор (13, 8).

    Собираем в матрицу:

    $$\begin{bmatrix} 23 & 13 \\ 19& 8 \end{bmatrix}$$

    , что является точно такой же результирующей матрицей, как и в решении линейной алгебры, таким образом, что:

    $$A \times B = \begin{bmatrix} 1 & 6 \\ 2 & 3 \end{bmatrix} \times \begin{bmatrix} 5 & 1 \\ 3 & 2 \end{bmatrix} = \begin{bmatrix} 23 & 13 \\ 19 & 8 \end{bmatrix}$$


    Матрица умножение в Python

    Чтобы выполнить умножение матрицы на вектор в Python, мы будем использовать библиотеку numpy. И первым шагом будет его импорт:

    импортировать numpy как np
     

    Numpy имеет множество полезных функций, и для этой операции мы будем использовать функцию matmul(), которая вычисляет матричное произведение двух массивов.

    Напомним, что в Python матрицы строятся как массивы. И следующим шагом будет определение входных матриц. Мы собираемся использовать те же матрицы 2×2 и 2×2, что и в примере из предыдущего раздела:

    . 
    A = np.массив([[1, 6],
                  [2, 3]])
    B = np.массив([[5, 1],
                  [3, 2]])
     

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

    результат = np.matmul(A, B)
    печать (результат)
     

    И вы должны получить:

     [[23 13]
     [19 8]] 

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


    Заключение

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

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

    Матрицы какого размера можно перемножать?

    Скалярное и матричное умножение По элементам / The Identity

    Purplemath

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

    Содержание продолжается ниже

    MathHelp.com

    Но это поэлементное умножение требует, чтобы количество элементов в строках первой матрицы было таким же, как количество элементов в столбцах второй матрицы. Означает ли это, что некоторые матрицы нельзя перемножать?

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

    Чтобы можно было перемножить две матрицы, количество столбцов в левой матрице должно совпадать с количеством строк в правой матрице. Иными словами, количество элементов в строках левой матрицы должно быть таким же, как количество элементов в столбцах правой матрицы.

    Как и при сложении матриц, размер матриц имеет значение при умножении. Чтобы умножение матриц работало, в столбцах второй матрицы должно быть столько же элементов, сколько в строках первой матрицы.

    Давайте еще раз посмотрим на умножение матриц с предыдущей страницы:

    AB =

    Если бы, используя приведенные выше матрицы, B имел бы только две строки, его столбцы были бы слишком короткими для умножения. против рядов А . При этом условии матричный продукт AB не существовал бы; произведение было бы «неопределенным» (то есть не имело бы никакого математического смысла).

    Точно так же, если бы B имел, скажем, четыре строки или, альтернативно, если бы A имел два или четыре столбца, то AB снова не существовало бы, потому что A и B не имели бы были нужные размеры.

    Другими словами, для существования AB (то есть для того, чтобы сам процесс умножения матриц мог нормально функционировать), A должен иметь такое же количество столбцов, как B имеет строки; Глядя на матрицы, строки A должны быть той же длины, что и столбцы B .

    Вы можете использовать этот факт, чтобы быстро проверить, определено ли данное умножение (и вас *будут* спрошены). Запишите произведение в терминах размеров матрицы. В приведенном выше примере A равно 2×3, а B равно 3×2, поэтому произведение AB , выраженное в терминах размеров матрицы, равно (2×3)(3×2) .

    Средние значения совпадают, поэтому матричное произведение имеет смысл в рамках правил и определений:

    …так что умножение определено. Как видите, матрица AB , будучи матрицей произведения, представляет собой матрицу 2×2. Вы также можете увидеть это на размерах:

    Используя эту информацию о размерах, вы можете видеть, что матрица продукта BA должна быть отличной от матрицы продукта AB , потому что ее размеры даже не совпадают:

    Продукт BA определен; то есть произведение соответствует правилам, которые позволяют нам выполнять умножение. Но размеры произведения при перемножении матриц в таком порядке будут 3×3, а не 2×2, как было AB .

    В частности, умножение матриц *не* коммутативно. Вы не можете поменять порядок факторов (то есть матриц в произведении) и ожидать того же результата. Для матричного умножения AB больше не равно BA .

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

    Вы можете использовать виджет Mathway ниже, чтобы попрактиковаться в нахождении размеров матрицы. (Или пропустите виджет и продолжите урок.) Попробуйте введенное упражнение или введите свое собственное упражнение. Затем нажмите кнопку и выберите «Найти размеры», чтобы сравнить свой ответ с ответом Mathway.

    Пожалуйста, примите куки-файлы настроек, чтобы включить этот виджет.

    (Нажмите «Нажмите, чтобы просмотреть шаги», чтобы перейти непосредственно на сайт Mathway для платного обновления.)


    • По следующим матрицам найдите продукт BA .

    Умножение работает так же, как предыдущая задача, проходя по строкам и вниз по столбцам. Я не буду пытаться снова рисовать свои руки, но вы можете увидеть расчеты в цветах ниже:

    Тогда мой ответ:


    Какая связь между умножением матриц и переместительным свойством?

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

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *