Почему MATLAB так быстро выполняет умножение матриц?

Опубликовано: 19 Февраля, 2023

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

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

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

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

Умножение матриц возможно, только если количество столбцов n в U равно количеству строк n в V. При умножении матриц элементы строк первой матрицы умножаются на элементы столбцов второй матрицы. Если U — матрица mxn, а V — матрица nxp, их можно объединить, чтобы получить матрицу mxp Z.
Сумма произведений элементов в i-й строке первой матрицы и соответствующего элемента в j-м столбце второй матрицы дает каждый элемент в (i, j)-й позиции конечной матрицы Z. Используется оператор * в MATLAB для выполнения матричного умножения.

Пример 1:

Выход:

Файл отображает следующий результат при запуске

Самый быстрый алгоритм умножения матриц:

Алгоритм Штрассена — это алгоритм умножения матриц, используемый в линейной алгебре. Он назван в честь Фолькера Штрассена. Хотя наивный алгоритм часто лучше подходит для меньших матриц, он быстрее, чем стандартный алгоритм матричного умножения для больших матриц, и имеет более низкую асимптотическую сложность. это уменьшает общее количество операций, умножение матриц (MM) Штрассена имеет преимущества перед любой (тщательно настроенной) реализацией MM. Заменив матричные сложения (МА) на дорогостоящие в вычислительном отношении ММ, Штрассен смог сократить количество операций.

Является ли умножение матриц быстрее, чем для циклов в MATLAB? Итак, из-за библиотек, которые вы используете. Простой цикл for использует интерпретатор Python, который невероятно медленный. Скорее всего, хорошая библиотека матриц, которую вы используете, является просто оболочкой Python для гораздо более быстрых математических библиотек C или C++.