Умножение матриц в Microsoft Excel — задача, с которой сталкиваются студенты, инженеры и аналитики данных. Несмотря на кажущуюся сложность, электронные таблицы предоставляют встроенные инструменты для работы с матричными операциями без необходимости писать код или использовать специализированное ПО. В этой статье мы разберём не только базовые методы перемножения с помощью функции МУМНОЖ, но и нюансы работы с обратными матрицами, определителями, а также типичные ошибки, которые могут возникнуть при вычислениях.
Важно понимать, что умножение матриц — это не поэлементное перемножение, а операция, подчинённая строгим математическим правилам. Например, количество столбцов первой матрицы должно совпадать с количеством строк второй. Если вы ранее не работали с линейной алгеброй, не переживайте: мы объясним всё на конкретных примерах с пошаговыми скриншотами и формулами. А для опытных пользователей приведём продвинутые приёмы, включая динамические массивы в новых версиях Excel 365.
Что такое умножение матриц и почему его нельзя делать вручную
Умножение матриц — это операция, при которой каждый элемент результирующей матрицы вычисляется как сумма произведений элементов соответствующей строки первой матрицы и столбца второй. Формально, если у нас есть матрица A размером m×n и матрица B размером n×p, то их произведение C будет иметь размер m×p, где:
C[i][j] = Σ (A[i][k] × B[k][j]) для k = 1 до n.
Почему это нельзя делать вручную в Excel? Во-первых, при больших размерах матриц (например, 10×10) количество вычислений становится огромным — 100 операций умножения и 100 сложений только для одного элемента результирующей матрицы. Во-вторых, человеческий фактор: легко ошибиться в индексах или пропустить слагаемое. В-третьих, Excel оптимизирован для таких задач и выполняет их за доли секунды.
- 📌 Правило размерностей: количество столбцов первой матрицы должно равняться количеству строк второй. Иначе умножение невозможно.
- 🔄 Некоммутативность: A × B ≠ B × A (порядок важен!).
- ⚡ Производительность: Excel использует оптимизированные алгоритмы для матричных операций, что в разы быстрее ручных вычислений.
⚠️ Внимание: Если вы попытаетесь умножить матрицы несовместимых размеров (например,3×2и3×3), Excel вернёт ошибку#ЗНАЧ!. Всегда проверяйте размерности перед вычислениями.
Функция МУМНОЖ: базовый метод умножения матриц
Основной инструмент для умножения матриц в Excel — функция МУМНОЖ (или MMULT в английской версии). Она принимает два аргумента: две матрицы (диапазоны ячеек) и возвращает их произведение. Особенность функции в том, что она требует ввода как формула массива. Это означает, что после ввода формулы нужно нажать Ctrl + Shift + Enter (в старых версиях) или просто Enter (в Excel 365 с динамическими массивами).
Пример использования:
=МУМНОЖ(A1:B2; D1:F2)
Где:
A1:B2— первая матрица размером2×2.D1:F2— вторая матрица размером2×3.
Результат будет матрицей размером 2×3, занимающей диапазон ячеек 3×3 (если выделить его перед вводом формулы). В Excel 365 результат "прольётся" автоматически.
Выделите пустой диапазон ячеек для результата (размером [строки первой матрицы] × [столбцы второй матрицы])
Введите формулу =МУМНОЖ(диапазон1; диапазон2)
Завершите ввод комбинацией Ctrl+Shift+Enter (для Excel 2019 и старше) или просто Enter (для Excel 365)
Проверьте, что в формульной строке появились фигурные скобки {} (в старых версиях)
-->
Практический пример: умножаем матрицы 3×2 и 2×4
Рассмотрим конкретный пример. Допустим, у нас есть:
- Матрица A (
3×2): значения в ячейкахA1:B3. - Матрица B (
2×4): значения в ячейкахD1:G2.
Шаги для умножения:
- Выделите пустой диапазон размером
3×4(например,A5:D7). - Введите формулу:
=МУМНОЖ(A1:B3; D1:G2). - Нажмите
Ctrl + Shift + Enter(для Excel 2019) илиEnter(для Excel 365).
Результат — матрица C размером 3×4:
| Ячейка | Значение | Формула |
|---|---|---|
| A5 | 11 | =МУМНОЖ(A1:B3; D1:G2) |
| B5 | 17 | (часть массива) |
| C5 | 23 | (часть массива) |
| D5 | 29 | (часть массива) |
В Excel 365 результат автоматически заполнит диапазон 3×4 без необходимости выделять его заранее. В старых версиях при неправильном выделении диапазона вы получите ошибку или неполный результат.
Excel 2010 или старше
Excel 2013-2019
Excel 365 (подписка)
LibreOffice Calc
Другой-->
Ошибки при умножении матриц и как их исправить
Даже опытные пользователи Excel сталкиваются с ошибками при работе с матрицами. Рассмотрим наиболее частые из них и способы их устранения:
- 🔴
#ЗНАЧ!— несовпадение размерностей матриц. Проверьте, что количество столбцов первой матрицы равно количеству строк второй. - 🔴
#ССЫЛКА!— неправильно указан диапазон ячеек. Убедитесь, что адреса ячеек корректны и не пересекаются с областью результата. - 🔴
#ПУСТО!— одна из матриц содержит пустые ячейки. Заполните все элементы нулями или удалите лишние строки/столбцы. - 🔴 Результат не обновляется — забыли нажать
Ctrl + Shift + Enterв старых версиях Excel.
Частая ошибка начинающих — попытка умножить матрицу на вектор-столбец неверного размера. Например, если у вас матрица 3×3 и вектор 3×1, результат будет вектором 3×1. Но если вектор транспонирован (1×3), умножение станет невозможным. Используйте функцию ТРАНСП для изменения ориентации вектора:
=МУМНОЖ(A1:C3; ТРАНСП(D1:D3))
⚠️ Внимание: Если в матрице есть текстовые значения или формулы, возвращающие ошибки (например, #ДЕЛ/0!), функция МУМНОЖ также вернёт ошибку. Предварительно очистите данные или используйте функцию ЕСЛИОШИБКА для обработки исключений.
Как проверить размерности матриц перед умножением?
Используйте функции СТРОКА и СТОЛБЕЦ для подсчёта:
=СТРОКА(A1:B3)-СТРОКА(A1)+1 — количество строк в диапазоне A1:B3 (вернёт 3).
=СТОЛБЕЦ(D1:G2)-СТОЛБЕЦ(D1)+1 — количество столбцов в диапазоне D1:G2 (вернёт 4).
Для автоматической проверки совместимости используйте формулу:
=ЕСЛИ(СТОЛБЕЦ(B2)-СТОЛБЕЦ(B1)+1=СТРОКА(D2)-СТРОКА(D1)+1; "Можно умножать"; "Несовместимые размеры")
Продвинутые приёмы: обратная матрица и определитель
Умножение матриц часто используется вместе с другими операциями линейной алгебры, такими как нахождение обратной матрицы или определителя. В Excel для этого есть функции МОБР (обратная матрица) и МОПРЕД (определитель).
Пример нахождения обратной матрицы для A1:C3:
=МОБР(A1:C3)
Функция также требует ввода как формула массива. Обратите внимание, что обратная матрица существует только для квадратных матриц с ненулевым определителем. Чтобы проверить определитель:
=МОПРЕД(A1:C3)
Если определитель равен нулю, матрица называется вырожденной, и обратной для неё не существует. В этом случае Excel вернёт ошибку #ЧИСЛО!.
| Функция | Назначение | Пример |
|---|---|---|
| МОБР | Обратная матрица | =МОБР(A1:C3) |
| МОПРЕД | Определитель матрицы | =МОПРЕД(A1:C3) |
| МУМНОЖ | Умножение матриц | =МУМНОЖ(A1:B2; D1:E3) |
| ТРАНСП | Транспонирование | =ТРАНСП(A1:C3) |
Совмещая эти функции, можно решать системы линейных уравнений. Например, для уравнения Ax = B решение находится как x = A⁻¹B:
=МУМНОЖ(МОБР(A1:C3); D1:D3)
Динамические массивы в Excel 365: упрощение работы с матрицами
В Excel 365 и Excel 2021 появилась поддержка динамических массивов — это революционное изменение, которое упрощает работу с матрицами. Теперь не нужно выделять диапазон для результата или использовать Ctrl + Shift + Enter. Достаточно ввести формулу в одну ячейку, и результат автоматически "прольётся" на соседние ячейки.
Пример:
=МУМНОЖ(A1:B2; D1:F2)
Если ввести эту формулу в ячейку A5, Excel 365 автоматически заполнит диапазон A5:C6 (для матриц 2×2 и 2×3). Это экономит время и снижает риск ошибок.
Преимущества динамических массивов:
- ✅ Автоматическое определение размера результата.
- ✅ Нет необходимости вводить формулу как массив.
- ✅ Легко комбинировать с другими функциями (например, ФИЛЬТР, СОРТ).
Однако есть и ограничения. Например, если рядом с результатом есть данные, Excel может вернуть ошибку #ЗАПРЕЩ! (переполнение). В этом случае очистите соседние ячейки или используйте функцию @ для подавления "проливания":
=@МУМНОЖ(A1:B1; D1:D2)
Умножение матриц с использованием Power Query
Для обработки больших наборов данных или автоматизации процессов можно использовать Power Query — инструмент ETL (извлечение, преобразование, загрузка), встроенный в Excel. Хотя Power Query не имеет встроенной функции для умножения матриц, вы можете написать пользовательскую функцию на языке M.
Пример кода для Power Query:
(matrix1 as list, matrix2 as list) =>
let
// Преобразование матриц в списки списков
list1 = List.Transform(matrix1, each List.FromRecord(_)),
list2 = List.Transform(matrix2, each List.FromRecord(_)),
// Умножение матриц
result = List.Generate(
() => [i = 0, acc = {}],
each [i] < List.Count(list1),
each [
i = [i] + 1,
acc = List.Combine({[acc], {
List.Generate(
() => [j = 0, rowAcc = 0],
each [j] < List.Count(List.First(list2)),
each [
j = [j] + 1,
rowAcc = List.Sum(
List.Transform(
{0 .. List.Count(List.First(list1)) - 1},
(k) => List.First(List.Skip(list1, [i])){k} * List.Skip(list2, k){0}{[j]}
)
)
],
each [rowAcc]
)
}})
],
each [acc]
),
// Преобразование результата в таблицу
tableFromList = Table.FromList(result, Splitter.SplitByNothing(), {"Column1"}),
splitColumns = Table.SplitColumn(tableFromList, "Column1", Splitter.SplitByNothing(), List.Count(List.First(list2)))
in
splitColumns
Этот код создаёт пользовательскую функцию, которую можно вызвать из интерфейса Power Query. Хотя такой подход сложнее, чем МУМНОЖ, он полезен для интеграции матричных операций в сложные процессы обработки данных.
⚠️ Внимание: Использование Power Query для матричных операций оправдано только при работе с очень большими данными или когда умножение матриц — часть более сложного пайплайна. Для большинства задач хватит функции МУМНОЖ.
FAQ: Частые вопросы по умножению матриц в Excel
Можно ли умножить матрицу на число в Excel?
Да, но стандартной функции для этого нет. Нужно умножить каждую ячейку матрицы на число вручную или использовать формулу массива:
=A1:C3 * 5
Введите эту формулу в диапазон такого же размера, как исходная матрица, и завершите Ctrl + Shift + Enter.
Почему функция МУМНОЖ возвращает ошибку #ЗНАЧ!?
Эта ошибка возникает в трёх случаях:
- Несовпадение размерностей матриц (количество столбцов первой ≠ количеству строк второй).
- Один из диапазонов содержит текст или пустые ячейки.
- В старых версиях Excel забыли нажать
Ctrl + Shift + Enter.
Проверьте размеры матриц с помощью функций СТРОКА и СТОЛБЕЦ.
Как умножить три матрицы подряд?
Используйте вложенные функции МУМНОЖ:
=МУМНОЖ(МУМНОЖ(A1:B2; D1:E3); G1:H2)
Порядок умножения важен! Убедитесь, что размерности совместимы на каждом этапе.
Можно ли умножать матрицы в Google Sheets?
Да, в Google Таблицах есть аналогичная функция MMULT (или МУМНОЖ в русской версии). Синтаксис и правила те же, что и в Excel:
=MMULT(A1:B2; D1:F2)
Для ввода формулы массива используйте Ctrl + Shift + Enter.
Как проверить правильность умножения матриц?
Сравните результат с ручным вычислением для небольших матриц (например, 2×2). Также можно использовать онлайн-калькуляторы матриц или специализированное ПО вроде MATLAB или Wolfram Alpha для проверки.