НОУ ИНТУИТ | Лекция | Параллельные методы матричного умножения
< Лекция 6 || Лекция 7: 123456 || Лекция 8 >
Аннотация: В лекции рассматривается одна из основных задач матричных вычислений — умножение матриц. Приводится постановка задачи и дается последовательный алгоритм ее решения. Далее описываются возможные подходы к параллельной реализации алгоритма и подробно рассматриваются наиболее широко известные алгоритмы: алгоритм, основанный на ленточной схеме разделения данных, алгоритм Фокса (Fox) и алгоритм Кэннона (Cannon)
Ключевые слова: умножение матриц, Произведение, алгоритм, вычисление, цикла, время выполнения, операции, скалярное умножение, операции передачи данных, EM64T, computer cluster, вычислительный эксперимент, представление, балансировка вычислений, программная реализация, MPI, производный тип данных, операция циклического сдвига, матрица, разбиение, алгоритмы Фокса и Кэннона, матричные вычисления
7.1. Постановка задачи
intuit.ru/2010/edi”>Умножение матрицы A размера mxn и матрицы B размера nxl приводит к получению матрицы С размера mxl, каждый элемент которой определяется в соответствии с выражением:( 7.1) |
Как следует из (7.1), каждый элемент результирующей матрицы С есть скалярное произведение соответствующих строки матрицы A и столбца матрицы B:
( 7.2) |
Этот алгоритм предполагает выполнение mxnxl операций умножения и столько же
операций сложения элементов исходных матриц. При умножении
квадратных матриц размера nxn количество
выполненных операций имеет порядок O(n3).
Известны последовательные алгоритмы умножения матриц, обладающие
меньшей вычислительной сложностью (например, алгоритм Страссена
( Strassen’s algorithm )), но эти алгоритмы
требуют больших усилий для их освоения, и поэтому в данной лекции
при разработке параллельных методов в качестве основы будет
использоваться приведенный выше последовательный алгоритм. Также
будем предполагать далее, что все матрицы являются квадратными и
имеют размер nxn.
7.2. Последовательный алгоритм
Последовательный алгоритм умножения матриц представляется тремя вложенными циклами:
Алгоритм 7.1. Последовательный алгоритм умножения двух квадратных матриц
// Алгоритм 7.1 // Последовательный алгоритм умножения матриц double MatrixA[Size][Size]; double MatrixB[Size][Size]; double MatrixC[Size][Size]; int i,j,k; ... for (i=0; i<Size; i++){ for (j=0; j<Size; j++){ MatrixC[i][j] = 0; for (k=0; k<Size; k++){ MatrixC[i][j] = MatrixC[i][j] + MatrixA[i][k]*MatrixB[k][j]; } } }
Этот алгоритм является итеративным и ориентирован на последовательное вычисление строк матрицы С. Действительно, при выполнении одной итерации внешнего цикла (цикла по переменной i ) вычисляется одна строка результирующей матрицы (см. рис. 7.1).
Рис. 7.1. На первой итерации цикла по переменной i используется первая строка матрицы A и все столбцы матрицы B для того, чтобы вычислить элементы первой строки результирующей матрицы С
Поскольку каждый элемент результирующей матрицы есть скалярное произведение строки и столбца исходных матриц, то для вычисления всех элементов матрицы С размером nxn необходимо выполнить n2x(2n–1) скалярных операций и затратить время
(
7.![]() |
где есть время выполнения одной элементарной скалярной операции.
7.3. Умножение матриц при ленточной схеме разделения данных
Рассмотрим два параллельных алгоритма умножения матриц, в которых матрицы A и B разбиваются на непрерывные последовательности строк или столбцов (полосы).
7.3.1. Определение подзадач
Из определения операции матричного умножения следует, что
вычисление всех элементов матрицы С может быть
выполнено независимо друг от друга. Как результат, возможный
подход для организации параллельных вычислений состоит в
использовании в качестве базовой подзадачи процедуры определения
одного элемента результирующей матрицы С. Для
проведения всех необходимых вычислений каждая подзадача должна
содержать по одной строке матрицы А и одному столбцу
матрицы В. Общее количество получаемых при таком
подходе подзадач оказывается равным n
Рассмотрев предложенный подход, можно отметить, что достигнутый уровень параллелизма является в большинстве случаев избыточным. Обычно при проведении практических расчетов такое количество сформированных подзадач превышает число имеющихся процессоров и делает неизбежным этап укрупнения базовых задач. В этом плане может оказаться полезной агрегация вычислений уже на шаге выделения базовых подзадач. Возможное решение может состоять в объединении в рамках одной подзадачи всех вычислений, связанных не с одним, а с несколькими элементами результирующей матрицы С. Для дальнейшего рассмотрения определим базовую задачу как процедуру вычисления всех элементов одной из строк матрицы С. Такой подход приводит к снижению общего количества подзадач до величины n.
Для выполнения всех необходимых вычислений базовой подзадаче
должны быть доступны одна из строк матрицы A и все
столбцы матрицы B. Простое решение этой проблемы –
дублирование матрицы B во всех подзадачах –
является, как правило, неприемлемым в силу больших затрат памяти
для хранения данных.
7.3.2. Выделение информационных зависимостей
1. Первый алгоритм. Алгоритм представляет собой
итерационную процедуру, количество итераций которой совпадает с
числом подзадач. На каждой итерации алгоритма каждая подзадача
содержит по одной строке матрицы А и одному столбцу матрицы В. При выполнении итерации проводится скалярное умножение
содержащихся в подзадачах строк и столбцов, что приводит к
получению соответствующих элементов результирующей матрицы С. По
завершении вычислений в конце каждой итерации столбцы матрицы В
должны быть переданы между подзадачами с тем, чтобы в каждой
подзадаче оказались новые столбцы матрицы В и могли быть
вычислены новые элементы матрицы C. При этом данная передача
столбцов между подзадачами должна быть организована таким
образом, чтобы после завершения итераций алгоритма в каждой
подзадаче последовательно оказались все столбцы матрицы В.
Возможная простая схема организации необходимой
последовательности передач столбцов матрицы В между подзадачами
состоит в представлении топологии информационных связей подзадач
в виде кольцевой структуры. В этом случае на каждой итерации
подзадача i, 0<=i<n, будет передавать свой столбец матрицы В
подзадаче с номером i+1 (в соответствии с кольцевой структурой
подзадача n-1 передает свои данные подзадаче с номером 0 ) – см.
На рис. 7.2 представлены итерации алгоритма матричного
умножения для случая, когда матрицы состоят из четырех строк и
четырех столбцов ( n=4 ). В начале вычислений в каждой подзадаче i,
0<=i<n, располагаются i -я строка матрицы A и i -й столбец матрицы B. В результате их перемножения подзадача получает элемент c
Рис. 7.2. Общая схема передачи данных для первого параллельного алгоритма матричного умножения при ленточной схеме разделения данных
intuit.ru/2010/edi”>2. Второй алгоритм. Отличие второго алгоритма состоит в том, что в подзадачах располагаются не столбцы, а строки матрицы B. Как результат, перемножение данных каждой подзадачи сводится не к скалярному умножению имеющихся векторов, а к их поэлементному умножению. В результате подобного умножения в каждой подзадаче получается строка частичных результатов для матрицы C.При рассмотренном способе разделения данных для выполнения операции матричного умножения нужно обеспечить последовательное получение в подзадачах всех строк матрицы B, поэлементное умножение данных и суммирование вновь получаемых значений с ранее вычисленными результатами. Организация необходимой последовательности передач строк матрицы B между подзадачами также может быть выполнена с использованием кольцевой структуры информационных связей (см. рис. 7.3).
На рис. 7.3 представлены
итерации алгоритма матричного умножения для случая, когда матрицы
состоят из четырех строк и четырех столбцов ( n=4 ). В начале
вычислений в каждой подзадаче i, 0<=i<n, располагаются i -е строки
матрицы A и матрицы B. В результате их перемножения подзадача
определяет i -ю строку частичных результатов искомой матрицы C.
Далее подзадачи осуществляют обмен строками, в ходе которого
каждая подзадача передает свою строку матрицы B следующей
подзадаче в соответствии с кольцевой структурой информационных
взаимодействий. Далее выполнение описанных действий повторяется
до завершения всех итераций параллельного алгоритма.
Рис. 7.3. Общая схема передачи данных для второго параллельного алгорится матричного умножения при ленточной схеме разделения данных
Дальше >>
< Лекция 6 || Лекция 7: 123456 || Лекция 8 >
[Перевод] Матричное умножение. Медленное достижение мифической цели
19:17
Balloon Fight: перенос с VS system на NES
19:17
«Ниеншанц-Автоматики» протестировало различные системы «Байкала»
21:02
KODI: собираем удобный и функциональный медиацентр для дома. Часть 4. Архив IPTV
22:17
Red Hat отказалась финансировать FSF за возврат Столлмана
22:17
Избавляемся от постоянного написания конструкторов для инжекта зависимостей с помощью C# Source Generators
19:17
[Перевод] Матричное умножение. Медленное достижение мифической цели
19:17
QGit, улучшения
19:17
Умелец попробовал майнить биткойны на Game Boy — получилось в 125 трлн раз медленнее современных устройств
19:17
Технологический журналист: как стать и куда убежать
16:32
Apollo. На входе в плотные слои атмосферы
16:32
[Перевод] Под капотом у Emoji
В недавней работе был установлен новый рекорд скорости по умножению двух матриц. Она также знаменует и конец эпохи для метода, который ученые применяли для исследований на протяжении десятилетий.
Математики стремятся к достижению мифической цели — второй степени (exponent two), то есть к умножению пары матриц n х n всего за n2 шагов. Исследователи подбираются все ближе к своей цели, но получится ли у них когда-нибудь достичь ее?
Для специалистов в области Computer Science и математиков сама идея о «второй степени» связана с представлениями о совершенном мире.
«Трудно разграничить научное мышление и беспочвенные мечтания», — признается Крис Уманс из Калифорнийского технологического института. «Я хочу, чтобы степень была равна двум, потому что это красиво».
С точки зрения необходимого количества шагов «вторая степень» — это идеальная скорость выполнения одной из самых фундаментальных математических операций — матричного умножения. Если вторая степень достижима, то матричное умножение получится выполнять максимально быстро, насколько это физически возможно. Если это не так, то мы застряли в мире, который не соответствует нашим мечтам.
Матрицы представляют собой массивы чисел. Когда две матрицы согласованы (число столбцов в первом сомножителе равно числу строк во втором), их можно перемножить, чтобы получить третью. Например, если вы начнете с пары матриц 2×2, их произведение также будет матрицей 2×2, содержащей четыре элемента. В более общем смысле, произведение пары матриц размером n х n представляет собой другую матрицу размером n х n с n2 элементами.
Поэтому наименьшее возможное количество шагов для умножения пар матриц это n2, то есть количество шагов, необходимое просто для записи ответа. Отсюда и название «вторая степень».
И хотя никто точно не знает, можно ли этого достичь, исследователи продолжают продвигаться в этом направлении.
Статья, опубликованная в октябре, подбирается к цели еще ближе и описывает самый быстрый на данный момент метод умножения двух матриц. Результат, который получили Джош Алман, докторант Гарвардского университета, и Вирджиния Василевска Уильямс из Массачусетского технологического института, уменьшает степень предыдущего лучшего показателя примерно на одну стотысячную. Это действительно большое достижение в данной области, добытое кропотливым трудом.
Чтобы получше разобраться в этом процессе и понять, как его можно усовершенствовать, давайте начнем с пары матриц 2×2, A и B. При вычислении каждого элемента их произведения вы используете соответствующую строку из A и соответствующий столбец из B. Чтобы получить верхний правый элемент, умножьте первое число в первой строке A на первое число во втором столбце B, затем умножьте второе число в первой строке A на второе число во втором столбце B и сложите эти два произведения.
Самуэль Веласко / Quanta Magazine
Эта операция известна как получение «скалярного произведения» строки со столбцом (иногда называется «внутренним произведением»). Чтобы вычислить другие элементы в произведении матриц, повторите процедуру с соответствующими строками и столбцами.
В целом, классический метод умножения матриц 2×2 состоит из восьми умножений и нескольких сложений. Как правило, этот способ умножения двух матриц размера n х n требует n3 умножений.
С увеличением размера матриц количество умножений, необходимых для нахождения их произведения, растет намного быстрее, чем количество сложений. Чтобы найти произведение матриц 2×2 требуется всего восемь промежуточных умножений, а чтобы найти произведение матриц 4×4 их требуется уже 64. Однако количество сложений, необходимых для получения суммы этих матриц, не так значительно отличается. Обычно количество сложений равно количеству элементов в матрице, то есть четыре для матриц 2×2 и 16 для матриц 4×4. Эта разница между сложением и умножением позволяет понять, почему исследователи измеряют скорость умножения матриц исключительно с точки зрения количества требуемых умножений.
«Умножения — это наше всё, — утверждает Уманс, — Показатель степени в итоге полностью зависит только от количества умножений. Сложения в некотором смысле исчезают».
На протяжении веков люди считали, что n3 — это самый быстрый способ умножения матриц. По имеющимся сведениям, в 1969 году Фолькер Штрассен намеревался доказать, что невозможно умножить матрицы 2×2, используя менее восьми умножений. Видимо, он все-таки не смог найти доказательства, а через некоторое время и понял почему: на самом деле, существует способ сделать это с помощью семи умножений!
Штрассен придумал сложный набор соотношений, которые позволили заменить одно из этих восьми умножений 14 дополнительными сложениями. Может показаться, что разница совершенно незначительна, но она оправдывает себя, так как умножение вносит больший вклад, чем сложение. Найдя способ избавиться от одного умножения для маленьких матриц 2×2, Штрассен открыл возможность, которую он мог использовать при умножении бOльших матриц.
«Это крошечное изменение приводит к огромным улучшениям в работе с большими матрицами», — говорит Уильямс.
Вирджиния Василевска Уильямс из Массачусетского технологического института и Джош Алман из Гарвардского университета открыли самый быстрый способ перемножения двух матриц за n2.3728596 шагов. Джаред Чарни; Ричард Т.К. Хоук
Предположим, вы хотите перемножить пару матриц 8×8. Один из способов сделать это — разбить каждую большую матрицу на четыре матрицы размером 4×4 так, чтобы каждая имела по четыре элемента. Поскольку элементы матрицы также могут являться матрицами, вы можете считать исходные матрицы парой матриц 2×2, каждый из четырех элементов которых сам по себе является матрицей 4×4. Посредством некоторых манипуляций каждая из этих матриц размером 4×4 может быть разбита на четыре матрицы размером 2×2.
Смысл этого многократного разбиения больших матриц на более мелкие заключается в том, что можно снова и снова применять алгоритм Штрассена к меньшим матрицам и с помощью его метода сокращать количество шагов на каждом этапе. В целом алгоритм Штрассена увеличил скорость умножения матриц с n3 до n2.81 мультипликативных шагов.
Следующий важный шаг в развитии идеи произошел в конце 1970-х, когда появился принципиально новый подход к решению этой задачи. Он подразумевает перевод матричного умножения в другую вычислительную задачу линейной алгебры с использованием объектов, называемых тензорами. Тензоры, используемые в этой задаче, представляют собой трехмерные массивы чисел, состоящие из множества различных частей, каждая из которых выглядит как небольшая задача на умножение матриц.
Умножение матриц и эта задача, связанная с тензорами, в определенном смысле эквивалентны друг другу, но для решения последней исследователи уже имели более быстрые процедуры. Таким образом, перед ними встала задача определить «обменный курс» между ними: Матрицы какого размера можно перемножить при тех же вычислительных затратах, которые требуются для решения тензорной задачи?
«Это очень распространенная в теоретической информатике концепция: преобразовывать задачи и проводить аналогию между ними, чтобы показать, что они одинаково простые или сложные», — сказал Алман.
В 1981 году Арнольд Шёнхаге использовал этот подход, чтобы доказать, что умножение матриц возможно выполнить за n2.522 шагов. Позднее Штрассен назвал этот подход «лазерным методом» (laser method).
За последние несколько десятилетий каждое улучшение в процессе умножения матриц происходило за счет усовершенствования лазерного метода, поскольку исследователи находили все более эффективные способы трансформации задачи. В своем новом доказательстве Алман и Уильямс стирают различие между 2 задачами и показывают, что уменьшить число умножений возможно. «В целом Джош и Вирджиния нашли способ применить машинные вычисления в рамках лазерного метода и получили лучшие на настоящий момент результаты», — сказал Генри Кон из Microsoft Research.
В их статье теоретическое ограничение скорости умножения матриц улучшено до n2.3728596.
Также благодаря этому исследованию Уильямс может вернуть себе корону в области матричного умножения, которую она по праву получила в 2012 году (n2. 372873), а затем уступила в 2014 году Франсуа Ле Галлю (n2.3728639).
Но, несмотря на все эти гонки и победы, становится ясно, что в случае с этим подходом действует закон убывающей доходности, или убывающей отдачи. Скорее всего, усовершенствование Алмана и Уильямс почти полностью исчерпало возможности лазерного метода, но так и не позволило достичь конечной теоретической цели.
«Маловероятно, что получится приблизиться ко второй степени, используя это семейство методов», — отметил Уманс.
Для этого потребуется открытие новых методов и стойкая вера в то, что это вообще возможно.
Уильямс вспоминает один из разговоров со Штрассеном об этом: «Я спросила его, считает ли он, что возможно получить вторую степень для матричного умножения, и он ответил: «Нет, нет, нет, никогда!».
© Habrahabr.ru
Умножение матриц – Уроки Византа
Умножение матрицы на скалярную константу
Матрицы можно умножать на скалярные константы аналогично умножению
любого количества переменных на скалярную константу. Скалярная константа относится к любому числу;
действительный или мнимый; положительное или отрицательное; целое или дробное, но не переменное.
Когда матрица умножается на скалярную константу, константа умножается каждые
запись в матрицу поровну, например, задана матрица А
найти x A где x скалярная константа
решение:
Как вы можете видеть в приведенном выше примере, x умножается на всю матрицу A
, влияя на все элементы в A
Например: Дана матрица M найти
решение:
Помимо умножения на скалярные константы, матрицы также могут быть умножены на
на другие матрицы. Однако умножение матриц не так прямолинейно, как обычное умножение на
, необходимо соблюдать определенные правила и выполнять определенные условия.0005 будет выполнено.
Свойства умножения матриц
Первое правило, которое вы должны знать, состоит в том, что умножение матриц НЕ коммутативное,
т.е.Для двух матриц A и B
Мы скоро увидим причину этого.
Умножение матриц ассоциативно; например, для 3 матриц A , B
и C всегда верно следующее тождествоНо поскольку мы уже сказали, что умножение матриц не является коммутативным, следующее
будет НЕ верным.или любую другую перестановку в этом роде.
Матрицы должны сохранять свой порядок.
- Матричное умножение является распределительным через сложение
Обратите внимание, однако, что порядок по-прежнему имеет значение, приведенное выше не то же самое, что
Вышесказанное неверно, но верно следующее
- Умножение скалярной константы на матричное умножение является коммутативным в следующей форме
;
Есть еще несколько свойств матричного умножения, и мы увидим эти
через некоторое время.
Правило умножения матриц
Две матрицы А и В могут быть перемножены в виде А В
только тогда и только тогда, когда их размеры принимают следующий вид:
Матрица A имеет размер n x m, а матрица B имеет размер m x x
Другими словами, при умножении матриц количество столбцов в матрице на
слева должно быть равно количеству строк в матрице справа.
Например; учитывая, что матрица A представляет собой матрицу 3 x 3, для того чтобы умножение матриц
A B было возможным, матрица B должна иметь размер 3 x m, где m может быть
любым количеством столбцов. Это, как мы вскоре увидим, происходит из-за способа умножения
матриц. Это правило является причиной того, что умножение матриц не коммутативно.
Аккуратный способ проверить, можно ли перемножить две матрицы, чтобы увидеть их размеры
рядом. Например, учитывая, что вас попросили умножить матрицы A
и B , где A имеет размер n x m, а B имеет размер p x q
.
Чтобы A B были возможны, расположите размеры рядом следующим образом и
обратите внимание на
если ты увидишь это m = p , то можно сделать вывод, что A B возможно
и приступить к умножению. Если это не так, то не заморачивайтесь с этим
, просто скажите, что это невозможно. Вскоре мы увидим, что результирующая матрица
от умножения A и B имеет размер n x q
.
Для того, чтобы B A были возможны, расположите размеры рядом следующим образом и
обратите внимание на
аналогично, если вы видите, что q = n , то вы можете заключить, что B A
возможно, и продолжить умножение. Если это не так, то
не заморачивайтесь, просто скажите, что это невозможно. Результирующая матрица в этом случае будет
размером p x m.
Алгоритм умножения матриц
Умножение матриц выполняется по тому же алгоритму, что и умножение векторов. Напомним
что вектор может быть строкой или столбцом, например
где D — вектор-столбец, а E — вектор-строка.
Теперь, когда мы установили это, вы также можете думать о D и E как о матрицах
, где D — матрица размера 4 x 1, а E — матрица размера
1 x 4. Итак, если это так, тогда попробуем умножить D на и E на .
D представляет собой матрицу 4 x 1, тогда как E представляет собой матрицу 1 x 4, поэтому по правилу, указанному выше для
, возможны следующие произведения: D равно количеству
строк в E
строк в D
Теперь, когда мы увидели, что D E и E D возможны,
давайте перейдем непосредственно к выполнению вычислений.
Всегда начинайте с расстановки матриц по мере необходимости, не путайте их порядок.
Тогда возникает вопрос, что делать дальше!
Умножение матриц выполняется путем умножения строк на столбцы. В этом случае у нас только
есть одна строка, но у нас есть четыре столбца.
Мы делаем это путем умножения всех строк на все столбцы как таковые:
.
Мы добавляем, потому что каждая запись в результирующей матрице представляет собой сумму умножения
записей в строке и столбце для этой позиции. Для приведенного выше примера результирующая матрица
имеет размер 1 x 1.
Теперь вы должны заметить, что это то же самое, что и количество строк в E и
количество столбцов в Д . Следовательно, теперь мы можем сказать, как правило, что когда вы
умножаете две матрицы, их произведение будет иметь то же количество строк, что и матрица
слева, и такое же количество столбцов, как матрица справа.
Например, если A B = C , где A имеет размер n x m, а
B имеет размер p x q, то C будет иметь размер n x q. Это всегда верно
для любого матричного умножения.
Вернемся к умножению D и E . Мы уже видели E D ,
, так что теперь давайте посмотрим на D E
Итак, теперь у нас есть четыре строки и четыре столбца. Взгляните на размеры D
и E
мы видим, что результирующая матрица должна иметь размер 4 x 4.
Каждая строка умножает каждый столбец, и это дает одну запись, соответствующую этой позиции
. Увидев результаты D E и E D , вы
должны увидеть причину, по которой умножение матриц не является коммутативным, как указано в первом свойстве
: результат не один и тот же!
Давайте теперь посмотрим на другой пример, иллюстрирующий умножение матриц:
. Даны матрицы А и В , где
и
Поскольку A и B удовлетворяют правилу умножения матриц, произведение
A B можно найти следующим образом.
Матрица A B представляет собой матрицу 2 x 2.
Из приведенных выше двух примеров мы можем наблюдать следующее для матричного умножения
А В = С
Требуется некоторое время, чтобы привыкнуть ко всему процессу умножения матриц, но трюк
заключается в том, чтобы сделать как можно больше примеров. Ниже приведены несколько проработанных примеров.
Примеры умножения матриц
Пример 1
Найдите C , если A B = C и что
Этап 1
Первым делом нужно посмотреть размеры A и B , чтобы проверить, можно ли их
перемножить, а также определить размер C
.
из приведенного выше вы можете видеть, что A B возможен и этот размер C
Далее мы выполняем фактическое умножение
Этап 3
Пример 2
Найдите A 2 , учитывая, что
Этап 1
Поскольку A представляет собой матрицу 2 x 2, A A возможно, и результат будет
также может быть 2 x 2
Этап 2
Этап 3
Пример 3
Найдите B A , учитывая, что
.
Шаг 1
Из размеров A и B видно, что результирующая матрица AB
будет иметь размер 3 x 3
Этап 2
Пример 4
Найдите A B C , учитывая, что
Этап 1
Этот конкретный вопрос включает в себя многократное умножение матриц, поэтому нам нужно
, чтобы разбить его на две части, но мы должны сохранить порядок матриц без изменений.
Сначала мы умножаем A и B , затем мы умножаем их произведение AB
на C , чтобы получить ABC
. Прежде чем приступить к вычислениям, нам нужно сравнить их размеры, чтобы выяснить,
умножение действительно возможно:
Этап 2
Затем мы выполняем вычисление, сначала умножая A и B , затем
, умножая полученную матрицу на C
.
Этап 3
Этап 4
Этап 5
Скалярное умножение Правило матриц
- Математика Сомнения
- Матрица
- Свойства
Формула
$k \times \big[\,e_{ij}\,\big] \,=\, \big[k \times e_{ij}\big]$
Умножение матрицы на скаляр равно произведению каждой записи (или элемента) на скаляр в матрице, называется скалярным правилом умножения матриц.
Введение
Пусть $k$ — константа, а матрица $M$ представляет собой матрицу порядка $m \times n$.
$M$ $\,=\,$ $\begin{bmatrix} e_{11} & e_{12} & e_{13} & \cdots & e_{1n}\\ e_{21} & e_{22 } & e_{23} & \cdots & e_{2n}\\ e_{31} & e_{32} & e_{33} & \cdots & e_{3n}\\ \vdots & \vdots & \vdots & \ ddots & \vdots \\ e_{m1} & e_{m2} & e_{m3} & \cdots & e_{mn} \end{bmatrix}$
Предположим, что матрица $M$ умножается на скаляр $ к$.
$\implies$ $k \times M$ $\,=\,$ $k \times \begin{bmatrix} e_{11} & e_{12} & e_{13} & \cdots & e_{1n} \\ e_{21} & e_{22} & e_{23} & \cdots & e_{2n}\\ e_{31} & e_{32} & e_{33} & \cdots & e_{3n}\\ \vdots & \vdots & \vdots & \ddots & \vdots \\ e_{m1} & e_{m2} & e_{m3} & \cdots & e_{mn} \end{bmatrix}$
Произведение скаляр и матрица равны произведению каждого элемента и скаляра в матрице.
$\implies$ $k \times M$ $\,=\,$ $\begin{bmatrix} k \times e_{11} & k \times e_{12} & k \times e_{13} & \ cdots & k \times e_{1n}\\ k \times e_{21} & k \times e_{22} & k \times e_{23} & \cdots & k \times e_{2n}\\ k \times e_{31} & k \times e_{32} & k \times e_{33} & \cdots & k \times e_{3n}\\ \vdots & \vdots & \vdots & \ddots & \vdots \\ k \times e_{m1} & k \times e_{m2} & k \times e_{m3} & \cdots & k \times e_{mn} \end{bmatrix}$
Это математическое свойство матриц называется скалярным умножением матриц. Он используется как формула для умножения любой матрицы на любой скаляр.
Если матрица $M$ просто выражается как $\big[e_{ij}\big]$, то скалярное правило умножения можно просто записать следующим образом.
$\implies$ $k \big[e_{ij}\big] \,=\, \big[k e_{ij}\big]$
Здесь буквы $i$ и $j$ обозначают “ номер строки» и «номер столбца».
Примеры
Давайте научимся использовать скалярное правило умножения матриц на нескольких понятных примерах.
$(1).\,\,\,$ $4$ $\times$ $\begin{bmatrix} 1 & 7 \\ -2 & 6 \end{bmatrix}$
В этом примере матрица порядок $2$ умножается на скаляр $4$. Его можно вычислить, умножив каждую запись в матрице на скаляр $4$.
$\implies$ $4$ $\times$ $\begin{bmatrix} 1 & 7 \\ -2 & 6 \end{bmatrix}$ $\,=\,$ $\begin{bmatrix} 4 \times 1 & 4 \times 7 \\ 4 \times (-2) & 4 \times 6 \end{bmatrix}$
$\,\,\,\следовательно\,\,\,\,\,\,$ $4$ $\times$ $\begin{bmatrix} 1 и 7 \\ -2 и 6 \end{bmatrix} $ $\,=\,$ $\begin{bmatrix} 4 & 28 \\ -8 & 24 \end{bmatrix}$
$(2). \,\,\,$ $-1$ $\times $ $\begin{bmatrix} 2 & 0 & 3 & 5 \\ 5 & 1 & 8 & 4 \\ 7 & 3 & 2 & 6 \end{bmatrix}$
В этом случае матрица порядка $3 \times 4$ умножается на скаляр $-1$. Итак, умножьте каждую запись в этой матрице на число -1.
$\implies$ $-1$ $\times$ $\begin{bmatrix} 2 & 0 & 3 & 5 \\ 5 & 1 & 8 & 4 \\ 7 & 3 & 2 & 6 \end{bmatrix} $ $\,=\,$ $\begin{bmatrix} (-1) \times 2 & (-1) \times 0 & (-1) \times 3 & (-1) \times 5 \\ (-1 ) \times 5 & (-1) \times 1 & (-1) \times 8 & (-1) \times 4 \\ (-1) \times 7 & (-1) \times 3 & (-1) \times 2 & (-1) \times 6 \end{bmatrix}$
$\,\,\,\следовательно\,\,\,\,\,\,$ $-1$ $\times$ $\begin{bmatrix} 2 & 0 & 3 & 5 \\ 5 & 1 & 8 & 4 \\ 7 & 3 & 2 & 6 \end{bmatrix}$ $\,=\,$ $\begin{bmatrix} -2 & 0 & -3 & -5 \\ -5 & -1 & -8 & -4 \\ -7 & -3 & -2 & -6 \end{bmatrix}$
$(3).\,\,\,$ $6$ $\times$ $\begin{bmatrix} -9 & 5 & -2 \\ 5 & 8 & -3 \\ 6 & -1 & 0 \end{bmatrix}$
Используйте скалярную формулу умножения матриц для умножения квадратной матрицы порядка $3$ на скаляр $6$.