Знаходження добутку матриць
Добутком двох матриць буде матриця A, елементи якої Ai,j рівні сумі попарних добутків елементів рядка першої матриці B на відповідні елементи стовпця другої матриці C: З цього слідує, що перемножити між собою можна матриці в яких кількість стовпців першої B рівна кількості рядків другої C. Нова матриця A, яка є добутком двох, має розмірність m*n, де m – кількість рядків першої матриці, а n – стовпців другої. Правила досить прості, і для знаходження добутку матриць потрібно вміти множити і додавати. Розглянемо кілька прикладів зі збірника задач Дубовика В.П., Юрика І.І. “Вища математика”.
Приклади. Знайти добуток матриць.
1) (1.110)
Для знаходження добутку перемножуємо рядки першої матриці на стовпці другої
На цьому і побудована операція множення, необхідно почленно перемножити елементи рядка першої матриці на елементи стовпця другої матриці та просумувати. Звідси випливають і властивості добутку матриць, і обмеження на матриці (які можна перемножити, а які ні).
2) (1.112)
За формулою множення знайдемо елементи нової матриці
Записуємо отримані значення в матрицю.
Це і є шуканий резуьтат добутку двох матриць.
3) (1.114)
За правилами добутком буде матриця-вектор розмірності . Обчислимо її елементи
Остаточно матриця набуде вигляду
Хоча це біьше усім нагадує вектор, проте це матриця одиничної розмірності.
4) (1.115)
При обчисленні добутку матриць-векторів отримаємо квадратну матрицю розміру .
При цьому операцій мінімум, а отримана нова квадратна матриця має п’ятий порядок.
5) (1.116)
Результатом множення в даному прикладі буде матриця, яка містить лише один елемент.
А все тому, що перша матриця має 1 рядок, а друга – один стовпець!
На цьому практична частина уроку завершена. Вправляйтесь в розв’язуванні подібних прикладів, адже множення – це одна з основних операцій (не тільки в матрицях).
В наступних статтях матеріал буде складніший, тож починайте знайомитися з матрицями з простого.
Вас може зацікавити:
Множення матриць
Означення.
Результатом множення матриць Am×n та Bn×k буде матриця Cm×k така, що елемент матриці C, що знаходяться в i-тому рядку та j-тому стовпчику (cij), дорівнює сумі добутків елементів i-того рядку матриці A на відповідні елементи j-того стовпця матриці B:cij = ai1 · b1j + ai2 · b2j + … + ain · bnj
Зауваження.
Дві матриці можна перемножити між собою тоді і тільки тоді, коли кількість стовпців першої матриці дорівнює кількості рядків другої матриці.Приклад 1.
| Знайти матрицю C, що дорівнює добутку матриць A = | 4 | 2 | і B = | 3 | 1 | |||||
| 9 | 0 | -3 | 4 |
Розв’язок:
Елементи матриці C обраховуються наступним чином:
c11 = a11·b11 + a12·b21 = 4·3 + 2·(-3) = 12 – 6 = 6
c12 = a11·b12 + a12·b22 = 4·1 + 2·4 = 4 + 8 = 12
c21 = a21·b11 + a22·b21 = 9·3 + 0·(-3) = 27 + 0 = 27
c22 = a21·b12 + a22·b22 = 9·1 + 0·4 = 9 + 0 = 9
Приклад 2
| Знайти матрицю C, що дорівнює добутку матриць A = |
|
і B = |
|
. |
Розв’язок:
Елементи матриці C обраховуються наступним чином:
c11 = a11·b11 + a
c12 = a11·b12 + a12·b22 = 2·(-1) + 1·0 = -2 + 0 = -2
c13 = a11·b13 + a12·b23 = 2·6 + 1·7 = 12 + 7 = 19
c21 = a21·b11 + a22·b21 = (-3)·5 + 0·(-3) = -15 + 0 = -15
c22 = a21·b12 + a22·b22 = (-3)·(-1) + 0·0 = 3 + 0 = 3
c23 = a21·b13 + a22·b23 = (-3)·6 + 0·7 = -18 + 0 = -18
c31 = a31·b11
c32 = a31·b12 + a32·b22 = (4)·(-1) + (-1)·0 = -4 + 0 = -4
c33 = a31·b13 + a32·b23 = 4·6 + (-1)·7 = 24 – 7 = 17
Будь-які нецензурні коментарі будуть видалені, а їх автори занесені в чорний список!
Як множити матриці – Знання
Знання 2021
– це вікі, що означає, що багато статей написано кількома авторами. Щоб створити цю статтю, у її виданні та вдосконаленні з часом брало участь 12 осіб, анонімних. Матриця – це прямокутне розташування
Зміст:
– це вікі, що означає, що багато статей написано кількома авторами. Щоб створити цю статтю, у її виданні та вдосконаленні з часом брало участь 12 осіб, анонімних.
етапи
Перевірте, чи можна матриці множити. Множення матриць можна здійснити лише в тому випадку, якщо кількість стовпців першої матриці дорівнює кількості рядків другої матриці.- Ці матриці можна помножити, оскільки перша матриця A має 3 стовпчики, а друга матриця B має 3 рядки.
Позначте розміри виробу матриці. Створіть нову порожню матрицю, яка позначатиме розміри продукту матриці, добутку обох матриць. Матриця, що представляє добуток матриці A і матриці B, матиме таку ж кількість рядків, що і перша матриця, і стільки ж стовпців, що і друга матриця. Ви можете намалювати порожні поля, щоб вказати кількість стовпців та рядків у цій матриці.- Матриця А має 2 ряди, тому добуток матриці матиме 2 ряди.
- Матриця B має 2 стовпчики, тоді добуток матриці матиме 2 стовпчики.
- Добуток матриці матиме 2 ряди та 2 стовпчики.
Знайдіть перший скалярний продукт. Щоб знайти скалярний добуток, потрібно помножити перший елемент у першому рядку на другий елемент першого стовпця, а третій елемент першого ряду – на третій елемент першого стовпця.Потім додайте свої продукти, щоб знайти крапковий продукт, Подумайте, що ви вирішили розв’язати спочатку елемент 2 ряду та 2 стовпця (праворуч внизу) матричного добутку. Ось як це зробити:- 6 × -5 = -30
- 1 × 0 = 0
- -2 × 2 = -4
- -30 + 0 + (-4) = -34
- Точковий продукт дорівнює -34 і залишиться в нижній правій частині матричного продукту.
- Коли ви множите матриці, точковий добуток повинен знаходитись у рядку першої матриці та у стовпці другої матриці. Наприклад, якщо ви знайдете точковий добуток нижнього ряду матриці A та правого стовпця матриці B, відповідь -34 буде знаходитись у нижньому рядку та в правому стовпці добутку матриці.
Знайдіть другий скалярний добуток. Подумайте, що ви хочете знайти термін у лівій нижній частині добутку матриці.
Щоб знайти цей термін, просто помножте елементи нижнього рядка першої матриці на елементи першого стовпця другої матриці та додайте їх. Використовуйте той самий метод, який ви використовували для множення першого рядка та стовпця – знайдіть знову крапковий продукт.- 6 × 4 = 24
- 1 × (-3) = -3
- (-2) × 1 = -2
- 24 + (-3) + (-2) = 19
- Точковий продукт дорівнює -19 і залишиться в нижній лівій частині матричного продукту.
Знайдіть два решти скалярних добутку. Щоб знайти термін у верхньому лівому куті матричного продукту, почніть з крапкового добутку верхнього ряду матриці A та лівого стовпця матриці B. Ось як:- 2 × 4 = 8
- 3 × (-3) = -9
- (-1) × 1 = -1
- 8 + (-9) + (-1) = -2
- Скалярний добуток дорівнює -2 і залишиться в нижній лівій частині матричного добутку.
- Щоб знайти термін у верхньому правому куті добутку матриці, просто знайдіть скалярний добуток верхнього ряду матриці A та правий стовпець матриці B. Ось як:
- 2 × (-5) = -10
- 3 × 0 = 0
- (-1) × 2 = -2
- -10 + 0 + (-2) = -12
- Точковий виріб дорівнює -12 і залишиться у верхньому правому куті матричного продукту.
Перевірте, чи всі чотири точкові продукти знаходяться у правильних місцях у матричному добутку. 19 буде внизу зліва, -34 буде внизу праворуч, -2 – у верхньому лівому куті і -12 – у верхньому правому.
ЯК МНОЖИТИ МАТРИЦІ: 6 КРОКІВ (ІЗ ЗОБРАЖЕННЯМИ) – ЕНЦИКЛОПЕДІЯ
Матриця – це прямокутне розташування цифр, символів або виразів у рядках і стовпцях.
Щоб помножити матриці, ви повинні помножити елементи (або числа) у рядку першої матриці на елементи в рядку другої
Зміст:
Крок
- Переконайтесь, що матриці можна множити. Ви можете помножити матрицю лише в тому випадку, якщо кількість стовпців першої матриці дорівнює кількості рядків другої матриці.
- Ці матриці можна помножити, оскільки перша матриця, матриця A, має 3 стовпчики, тоді як друга матриця, матриця B, має 3 ряди.
-
Позначте розміри матричного виробу. Створіть нову порожню матрицю, позначивши розміри, на які дві матриці множать. Матриця, що представляє добуток матриці A і матриці B, матиме таку ж кількість рядків, що і перша матриця, і стільки ж стовпців, що і друга матриця. Ви можете намалювати порожні поля, щоб показати кількість рядків і стовпців у цій матриці.
- Матриця А має 2 ряди, тому добуток матриці матиме 2 ряди.
- Матриця B має 2 стовпчики, тому матричний добуток матиме 2 стовпчики.
- Добуток матриці матиме 2 ряди та 2 стовпчики.
-
Знайдіть добуток точок (крапка) перший. Щоб знайти добуток точок (крапка) по-перше, ви повинні помножити перший елемент у першому рядку на перший елемент у першому стовпчику, другий елемент у першому рядку на другий елемент у першому стовпчику, а третій елемент у першому рядку на третій елемент у першому стовпчику. Потім додайте продукти, щоб знайти добуток точки (крапка).
Припустимо, ви вирішили обчислити елементи у другому ряду та другому (правому нижньому) стовпчику матричного добутку спочатку. Ось як це зробити:- 6 х -5 = -30
- 1 x 0 = 0
- -2 х 2 = -4
- -30 + 0 + (-4) = -34
- Добуток точки (крапка) дорівнює -34, і це записано в нижній правій частині матричного добутку.
- Коли ви множите матрицю, добуток точок (крапка) буде записано у позиції рядка першої матриці та позиції другого стовпця матриці. Наприклад, коли ви знаєте добуток точок (крапка) з нижнього рядка Матриці A та правого стовпця Матриці B відповідь, -34, записується у нижній рядок та правий стовпчик добутку матриці.
-
Знайдіть добуток точок (крапка) другий. Скажімо, ви хочете знайти термін внизу зліва матричного добутку. Щоб знайти цей термін, вам просто потрібно помножити елементи в нижньому рядку першої матриці на елементи в першому стовпчику другої матриці, а потім додати їх. Використовуйте той самий спосіб, що і для першого рядка та стовпця – знайдіть його знову добуток точки (робитиt)його.
- 6 х 4 = 24
- 1 х (-3) = -3
- (-2) х 1 = -2
- 24 + (-3) + (-2) = 19
- Добуток точки (крапка) дорівнює -19, і це записано в нижній лівій частині матричного добутку.
- Знайдіть продукт із двох пунктів (крапка) інші. Щоб знайти термін у верхньому лівому куті матричного продукту, почніть з пошуку крапкового продукту (крапка) з верхнього рядка Матриці A та лівого стовпця Матриці B. Ось як це зробити:
- 2 х 4 = 8
- 3 х (-3) = -9
- (-1) х 1 = -1
- 8 + (-9) + (-1) = -2
- Добуток точки (крапка) дорівнює -2, і це записано в лівій верхній частині матричного добутку.
- Щоб знайти термін у верхньому правому куті матричного продукту, просто знайдіть крапковий продукт (крапка) з верхнього рядка Матриці A та правого стовпця Матриці B.
Ось як це зробити:
- Щоб знайти термін у верхньому правому куті матричного продукту, просто знайдіть крапковий продукт (крапка) з верхнього рядка Матриці A та правого стовпця Матриці B.
- 2 х (-5) = -10
- 3 x 0 = 0
- (-1) х 2 = -2
- -10 + 0 + (-2) = -12
- Добуток точки (крапка) дорівнює -12, і це записано вгорі праворуч від матричного добутку.
- Переконайтесь, що всі чотири – продукт крапка знаходиться в правильному місці в матричному творі. 19 має бути внизу зліва, -34 має бути внизу праворуч, -2 – у верхньому лівому куті, а -12 – у верхньому правому куті.
Поради
- Використання рядків, а не ліній може дати неправильну відповідь. Якщо рядок, що представляє рядок, потрібно розширити через стовпчик, тоді подовжте його! Це лише техніка візуалізації, щоб вам було простіше знати, який рядок і стовпець використовувати для роботи з кожним елементом продукту.
- Добуток двох матриць дасть кількість рядків, рівних кількості рядків першої матриці, і кількість стовпців, що дорівнює кількості стовпців другої матриці.
- Запишіть свою суму. Множення матриць вимагає великої кількості обчислень, і це дуже легко отримати в сторону і забути, яке число ви перемножуєте.
Як помножити матрицю на матрицю
Множення матриць відрізняється від звичайного множення чисел або змінних через структури беруть участь в операції елементів, тому тут є свої правила і особливості.
Інструкція
1
Найпростіша і коротке формулювання цієї операції така: матриці перемножуються за алгоритмом “рядок на стовпець”.
Тепер докладніше про це правило, а також про можливі обмеження і особливості.
Множення на одиничну матриць переводить вихідну матриці саму в себе (еквівалентно множенню чисел, де один з елементів 1). Аналогічно, множення на нульову матрицю дає нульову матрицю.
Головна умова, що накладається на які беруть участь в операції матриці випливає зі способу виконання множення: рядків у першій матриці має бути стільки ж, скільки стовпців у другій.
Неважко здогадатися, що в іншому випадку множити буде просто нема на що.
Також варто відзначити ще один важливий момент: у множення матриць немає властивості коммутативности (або “перестановки”), інакше кажучи, А помножити на B Не рівняється B помножити на А. Запам’ятайте це і не плутайте з правилом для множення чисел.
2
Тепер, власне сам процес множення.
Нехай ми множимо матрицю А на матрицю B справа.
Беремо першу сходинку матриці А і її i-ий елемент множимо на i-ий елемент першого столцба матриці B. Всі отримані твори складаємо і записуємо на місце А11 в підсумкову матрицю.
Далі перший рядок матриці А аналогічним чином множимо на другий стовпець матриці В, а отриманий результат записуємо праворуч від першого отриманого числа в підсумкову матрицю, тобто на позицію А12.
Потім також чинимо з першим рядком матриці А і 3-им, 4-х і т.д. стовпцями матриці Б, заповнивши, таким чином, першу сходинку підсумкової матриці.
3
Тепер переходимо до другої рядку і знову перемножуємо її послідовно на всі стовпці, починаючи з першого. Записуємо результат у другому рядку підсумкової матриці.
Потім до 3-ої, 4-ої і т.д.
Повторюємо дії, поки не перемножимо всі рядки в матриці А з усіма стовпчиками матриці В.
ЯК МНОЖИТИ МАТРИЦІ МІЖ СОБОЮ – ОСВІТУ
Множення матриць дуже корисно при розв’язуванні систем рівнянь. Це тому, що ви можете помножити матрицю на її обернену з обох сторін знаку рівності, щоб в кінцевому підсумку отримати змінну матрицю з
Зміст:
Множення матриць дуже корисно при розв’язуванні систем рівнянь. Це тому, що ви можете помножити матрицю на її обернену з обох сторін знаку рівності, щоб в кінцевому підсумку отримати змінну матрицю з одного боку та рішення системи з іншого.
На жаль, множити дві матриці разом не так просто, як множення відповідних доданків. Кожен елемент кожної матриці в деякий момент множиться на кожний член другої.
Для множення матриць матриці записуються прямо поруч, не маючи символу між ними.
Якщо ви хочете помножити матриці A і B, щоб отримати їх добуток AB, кількість стовпців у A повинно відповідати кількості рядків у B. Кожен елемент у першому рядку A множиться на кожен відповідний елемент з першого стовпця B , а потім усі ці продукти додаються разом, щоб отримати елемент у першому рядку, першому стовпчику AB. Це відомо як прийняття крапкового добутку першого ряду A з першим стовпцем B. Щоб знайти значення в першому рядку, в другому положенні стовпця, візьміть крапковий добуток першого ряду A з другим стовпцем B шляхом множення кожного елемента в першому рядку А на кожен елемент у другому стовпці В, а потім додайте всі ці продукти разом. Зрештою, після обчислення всіх можливих точкових продуктів ваша нова матриця повинна мати таку ж кількість рядків, що і A, та ж кількість стовпців, що і B.
Наприклад, для помноження матриці A на 3 рядки та 2 стовпчики на матрицю B з 2 рядками та 4 стовпцями ви берете крапковий добуток першого ряду A з кожним зі стовпців B, виробляючи 4 доданки у першому ряд виробу AB. Беручи крапковий добуток другого ряду A з кожним зі стовпців B, виходить другий ряд добутку AB, який містить ще 4 доданки. І те саме стосується виготовлення останнього ряду AB. Ви закінчуєте матрицю з 3 рядків та 4 стовпців.
Якщо матриця A має розміри м х н а матриця B має розміри н х p, AB – це м-х-п матриця. Ця цифра дає наочне зображення матричного множення.
Множення двох матриць, які відповідають.Коли ви множуєте матриці, ви не множите відповідні частини, як, наприклад, під час додавання чи віднімання. Крім того, при матричному множенні AB не дорівнює BA. Насправді, те, що ви можете помножити A на B, не означає, що ви можетепомножте B на A. Кількість стовпців у A може бути дорівнює кількості рядків у B, але кількість стовпців у B може не дорівнювати кількості рядків у А. Наприклад, ви можете помножити матрицю на 3 рядки та 2 стовпчики матрицею з 2 рядками та 4 стовпцями.
Однак ви не можете зробити множення іншим способом, оскільки ви не можете помножити матрицю з 2 рядками та 4 стовпцями на матрицю з 3 рядками та 2 стовпцями. Якщо ви спробували взяти крапковий продукт, помноживши правильні терміни разом, а потім додавши їх продукти, десь по дорозі у вас не вистачає термінів!
Ось приклад множення матриць. Скажімо, проблема вимагає помножити дві наступні матриці:
Спочатку перевірте, чи можна перемножувати дві матриці. Матриця А дорівнює 3 х 2, а В – 2 х 4, тому ви можете їх помножити, щоб отримати матрицю 3-х-4 як відповідь. Тепер ви можете перейти до крапкового добутку кожного рядка першої матриці з кожним стовпцем другого.
Процес множення АВ.Ця цифра визначає процес для вас. Ви можете почати, помноживши кожен додаток у першому рядку А на послідовні доданки у стовпцях матриці В. Зверніть увагу, що множення кожного запису в рядку на відповідний запис у стовпці перший та додавання цих продуктів разом дає рядок перший, стовпець один запис. Аналогічно, множення кожного запису у другому рядку на відповідний запис у колонці третьому дає вам другий рядок, запис третього стовпця.
Виймаючи весь пух, матриця виробу є
ЯК РОЗДІЛИТИ МАТРИЦІ (ІЗ ЗОБРАЖЕННЯМИ) – ЧАЙОВІ
Знати, як помножити дві матриці – це половина способу навчитися «ділити» одну матрицю на іншу. Слово “розділити” пишеться лапками, оскільки матриці технічно не можна розділити. Нат
Знати, як помножити дві матриці – це половина способу навчитися «ділити» одну матрицю на іншу. Слово “розділити” пишеться лапками, оскільки матриці технічно не можна розділити. Натомість вам потрібно помножити матрицю на зворотний інші. Якщо це здається дивним, розгляньте цю ідею з точки зору більш поширених математичних понять: замість обчислення 10 ÷ 5, можна взяти зворотну 5 (5 або /5), обчисліть 10 х 5 і отримайте таку ж відповідь. З цієї причини множення на обернену матрицю вважається найближчим до поділу процесом у цій галузі математики.
Ці обчислення зазвичай використовуються для розв’язування систем лінійних рівнянь.
Короткий посібник
- Немає визначення для поділу матриць. Натомість помножте першу матрицю на обернену частину другої. Перепишіть задачу ÷ як * або *.
- Якщо матриця не квадратна або якщо її визначник дорівнює нулю, напишіть “немає єдиного рішення”. В іншому випадку знайдіть визначник та продовжуйте наступний крок.
- Обчисліть значення (обернене).
- Помножте матриці на обчислення * або *. Знайте, що це не обов’язково призведе до тієї самої відповіді.
Кроки
Частина 1 з 3: Підтвердження можливого “поділу”
-
Зрозумійте матрицю «поділ». Технічно такого поняття не існує. Поділ однієї матриці на іншу є невизначеною функцією. Найближчий еквівалент – множення на інверсію іншої матриці. Іншими словами, хоча ÷ не визначено, можна обчислити *. Оскільки два рівняння були б еквівалентними в скалярній кількості, це “виглядає” як матричне ділення, але важливо використовувати правильну термінологію.
- Зауважте, що * та * – це не одна і та ж проблема. Можливо, вам доведеться обчислити обидва, щоб знайти можливі рішення
- Наприклад, замість, пишіть.
Вам також може знадобитися обчислити, на що може бути інша відповідь.
-
Переконайтесь, що “дільна матриця” є квадратна. Щоб взяти обернену матрицю, вона повинна бути квадратною, з однаковою кількістю рядків і стовпців. В іншому випадку не існує єдиного рішення проблеми.
- Термін “подільна матриця” трохи розпливчастий, оскільки, технічно, це не проблема поділу. Для * це стосується матриці. У використаному прикладі це матриця.
- Матриця, яка має інверсію, називається “зворотною” або “несингулярною”. Масиви, які не мають зворотного, є “сингулярними”.
-
Перевірте, чи можна дві матриці множити разом. Для цього кількість стовпців у першій матриці має дорівнювати кількості рядків у другій матриці.
Якщо це не працює ні в налаштуваннях ( *, ні *), проблема не має рішення.- Наприклад, якщо це матриця 4 x 3 і це матриця 2 x 2, тоді рішення не існує. * не можна обчислити, оскільки 4 ≠ 2, а * також не можуть, оскільки 2 ≠ 3.
- Зауважте, що інверсія завжди має таку ж кількість рядків і стовпців, що і вихідна матриця. Не потрібно обчислювати обернену, щоб виконати цей крок.
- У використаному прикладі обидві матриці розміром 2 х 2, тому їх можна помножити в будь-якому порядку.
- Знайдіть визначник матриці 2 x 2. Є ще одна вимога перевірити, перш ніж ви зможете взяти зворотну частину матриці. Його детермінанта не може бути нульовою. В іншому випадку матриця не матиме зворотного. Ось як знайти визначник у найпростішому випадку, матриці 2 x 2:
- Матриця 2 x 2: визначальним фактором є ad – bc. Іншими словами, візьміть виріб з основної діагоналі (з верхньої лівої в нижню праву), потім віднімайте виріб від оберненої діагоналі (з правої верхньої в нижню ліву).
- Наприклад, матриця має детермінант (7) (3) – (4) (2) = 21 – 8 = 13. Це не число нуль, тому можна знайти зворотний бік.
- Знайдіть визначник більшої матриці. Якщо матриця дорівнює 3 х 3 або більше, потрібно знайти трохи більше роботи, щоб знайти визначник:
- Матриця 3 x 3: вибрати будь-який елемент та перекреслити рядок та стовпець, до якого він належить. Знайдіть детермінант матриці 2 x 2, помножте його на обраний елемент та зверніться до знака матричного графіка для визначення знаку. Повторіть цей крок для наступних двох елементів у тому ж рядку або стовпці, що і перший обраний елемент, а потім додайте три визначники. Прочитайте цю статтю та перегляньте покрокові поради та поради щодо прискорення цього процесу.
- Більші масиви: рекомендується використовувати графічний калькулятор або програмне забезпечення. Метод схожий на матрицю 3 х 3, але потрібно зробити більше часу вручну.
Наприклад, щоб знайти визначник матриці 4 x 4, потрібно знайти визначники чотирьох 3 x 3 матриць.
- Продовжується. Якщо матриця не квадратна, або якщо її визначник дорівнює нулю, напишіть “немає єдиного рішення”. Проблема завершена. Якщо матриця квадратна і має ненульовий детермінант, перейдіть до наступного розділу, щоб знайти наступний крок: знайдіть зворотний бік.
Частина 2 з 3: Інвертування матриці
- Змініть положення основних елементів діагоналі 2 х 2. Якщо матриця дорівнює 2 х 2, ви можете скористатися ярликом, щоб зробити цей обчислення значно простішим. Перший крок у цій ярлиці передбачає заміну елемента у верхньому лівому куті елементом у правому нижньому куті. Наприклад:
- →
- Примітка: більшість людей використовують калькулятор, щоб знайти зворотну матрицю розміром 3 х 3 або більше. Якщо ви хочете зробити розрахунок вручну, дивіться кінець розділу.
- Візьміть протилежні два інші елементи, але залиште їх у положенні. Іншими словами, помножте елементи у верхньому «правому» куті та в нижньому «лівому» куті на -1:
- Візьміть зворотний коефіцієнт. Ви знайшли визначник цієї матриці в розділі вище, тому немає необхідності робити це знову. Просто запишіть зворотній 1 / (детермінант):
- У прикладі детермінанта – 13. Її зворотна відповідність.
- Помножте нову матрицю на зворотну ознаку. Помножте кожен елемент нової матриці на щойно обчислений зворотній зв’язок. Отримана матриця є оберненою матрицею 2 х 2:
- Перевірте правильність інверсії. Для цього помножте обернену на вихідну матрицю. Якщо обернено правильним, добуток завжди буде ідентичним матриці. Якщо все добре, продовжуйте роботу з наступним розділом, щоб усунути проблему.
- На використаний приклад помножте.
- Дивіться статтю Як множити матриці, якщо вам потрібна допомога.

- Примітка: матричне множення не є комутативним, тобто порядок факторів впливає на результат. Однак, при множенні матриці на її зворотну, обидва варіанти призведе до матриці ідентичності.
- Подивіться в цій статті як перетворити матрицю 3 х 3 або більше. Якщо ви не вивчаєте цей процес вперше, заощадите час, використовуючи графічний калькулятор або математичне програмне забезпечення, щоб робити математику з більшими матрицями. Якщо вам не потрібно виконувати обчислення вручну, ось короткий посібник щодо одного методу:
- Розмістіть матрицю ідентичності я праворуч від вашої матриці. Наприклад, →. Матриця ідентичності має елемент “1” разом з основною діагоналлю та елементом “0” без усіх інших позицій.
- Виконайте операції в рядку для зменшення матриці, поки ліва сторона не перебуває в шахматній формі, а потім продовжуйте зменшення, поки ліва сторона не буде ідентичною матриці ідентичності.
- В кінці операції матриця буде мати форму. Іншими словами, права сторона буде повернена до вихідної матриці.
Частина 3 з 3: Множення матриць для завершення задачі
- Напишіть два можливі рівняння. У “загальній математиці” зі скалярними величинами множення є комутативним; 2 x 6 = 6 x 2. Однак те ж саме не стосується матриць, тому потрібно обчислити дві задачі:
- * – це рішення х для проблеми х = .
- * – це рішення х для проблеми х = .
- Якщо це частина рівняння, виконайте однакові операції з обох сторін. Якщо =, то немає дорівнює тому, що знаходиться з лівого боку, але з правого боку.
- Знайдіть розміри відповіді. Розміри кінцевої матриці – це зовнішні розміри двох факторів. Він має таку ж кількість рядків, що і перша матриця, і стільки ж стовпців, що і друга матриця.
- Повернувшись до початкової задачі, що стосується матриць 2 x 2, то розміри відповіді також будуть 2 x 2.

- Для використання більш складного прикладу, якщо це масив 4 х 3 і є матрицею 3 х 3, то матриця * має 4 х 3 виміри.
- Повернувшись до початкової задачі, що стосується матриць 2 x 2, то розміри відповіді також будуть 2 x 2.
- Обчисліть значення першого елемента. Дивіться статтю, що пов’язана вище, для отримання більш детальних інструкцій або оновлення пам’яті за допомогою наступного резюме:
- Щоб знайти рядок 1 та стовпчик 1, знайдіть крапковий добуток рядка 1 та стовпця 2. Тобто для матриці 2 х 2 обчисліть.
- У використаному прикладі, рядок 1, стовпець 1 відповіді:
- Повторіть процес скалярного продукту для кожної позиції в матриці. Наприклад, елемент у позиції 2.1 – це крапковий добуток рядка 2 та стовпця 1. Спробуйте виконати приклад самостійно. Ви повинні отримати такі відповіді:
- Якщо вам потрібно знайти інше рішення,
Поради
- Ви можете розділити матрицю на скалярну величину, поділивши кожен елемент матриці на кількість.
- Наприклад, матриця, поділена на 2 =
Попередження
- Калькулятори не завжди на 100% точні, якщо мова йде про матричні обчислення. Наприклад, якщо калькулятор повідомляє, що елемент є дуже невеликим числом (наприклад, 2E), значення, швидше за все, дорівнює нулю.
Как перемножить две матрицы
Умножение матриц
Есть ровно два способа умножения матриц. Первый способ – умножить матрицу на скаляр. Это называется скалярным умножением. Второй способ – умножить матрицу на другую матрицу. Это известно как матричное умножение.
Скалярное умножениескалярное умножение на самом деле очень простая матричная операция. Чтобы умножить скаляр на матрицу, мы просто берем скаляр и умножаем его на каждую запись в матрице.Приведем пример.
Вопрос 1 : Вычислить 2A2A2A, если
Уравнение 1: пример скалярного умножения 1, часть 1 Вопрос просит нас узнать, что такое 2A2A2A.
Другими словами, мы находим
Обратите внимание, что если мы умножим 2 на каждую запись в матрице, мы получим:
Уравнение 1: пример скалярного умножения 1, часть 3Очень просто! Давай сделаем еще один.
Вопрос 2 : Рассчитать 0A0A0A, если
Уравнение 2: Пример скалярного умножения 2 pt.1Опять пытаемся найти 0A0A0A. Это означает, что мы будем искать ответ на
. Уравнение 2: пример скалярного умножения 2, часть 2Матрица будет необычной формы, но концепция останется прежней. Мы по-прежнему умножаем скаляр 0 на каждую запись в матрице. Так мы получим:
Уравнение 2: пример скалярного умножения 2, часть 3Обратите внимание, что все элементы в матрице равны 0. Это известно как нулевая матрица 3 x 2.
Теперь, когда мы хорошо знакомы со скалярным умножением, почему бы нам не перейти к матричному умножению?
Как умножить матрицыЧтобы умножить матрицу на другую матрицу, нам сначала нужно узнать, что такое скалярное произведение.
Что такое скалярное произведение?
Точечное произведение (также известное как умножение векторов) – это способ вычисления произведения двух векторов. Например, пусть два вектора будут:
Уравнение 3: Пример скалярного произведения, часть 1Как мне умножить эти два вектора? Просто умножьте соответствующие записи и сложите продукты. Другими словами,
Уравнение 3: Пример скалярного произведения, часть 2Итак, умножая векторы, мы получаем одно значение. Однако обратите внимание на то, что два вектора имеют одинаковое количество записей.Что, если один из векторов имеет другое количество входов, чем другой? Например, пусть
Уравнение 4: Пример отказа скалярного произведения ч.1Если бы мне пришлось умножить соответствующие записи и сложить их все вместе, то я получил бы:
Уравнение 4: Пример отказа скалярного продукта, часть 2 Здесь проблема. Первые три записи имеют соответствующие записи для умножения, но последняя запись не имеет.
Итак, что нам здесь делать? Ответ: мы ничего не можем здесь сделать. Это просто означает, что мы не можем вычислить скалярное произведение этих двух векторов.
Итак, в заключение, мы не можем найти скалярное произведение двух векторов с разным количеством элементов. У них должно быть и одинаковое количество записей.
Умножение матриц 2 x 2
Итак, в чем был смысл изучения скалярного произведения? Что ж, мы будем использовать скалярное произведение, когда умножим две матрицы вместе. При умножении матрицы на другую матрицу мы хотим рассматривать строки и столбцы как вектор. Более конкретно, мы хотим обрабатывать каждую строку в первой матрице как векторы, а каждый столбец во второй матрице как векторы.Приведем пример.
Вопрос 3 : Найдите A ∙ BA \ bullet BA ∙ B, если
Уравнение 5: Пример умножения матрицы 2 x 2, часть 1Умножение двух матриц даст нам:
Уравнение 5: Пример умножения матрицы 2 x 2, часть 2Теперь количество строк и столбцов, на которые мы обращаем внимание, равно
. Уравнение 5: пример умножения матрицы 2 x 2, часть 3, где r1r_ {1} r1 – первая строка, r2r_ {2} r2 – вторая строка, а c1, c2c_ {1}, c_ {2} c1, c2 – первый и второй столбцы.Теперь мы будем рассматривать каждую строку и столбец, которые мы видим здесь, как вектор.
Обратите внимание, что умножение матрицы 2 x 2 на другую матрицу 2 x 2 дает матрицу 2 x 2. Другими словами, в матрице должно быть 4 элемента.
Уравнение 5: пример умножения матрицы 2 x 2, часть 4Как именно мы получаем первую запись? Обратите внимание, что первая запись находится в первой строке и первом столбце. Поэтому мы просто берем скалярное произведение r1r_ {1} r1 и c1c_ {1} c1. Таким образом, первая запись будет
. Уравнение 5: Пример умножения матрицы 2 x 2 pt.{nd} 2-й столбец. Итак, мы берем скалярное произведение r2r_ {2} r2 и c1c_ {1} c1 и скалярное произведение r2r_ {2} r2 и c2c_ {2} c2. Это дает нам: Уравнение 5: пример умножения матрицы 2 x 2, часть 7Вот и все! Это то, что мы получаем, когда умножаем матрицы 2 x 2. {st}, поэтому мы берем скалярное произведение r1r_ {1} r1 и c1c_ {1} c1.{nd} 2-й столбец. Таким образом, мы берем скалярное произведение r1r_ {1} r1 и c2c_ {2} c2. Это дает нам:
Уравнение 6: пример умножения матрицы 3 x 3, часть 5Если мы продолжим находить все записи и выполнять скалярное произведение, соответствующее строкам и столбцам, то мы получим окончательный результат.
Уравнение 6: Пример умножения матрицы 3 x 3, часть 6Готово! Обратите внимание, что чем больше матрицы, тем более утомительным становится умножение матриц. Это потому, что нам приходится иметь дело со все большим количеством цифр! Как правило, формула умножения матриц для матриц 3 x 3 составляет
Формула 2: Формула умножения матрицы 3 x 3 Как умножить матрицы разной размерности?Пока что у нас есть перемноженные матрицы одинаковой размерности.Кроме того, мы знаем, что умножение двух матриц одинаковой размерности дает матрицу одинаковой размерности. Но что произойдет, если мы умножим матрицу разных размеров? Как мы узнаем размеры вычисленной матрицы? Во-первых, нам нужно увидеть, как умножение матриц дает вам определенную матрицу.
Определена ли матрица?
Бывают случаи, когда невозможно перемножить две матрицы. В таких случаях мы называем матрицу undefined .Как мы можем определить, не определены ли они?
Произведение двух матриц определяется только в том случае, если количество столбцов в первой матрице равно количеству строк второй матрицы .
Давайте попробуем использовать это определение в этом примере.
Вопрос 5 : Пусть
Уравнение 7: Пример определенной матрицы, часть 1Определено ли A ∙ BA \ bullet BA ∙ B?
Во-первых, обратите внимание, что первая матрица имеет 3 столбца . Также вторая матрица имеет 3 строки .Поскольку они оба равны 3, то я знаю, что определено A ∙ BA \ bullet BA ∙ B.
Теперь, когда мы знаем, что оно определено, как мы можем узнать размеры A ∙ BA \ bullet BA ∙ B?
Размер собственности
Чтобы найти размеры A ∙ BA \ bullet BA ∙ B, нам нужно сначала взглянуть на размеры и отдельно.
Уравнение 7: Пример определенной матрицы, часть 2Теперь поместим размеры матриц рядом, вот так:
Уравнение 7: Пример определенной матрицы pt.3Теперь мы возьмем первое число и последнее число и объединим их, чтобы получить размеры A ∙ BA \ bullet BA ∙ B. Посмотрите, что первое число – 2 , а последнее – 4 . Таким образом, габариты A ∙ BA \ bullet BA ∙ B будут:
Уравнение 7: Пример определенной матрицы, часть 4Теперь, когда мы знаем размеры матрицы, мы можем просто вычислить каждую запись, используя скалярные произведения. Это даст нам:
Уравнение 7: Пример определенной матрицы pt.5Теперь, когда мы очень хорошо знаем, как умножать матрицы, почему бы не взглянуть на некоторые правила умножения матриц?
Свойства умножения матрицИтак, какими свойствами на самом деле обладает матричное умножение? Во-первых, давайте все формально определим.
Пусть X, Y, ZX, Y, ZX, Y, Z – матрицы, InI_ {n} In – единичная матрица, а OnO_ {n} On – нулевая матрица. Если все пять из этих матриц имеют равные размеры, то у нас будет следующая матрица для свойств умножения матриц:
Формула 3: свойства умножения матрицАссоциативное свойство утверждает, что порядок умножения не имеет значения.Другими словами, вычисление X ∙ YX \ bullet YX ∙ Y, а затем умножение на ZZZ даст вам тот же результат, что и вычисление Y ∙ ZY \ bullet ZY ∙ Z, а затем умножение на XXX. Приведем пример.
Вопрос 6 : Показать, что ассоциативное свойство работает с этими матрицами:
Уравнение 8: Пример ассоциативного свойства, часть 1Глядя на левую часть уравнения в ассоциативном свойстве, мы видим, что (XY) Z (XY) Z (XY) Z дает:
Уравнение 8: Пример ассоциативного свойства pt.2Теперь, глядя на правую часть уравнения в ассоциативном свойстве, мы видим, что X (YZ) X (YZ) X (YZ) дает:
Уравнение 8: Пример ассоциативного свойства, часть 3Посмотрите, как равны левая и правая части уравнения. Следовательно, мы знаем, что ассоциативное свойство действительно работает! Опять же, это означает, что порядок умножения матриц не имеет значения!
Теперь следующее свойство – распределительное свойство . В распределительной собственности указано, что:
Формула 4: Распределительная собственностьМы видим, что нам разрешено использовать технику фольги и для матриц.Чтобы показать, что это свойство работает, давайте рассмотрим пример.
Вопрос 7 : Показать, что свойство распределения работает для следующих матриц:
Уравнение 9: Пример распределительного свойства, часть 1Обратите внимание, что левая часть уравнения – это X (Y + Z) X (Y + Z) X (Y + Z). Отсюда вычисления, которые дают нам:
Уравнение 9: Пример распределительного свойства, часть 2Теперь давайте проверим, дает ли правая часть уравнения то же самое. Обратите внимание, что правая часть уравнения – это XY + XZXY + XZXY + XZ.Вычисление дает нам:
Уравнение 9: Пример распределительного свойства, часть 3Обратите внимание, что левая часть уравнения в точности совпадает с правой частью уравнения. Следовательно, мы можем подтвердить, что свойство распределения действительно работает.
Коммутативно ли матричное умножение?
Мы знаем, что умножение матриц удовлетворяет как ассоциативным, так и дистрибутивным свойствам, однако мы вообще не говорили о коммутативности. Означает ли это, что умножение матриц его не удовлетворяет? На самом деле это не так, и мы можем проверить это на примере.
Вопрос 8 : Если матричное умножение коммутативно, то должно выполняться следующее:
Уравнение 10: Нарушение коммутативного свойства ч.1Покажите, что XYeqYXXY eq YXXYeqYX, если
Уравнение 10: Нарушение коммутативного свойства ч. 2Сначала мы вычисляем левую часть уравнения. Вычисление XYXYXY дает нам:
Уравнение 10: Нарушение коммутативного свойства ч. 3Теперь вычисляя правую часть уравнения, мы имеем:
Уравнение 10: Нарушение коммутативного свойства pt.4Как видите,
Уравнение 10: Нарушение коммутативного свойства ч. 5Потому что у нас
Уравнение 10: Нарушение коммутативного свойства ч. 6Эти две матрицы совершенно разные.
Теперь есть еще несколько свойств умножения матриц. Однако эти свойства имеют дело с нулевой и единичной матрицами.
Умножение матрицы на нулевую матрицу
Свойство умножения матриц для нулевой матрицы утверждает следующее:
Формула 5: умножение матрицы для нулевой матрицы, где ООО – нулевая матрица.
Это означает, что если вы умножите нулевую матрицу на другую ненулевую матрицу, то вы получите нулевую матрицу. Давайте проверим, так ли это на примере.
Вопрос 9 : Покажите, что уравнение OX = OOX = OOX = O и XO = OXO = OXO = O выполняется, если:
Уравнение 11: Умножение матриц для нулевой матрицы, пример, часть 1Давайте сначала посмотрим на уравнение
Уравнение 11: Умножение матриц для нулевой матрицы, пример, часть 2Обратите внимание, что вычисление OXOXOX дает нам:
Уравнение 11: Умножение матрицы для примера с нулевой матрицей pt.3Мы видим, что OX = OOX = OOX = O, поэтому уравнение выполняется. Аналогично, если мы посчитаем XOXOXO, мы получим:
Уравнение 11: Умножение матриц для нулевой матрицы, пример, часть 4Мы видим, что уравнение XO = OXO = OXO = O выполняется, так что мы закончили.
Умножение матриц для идентификационной матрицы
А как насчет свойства умножения матриц для единичных матриц? Что ж, в собственности указано следующее:
Формула 6: умножение матрицы для матрицы идентичности, где InI_ {n} In – единичная матрица размера n × nn \ умноженная на nn × n.Опять же, мы можем видеть, что следующие уравнения действительно выполняются на примере.
Вопрос 10 : Покажите, что уравнения XI2 = XX I_ {2} = XXI2 = X и I2X = XI_ {2} X = XI2 X = X выполняются со следующими матрицами
Уравнение 12: Умножение матриц для примера единичной матрицы, часть 1Итак, для уравнения XI2 = XX I_ {2} = XXI2 = X, мы имеем:
Уравнение 12: Умножение матриц для примера единичной матрицы, часть 2Итак, уравнение верно. Аналогично уравнению I2X = XI_ {2} X = XI2 X = X, имеем:
Уравнение 12: Умножение матриц для примера единичной матрицы pt.3Опять же, уравнение верно. Итак, мы закончили с вопросом, и оба уравнения верны. На этом завершаются все свойства умножения матриц. Теперь, если вы хотите взглянуть на реальное применение умножения матриц, я рекомендую вам взглянуть на эту статью.
https://www.mathsisfun.com/algebra/matrix-multiplying.html
20+ примеров умножения матриц NumPy
В этом руководстве мы рассмотрим различные способы выполнения умножения матриц с использованием массивов NumPy.Мы научимся перемножать матрицы разного размера вместе.
Кроме того, мы узнаем, как ускорить процесс умножения с помощью графического процессора и других актуальных тем, так что приступим!
Прежде чем двигаться дальше, лучше рассмотреть некоторые основные термины матричной алгебры.
Основные термины
Вектор: С алгебраической точки зрения вектор – это набор координат точки в пространстве.
Таким образом, вектор с двумя значениями представляет точку в 2-мерном пространстве.В информатике вектор – это расположение чисел в одном измерении. Он также широко известен как массив, список или кортеж.
Например. [1,2,3,4]
Матрица: Матрица (множественные матрицы) – это двумерное расположение чисел или набор векторов.
Пример:
[[1,2,3], [4,5,6], [7,8,9]]
Точечное произведение: Скалярное произведение – это математическая операция между двумя векторами равной длины .
Он равен сумме произведений соответствующих элементов векторов.
С ясным пониманием этой терминологии, мы готовы к работе.
Умножение матрицы на вектор
Начнем с простой формы умножения матриц – между матрицей и вектором.
Прежде чем продолжить, давайте сначала разберемся, как создать матрицу с помощью NumPy.
Метод NumPy array () используется для представления векторов, матриц и многомерных тензоров. Давайте определим 5-мерный вектор и матрицу 3 × 3 с помощью NumPy.
импортировать numpy как np
a = np.array ([1, 3, 5, 7, 9])
b = np.array ([[1, 2, 3],
[4, 5, 6],
[7, 8, 9]])
print ("Вектор a: \ n", a)
Распечатать()
print ("Матрица b: \ n", b) Выход:
Давайте теперь посмотрим, как происходит умножение матрицы и вектора.
При умножении матрицы на вектор следует учитывать следующие моменты:
- Результатом умножения матрицы на вектор является вектор.
- Каждый элемент этого вектора получается путем скалярного произведения между каждой строкой матрицы и умножаемым вектором.
- Количество столбцов в матрице должно быть равно количеству элементов в векторе.
Мы будем использовать метод NumPy matmul () для большинства операций умножения матриц.
Давайте определим матрицу 3 × 3 и умножим ее на вектор длины 3.
импортировать numpy как np
а = нп.массив ([[1, 2, 3],
[4, 5, 6],
[7, 8, 9]])
b = np.array ([10, 20, 30])
print ("A =", a)
print ("b =", b)
print ("Ab =", np.matmul (a, b)) Вывод:
Обратите внимание, что результатом является вектор длины, равной строкам матрицы умножителя.
Умножение на другую матрицу
Теперь мы поняли умножение матрицы на вектор; было бы легко вычислить умножение двух матриц.
Но перед этим давайте рассмотрим самые важные правила умножения матриц:
- Количество столбцов в первой матрице должно быть равно количеству строк во второй матрице.
- Если мы умножаем матрицу размеров m x n на другую матрицу размеров n x p, то полученный продукт будет матрицей размеров m x p.
Давайте рассмотрим умножение матрицы A размера m x n на матрицу B размера n x p:
Произведение двух матриц C = AB будет иметь m строк и p столбцов.
Каждый элемент в матрице произведения C является результатом скалярного произведения между вектором-строкой в A и вектором-столбцом в B.
Давайте теперь выполним матричное умножение двух матриц в Python, используя NumPy.
Мы случайным образом сгенерируем две матрицы размеров 3 x 2 и 2 x 4.
Мы будем использовать метод np.random.randint () для генерации чисел.
импортировать numpy как np
np.random.seed (42)
A = np.random.randint (0, 15, размер = (3,2))
B = np.random.randint (0, 15, размер = (2,4))
print ("Матрица A: \ n", A)
print ("shape of A =", A.shape)
Распечатать()
print ("Матрица B: \ n", B)
print ("shape of B =", B.shape) Вывод:
Примечание: мы устанавливаем случайное начальное число с помощью np.random.seed (), чтобы сделать генератор случайных чисел детерминированным.
При каждом запуске этого фрагмента кода будут генерироваться одни и те же случайные числа. Этот шаг важен, если вы хотите воспроизвести результат позже.
Вы можете установить любое другое целое число в качестве начального числа, но я предлагаю установить его на 42 для этого руководства, чтобы ваш вывод соответствовал показанным на снимках экрана вывода.
Теперь перемножим две матрицы с помощью метода np.matmul () . Полученная матрица должна иметь форму 3 x 4.
C = np.matmul (A, B)
print ("произведение A и B: \ n", C)
print ("shape of product =", C.shape) Выход:
Умножение трех матриц
Умножение трех матриц будет состоять из двух операций 2-матричного умножения, и каждая из этих двух операций будет следовать тем же правилам, что обсуждались в предыдущем разделе.
Допустим, мы перемножаем три матрицы A, B и C, и получаем произведение D = ABC.
Здесь количество столбцов в A должно быть равно количеству строк в B, а количество строк в C должно быть равно количеству столбцов в B.
Результирующая матрица будет иметь строки, равные количеству строк в A, и столбцы, равные количеству столбцов в C.
Важным свойством операции умножения матриц является то, что является ассоциативным .
При многоматричном умножении порядок отдельных операций умножения не имеет значения и, следовательно, не дает разных результатов.
Например, в нашем примере умножения трех матриц D = ABC не имеет значения, выполняем ли мы сначала AB или сначала BC.
Оба заказа дадут одинаковый результат. Давайте сделаем пример на Python.
импортировать numpy как np
np.random.seed (42)
A = np.random.randint (0, 10, размер = (2,2))
B = np.random.randint (0, 10, размер = (2,3))
C = np.random.randint (0, 10, размер = (3,3))
print ("Матрица A: \ n {}, shape = {} \ n" .format (A, A.shape))
print ("Матрица B: \ n {}, shape = {} \ n" .format (B, B.shape))
print ("Матрица C: \ n {}, shape = {} \ n" .format (C, C.shape)) Вывод:
На основе правил, которые мы обсуждали выше, умножение этих трех матриц должно дать результирующую матрицу формы (2, 3).
Обратите внимание, что метод np.matmul () принимает только две матрицы в качестве входных данных для умножения, поэтому мы вызовем метод дважды в том порядке, в котором мы хотим умножить, и передадим результат первого вызова в качестве параметра методу второй.
(Мы найдем лучший способ решения этой проблемы в следующем разделе, когда введем оператор «@»)
Давайте произведем умножение в обоих порядках и проверим свойство ассоциативности.
D = np.matmul (np.matmul (A, B), C)
print ("Результат умножения в порядке (AB) C: \ n \ n {}, shape = {} \ n" .format (D, D.shape))
D = np.matmul (A, np.matmul (B, C))
print ("Результат умножения в порядке A (BC): \ n \ n {}, shape = {}". format (D, D.shape)) Вывод:
Как мы видим, результат умножения трех матриц остается неизменным независимо от того, умножаем ли мы сначала A и B или сначала B и C.
Таким образом, свойство ассоциативности подтверждается.
Кроме того, форма результирующего массива (2, 3) находится на ожидаемых строках.
Умножение 3D-матриц NumPy
3D-матрица – это не что иное, как набор (или стек) множества 2D-матриц, точно так же, как 2D-матрица представляет собой набор / стек многих одномерных векторов.
Итак, матричное умножение трехмерных матриц включает многократное умножение двумерных матриц, которое в конечном итоге сводится к скалярному произведению между их векторами строки / столбца.
Давайте рассмотрим пример матрицы A формы (3,3,2), умноженной на другую трехмерную матрицу B формы (3,2,4).
импортировать numpy как np
np.random.seed (42)
A = np.random.randint (0, 10, размер = (3,3,2))
B = np.random.randint (0, 10, размер = (3,2,4))
print ("A: \ n {}, shape = {} \ nB: \ n {}, shape = {}". format (A, A.shape, B, B.shape)) Вывод:
Первая матрица представляет собой стопку из трех 2D-матриц, каждая из которых имеет форму (3,2), а вторая матрица представляет собой стопку из 3 2D-матриц, каждая из которых имеет форму (2,4).
Умножение матриц между этими двумя будет включать три умножения между соответствующими двумерными матрицами A и B, имеющими формы (3,2) и (2,4) соответственно.
В частности, первое умножение будет между A [0] и B [0], второе умножение будет между A [1] и B [1], и, наконец, третье умножение будет между A [2] и B. [2].
Результат каждого отдельного умножения 2D-матриц будет иметь форму (3,4). Следовательно, конечный продукт двух 3D-матриц будет матрицей формы (3,3,4).
Давайте реализуем это с помощью кода.
C = np.matmul (A, B)
print ("Продукт C: \ n {}, shape = {}". format (C, C.shape)) Выход:
Альтернативы np.matmul ()
Помимо «np.matmul ()», есть два других способа выполнения матричного умножения – метод np.dot () и оператор «@» , каждый из которых предлагает некоторые различия / гибкость в операциях умножения матриц.
Метод «np.dot ()»
Вы можете использовать этот метод для нахождения скалярного произведения векторов, но если мы передадим две двумерные матрицы, то он будет вести себя аналогично «np.matmul () ’и вернет результат матричного умножения двух матриц.
Давайте посмотрим на пример:
импортировать numpy как np
# матрица 3x2
A = np.array ([[8, 2, 2],
[1, 0, 3]])
# матрица 2x3
B = np.array ([[1, 3],
[5, 0],
[9, 6]])
# точечный продукт должен возвращать продукт 2x2
C = np.dot (A, B)
print ("произведение A и B: \ n {} shape = {}". format (C, C.форма)) Выход:
Здесь мы определили матрицу 3 × 2, а матрицу 2 × 3 и их скалярное произведение дает результат 2 × 2, который представляет собой матричное умножение двух матриц,
то же самое, что и what ‘np .matmul () ‘вернулся бы.
разница между np.dot () и np.matmul () заключается в их работе с трехмерными матрицами.
В то время как «np.matmul ()» работает с двумя трехмерными матрицами путем вычисления матричного умножения соответствующих пар двумерных матриц (как обсуждалось в последнем разделе), np.dot (), с другой стороны, вычисляет скалярные произведения различных пар векторов-строк и векторов-столбцов из первой и второй матрицы соответственно.
np.dot () на двух 3D-матрицах A и B возвращает произведение суммы по последней оси A и предпоследней оси B.
Это неинтуитивно и непросто для понимания.
Итак, если A имеет форму (a, b, c), а B имеет форму (d, c, e), то результат np.dot (A, B) будет иметь форму (a, d, b , e) чей индивидуальный элемент в позиции (i, j, k, m) определяется как:
точка (A, B) [i, j, k, m] = sum (A [i, j ,:] * B [k,:, m])
Давайте проверим пример:
импортировать numpy как np
нп.random.seed (42)
A = np.random.randint (0, 10, размер = (2,3,2))
B = np.random.randint (0, 10, размер = (3,2,4))
print ("A: \ n {}, shape = {} \ nB: \ n {}, shape = {}". format (A, A.shape, B, B.shape)) Вывод:
Если мы теперь передадим эти матрицы методу np.dot (), он вернет матрицу формы (2,3,3,4), отдельные элементы которой вычисляются с использованием формулы, приведенной выше. .
C = np.dot (A, B)
print ("np.dot (A, B) = \ n {}, shape = {}".формат (C, C.shape)) Вывод:
Еще одно важное различие между np.matmul () и np.dot () состоит в том, что np.matmul () не позволяет умножать на скаляр (мы обсудим это в следующем section), а np.dot () – позволяет.
Оператор «@»
Оператор @, представленный в Python 3.5, выполняет ту же операцию, что и «np.matmul ()».
Давайте рассмотрим предыдущий пример ‘np.matmul ()’ с использованием оператора @ и увидим тот же результат, что и возвращенный ранее:
импортировать numpy как np
нп.random.seed (42)
A = np.random.randint (0, 15, размер = (3,2))
B = np.random.randint (0, 15, размер = (2,4))
print ("Матрица A: \ n {}, shape = {}". format (A, A.shape))
print ("Матрица B: \ n {}, shape = {}". format (B, B.shape))
С = А @ В
print ("произведение A и B: \ n {}, shape = {}". format (C, C.shape)) Вывод:
Оператор ‘@’ становится удобным, когда мы выполняем матричное умножение более двух матриц.
Раньше нам приходилось звонить np.matmul () ’несколько раз и передать их результаты в качестве параметра следующему вызову.
Теперь мы можем выполнить ту же операцию более простым (и более интуитивным) способом:
импортировать numpy как np
np.random.seed (42)
A = np.random.randint (0, 10, размер = (2,2))
B = np.random.randint (0, 10, размер = (2,3))
C = np.random.randint (0, 10, размер = (3,3))
print ("Матрица A: \ n {}, shape = {} \ n" .format (A, A.shape))
print ("Матрица B: \ n {}, shape = {} \ n" .format (B, B.форма))
print ("Матрица C: \ n {}, shape = {} \ n" .format (C, C.shape))
D = A @ B @ C # ранее np.matmul (np.matmul (A, B), C)
print ("Продукт ABC: \ n \ n {}, shape = {} \ n" .format (D, D.shape)) Выход:
Умножение на скаляр (одно значение)
Итак, мы выполнили умножение матрицы на вектор или другую матрицу. Но что происходит, когда мы выполняем матричное умножение на скалярное или одно числовое значение?
Результат такой операции получается умножением каждого элемента в матрице на скалярное значение.Таким образом, выходная матрица имеет тот же размер, что и входная матрица.
Обратите внимание, что «np.matmul ()» не позволяет умножать матрицу на скаляр. Этого можно добиться, используя метод np.dot () или оператор ‘*’.
Давайте посмотрим на это на примере кода.
импортировать numpy как np
A = np.array ([[1,2,3],
[4,5, 6],
[7, 8, 9]])
В = А * 10
print ("Матрица A: \ n {}, shape = {} \ n".формат (A, A.shape))
print ("Умножение A на 10: \ n {}, shape = {}". format (B, B.shape)) Выход:
Поэлементное умножение матриц
Иногда мы хотим произвести перемножение соответствующих элементов двух матриц одинаковой формы.
Эта операция также называется произведением Адамара . Он принимает две матрицы одинаковых размеров и создает третью матрицу того же размера.
Вы можете добиться этого, вызвав функцию multiply () в NumPy или используя оператор ‘*’ .
импортировать numpy как np
np.random.seed (42)
A = np.random.randint (0, 10, размер = (3,3))
B = np.random.randint (0, 10, размер = (3,3))
print ("Матрица A: \ n {} \ n" .format (A))
print ("Матрица B: \ n {} \ n" .format (B))
C = np.multiply (A, B) # или A * B
print ("Поэлементное умножение A и B: \ n {}". format (C)) Вывод:
Единственное правило, которое вам нужно помнить для поэлементного умножения, состоит в том, что две матрицы должны иметь одинаковую форму .
Однако, если одно измерение матрицы отсутствует, NumPy будет транслировать его, чтобы соответствовать форме другой матрицы.
Фактически, матричное умножение на скаляр также включает в себя широковещательную передачу скалярного значения в матрицу формы, равной операнду матрицы при умножении.
Это означает, что когда мы умножаем матрицу формы (3,3) на скалярное значение 10, NumPy создаст другую матрицу формы (3,3) с постоянными значениями десять во всех позициях в матрице и выполнит поэлементное умножение. между двумя матрицами.
Давайте разберемся с этим на примере:
импортировать numpy как np
np.random.seed (42)
A = np.random.randint (0, 10, размер = (3,4))
B = np.array ([[1,2,3,4]])
print ("Матрица A: \ n {}, shape = {} \ n" .format (A, A.shape))
print ("Матрица B: \ n {}, shape = {} \ n" .format (B, B.shape))
С = А * В
print ("Поэлементное умножение A и B: \ n {}". format (C)) Вывод:
Обратите внимание, как вторая матрица, имеющая форму (1,4), была преобразована в матрицу (3,4) посредством широковещательной рассылки, и произошло поэлементное умножение между двумя матрицами.
Матрица в степени (матрица возведения в степень)
Точно так же, как мы можем возвести скалярное значение в экспоненту, мы можем проделать ту же операцию с матрицами.
Подобно тому, как увеличение скалярного значения (основания) до степени n равносильно многократному умножению n оснований, такая же закономерность наблюдается при возведении матрицы в степень, которое включает в себя многократные умножения матриц.
Например, если мы возведем матрицу A в степень n, она будет равна умножению матриц n матриц, каждая из которых будет матрицей A.
Обратите внимание, что для того, чтобы эта операция была возможна, базовая матрица должна быть квадратной .
Это необходимо для обеспечения того, чтобы количество столбцов в предыдущей матрице = количеству строк в следующей матрице.
Эта операция предоставляется в Python с помощью метода NumPy linalg.matrix_power () , который принимает в качестве параметров базовую матрицу и целочисленную степень.
Давайте посмотрим на пример на Python:
импортировать numpy как np
np.random.seed (10)
А = np.random.randint (0, 10, размер = (3,3))
A_to_power_3 = np.linalg.matrix_power (A, 3)
print ("Матрица A: \ n {}, shape = {} \ n" .format (A, A.shape))
print ("A в степени 3: \ n {}, shape = {}". format (A_to_power_3, A_to_power_3.shape)) Вывод:
Мы можем проверить этот результат, выполнив обычное матричное умножение с тремя операндами (все они A), используя оператор «@»:
В = А @ А @ А
print ("B = A @ A @ A: \ n {}, shape = {}". format (B, B.форма)) Вывод:
Как видите, результаты обеих операций совпадают.
Важный вопрос, который возникает в результате этой операции: Что происходит, когда мощность равна 0?
Чтобы ответить на этот вопрос, давайте рассмотрим, что происходит, когда мы возводим скалярное основание в степень 0.
Мы получаем значение 1, верно? Итак, что эквивалентно 1 в матричной алгебре? Вы угадали!
Это единичная матрица.
Итак, возведение матрицы размера n x n в степень 0 приводит к единичной матрице I формы n x n.
Давайте быстро проверим это на Python, используя нашу предыдущую матрицу A.
C = np.linalg.matrix_power (A, 0)
print ("A в степени 0: \ n {}, shape = {}". format (C, C.shape)) Выход:
Поэлементное возведение в степень
Точно так же, как мы можем выполнять поэлементное умножение матриц, мы также можем выполнять поэлементное возведение в степень, то есть возводить каждый отдельный элемент матрицы в некоторую степень.
Это может быть достигнуто в Python с помощью стандартного оператора экспоненты « ** » – пример перегрузки оператора на .мощности: \ n {}, shape = {} \ n “.format (C, C.shape))
Выход:
Умножение на определенный индекс
Предположим, у нас есть матрица A 5 x 6 и еще одна матрица B 3 x 3. Очевидно, мы не можем перемножить эти две матрицы из-за несоответствия размеров.
Но что, если бы мы захотели умножить подматрицу 3 × 3 в матрице A на матрицу B, оставив при этом другие элементы в A неизменными?
Для лучшего понимания см. Следующее изображение:
Эту операцию можно выполнить в Python, используя нарезку матрицы для извлечения подматрицы из A, выполняя умножение на B, а затем записывая результат по соответствующему индексу в A.
Давайте посмотрим на это в действии.
импортировать numpy как np
np.random.seed (42)
A = np.random.randint (0, 10, размер = (5,6))
B = np.random.randint (0, 10, размер = (3,3))
print ("Матрица A: \ n {}, shape = {} \ n" .format (A, A.shape))
print ("Матрица B: \ n {}, shape = {} \ n" .format (B, B.shape))
C = A [1: 4,2: 5] @ B
A [1: 4,2: 5] = C
print ("Матрица A после умножения подматрицы: \ n {}, shape = {} \ n" .format (A, A.shape)) Вывод:
Как видите, только элементы с индексами строк с 1 по 3 и с индексами столбцов со 2 по 4 были умножены на B, и то же самое было записано обратно в A, в то время как остальные элементы A остались. без изменений.
Кроме того, нет необходимости перезаписывать исходную матрицу. Мы также можем записать результат в новую матрицу, сначала скопировав исходную матрицу в новую матрицу, а затем записав произведение в позиции подматрицы.
Умножение матриц с использованием графического процессора
Мы знаем, что NumPy ускоряет матричные операции за счет распараллеливания большого количества вычислений и использования возможностей параллельных вычислений нашего процессора.
Однако современным приложениям нужно нечто большее.ЦП предлагают ограниченные вычислительные возможности, и этого недостаточно для большого количества необходимых нам вычислений, обычно в таких приложениях, как глубокое обучение.
Вот где на сцену выходят графические процессоры. Они предлагают большие вычислительные возможности и отличную инфраструктуру параллельных вычислений, которая помогает нам значительно экономить время, выполняя сотни тысяч операций за доли секунды.
В этом разделе мы рассмотрим, как можно выполнять умножение матриц на графическом процессоре, а не на процессоре, и при этом сэкономить много времени.
NumPy не предлагает функции для матричного умножения на GPU. Поэтому мы должны установить некоторые дополнительные библиотеки, которые помогут нам достичь нашей цели.
Сначала мы установим библиотеки « scikit-cuda » и « PyCUDA » с помощью pip install. Эти библиотеки помогают нам выполнять вычисления на графических процессорах на базе CUDA. Чтобы установить эти библиотеки с вашего терминала, если на вашем компьютере установлен графический процессор.
pip install pycuda pip install scikit-cuda
Если у вас нет графического процессора на вашем компьютере, вы можете попробовать ноутбуки Google Colab и включить доступ к графическому процессору; это бесплатно для использования.Теперь мы напишем код для генерации двух матриц 1000 × 1000 и выполнения матричного умножения между ними двумя способами:
- Использование метода NumPy « matmul () » на ЦП
- Использование метода scikit-cuda ‘ linalg.mdot () ‘ на GPU
Во втором методе мы будем генерировать матрицы на CPU; затем мы сохраним их на графическом процессоре (используя метод PyCUDA « gpuarray.to_gpu () ») перед выполнением умножения между ними.Мы будем использовать модуль «, время » для вычисления времени вычисления в обоих случаях.
Использование ЦП
импортировать numpy как np
время импорта
# создание матриц размером 1000 x 1000
np.random.seed (42)
x = np.random.randint (0,256, размер = (1000,1000)). astype ("float64")
y = np.random.randint (0,256, размер = (1000,1000)). astype ("float64")
# вычисление времени умножения на CPU
tic = time.time ()
г = нп.матмул (х, у)
toc = время.время()
time_taken = toc - tic # время в с
print ("Время, затраченное на CPU (в мс) = {}". format (time_taken * 1000))
Выход:
На некоторых старых аппаратных системах вы можете получить ошибку памяти, но если вам повезет, она будет работать долгое время (зависит от вашей системы).
Теперь давайте выполним то же умножение на графическом процессоре и посмотрим, как время вычисления различается между ними.
Использование графического процессора
# вычисление времени умножения на GPU
linalg.в этом()
# сохранение массивов на GPU
x_gpu = gpuarray.to_gpu (x)
y_gpu = gpuarray.to_gpu (у)
tic = time.time ()
# выполнение умножения
z_gpu = linalg.mdot (x_gpu, y_gpu)
toc = time.time ()
time_taken = toc - tic # время в с
print ("Время, затраченное на GPU (в мс) = {}". format (time_taken * 1000)) Вывод:
Как мы видим, выполнение одной и той же операции на графическом процессоре дает нам ускорение в 70 раз по сравнению с процессором.
Это все еще было небольшое вычисление. Для крупномасштабных вычислений графические процессоры дают нам ускорение на несколько порядков.
Заключение
В этом руководстве мы рассмотрели, как происходит умножение двух матриц, правила, управляющие им, и как их реализовать в Python.
Мы также рассмотрели различные варианты стандартного умножения матриц (и их реализацию в NumPy), такие как умножение более двух матриц, умножение только по определенному индексу или степень матрицы.
Мы также рассмотрели поэлементные вычисления в матрицах, такие как поэлементное умножение матриц или поэлементное возведение в степень.
Наконец, мы рассмотрели, как можно ускорить процесс умножения матриц, выполняя его на графическом процессоре.
Основатель LikeGeeks. Я работаю системным администратором Linux с 2010 года. Я отвечаю за обслуживание, защиту и устранение неполадок серверов Linux для множества клиентов по всему миру. Я люблю писать сценарии оболочки и Python для автоматизации моей работы.
Скалярный и матричное умножение (стр. 1 из 3) Есть два типа умножение для матриц: скалярное умножение и умножение матриц. Скалярное умножение – это просто.Вы просто набираете обычный номер (называется «скаляр») и умножьте его на каждую запись в матрице.
Сделать первый скаляр умножение, чтобы найти 2 А , Я просто умножаю 2 на каждую запись в матрице: Другое скалярное умножение, найти 1 A , работает аналогично: Итак, окончательный ответ: Авторские права Элизабет Стапель 2003-2011 Все права защищены Скалярное умножение легкий.Однако умножение матриц – это совсем другая история. По факту, это королевская боль. Ваш текст, вероятно, дал вам сложную формулу для процесс, и эта формула, вероятно, не имела для вас никакого смысла. Это хорошо. Процесс грязный, и эта сложная формула – лучшее, что они может пригодиться для объяснения в формальной обстановке, например, в учебнике. Вот как работает процесс:
Для расчета AB , Записываю А и B рядом друг с другом вот так: Теперь мне нужно умножить РЯД А КОЛОННАМИ Б .Под этим я подразумеваю, что сначала беру первый ряд A и первый столбец B , и я умножаю первые записи, затем вторые записи, а затем третьи записи, а затем я добавляю три продукта. Сумма одна запись в матрице продуктов AB ; фактически, будучи произведением строки 1 и столбец 1, результатом является 1,1-запись из AB .Затем я продолжаю в том же духе. Например, сумма произведений из 2-го ряда из А и столбец 1 из Б 2,1-запись из AB . Когда я умножаю матрицы, Я использую пальцы, чтобы следить за тем, что я делаю. Следующая анимация это моя попытка проиллюстрировать этот процесс. (Не смейтесь, я не художник!) (Итак, класс; что я сказать про смех?) Окончательный ответ: Как вы видели в приведенном выше примере, по общему правилу продукт i -й ряд А и j -й колонка Б это i , j -й запись матрицы продукта AB .Это общее правило по большей части представляет собой сложную формулу в ваш текст был о. Например, когда я, в в приведенном выше примере сначала умножили ряд (из А ) и второй столбец (из Б ), это дало мне первая строка – вторая колонка запись в матрице продукта AB . Вверх | 1 | 2 | 3 | Вернуться к указателю Далее >>
|
– ChiliMath
Умножение матриц – это «беспорядочный тип», потому что вам нужно будет следовать определенному набору процедур, чтобы сделать это правильно.Это «беспорядочный тип», потому что процесс более сложен. Однако позже, пройдя процедуру и несколько примеров, вы поймете, что необходимые шаги можно выполнить. Не волнуйтесь, я помогу вам в этом!
Но сначала нам нужно убедиться, что две матрицы «разрешено» умножать вместе. В противном случае данные две матрицы «несовместимы» для умножения. В этом случае мы говорим, что решение не определено.
Умножение матрицы на матрицу a.k.a «Грязный тип»
Всегда помни об этом!
Для того, чтобы умножение матриц работало, количество столбцов левой матрицы ДОЛЖНО РАВНО количеству строк правой матрицы.
Предположим, нам даны матрицы A и B, найдите AB (произведите умножение матриц, если применимо). Определите, какая из них левая и правая матрицы, в зависимости от их расположения. Это очень важный шаг.
Чтобы определить, могу ли я перемножить две заданные матрицы, мне нужно обратить внимание на количество столбцов матрицы A и количество строк матрицы B.Если они равны, я могу продолжить умножение матриц. В противном случае сделаю вывод, что ответ неопределенный!
Поскольку Матрица A имеет количество столбцов 2 , а Матрица B имеет количество строк 3 , и они не равны (2 ≠ 3), я заключаю, что AB = undefined . Это означает, что их продукт невозможно найти.
Примеры умножения матриц, также известного как «Беспорядочный тип»
Указания : Для следующих матриц выполните указанную операцию.
Пример 1 : Рассчитайте, если возможно, произведение B и E.
Чтобы матрицы B и E имели произведение, количество столбцов левой матрицы B должно равняться количеству строк правой матрицы E.
количество столбцов = 3
количество строк = 3
В этом случае их можно перемножить. Теперь это шаги:
Шаг 1: Поместите их рядом.
Шаг 2: Умножьте строки B на столбцы E, умножив соответствующие элементы каждой строки на каждый элемент столбца, а затем сложите их вместе.
Внимательно посмотрите анимированное решение.
Если у вас нет терпения при просмотре приведенного выше анимированного решения о том, как выполнять матричное умножение, вы можете просмотреть обычное решение, которое я включил ниже.
Пример 2 : Вычислить, если возможно, произведение E и F.
Сначала проверьте, существует ли произведение двух матриц, убедившись, что количество столбцов левой матрицы E равно количеству строк правой матрицы F.
количество столбцов = 2
количество строк = 2
Это замечательно, поскольку количество столбцов матрицы E равняется количеству строк матрицы F. Это означает, что произведение EF определено, поэтому мы можем продолжить и выполнить умножение матриц. См. Ниже анимированное пошаговое решение умножения матриц.
Пример 3 : Рассчитайте, если возможно, произведение F и E.
В нашем предыдущем примере мы успешно получили продукт EF.На этот раз мы хотим выяснить, сможем ли мы найти произведение E [латекс] и [латекс] F в указанном порядке.
Напоминаем, что действительные числа коммутативны при операции умножения, что означает, что порядок умножения не влияет на конечный результат. Например …
Таким образом, возникает большой вопрос, работает ли это также при матричном умножении?
Проверим, равно ли количество столбцов матрицы F количеству строк матрицы E.
количество столбцов = 2
количество строк = 3
Очевидно, что количество столбцов матрицы F не равно количеству строк матрицы E.Подразумевается, что произведение FE не может быть вычислено, поэтому не определено!
В общем случае умножение матриц не коммутативно.
Пример 4 : Рассчитайте, если возможно, произведение AE.
Стандартный способ описать размер или размерность матрицы – это …
(указать количество строк) x (указать количество столбцов)
… читается как «количество строк по количеству столбцов».
3 x 3 (матрица три на три)
3 x 2 (матрица три на два)
Поскольку количество столбцов в матрице A , равное , равно количеству строк в матрице E , равному , мы заключаем, что произведение AE определено.
Давайте разберемся. См. Анимированное решение ниже.
Пример 5 : Рассчитайте, если возможно, произведение E и A.
3 x 2 (матрица три на два)
3 x 3 (матрица три на три)
Очевидно, что количество столбцов матрицы E не равно количеству столбцов матрицы A. Следовательно, произведение EA не может быть вычислено или не определено.
Пример 6 : Вычислить, если возможно, произведение D и F.2}. Другими словами, мы возводим в квадрат матрицу C.
Здесь нужно проявлять осторожность. Обратите внимание, что возвести в квадрат можно только квадратную матрицу. Напомним, квадратная матрица – это матрица, в которой номер строки равен номеру столбца.
Я предоставлю вам возможность проверить правильность приведенного ниже решения. Такие математические задачи, как эта, хотя и утомительны, я всегда рекомендую решать их вручную, используя карандаш и бумагу.
Практика с рабочими листами
Возможно, вас заинтересует:
Сложение и вычитание матриц
Скалярное умножение
Калькулятор умножения матрицДобро пожаловать в калькулятор умножения матриц , где мы рассмотрим предмет умножения матриц вместе и увидим , что это хорошо для .К сожалению, матричное произведение на несколько сложнее, чем обычное умножение. Но не волнуйтесь, это не ракетостроение, и обучение умножению матриц действительно оказывается полезным в таких областях, как алгебра, анализ и, хотите верьте, хотите нет, в реальной жизни .
Не теряйте времени, давайте научимся умножать матрицы !
Что такое
матрица и для чего она нужна?Ответ на поставленный выше вопрос, к сожалению, не совсем ничего.Прежде чем мы начнем с калькулятора умножения матриц, , давайте представим число . Не волнуйтесь, это не начало фокусов. Мы оставляем их, когда хотим произвести впечатление на свидание. В любом случае, число, которое пришло вам в голову, может означать что угодно, , от количества книг, которые вы прочитали за последние несколько месяцев, до количества калорий, которые вы собираетесь сжечь, прочитав этот текст. Бесконечно много возможностей, правда?
Матрица является обобщением этого.Это массив элементов (обычно чисел) с заданным количеством строк и столбцов. В частности, матрица с одной строкой и одним столбцом содержит только один элемент, поэтому мы можем рассматривать такой массив как одно число. В целом, однако, он может хранить больше информации, чем одно значение, поскольку … ну, , вы можете иметь столько строк и столбцов, сколько хотите . Цифры, которые они содержат, могут быть вашим рабочим временем и вашей заработной платой или временем финиша первых трех марафонцев на каждой из последних десяти Олимпийских игр.
И если вам нужен пример , какие математики используют матрицы для , то позвольте нам попробовать, сказав, что каждое линейное преобразование, то есть перемещение или поворот элемента , можно описать матрицей . Другими словами, каждое лето, когда вы отправляетесь в путешествие, и каждое субботнее утро, когда вы смешиваете ингредиенты для блинов, вы фактически использовали матрицы. Или, если быть точным, движение может быть переведено в матрицу .Это похоже на то, что можно сказать на вечеринке после пары пива. Мы уверены, что ваши друзья будут достаточно впечатлены .
Другие научные области, в значительной степени опирающиеся на матрицы , включают:
Как умножать матрицы?
Как мы уже говорили в предыдущем разделе, матрицы являются обобщением простых чисел , поэтому имеет смысл их умножать. Однако существует несколько правил умножения матриц , которым мы должны следовать, и, к сожалению, матричное произведение может быть не таким интуитивным, как обычное числовое произведение.
Прежде всего, мы не можем перемножить никакую пару матриц . Еще хуже, если у нас есть матрица A и матрица B , то в целом произведение матриц A * B отличается от B * A (мы говорим, что матриц умножения не коммутативны ) . Давайте посмотрим на формулу умножения массивов, чтобы понять, почему это так.
Скажем, что A имеет записи n, m , где n обозначает номер строки, а m обозначает столбец.Это означает, что запись 2,4 будет относиться к числу во второй строке четвертого столбца. Аналогично, пусть B имеет записи b n, m . Если продукт A * B представляет собой матрицу с элементами c n, m , то мы имеем
c n, m = a n, 1 * b 1, m + a n, 2 * b 2, m + a n, 3 * b 3, m + ...
Другими словами, , чтобы получить запись в строке n и столбце m матричного произведения, нам нужно взять n -ю строку первой матрицы и m -й столбец второй матрицы и умножаем их элементы попарно по одному, а затем все это просуммируем.Что ж, мы предупреждали вас, что умножение массивов не так интуитивно понятно, как обычное. Но не волнуйтесь, , мы увидим хороший пример умножения матриц в следующем разделе.
Однако, прежде чем мы попытаемся перемножить матрицы, давайте обратим внимание на несколько упомянутых нами правил умножения матриц .
Мы не можем перемножить никакую пару матриц. Из приведенной выше формулы мы видим, что каждый элемент матричного произведения получается путем объединения строки первой матрицы со столбцом второй матрицы и умножения их элементов один за другим.Это означает, что каждая строка массива
Aдолжна иметь столько же записей, сколько каждый столбец массиваB. Это, в свою очередь, преобразуется в , первая матрица имеет столько же столбцов, сколько вторая матрица имеет строк . Обратите внимание, что наш калькулятор умножения матриц не будет работать, если не будут выполнены эти критерии.Как правило, матричный продукт имеет другую форму, чем факторы. Если первая матрица имеет
rстрок иsстолбцов, а вторая –sстрок (помните, что это число должно быть таким же, как количество столбцов в первом массиве) иtстолбцов, тогда результат умножения этих матриц будет иметьrстрок иtстолбцов.Умножение массивов не коммутативно. Мы уже упоминали об этом, но теперь, когда мы узнали, как умножать матрицы, мы понимаем, почему это так. В предыдущем пункте мы сказали, что произведение матрицы столбцов
rиsAсстрокойиtматрицы столбцовBявляетсяr.– ряд иt– массив столбцовA * B. С другой стороны, если мы хотим найтиB * A, то для начала нам нужно иметьs = t.В противном случае умножение этих матриц невозможно даже . Во-вторых, продуктB * Aбудет иметьsстрок иsстолбцов, поэтому он явно будет отличаться отA * B.Это действительно обобщение обычных чисел. В качестве последнего из правил умножения матриц отметим, что все работает хорошо и красиво в самых простых случаях – когда оба множителя являются матрицами с одной записью.Тогда матричное произведение представляет собой матрицу с одним элементом, которую мы получаем путем умножения чисел из двух массивов. Эта операция коммутативна и ведет себя так же, как и обычное умножение чисел.
Пример: поиск матричного произведения
Наконец-то пришло время увидеть, как работает калькулятор умножения матриц . Возьмем
| A | = |
|
и попробуем перемножить эти матрицы на .
Прежде всего, обратите внимание, что A имеет три строки и два столбца, а B – две строки и два столбца. Следовательно, согласно правилам умножения матриц, мы можем безопасно найти A * B , но матричное произведение B * A не существует .
Если вам нужен простой выход, не стесняйтесь использовать калькулятор матричного умножения, чтобы найти ответ . Для этого мы начинаем с ввода количества строк и столбцов для обеих матриц.Это покажет нам символическое изображение над калькулятором с обозначениями, которые мы используем . Первый (тот, что слева) будет нашим A , а второй (правый) будет B . Сравните изображение с массивами, которые у нас есть, и, , введите числа в калькулятор матричного умножения под правильными метками . Для первой матрицы имеем:
a₁ = 3 , a₂ = -1 ,
b₁ = 0 , b₂ = 2 ,
c₁ = 1 , c₂ = -1 ,
и для второго:
x₁ = 1 , х₂ = 0 ,
y₁ = -1 , y₂ = 4 .
Тем не менее, давайте также посмотрим, как калькулятор умножения матриц находит ответ . Мы начнем с представления полезного трюка , который поможет нам с умножением массива. Запишем две матрицы особым образом, разделив их парой пунктирных перпендикулярных линий:
| ⁞ | ⌈ | 1 | 0 | ⌉ | ||||
| ⁞ | ⌊ | –1 | 4 | ⌋ | ||||
| … | … | … | … | · | … | … | … | … |
| ⌈ | 3 | –1 | ⌉ | ⁞ | ||||
| | | 0 | 2 | | | ⁞ | ||||
| ⌊ | 1 | –1 | ⌋ | ⁞ |
Произведение двух матриц должно иметь три строки и два столбца, поэтому мы запишем его в правом нижнем углу таблицы выше.Обратите внимание, что запись в первой строке и первом столбце будет соответствовать умножению первого столбца первой строки A на первую строку первого столбца B , умножению второго столбца первой строки A по второй строке первого столбца B и суммируем результаты. Это дает:
3 * 1 + (-1) * (-1) = 3 + 1 = 4 .
Следовательно, если мы запишем его в правильную ячейку нашей таблицы, как это
| ⁞ | ⌈ | 1 | 0 | ⌉ | ||||
| ⁞ | ⌊ | –1 | 4 | ⌋ | ||||
| … | … | … | … | · | … | … | … | … |
| ⌈ | 3 | –1 | ⌉ | ⁞ | ⌈ | 4 | ⌉ | |
| | | 0 | 2 | | | ⁞ | | | | | ||
| ⌊ | 1 | –1 | ⌋ | ⁞ | ⌊ | ⌋ |
Мы помещаем это новое число там, где столбец и строка, которые мы использовали для его вычисления, пересекаются, поэтому мы знаем, что мы использовали, чтобы найти его.Если продолжить эту процедуру, получим
| ⁞ | ⌈ | 1 | 0 | ⌉ | ||||
| ⁞ | ⌊ | –1 | 4 | ⌋ | ||||
| … | … | … | … | · | … | … | … | … |
| ⌈ | 3 | –1 | ⌉ | ⁞ | ⌈ | 4 | -4 | ⌉ |
| | | 0 | 2 | | | ⁞ | | | -2 | 8 | | |
| ⌊ | 1 | –1 | ⌋ | ⁞ | ⌊ | 2 | -4 | ⌋ |
Всего результат умножения нашего массива –
| A * B | = |
|
4.Умножение матриц
Важно: Мы можем перемножать матрицы только в том случае, если количество столбцов в первой матрице совпадает с количеством строк во второй матрице.
Пример 1
a) Умножение матрицы 2 × 3 на матрицу 3 × 4 возможно, и это дает матрицу 2 × 4 в качестве ответа.
b) Допускается умножение матрицы 7 × 1 на матрицу 1 × 2; это дает матрицу 7 × 2
c) НЕЛЬЗЯ умножить матрицу 4 × 3 на матрицу 2 × 3.
Как умножить 2 матрицы
Сначала мы используем буквы, чтобы увидеть, что происходит. Позже мы увидим пример чисел.
В качестве примера возьмем обычную матрицу 2 × 3, умноженную на матрицу 3 × 2.
`[(a, b, c), (d, e, f)] [(u, v), (w, x), (y, z)]`
Ответом будет матрица 2 × 2.
Умножаем и складываем элементы следующим образом. Мы обрабатываем по 1-й строке первой матрицы, поэлементно умножая на 1-го столбца второй матрицы.Складываем получившихся произведений. Наш ответ находится в позиции a 11 (вверху слева) матрицы ответов.
Мы делаем аналогичный процесс для 1-й строки первой матрицы и 2-го столбца второй матрицы. Результат помещается в позицию a 12 .
Теперь для 2-й строки первой матрицы и 1-го столбца второй матрицы. Результат помещается в позицию a 21 .
Наконец, мы делаем вторую строку первой матрицы и второй столбец второй матрицы. Результат помещается в позицию a 22 .
Итак, результат умножения наших двух матриц будет следующим:
`[(a, b, c), (d, e, f)] [(u, v), (w, x), (y, z)]` `= [(au + bw + cy, av + bx + cz), (du + ew + fy, dv + ex + fz)] `
Теперь давайте посмотрим на числовой пример.
Телефонные пользователи
ПРИМЕЧАНИЕ: Если вы разговариваете по телефону, вы можете прокрутить любую матрицу шириной на этой странице вправо или влево, чтобы увидеть все выражение.
Пример 2
Умножить:
`((0, -1,2), (4,11,2)) ((3, -1), (1,2), (6,1))`
Ответ
Это 2 × 3 умножить на 3 × 2, что даст нам 2 × 2 отвечать.
`((0, -1,2), (4,11,2)) ((3, -1), (1,2), (6,1))`
`= ((0xx3 + -1xx1 + 2xx6,0xx-1 + -1xx2 + 2xx1), (4xx3 + 11xx1 + 2xx6,4xx -1 + 11xx2 + 2xx1))`
`= ((0-1 + 12,0-2 + 2), (12 + 11 + 12, -4 + 22 + 2))`
`= ((11,0), (35,20))`
Наш ответ – матрица 2 × 2.
Умножение матриц 2 × 2
Процесс одинаков для матрицы любого размера. Мы умножаем на строк первой матрицы и на столбцов второй матрицы поэлементно. Затем мы добавляем продукты:
`((a, b), (c, d)) ((e, f), (g, h))` `= ((ae + bg, af + bh), (ce + dg, cf + dh )) `
В этом случае мы умножаем матрицу 2 × 2 на матрицу 2 × 2 и в результате получаем матрицу 2 × 2.
Пример 3
Умножить:
`((8,9), (5, -1)) ((- 2,3), (4,0))`
Ответ
`((8,9), (5, -1)) ((- 2,3), (4,0))`
`= ((8 xx -2 + 9xx4,8xx3 + 9xx0), (5xx-2 + -1xx4,5xx3 + -1xx0))`
`= ((-16 + 36,24 + 0), (- 10+ -4,15 + 0))`
`= ((20,24), (- 14,15))`
Матрицы и системы одновременных линейных уравнений
Теперь мы видим, как написать систему линейных уравнений, используя умножение матриц.
Пример 4
Система уравнений
−3 x + y = 1
6 x -3 y = −4
можно записать как:
Матрицы`((-3,1), (6, -3)) ((x), (y)) = ((1), (- 4))`
идеальны для компьютерного решения задач, потому что компьютеры легко формируют массивы . Мы можем опустить алгебраические символы. Компьютеру требуются только первая и последняя матрицы для решения системы, как мы увидим в разделе «Матрицы и линейные уравнения».
Примечание 1 – Обозначение
Care с записью умножением матриц .
Следующие выражения имеют различных значений:
AB – это матричное умножение
A × B – это перекрестное произведение , которое возвращает вектор
A * B используется в компьютерной нотации, но не на бумаге
A • B точечное произведение , которое возвращает скаляр .
[Дополнительную информацию о векторных и скалярных величинах см. В главе «Вектор».]
Примечание 2 – Коммутативность умножения матриц
Имеет ли `AB = BA`?
Посмотрим, правда ли это на примере.
Пример 5
Если
`A = ((0, -1,2), (4,11,2))`
и
`B = ((3, -1), (1,2), (6,1))`
найдите AB, и BA.
Ответ
Мы выполнили AB выше, и ответ был:
`AB = ((0, -1,2), (4,11,2)) ((3, -1), (1,2), (6,1))`
`= ((11,0), (35,20))`
Теперь BA – это (3 × 2) (2 × 3), что даст 3 × 3:
`BA = ((3, -1), (1,2), (6,1)) ((0, -1,2), (4,11,2))`
`= ((0-4, -3-11,6-2), (0 + 8, -1 + 22,2 + 4), (0 + 4, -6 + 11,12 + 2))`
`= ((-4, -14,4), (8,21,6), (4,5,14))`
Итак, в этом случае AB НЕ равно BA.
Фактически, для большинства матриц нельзя изменить порядок умножения и получить тот же результат.
В общем случае при умножении матриц закон коммутативности не выполняется, т.е. AB ≠ BA . Есть два распространенных исключения:
.- Идентификационная матрица: IA = AI = A .?
- Матрица , обратная матрицы: A -1 A = AA -1 = I.
В следующем разделе мы узнаем, как найти обратную матрицу.
Пример 6 – Умножение на матрицу идентичности
Учитывая, что
`A = ((- 3,1,6), (3, -1,0), (4,2,5))`
найдите AI .
Ответ
`AI = ((-3,1,6), (3, -1,0), (4,2,5)) ((1,0,0), (0,1,0), (0 , 0,1)) `
`= ((- 3 + 0 + 0,0 + 1 + 0,0 + 0 + 6), (3 + 0 + 0,0 + -1 + 0,0 + 0 + 0), (4 + 0 + 0,0 + 2 + 0,0 + 0 + 5)) `
`= ((- 3,1,6), (3, -1,0), (4,2,5))`
`= A`
Мы видим, что умножение на единичную матрицу не меняет значения исходной матрицы.
То есть
AI = A
Упражнения
1. Если возможно, найдите BA и AB .
`A = ((- 2,1,7), (3, -1,0), (0,2, -1))`
`B = (4 \ \ -1 \ \ \ 5)`
Ответ
`BA = (4 \ \ -1 \ \ \ 5) ((- 2,1,7), (3, -1,0), (0,2, -1))`
`= (-8 + (- 3) +0 \ \ \ 4 + 1 + 10 \ \ \ 28 + 0 + (- 5))`
`= (- 11 \ \ 15 \ \ 23)`
AB невозможно.(3 × 3) × (1 × 3).
2. Определите, если B = A -1 , учитывая:
`A = ((3, -4), (5, -7))`
`B = ((7,4), (5,3))`
Ответ
Если B = A -1 , то AB = I.
`AB = ((3, -4), (5, -7)) ((7,4), (5,3))`
`= ((21-20,12-12), (35-35,20-21))`
`= ((1,0), (0, -1))`
`! = I`
Таким образом, B НЕ является обратным A.2 + 0)) `
`= ((1,0), (0,1))`
`= I`
4. Оцените следующее умножение матриц, которое используется для управления движением роботизированного механизма.
`((cos \ 60 °, -sin \ 60 °, 0), (sin \ 60 °, cos \ 60 °, 0), (0,0,1)) ((2), (4), ( 0)) `
Ответ
`((cos \ 60 °, -sin \ 60 °, 0), (sin \ 60 °, cos \ 60 °, 0), (0,0,1)) ((2), (4), ( 0)) `
`= ((2 (0,5) -4 (0,866) +0), (2 (0,866) +4 (0,5) +0), (0 + 0 + 0))`
`= ((- 2,464), (3,732), (0))`
Интерпретация этого заключается в том, что рука робота движется из позиция (2, 4, 0) в позицию (-2.46, 3.73, 0). То есть это перемещается в плоскости x-y , но его высота остается на уровне z = 0 . Матрица 3 × 3, содержащая sin и Значения cos говорят, на сколько градусов нужно переместиться.
Интерактивное умножение матриц
Умножение матриц| Ресурсы Wyzant
Умножение матрицы на скалярную константу
Матрицы могут быть умножены на скалярные константы аналогично умножению любое количество переменных скалярной константой.Скалярная константа относится к любому числу; реальные или мнимые; положительный или отрицательный; целое или дробное, но не переменная.
Когда матрица умножается на скалярную константу, константа умножается каждые запись в матрицу одинаково, например, дана матрица A
найти x A , где x – скалярная константа
решение:
Как вы можете видеть в приведенном выше примере, x умножается по всей матрице A затрагивает все записи в A
Например: Для данной матрицы M найти
решение:
Помимо умножения на скалярные константы, матрицы также можно умножать другими матрицами.Однако умножение матриц не так просто, как регулярное умножение, должны соблюдаться определенные правила и определенные условия быть встреченным.
Свойства умножения матриц
Первое правило, которое вы должны знать, это то, что умножение матриц является коммутативным НЕ , т.е.
Для двух матриц A и B
Мы скоро увидим причину этого.
Умножение матриц ассоциативно; например, даны 3 матрицы A , B и C , всегда верно следующее тождество
Но поскольку мы уже говорили, что умножение матриц не коммутативно, следующее это НЕ верно
или любая другая подобная перестановка.Матрицы должны сохранять свой порядок.
- Умножение матриц распределяется по сложению
Обратите внимание, однако, что порядок по-прежнему имеет значение, приведенное выше не совпадает с
Сказанное выше неверно, но верно следующее
- Умножение скалярной константы на матричное умножение коммутативно в следующая форма;
Есть еще несколько свойств умножения матриц, и мы увидим их. Через некоторое время.
Правило умножения матриц
Две матрицы A, и B можно перемножать только в виде A B тогда и только тогда, когда их размеры принимают следующий вид:
Матрица A имеет размер n x m, а матрица B имеет размер m x x
Другими словами, при умножении матриц количество столбцов в матрице на слева должно быть равно количеству строк в матрице справа.
Например; учитывая, что матрица A является матрицей 3 x 3, для матричного умножения A B , чтобы возможно, матрица B должна иметь размер 3 x m, где m может быть любым количеством столбцов. Это, как мы вскоре увидим, связано с тем, как матрицы умножаются. Это правило является причиной того, что умножение матриц невозможно. коммутативный.
Удобный способ проверить, можно ли перемножить 2 матрицы, чтобы увидеть их размеры. бок о бок.Например, учитывая, что вам предлагается перемножить матрицы 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 равно количеству рядов в E
- E D , потому что количество столбцов в E равно количеству рядов в D
Теперь, когда мы увидели, что возможны как D E , так и E D , давайте перейдем к фактическому выполнению вычислений.
Всегда начинайте с расстановки матриц по мере необходимости, не путайте их порядок. Тогда возникает вопрос, что делать дальше!
Умножение матриц выполняется путем умножения строк на столбцы. В этом случае мы только есть одна строка, но у нас четыре столбца.
Мы делаем это путем умножения всех строк на все столбцы как таковые:
Мы добавляем, потому что каждая запись в результирующей матрице является суммой умножения записи в строке и столбце для этой позиции.Для приведенного выше примера полученный матрица имеет размер 1 x 1.
Теперь вы должны заметить, что это то же самое, что и количество строк в E и количество колонн в D . Таким образом, теперь мы можем сказать, как правило, что когда вы перемножьте две матрицы, их произведение будет иметь такое же количество строк, как и матрица слева и такое же количество столбцов, что и в матрице справа.
Например, если A B = C , где A имеет размер n x m и B имеет размер p x q, тогда C будет иметь размер n x q. Это всегда правда для любого умножения матриц.
Вернемся к умножению D и E . Мы уже видели E D , Итак, теперь давайте посмотрим на D E
Итак, теперь у нас есть четыре строки и четыре столбца.Взгляните на размеры D и E
мы видим, что итоговая матрица должна иметь размер 4 х 4.
В каждой строке умножается каждый столбец, и получается одна запись, соответствующая этому должность. Увидев результаты D E и E D , вы должен увидеть причину, по которой умножение матриц не коммутативно, как указано в первое свойство: результат не тот!
Давайте теперь посмотрим на другой пример, чтобы проиллюстрировать умножение матриц:
Даны матрицы A и B , где
и
Поскольку A и B удовлетворяют правилу умножения матриц, произведение A B можно найти следующим образом.
Матрица A B – это матрица 2 x 2.
Из двух приведенных выше примеров мы можем наблюдать следующее для матричного умножения A B = C
Чтобы привыкнуть ко всему процессу умножения матриц, нужно время, но Уловка состоит в том, чтобы сделать как можно больше примеров.Ниже приведены несколько отработанных примеров.
Примеры умножения матриц
Пример 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
.
Щоб знайти цей термін, просто помножте елементи нижнього рядка першої матриці на елементи першого стовпця другої матриці та додайте їх. Використовуйте той самий метод, який ви використовували для множення першого рядка та стовпця – знайдіть знову
Припустимо, ви вирішили обчислити елементи у другому ряду та другому (правому нижньому) стовпчику матричного добутку спочатку. Ось як це зробити:
Ось як це зробити:
Якщо це не працює ні в налаштуваннях ( *, ні *), проблема не має рішення.
Наприклад, щоб знайти визначник матриці 4 x 4, потрібно знайти визначники чотирьох 3 x 3 матриць.
