Как решить матричное уравнение в Excel: от теории к практике

Если при попытке решить матричное уравнение типа AX = B в Microsoft Excel вы получаете ошибку #ЧИСЛО! или некорректный результат, проблема в 90% случаев кроется в неверном порядке умножения матриц или отсутствии проверки на вырожденность. Excel не имеет встроенной функции для прямого решения таких уравнений, но комбинация МОБР (обратная матрица) и МУМНОЖ (умножение) позволяет обойти это ограничение — при условии, что матрица A квадратная и её определитель не равен нулю. Даже если вы никогда не работали с матрицами в таблицах, следующий алгоритм поможет избежать типичных ошибок: от подготовки данных до интерпретации результата.

Ключевой нюанс: Excel оперирует массивами как динамическими формулами, поэтому после ввода любой матричной функции (например, =МОБР(A1:C3)) необходимо подтвердить её сочетанием Ctrl+Shift+Enter — это преобразовывает формулу в {фигурные скобки}, сигнализирующие о массиве. Без этого шага вы получите только первый элемент результата. Далее разберём пошагово, как правильно организовать данные, какие функции использовать для разных типов уравнений, и что делать, если матрица A необратима.

1. Подготовка данных: как правильно ввести матрицы в Excel

Прежде чем решать уравнение, убедитесь, что матрицы A и B введены корректно. Excel воспринимает каждую ячейку как отдельный элемент матрицы, поэтому:

  • 📌 Матрица A (коэффициентов) должна быть квадратной (например, 3×3 или 4×4). Если строк и столбцов разное количество, уравнение AX = B не имеет решения в классическом виде.
  • 📌 Матрица B (свободных членов) может быть вектор-столбцом (например, 3×1) или матрицей с тем же количеством строк, что и A (например, 3×2 для системы с 3 уравнениями и 2 переменными).
  • 📌 Все элементы матриц должны быть числовыми. Текст, пустые ячейки или формулы с ошибками приведут к сбою.

Пример организации данных для уравнения 2×2:

ЯчейкаЗначение (матрица A)ЯчейкаЗначение (матрица B)
A12D15
A21D23
B13
B24
⚠️ Внимание: Если в матрице A есть нулевые строки или столбцы, Excel может выдать обратную матрицу с ошибками. Проверьте данные на наличие нулей в критических позициях (например, на главной диагонали).

2. Проверка матрицы на обратимость: функция МОПРЕД

Перед решением уравнения AX = B необходимо убедиться, что матрица A имеет обратную. Для этого используйте функцию МОПРЕД (определитель матрицы):

  1. Выделите любую свободную ячейку (например, E1).
  2. Введите формулу =МОПРЕД(A1:B2) (для матрицы 2×2 из примера выше).
  3. Нажмите Enter.

Если результат равен 0, матрица вырожденная, и классическое решение X = A⁻¹B невозможно. В этом случае придётся использовать:

  • 🔄 Метод наименьших квадратов (функция ЛИНЕЙН для приближённого решения).
  • 🔄 Псевдообратную матрицу (требует надстройки Analysis ToolPak или VBA).

3. Решение уравнения AX = B: пошаговый алгоритм

Для уравнения вида AX = B решение находится по формуле X = A⁻¹B. В Excel это реализуется в два этапа:

  1. Нахождение обратной матрицы A⁻¹:
    • Выделите диапазон ячеек размером с матрицу A (например, E1:F2 для 2×2).
    • Введите формулу =МОБР(A1:B2).
    • Нажмите Ctrl+Shift+Enter (формула обернётся в {...}).
  2. Умножение A⁻¹ на B:
    • Выделите диапазон для результата (например, G1:G2 для вектора 2×1).
    • Введите =МУМНОЖ(E1:F2; D1:D2).
    • Подтвердите Ctrl+Shift+Enter.

Результат в ячейках G1:G2 — искомый вектор X. Для проверки подставьте значения обратно в уравнение AX и сравните с B.

Выделили диапазон для обратной матрицы|Подтвердили формулу МОБР сочетанием Ctrl+Shift+Enter|Умножили результат на матрицу B с помощью МУМНОЖ|Сравнили AX с исходной матрицей B-->

4. Альтернативные методы: ЛИНЕЙН и СУММПРОИЗВ

Если матрица A не квадратная или вырожденная, используйте функцию ЛИНЕЙН для приближённого решения методом наименьших квадратов:

=ЛИНЕЙН(известные_значения_y; известные_значения_x; [конст]; [статистика])

Пример для уравнения с матрицей A (3×2) и вектором B (3×1):

  • 📊 известные_значения_y — диапазон с B (например, D1:D3).
  • 📊 известные_значения_x — диапазон с A (например, A1:B3).
  • 📊 [конст]ИСТИНА (если в модели есть свободный член).

Для ручного умножения матриц без МУМНОЖ используйте СУММПРОИЗВ:

=СУММПРОИЗВ(A1:B1; D1:D2)

5. Типичные ошибки и их исправление

Даже при правильном алгоритме пользователи сталкиваются с ошибками. Рассмотрим самые частые:

ОшибкаПричинаРешение
#ЧИСЛО! в МОБРМатрица вырожденная (определитель = 0)Используйте ЛИНЕЙН или проверьте данные на ошибки
#ЗНАЧ! в МУМНОЖНесовпадение размерностей матрицУбедитесь, что количество столбцов первой матрицы равно количеству строк второй
Результат не совпадает с BНе нажали Ctrl+Shift+EnterПовторите ввод формулы как массива
Округление результатовExcel хранит 15 знаков после запятойИспользуйте =ОКРУГЛ(результат; 10) для точности
⚠️ Внимание: Если в матрице A есть текстовые ячейки (например, "n/a"), Excel проигнорирует их при вычислениях, но это исказит результат. Преобразуйте все данные в числа с помощью ЗНАЧЕН.
📊 Какой метод решения матричных уравнений вы используете чаще?
Функции МОБР+МУМНОЖ
Функция ЛИНЕЙН
Ручной расчёт в Python/Matlab
Другое

6. Автоматизация с помощью VBA

Для регулярной работы с матрицами создайте пользовательскую функцию на VBA:

  1. Нажмите Alt+F11, чтобы открыть редактор VBA.
  2. Вставьте новый модуль (Insert > Module).
  3. Добавьте код:
    Function SolveMatrix(A As Range, B As Range) As Variant
    

    SolveMatrix = Application.WorksheetFunction.MMult(Application.WorksheetFunction.MInverse(A), B)

    End Function

  4. Сохраните файл как .xlsm (с поддержкой макросов).

Теперь в Excel можно использовать =SolveMatrix(A1:B2; D1:D2) как обычную формулу массива. Преимущество метода:

  • 🤖 Автоматическое подтверждение как массива (не нужно Ctrl+Shift+Enter).
  • 🤖 Возможность добавить проверку на вырожденность прямо в коде.
Пример кода с проверкой определителя

Function SolveMatrixSafe(A As Range, B As Range) As Variant

Dim det As Double

det = Application.WorksheetFunction.MDeterm(A)

If Abs(det) < 1E-10 Then

SolveMatrixSafe = "Матрица вырожденная!"

Else

SolveMatrixSafe = Application.WorksheetFunction.MMult(Application.WorksheetFunction.MInverse(A), B)

End If

End Function

7. Практический пример: решение системы из 3 уравнений

Рассмотрим систему:

2x + 3y + z = 9
x + y + z = 6
3x + y + 2z = 8

Шаги в Excel:

  1. Введите матрицу A (коэффициенты) в A1:C3:
  2. 2  3  1
    

    1 1 1

    3 1 2

  3. Введите вектор B в D1:D3:
  4. 9
    

    6

    8

  5. Выделите диапазон E1:E3 для результата.
  6. Введите =МУМНОЖ(МОБР(A1:C3); D1:D3) и подтвердите Ctrl+Shift+Enter.

Результат: x = 1, y = 2, z = 3. Для проверки используйте =МУМНОЖ(A1:C3; E1:E3) — должен получиться вектор B.

FAQ: Частые вопросы по решению матричных уравнений в Excel

Можно ли решить уравнение, если матрица A не квадратная?

Да, но только приближённо с помощью функции ЛИНЕЙН. Классическое решение X = A⁻¹B применимо только к квадратным матрицам с ненулевым определителем. Для прямоугольных матриц ЛИНЕЙН возвращает коэффициенты линейной регрессии, минимизирующие ошибку.

Почему результат содержит очень большие числа (например, 1E+30)?

Это признак плохо обусловленной матрицы — её определитель близок к нулю, и небольшие изменения входных данных приводят к огромным изменениям результата. Решения:

  • Проверьте исходные данные на ошибки.
  • Используйте метод регуляризации (добавьте к диагонали A маленькое число, например, 0.001).
Как решить уравнение вида XA = B (матрица X справа)?

Перепишите уравнение как X = BA⁻¹. В Excel:

  1. Найдите обратную матрицу МОБР(A1:C3).
  2. Умножьте B на результат справа: =МУМНОЖ(D1:D3; МОБР(A1:C3)).
Можно ли решить матричное уравнение в Google Sheets?

Да, в Google Sheets используйте те же функции, но с английскими названиями:

  • =MINVERSE(A1:C3) вместо МОБР.
  • =MMULT(A1:C3; D1:D3) вместо МУМНОЖ.

Формулы массива подтверждаются просто Enter (фигурные скобки появляются автоматически).

Как визуализировать решение матричного уравнения?

Для систем из 2–3 уравнений постройте график:

  1. Создайте таблицу значений x и y (например, от -10 до 10 с шагом 1).
  2. Вычислите z для каждого уравнения (например, =9-2*A2-3*B2 для первого уравнения из примера).
  3. Вставьте Точечную диаграмму (Вставка > Диаграмма > Точечная) и добавьте все три серии.

Точка пересечения линий — решение системы.