Деление матриц в Microsoft Excel — задача, с которой сталкиваются студенты, инженеры и аналитики. На первый взгляд кажется, что достаточно просто поделить элементы одной матрицы на элементы другой, но на практике всё сложнее: классическая операция деления матриц в математике определяется через умножение на обратную матрицу. В этой статье разберём, как правильно выполнять такие вычисления, какие функции использовать (МУМНОЖ, МОБР, ТРАНСП), и где начинающие допускают ошибки.
Важно понимать: в Excel нет прямой функции "деления матриц", как, например, для сложения или умножения. Вместо этого применяется комбинация операций с обратными матрицами. Мы покажем три основных подхода — от ручного расчёта до автоматизированных формул, а также объясним, почему иногда результат получается с ошибкой #ЧИСЛО! и как это исправить.
Почему нельзя просто поделить матрицы поэлементно?
Многие пользователи пытаются делить матрицы в Excel, используя оператор / для каждого элемента отдельно. Например, делят A1/B1, A2/B2 и так далее. Это работает только для поэлементного деления (так называемого деления Адамара), но не для математического деления матриц.
В линейной алгебре операция деления матриц определяется как умножение первой матрицы на обратную ко второй:
A / B = A × B⁻¹. Это означает, что:
- 🔹 Матрица
Bдолжна быть квадратной (количество строк = количеству столбцов). - 🔹 Её определитель не должен равняться нулю (иначе обратной матрицы не существует).
- 🔹 Результат будет корректен только при соблюдении размерностей: число столбцов
Aдолжно совпадать с числом строкB⁻¹.
Если просто поделить элементы, вы получите матрицу, которая не имеет математического смысла для большинства задач (например, решения систем уравнений или нахождения проекций).
Метод 1: Деление через обратную матрицу (классический способ)
Это самый точный способ, который используется в математике. Алгоритм действий:
- Найдите обратную матрицу для делителя (
B⁻¹) с помощью функцииМОБР. - Умножьте исходную матрицу (
A) на обратную (B⁻¹) с помощьюМУМНОЖ.
Пример: пусть у нас есть матрица A (2×2) в ячейках A1:B2 и матрица B (2×2) в D1:E2. Чтобы найти A / B:
- Выделите пустую область 2×2 (например,
G1:H2). - Введите формулу массива:
=МУМНОЖ(A1:B2; МОБР(D1:E2)) - Нажмите
Ctrl+Shift+Enter(в новых версиях Excel 365 формулы массива вводятся автоматически).
Если появилась ошибка #ЧИСЛО!, проверьте:
- 🔸 Является ли матрица
Bквадратной? - 🔸 Равен ли её определитель нулю? (проверьте через
=МОПРЕД(D1:E2)).
☑️ Проверка перед делением матриц
Метод 2: Использование функции МОБР.МАСС (Excel 365 и 2019)
В новых версиях Excel появились динамические массивы и функция МОБР.МАСС, которая упрощает работу. Она автоматически возвращает обратную матрицу без необходимости выделять диапазон заранее.
Инструкция:
- В любой ячейке (например,
G1) введите:=МОБР.МАСС(D1:E2)Результат "прольётся" на соседние ячейки автоматически.
- Теперь умножьте матрицу
Aна обратнуюB⁻¹:=МУМНОЖ(A1:B2; G1#)Символ
#указывает на динамический массив.
Преимущества метода:
- 📌 Нет нужды заранее выделять диапазон под результат.
- 📌 Формулы автоматически обновляются при изменении исходных данных.
- 📌 Меньше шансов ошибиться с размерностями.
Метод 3: Поэлементное деление (деление Адамара)
Если вам нужно не математическое деление матриц, а поэлементное (когда каждый элемент первой матрицы делится на соответствующий элемент второй), используйте простой оператор /.
Пример: пусть матрица A в A1:B2, а матрица B в D1:E2. В ячейке G1 введите:
=A1/D1
И растяните формулу на весь диапазон G1:H2.
Ограничения метода:
- ⚠️ Матрицы
AиBдолжны быть одинакового размера. - ⚠️ Если в
Bесть нули, результат будет#ДЕЛ/0!. - ⚠️ Не подходит для решения систем уравнений или матричных уравнений типа
AX = B.
Чем опасно поэлементное деление?
Если вы используете его вместо матричного деления, результаты будут неверны для задач линейной алгебры (например, нахождения коэффициентов регрессии или решения СЛАУ).
Ошибки при делении матриц и как их избежать
Даже опытные пользователи Excel сталкиваются с ошибками при работе с матрицами. Рассмотрим самые частые:
| Ошибка | Причина | Решение |
|---|---|---|
#ЧИСЛО! |
Определитель матрицы B равен нулю (матрица вырожденная). |
Проверьте данные на корректность или используйте псевдообратную матрицу (функция МОБР.ПСЕВДО в новых версиях). |
#ЗНАЧ! |
Неверные размерности матриц (число столбцов A ≠ числу строк B⁻¹). |
Транспонируйте матрицу B с помощью ТРАНСП, если нужно. |
#ДЕЛ/0! |
Деление на ноль в поэлементной операции. | Замените нули на очень маленькие числа (например, 1E-10) или используйте ЕСЛИОШИБКА. |
Особое внимание уделите вырожденным матрицам (с нулевым определителем). В этом случае:
⚠️ Внимание: Если МОПРЕД(B1:E2) возвращает ноль, обратная матрица не существует. Попробуйте:
- 🔹 Увеличить размерность матрицы (добавить строки/столбцы).
- 🔹 Использовать метод наименьших квадратов (функция
ЛИНЕЙН). - 🔹 Применить регуляризацию (добавить к диагонали маленькое число, например,
0.001).
Практические примеры: когда нужно делить матрицы
Разберём реальные задачи, где требуется деление матриц:
- Решение систем линейных уравнений.
Дано:AX = B. Решение:X = A⁻¹B.
В Excel:=МУМНОЖ(МОБР(A1:B2); D1:D2). - Нахождение коэффициентов множественной регрессии.
Формула:β = (XᵀX)⁻¹Xᵀy.
ИспользуйтеТРАНСПдля транспонирования. - Преобразование координат.
Например, переход из одной системы координат в другую с помощью матрицы преобразования.
Пример для регрессии:
- 📊 Данные
X(предикторы) вA1:B10. - 📊 Зависимая переменная
yвC1:C10. - 📊 Формула коэффициентов:
=МУМНОЖ(МУМНОЖ(МОБР(МУМНОЖ(ТРАНСП(A1:B10); A1:B10)); ТРАНСП(A1:B10)); C1:C10)
Альтернативы: надстройки и Power Query
Если встроенных функций Excel недостаточно, рассмотрите:
- 🛠️ Analysis ToolPak (пакет анализа):
Включается вФайл → Параметры → Надстройки → Управление надстройками Excel → Пакет анализа.
Содержит инструмент "Обратная матрица". - 📊 Power Query:
Позволяет выполнять матричные операции через язык M, но требует знания синтаксиса. - 🤖 Python в Excel (beta):
С помощью=PY("import numpy as np; np.linalg.inv([[1,2],[3,4]])")можно вызывать библиотеку NumPy.
Для сложных задач (например, работы с большими матрицами >100×100) лучше использовать Python или MATLAB, так как Excel может тормозить или выдавать ошибки округления.
FAQ: Частые вопросы по делению матриц в Excel
Можно ли делить матрицы разного размера?
Нет, для матричного деления (A / B = A × B⁻¹) число столбцов A должно совпадать с числом строк B. Если размерности не совпадают, используйте псевдообратную матрицу (МОБР.ПСЕВДО) или метод наименьших квадратов.
Почему результат деления матриц получается с ошибкой #ЧИСЛО!?
Это означает, что матрица-делитель вырожденная (её определитель равен нулю). Проверьте данные на линейную зависимость строк/столбцов или добавьте к диагонали маленькое число (например, 0.0001) для регуляризации.
Как умножить матрицу на вектор?
Используйте МУМНОЖ, где вектор — это матрица размером n×1 или 1×n. Например, для вектора D1:D3 и матрицы A1:C3:
=МУМНОЖ(A1:C3; D1:D3)
Чем отличается МОБР от МОБР.МАСС?
МОБР — устаревшая функция, требует выделения диапазона и ввода как формулы массива (Ctrl+Shift+Enter). МОБР.МАСС — новая функция для динамических массивов (Excel 365/2019), автоматически "проливает" результат.
Можно ли делить матрицы в Google Sheets?
Да, в Google Таблицах используйте те же функции: =MMULT (аналог МУМНОЖ), =MINVERSE (аналог МОБР). Формулы массива вводятся без Ctrl+Shift+Enter.