Почему умножение матриц такое / Хабр
Наверное, каждый задавался вопросом, почему умножение матриц такое. В этой статье мы разберём из каких соображений оно вводится именно так.
Маленькое предисловие
В дальнейшем нам понадобится такая структура, как векторное пространство, а точнее его частный случай — пространство столбцов высотынад Кратко напомню, что под этим понимается.
Во-первых, — это следующее множество
где таким образом обозначен вектор-столбец высотыто есть
Во-вторых, для любых векторовопределено сложение
и для любого вектораопределено умножение на скаляр
В-третьих, каждый векторединственным образом представим в следующем виде
где — скаляры, а — следующая система векторов
Такая система векторов называется базис, а скаляры, участвующие в разложение вектора, называются координатами этого вектора в данном базисе. Стоит отметить, что в это не единственный базис, но везде далее под «зафиксируем базис» можно понимать именно эту систему векторов.
Умножение матрицы на вектор
Прежде чем переходить к умножению матриц, посмотрим, из каких соображений вводится умножение матрицы на вектор. Для этого рассмотрим линейное отображение
То, что— линейное отображение, означает, что для любых векторови любого скаляравыполняются следующие два условия:
Или их можно объединить в одно
Нас интересует, как линейное отображениедействует на произвольный вектор Для этого зафиксируем в базис а в базис Теперь мы можем разложить векторпо базису
и представитьв следующем виде
Заметим, что а поскольку в зафиксирован базис, то эти векторы также можно разложить по базису
или тоже самое в векторной записи
Подставляем в равенство выше и получаем
Но правая часть равенства есть не что иное, как формула умножения матрицы на вектор-столбец
где столбцы матрицы есть векторы
Получается, можно ввести умножение матрицы на вектор по следующему правилу
И такое определение умножения будет согласовано с тем, как линейное отображениедействует на вектор
Если теперь обозначить то координаты вектора выражаются через координаты вектора следующим образом
Кроме того, мы получили и другой важный результат, вернёмся к выражению для
Из него следует, что линейное отображениеполностью определяется своими значениями на базисных векторах, то есть, если нужно найтито достаточно знать
Далее, мы поместили эти векторы в матрицу и определили умножение так, чтоесть произведение соответствующей матрицынаПолучается, что линейному отображению можно поставить в соответствие матрицу, которая полностью его определяет
Такая матрица называется матрицей линейного отображенияв выбранных базисах пространств и
Если говорить более строго, то существует взаимно однозначное соответствие между линейными отображениями из в и матрицами размера
Теперь мы можем перейти к умножению матрицы на матрицу.
Умножение матрицы на матрицу
Рассмотрим линейные отображенияи
и их композицию
Легко проверяется, что будет линейным отображением
Поэтому, если зафиксировать в и базисы, то каждому линейному отображению можно поставить в соответствие его матрицу
Нас теперь интересует, как между собой они связаны. Для этого рассмотрим следующее равенство
и найдём координаты вектора через координаты вектора
Так както
Но из равенстваследует, что
Подставляем в равенство выше и получаем
С другой стороны,то есть
Сравнивая первое и второе равенство для координатполучаем такое соотношение
которое является формулой умножения матрицы на матрицу.
Таким образом, умножение матрицы на матрицу вводится исходя из того, как действует композиция линейных отображений.
Другими словами, если линейным отображениямипоставить в соответствие их матрицыито композиции этих отображенийставится в соответствие матрица, которая является произведением матриц
Отсюда, кстати, следует, что матрицыиможно умножить только тогда, когда число столбцов матрицыравно числу строк матрицы
Пусть — матрица размера а — матрица размера Тогда, если в пространствах и зафиксировать базисы, то этим матрицам ставятся в соответствие линейные отображенияи
Но композиция определена только тогда, когда то есть число столбцов матрицыравно числу строк матрицы
Заключение
Таким образом, умножение матриц вводится исходя из того, как действуют линейные отображения. И это намекает на некую связь между ними.
Ниже оставлю различные учебники по алгебре, где можно про всё это прочитать более подробно, и другие различные источники.
Ссылки на литературу и различные источники
Основное:
[1] Введение в алгебру. В 3 частях. Часть 1. Основы алгебры. Кострикин А.И.
Дополнительное:
[1] Введение в алгебру. В 3 частях. Часть 2. Линейная алгебра. Кострикин А.И.
[2] Линейная алгебра и геометрия, Кострикин А.И., Манин Ю.И.
Прочее:
Для создания графики использовался manimCE: https://github.com/manimCommunity/manim
Кому интересно, то вот видео к статье:
Сообщество Экспонента
- вопрос
- 23.06.2023
Встраиваемые системы, Изображения и видео, Робототехника и беспилотники, Системы управления, Цифровая обработка сигналов, Глубокое и машинное обучение(ИИ), ПЛИС и СнК
Коллеги, подскажите в проблемке: требуется полностью программно повторить работу матлабошной функции semanticseg(im, net), для которой в самом же матлабе уже обучил небольшую сеть из 10 слоёв. Сама се…
Коллеги, подскажите в проблемке: требуется полностью программно повторить работу матлабошной функции semanticseg(im, net), для которой в самом же матлабе уже обучил небольшую сеть из 10 слоёв. Сама се…
- Публикация
- 23.06.2023
Глубокое и машинное обучение(ИИ), Изображения и видео, Электропривод и силовая электроника
Номинации: Математическое моделирование энергосистем Разработка и усовершенствование алгоритмов РЗА Обеспечение информационной безопасности на ЦПС Функционирование сетей с ВИЭ, СНЭ и силовой электроникой Применение СВИ для управления ЭЭС Применение ИИ для реш…
Конкурс ВКР для студентов-электроэнергетиков от ЦИТМ Экспонента!
Запускаем первый конкурс ВКР для студентов-выпускников из сферы электроэнергетики.
Отправьте свою выпускную работу на [email protected] и получите возможность выиграть Яндекс станцию.
- вопрос
- 14.06.2023
Цифровая обработка сигналов, Финансы, Изображения и видео
необходима помощь в дешефровании сообщения , англоязычный текст
необходима помощь в дешефровании сообщения , англоязычный текст
- Публикация
- 14. 06.2023
Встраиваемые системы, Автоматизация испытаний, Электропривод и силовая электроника
Рис. 1. КПМ РИТМ Команда лаборатории цифрового моделирования в электроэнергетике ЦИТМ Экспонента внедряет концепцию модельно-ориентированного проектирования (МОП) в отрасли, неотъемлемой частью этой концепции являются программно-аппаратные комплексы мо…
Введение
Цифровизация отрасли электроэнергетики ведет не только к усложнению микропроцессорной техники в области релейной защиты и автоматики, увеличению количества потоков данных и общего развития информационной инфраструктуры на объектах, а также ко все большему применению современных инструментов и методов разработки и тестирования всех этих систем и устройств.
- вопрос
- 12.06.2023
Робототехника и беспилотники, Другое, Математика и статистика, ПЛИС и СнК
Ниже представлен простецкий код в Matlab для поиска параметров полёта летательного аппарата.
Ниже представлен простецкий код в Matlab для поиска параметров полёта летательного аппарата. Как можно встроить в данный код оптимизацию таким образом, чтобы искать наивыгодный fik(конечный угол), при…
- математическое моделирование
12.06.2023
- вопрос
- 02.06.2023
Другое
В таблице , в одном из столбцев есть нужная переменная, как достать все данные об этой строке отталикиваясь только от этой переменной?
В таблице , в одном из столбцев есть нужная переменная, как достать все данные об этой строке отталикиваясь только от этой переменной?
- вопрос
- 31.05.2023
Цифровая обработка сигналов, Математика и статистика, Системы управления, Другое
Добрый день, нужна помощь в работе с таблицей. У меня есть определенный коэф. Kg=2.53, в таблице идет столбец значений Kg, как осуществить поиск и выбор нужного значения, между теми, что идут в таблиц…
Добрый день, нужна помощь в работе с таблицей. У меня есть определенный коэф. Kg=2.53, в таблице идет столбец значений Kg, как осуществить поиск и выбор нужного значения, между теми, что идут в таблиц…
3 Ответа
- вопрос
- 28.05.2023
Другое, Математика и статистика
Здравствуйте, помогите пожалуйста разобраться с преобразованием Фурье. Желательно с объяснением решения (см. вложенный скрин). Заранее всем спасибо!
Здравствуйте, помогите пожалуйста разобраться с преобразованием Фурье. Желательно с объяснением решения (см. вложенный скрин). Заранее всем спасибо!
2 Ответа
- фурье
28.05.2023
- вопрос
- 26.05.2023
Другое
Возможны ли облачные вычисления в среде MatLab, без установки приложения на собственный компьютер? Если » да», то как это сделать?
Возможны ли облачные вычисления в среде MatLab, без установки приложения на собственный компьютер? Если » да», то как это сделать?
1 Ответ
- вопрос
- 20. 05.2023
Электропривод и силовая электроника, Другое
Нужно смоделировать устройство (Блок схемы уже есть) которые изготавливают упругие элементы из проволоки для амортизаторов бортовой радиоэлектронной аппаратуры. Там есть обратная связь ( в виде датчик…
Нужно смоделировать устройство (Блок схемы уже есть) которые изготавливают упругие элементы из проволоки для амортизаторов бортовой радиоэлектронной аппаратуры. Там есть обратная связь ( в виде датчик…
6 Ответов
- Simulink
- Моделирование систем
- математическое моделирование
20.05.2023
Как умножить вектор на скаляр в питоне?
спросил
Изменено 2 года, 10 месяцев назад
Просмотрено 3к раз
Я хочу умножить вектор на скаляр на цикл, т. е.: x1=[2,3,4,5]
и я хочу умножить на 2, чтобы получить х1=2(х2)
, х2=[4,6,8,10]
.
Я попытался сделать это:
def multiplicar_vector (x1): х2=[] для я в x1: х2[я] = (х1[я])*2 печать (x2)
Но это не работает.
- питон
Если вы хотите использовать чистый Python, вы, вероятно, будете использовать понимание списка.
x1 = [элемент * 2 для элемента в x2]
Это берет каждый элемент в x2 и умножает его на 2. Квадратные скобки указывают, что вы хотите составить список результатов. Это эквивалентно:
х1 = [] для предмета в x2: x1.append(элемент * 2)
На самом деле, большинство людей будут использовать numpy при работе с большим количеством векторов, так как это намного быстрее и проще.
импортировать numpy как np x1 = np.массив ([1, 2, 3, 4]) х2 = 2 * х10
Вы можете перебирать каждый элемент и умножать его
x1=[2,3,4,5] N=2 x2 = [x * N для x в x1] печать (x2)
Если вы хотите использовать предопределенный пакет.
импортировать numpy как np х1=[2,3,4,5] N=2 мой_массив = np.массив (x1) x2 = мой_массив * N печать (x2)0
Существует пакет Python, который делает это очень хорошо: numpy
import numpy as np x2 = np.массив (x1) * 21
Зарегистрируйтесь или войдите в систему
Зарегистрируйтесь с помощью Google Зарегистрироваться через Facebook Зарегистрируйтесь, используя электронную почту и парольОпубликовать как гость
Электронная почтаТребуется, но не отображается
Опубликовать как гость
Электронная почтаТребуется, но не отображается
Нажимая «Опубликовать свой ответ», вы соглашаетесь с нашими условиями обслуживания и подтверждаете, что прочитали и поняли нашу политику конфиденциальности и кодекс поведения.
Определение. Почему вектор, умноженный на вектор, равен числу?
Изменено 4 года, 11 месяцев назад
Просмотрено 2к раз
$\begingroup$Мне только что пришло в голову, что у нас есть $$ \text{число} \cdot \text{число} = \text{число} \\ \text{матрица} \cdot \text{матрица} = \text{матрица} $$ но $$ \text{вектор} \cdot \text{вектор} = \text{число} $$ Почему это? Почему $\text{vector} \cdot \text{vector}$ не равен другому $\text{vector}$? Является ли это просто исторической случайностью, что знак «$\cdot$» используется таким образом для векторов, или есть более глубокая причина такой разницы в умножении между числами, матрицами и векторами?
- векторы
- определение
Три вида векторных произведений вместе с тем, что они производят:
- Скалярное произведение: $vector \cdot vector = scalar$
- Сквозное произведение: $vector \times vector = vector$
- Внешний продукт: $vector \otimes vector = matrix$
Таким образом, он производит число (скаляр), только если это скалярное произведение. T\cdot w$$
Это не обязательно единственный способ увидеть это. На самом деле скалярные произведения в векторном пространстве имеют собственную теорию как симметричные билинейные отображения в векторном пространстве (или эрмитовы полуторалинейные отображения в $\Bbb C$-векторном пространстве). С другой стороны, произведение матриц представляет способ вычисления в координатах композиции линейных карт. Эти две вещи проверяют отдельные аспекты (структуры) векторных пространств, поэтому для них естественно вести себя по-разному, несмотря на то, что обе они называются «продуктами»: теоретически они являются «продуктами» в разных контекстах.
$\endgroup$ 2 $\begingroup$Вектор, умноженный на скаляр, возвращает вектор
Перекрестное произведение двух векторов возвращает вектор
Скалярное произведение двух векторов возвращает скаляр
Внешнее произведение двух векторов возвращает матрицу (или тензор)
Я предполагаю, что вы имеете в виду точечный продукт. Скалярный продукт может быть представлен как «количество» одного вектора относительно другого вектора. В этом случае он возвращает скаляр, который можно рассматривать как вектор «количества» A, указывающий в направлении вектора B. (Предположим, что вектор B является единичным вектором). 9Tv=\sum u_iv_i$$
Как было замечено, в трех измерениях мы также можем определить перекрестное произведение векторов, которое возвращает другой вектор.
$\endgroup$ 2 $\begingroup$Намерение присвоить число двум векторам состоит в том, чтобы измерить угол — который является числом — между ними и, кроме того, составной частью одного вектора другого.
$\endgroup$ $\begingroup$Как уже говорили другие, существует много возможных понятий продукта. Те, которые вы перечислили, являются одними из наиболее широко используемых, и на это есть веские причины, но это не означает, что каждый из них является единственно возможным продуктом для своего типа ввода или что они должны иметь все одинаковые свойства.