Естественные науки
Почему матричное умножение работает именно так?
Под "Почему матричное умножение работает именно так?" я подразумеваю, то, почему мы для нахождения например первого элемента полученной после умножения матрицы, именно умножать элемент первого столбца первой матрицы, на элемент первой строки второй матрицы и затем складывать с произведением второго столбца первой матрицы на вторую строку второй матрицы и т. д. Почему не вычитать?. Почему умножаются именно столбцы на строки, а не строки на строки? В чём вообще смысл этих действий? Не из воздуха же это всё придумали. Я пытаюсь найти это уже довольно таки долго. Но на всех сайтах, которые я просмотрел, были только правила умножения матриц, и их свойства. Конечно может я плохо искал (поэтому дожидаясь ответа, буду параллельно дальше искать). Если вы знаете какой-нибудь источник, где это можно узнать, прошу скажите. (желательно в простой форме, ибо я новичок в линейной алгебре. Но и в сложной тоже пойдёт, лишь бы было)
Это понять очень просто на примере квадратных матриц.
Попробуйте в многомерном пространстве взять какой-нибудь вектор и "честно" пересчитать его координаты, если произвести сначала одно преобразование пространства, которое оставляет нулевую точку на месте, а потом другое преобразование пространства, которое тоже оставляет нулевую точку на месте.
Ну, например, сначала поворот в трехмерном пространстве на какой-то угол вокруг одной оси, а потом поворот на другой угол вокруг другой оси, которая пересекает первую ось. Можно для визуализации использовать, например, кубик Рубика.
Если с трехмерным пространством трудности, то попробуйте на плоскости, например, комбинации поворотов, отражений и инверсий.
Вы увидите, что результат в точности совпадает перемножению квадратных матриц, если суметь каждое их этих преобразований записать в виде матриц.
Если матрицы не квадратные, то там этот закон перемножения выводится только математически. Если у вас заданы два преобразования пространства A и B, так, что координаты векторов X и Y преобразуются как
t1 = a11*x1 + .+ a1m*xm
...
tn= an1*x1 + .+ anm*xm
и
s1 = b11*y1 + .+ b1n*yn
...
sk= bk1*y1 + .+ bkn*yn
Теперь возьмите все вычисленные координаты T из первых формул и подставьте их во вторые формулы вместо соответствующих координат Y. То есть вместо y1 подставляете выражение для t1, и т. д. до вместо yn подставляете выражение для tn. Таким образом вы выразите координаты S через координаты X. И вы увидите, что получился закон перемножения матриц. Потренируйтесь сначала на 2-мерном пространстве.
Попробуйте в многомерном пространстве взять какой-нибудь вектор и "честно" пересчитать его координаты, если произвести сначала одно преобразование пространства, которое оставляет нулевую точку на месте, а потом другое преобразование пространства, которое тоже оставляет нулевую точку на месте.
Ну, например, сначала поворот в трехмерном пространстве на какой-то угол вокруг одной оси, а потом поворот на другой угол вокруг другой оси, которая пересекает первую ось. Можно для визуализации использовать, например, кубик Рубика.
Если с трехмерным пространством трудности, то попробуйте на плоскости, например, комбинации поворотов, отражений и инверсий.
Вы увидите, что результат в точности совпадает перемножению квадратных матриц, если суметь каждое их этих преобразований записать в виде матриц.
Если матрицы не квадратные, то там этот закон перемножения выводится только математически. Если у вас заданы два преобразования пространства A и B, так, что координаты векторов X и Y преобразуются как
t1 = a11*x1 + .+ a1m*xm
...
tn= an1*x1 + .+ anm*xm
и
s1 = b11*y1 + .+ b1n*yn
...
sk= bk1*y1 + .+ bkn*yn
Теперь возьмите все вычисленные координаты T из первых формул и подставьте их во вторые формулы вместо соответствующих координат Y. То есть вместо y1 подставляете выражение для t1, и т. д. до вместо yn подставляете выражение для tn. Таким образом вы выразите координаты S через координаты X. И вы увидите, что получился закон перемножения матриц. Потренируйтесь сначала на 2-мерном пространстве.
Возьмём другой пример: деление многозначных чисел столбиком. Вот Вам так уж важно, ПОЧЕМУ каждый шаг алгоритма выполняется именно так, а не иначе? Вот почему делитель надо умножать на подобранную цифру, почему полученное произведение надо вычитать, а прибавлять и т. д.? Конечно, объяснить всё это можно, хотя тоже надо мозги подключать, но нужно ли? Нам важно, что метод работает!!! Потому, что если частное умножишь на делитель, то получишь обратно делимое!
Ещё более сложный случай: извлечение квадратного корня столбиком - знаете такой алгоритм? Там уже нужно хорошенько напрячь мозги, чтобы убедиться в правомерности каждого шага. А на фига это надо? Поэтому Вы нигде и не прочитаете, откуда взялся алгоритм - никто просто парится над этим не будет. Важен результат: при возведении в квадрат получаем исходное число.
Так и при умножении матриц: важно, что при обратном действии получаем исходную матрицу.
Ещё более сложный случай: извлечение квадратного корня столбиком - знаете такой алгоритм? Там уже нужно хорошенько напрячь мозги, чтобы убедиться в правомерности каждого шага. А на фига это надо? Поэтому Вы нигде и не прочитаете, откуда взялся алгоритм - никто просто парится над этим не будет. Важен результат: при возведении в квадрат получаем исходное число.
Так и при умножении матриц: важно, что при обратном действии получаем исходную матрицу.
Это не единственный способ умножения матриц. "По определению", а другие способы работают по другому определению. Этот способ наиболее распространён из-за инженерных приложений.
Надежда Макарова
Можно доказать, что при линейное преобразование одного линейного пространства в другое (R1 -> R2), описывается матрицей (обратного преобразования может и не быть), Если ещё раз преобразовать, то тоже матрицей (R2->R3) матрица преобразования из первого в третье (R1->R3) должна быть рассчитана по правилу умножения матриц (которое вы описали). Доказывается всё это несложно, но "много букофф"
Матрица была изобретена как численное отображение конечномерных линейных операторов для векторов.
Линейный оператор при этом сводится к совокупности скалярных произведений исходного вектора на вектора матрицы.
Далее нужно было сделать так, чтобы последовательное применение двух линейных операторов к вектору было эквивалентно последовательному умножению вектора на две матрицы. При этом последовательное применение двух линейных операторов - это тоже линейный оператор. Соответственно нужно было придумать способ умножения матриц так, чтобы этот-же процесс соответствовал умножению произведения матриц на вектор.
И вот если бы умножение было строка на строку, то при умножении матриц пришлось бы делать транспонирование, поскольку применение линейных операторов некоммутативно, а умножение строк - коммутативно. Поэтому так и придумали - строка на столбец.
Линейный оператор при этом сводится к совокупности скалярных произведений исходного вектора на вектора матрицы.
Далее нужно было сделать так, чтобы последовательное применение двух линейных операторов к вектору было эквивалентно последовательному умножению вектора на две матрицы. При этом последовательное применение двух линейных операторов - это тоже линейный оператор. Соответственно нужно было придумать способ умножения матриц так, чтобы этот-же процесс соответствовал умножению произведения матриц на вектор.
И вот если бы умножение было строка на строку, то при умножении матриц пришлось бы делать транспонирование, поскольку применение линейных операторов некоммутативно, а умножение строк - коммутативно. Поэтому так и придумали - строка на столбец.
Похожие вопросы
- Почему при умножении двух отрицательных чисел получается положительное?
- почему при умножении минус на минус будет плюс, апри умножении минус на плюс будет минус?
- почему при отрицательной степени дробь переворачивается? почему сначала умножение, а потом сложение?
- Почему при умножении на "-1" знак неравенства меняется на обратный?
- Почему при умножении отрицательного числа на отрицательное число получается положительное?
- Почему при умножении на число от 0 до 1 получается меньшее?
- Почему у умножения и деления выше приоритет? Кто и зачем это придумал?
- Почему температура абсолютного нуля именно -273,15?
- Почему наша планета называется именно Земля...
- Почему скорость света равна именно 300 000 км/с?
Что же касается матриц, то достаточно представить, что умножаем матрицу на группу векторов.