Обратная Матрица Через Блоки: Понятный Старт «Клеточного» Метода

Обратная матрица чаще всего находится стандартными способами — например, методом Гаусса–Жордана или через алгебраические дополнения. Но что делать, если матрица большая, а её элементы удобно сгруппировать в блоки, скажем, вдоль диагонали? В такой ситуации блочный («клеточный») метод оказывается очень кстати: мы разбиваем матрицу на блоки, записываем систему уравнений для этих блоков, вводим дополнение Шура и в итоге получаем формулу для \( A^{-1} \). Звучит практично, правда?

Обратная Матрица как Блочная Схема: Как Разбить Матрицу на Клетки

Начнём с базового шага. Пусть у нас есть квадратная матрица \( A \) порядка \( n \). Разобьём её на четыре блока («клетки») так, чтобы сверху слева был блок размера \( r\times r \), а снизу справа — \( s\times s \), где

\[
r+s=n.
\]

Запишем матрицу \( A \) в блочном виде:

\[
A=
\begin{pmatrix}
A_{11} & A_{12}\\
A_{21} & A_{22}
\end{pmatrix},
\]

где:

  • \( A_{11} \) — матрица размера \( r\times r \).
  • \( A_{12} \) — матрица \( r\times s \).
  • \( A_{21} \) — матрица \( s\times r \).
  • \( A_{22} \) — матрица \( s\times s \).

Теперь естественный вопрос: если мы уже работаем с блоками, разве не стоит так же искать и обратную? Да, именно так и поступим.

Будем искать \( A^{-1} \) в виде:

\[
A^{-1}=
\begin{pmatrix}
B_{11} & B_{12}\\
B_{21} & B_{22}
\end{pmatrix},
\]

где блоки \( B_{ij} \) имеют соответствующие размеры (как и блоки \( A_{ij} \)).

Дальше мы используем определение обратной матрицы. И тогда получим систему уравнений для блоков.

Система Блочных Уравнений: Как Работает Определение Обратной Матрицы

По определению обратной матрицы:

\[
A^{-1} \cdot A = E_n,
\]

где \( E_n \) — единичная матрица порядка \( n \).

Раз мы работаем с блоками, удобно записать единичную матрицу тоже в блочном виде:

\[
E_n=
\begin{pmatrix}
E_r & 0\\
0 & E_s
\end{pmatrix},
\]

где \( E_r \) — единичная матрица порядка \( r \), а \( E_s \) — единичная матрица порядка \( s \).

Перемножим блочные матрицы:

\[
\begin{pmatrix}
B_{11} & B_{12}\\
B_{21} & B_{22}
\end{pmatrix} \cdot
\begin{pmatrix}
A_{11} & A_{12}\\
A_{21} & A_{22}
\end{pmatrix}
=
\begin{pmatrix}
E_r & 0\\
0 & E_s
\end{pmatrix}.
\]

Из равенства блоков получаем четыре матричных уравнения:

\[
\begin{cases}
B_{11} \cdot A_{11} + B_{12} \cdot A_{21} = E_r,\\
B_{11} \cdot A_{12} + B_{12} \cdot A_{22} = 0,\\
B_{21} \cdot A_{11} + B_{22} \cdot A_{21} = 0,\\
B_{21} \cdot A_{12} + B_{22} \cdot A_{22} = E_s.
\end{cases}
\]

Здесь удобно сразу увидеть структуру:

  • Первые два уравнения описывают «верхний ряд» блоков \( B_{11}, B_{12} \).
  • Последние два — «нижний ряд» блоков \( B_{21}, B_{22} \).

Итак, вместо одной большой задачи мы получили систему для блоков. Теперь её нужно превратить в явные формулы. Для этого и вводят дополнение Шура.

Обратная Матрица Через Дополнение Шура: Вывод Формул Блочного Метода

Теперь переходим к самой важной части — как именно из полученной системы для блоков получить явные формулы. Для этого воспользуемся стандартной идеей блочного метода: будем считать, что блок \( A_{11} \) обратим, то есть существует \( A_{11}^{-1} \). Это естественное условие при таком разбиении на «клетки», и на практике оно очень часто выполняется.

Начнём с двух уравнений, которые описывают «верхний ряд»:

\[
\begin{cases}
B_{11} \cdot A_{11} + B_{12} \cdot A_{21} = E_r,\\
B_{11} \cdot A_{12} + B_{12} \cdot A_{22} = 0.
\end{cases}
\]

Чтобы получить формулу для \( B_{12} \), удобно сначала выразить \( B_{11} \) через \( B_{12} \). Для этого домножим первое уравнение справа на \( A_{11}^{-1} \):

\[
B_{11} + B_{12} \cdot A_{21} \cdot A_{11}^{-1} = A_{11}^{-1},
\]

откуда

\[
B_{11} = A_{11}^{-1} — B_{12} \cdot A_{21} \cdot A_{11}^{-1}.
\]

Далее подставим это выражение во второе уравнение системы:

\[
\left(A_{11}^{-1} — B_{12} \cdot A_{21} \cdot A_{11}^{-1}\right) \cdot A_{12} + B_{12} \cdot A_{22}=0.
\]

После раскрытия скобок получаем

\[
A_{11}^{-1} \cdot A_{12} — B_{12} \cdot A_{21} \cdot A_{11}^{-1} \cdot A_{12} + B_{12} \cdot A_{22}=0,
\]

а теперь сгруппируем слагаемые, содержащие \( B_{12} \):

\[
B_{12} \cdot \left(A_{22} — A_{21} \cdot A_{11}^{-1} \cdot A_{12}\right) = -A_{11}^{-1} \cdot A_{12}.
\]

В этот момент появляется ключевой объект — дополнение Шура относительно блока \( A_{11} \). Обозначим:

\[
S = A_{22} — A_{21} \cdot A_{11}^{-1} \cdot A_{12}.
\]

Если матрица \( S \) тоже обратима, то есть существует \( S^{-1} \), тогда предыдущее равенство записывается компактно:

\[
B_{12} \cdot S = -A_{11}^{-1} \cdot A_{12},
\]

и отсюда сразу получаем:

\[
B_{12} = -A_{11}^{-1} \cdot A_{12} \cdot S^{-1}.
\]

Теперь возвращаемся к формуле для \( B_{11} \) и подставляем найденный блок \( B_{12} \):

\[
B_{11} = A_{11}^{-1} — B_{12} \cdot A_{21} \cdot A_{11}^{-1}
= A_{11}^{-1} + A_{11}^{-1} \cdot A_{12} \cdot S^{-1} \cdot A_{21} \cdot A_{11}^{-1}.
\]

Аналогично, используя два уравнения «нижнего ряда» системы, получаем формулы для остальных блоков:

\[
B_{21} = -S^{-1} \cdot A_{21} \cdot A_{11}^{-1},
\qquad
B_{22} = S^{-1}.
\]

Итак, если существуют \( A_{11}^{-1} \) и \( S^{-1} \), то обратная матрица к \( A \) выражается через блоки так:

\[
A^{-1} =
\begin{pmatrix}
A_{11}^{-1} + A_{11}^{-1} \cdot A_{12} \cdot S^{-1} \cdot A_{21} \cdot A_{11}^{-1} & -A_{11}^{-1} \cdot A_{12} \cdot S^{-1}\\
-S^{-1} \cdot A_{21} \cdot A_{11}^{-1} & S^{-1}
\end{pmatrix},
\quad
S = A_{22} — A_{21} \cdot A_{11}^{-1} \cdot A_{12}.
\]

Идея здесь очень практичная: вместо того чтобы работать со всей матрицей сразу, мы сводим задачу к обращению блока \( A_{11} \) и дополнения Шура \( S \). Если эти матрицы меньше по размеру, то и вычисления обычно выполняются быстрее. Именно поэтому блочный («клеточный») метод так часто встречается в задачах численных методов.

Обратная Матрица в Действии: Практика Блочного Метода на Примерах

Чтобы лучше понять блочный («клеточный») метод, давайте перейдём к практике. Здесь важно не только получить ответ, но и видеть, как именно появляются блоки и дополнение Шура. Готовы пройти этот путь шаг за шагом?

Пример 1. Какие шаги нужно выполнить, чтобы найти обратную матрицу блочным методом?

  1. Разбить матрицу \( A \) порядка \( n \) на блоки так, чтобы \( r+s=n \):

\[
A=
\begin{pmatrix}
A_{11} & A_{12}\\
A_{21} & A_{22}
\end{pmatrix}.
\]

  1. Выбрать такое разбиение, чтобы блок \( A_{11} \) было удобно обратить.
  2. Убедиться, что существует \( A_{11}^{-1} \), и вычислить её.
  3. Найти дополнение Шура

\[
S = A_{22} — A_{21} \cdot A_{11}^{-1} \cdot A_{12}.
\]

На практике это делают последовательно: сначала умножают \( A_{11}^{-1} \) на \( A_{12} \), затем полученный результат домножают слева на \( A_{21} \), и только после этого вычитают из \( A_{22} \).

  1. Убедиться, что существует \( S^{-1} \), и вычислить её.
  2. Вычислить блоки обратной матрицы:

\[
\begin{gathered}
B_{12} = -A_{11}^{-1}\cdot A_{12}\cdot S^{-1},\qquad
B_{21} = -S^{-1}\cdot A_{21}\cdot A_{11}^{-1},\qquad
B_{22} = S^{-1},\\[6pt]
B_{11} = A_{11}^{-1} + A_{11}^{-1}\cdot A_{12}\cdot S^{-1}\cdot A_{21}\cdot A_{11}^{-1}.
\end{gathered}
\]

  1. Собрать результат в виде:

\[
A^{-1}=
\begin{pmatrix}
B_{11} & B_{12}\\
B_{21} & B_{22}
\end{pmatrix}.
\]

Пример 2. Найти обратную матрицу блочным методом

\[
A=
\begin{pmatrix}
5 & -6 & 7 & 1\\
7 & 10 & -9 & 8\\
3 & 3 & 5 & 1\\
-10 & 2 & 3 & 4
\end{pmatrix}.
\]

Возьмём разбиение \( r=s=2 \), чтобы блок \( A_{11} \) был небольшим и его было удобно обратить:

\[
A=
\begin{pmatrix}
A_{11} & A_{12}\\
A_{21} & A_{22}
\end{pmatrix},
\]

где

\[
\begin{array}{ll}
A_{11}=\begin{pmatrix} 5 & -6\\ 7 & 10 \end{pmatrix}, &
A_{12}=\begin{pmatrix} 7 & 1\\ -9 & 8 \end{pmatrix}, \\[6pt]
A_{21}=\begin{pmatrix} 3 & 3\\ -10 & 2 \end{pmatrix}, &
A_{22}=\begin{pmatrix} 5 & 1\\ 3 & 4 \end{pmatrix}.
\end{array}
\]

Сначала вычисляем \( A_{11}^{-1} \):

\[
A_{11}^{-1}=
\begin{pmatrix}
0.109 & 0.065\\
-0.076 & 0.054
\end{pmatrix}.
\]

Теперь находим дополнение Шура

\[
S = A_{22} — A_{21} \cdot A_{11}^{-1} \cdot A_{12}.
\]

После выполнения вычислений получаем

\[
S=
\begin{pmatrix}
7.543 & -1.967\\
6.783 & 9.587
\end{pmatrix},
\qquad
S^{-1}=
\begin{pmatrix}
0.112 & 0.023\\
-0.079 & 0.088
\end{pmatrix}.
\]

Далее переходим к блокам \( A^{-1} \). По формулам блочного метода имеем:

\[
\begin{gathered}
B_{12} = -A_{11}^{-1}\cdot A_{12}\cdot S^{-1},\qquad
B_{21} = -S^{-1}\cdot A_{21}\cdot A_{11}^{-1},\qquad
B_{22} = S^{-1},\\[6pt]
B_{11} = A_{11}^{-1} + A_{11}^{-1}\cdot A_{12}\cdot S^{-1}\cdot A_{21}\cdot A_{11}^{-1}.
\end{gathered}
\]

В результате получаем

\[
\begin{array}{ll}
B_{11}=\begin{pmatrix} 0.032 & 0.022\\ -0.1 & -0.001 \end{pmatrix}, &
B_{12}=\begin{pmatrix} 0.03 & -0.06\\ 0.143 & -0.008 \end{pmatrix}, \\[6pt]
B_{21}=\begin{pmatrix} 0.018 & -0.028\\ 0.117 & 0.076 \end{pmatrix}, &
B_{22}=\begin{pmatrix} 0.112 & 0.023\\ -0.079 & 0.088 \end{pmatrix}.
\end{array}
\]

Итак,

\[
A^{-1}=
\begin{pmatrix}
0.032 & 0.022 & 0.03 & -0.06\\
-0.1 & -0.001 & 0.143 & -0.008\\
0.018 & -0.028 & 0.112 & 0.023\\
0.117 & 0.076 & -0.079 & 0.088
\end{pmatrix}.
\]

Чтобы проверить себя, можно перемножить \( A^{-1}\cdot A \) и убедиться, что результат близок к единичной матрице.

Пример 3. Найти обратную матрицу блочным методом

\[
A=
\begin{pmatrix}
2 & 1 & 1 & 0 & 0\\
1 & 2 & 0 & 1 & 0\\
1 & 0 & 3 & 0 & 0\\
0 & 1 & 0 & 3 & 0\\
1 & 1 & 0 & 0 & 4
\end{pmatrix}.
\]

Здесь удобно взять разбиение \( r=2 \), \( s=3 \), чтобы блок \( A_{11} \) был небольшим и легко обращался:

\[
A=
\begin{pmatrix}
A_{11} & A_{12}\\
A_{21} & A_{22}
\end{pmatrix},
\]

где

\[
\begin{array}{ll}
A_{11}=\begin{pmatrix} 2 & 1\\ 1 & 2 \end{pmatrix}, &
A_{12}=\begin{pmatrix} 1 & 0 & 0\\ 0 & 1 & 0 \end{pmatrix}, \\[6pt]
A_{21}=\begin{pmatrix} 1 & 0\\ 0 & 1\\ 1 & 1 \end{pmatrix}, &
A_{22}=\begin{pmatrix} 3 & 0 & 0\\ 0 & 3 & 0\\ 0 & 0 & 4 \end{pmatrix}.
\end{array}
\]

Сначала находим \( A_{11}^{-1} \):

\[
A_{11}^{-1}=
\begin{pmatrix}
0.667 & -0.333\\
-0.333 & 0.667
\end{pmatrix}.
\]

Далее вычисляем дополнение Шура

\[
S = A_{22} — A_{21} \cdot A_{11}^{-1} \cdot A_{12}.
\]

После последовательных преобразований получаем

\[
S=
\begin{pmatrix}
2.333 & 0.333 & 0\\
0.333 & 2.333 & 0\\
-0.333 & -0.333 & 4
\end{pmatrix},
\qquad
S^{-1}=
\begin{pmatrix}
0.438 & -0.062 & 0\\
-0.062 & 0.438 & 0\\
0.031 & 0.031 & 0.25
\end{pmatrix}.
\]

Теперь переходим к блокам обратной матрицы. Используем стандартные формулы блочного метода:

\[
\begin{gathered}
B_{12} = -A_{11}^{-1}\cdot A_{12}\cdot S^{-1},\qquad
B_{21} = -S^{-1}\cdot A_{21}\cdot A_{11}^{-1},\qquad
B_{22} = S^{-1},\\[6pt]
B_{11} = A_{11}^{-1} + A_{11}^{-1}\cdot A_{12}\cdot S^{-1}\cdot A_{21}\cdot A_{11}^{-1}.
\end{gathered}
\]

В результате имеем

\[
\begin{array}{ll}
B_{11}=\begin{pmatrix} 0.938 & -0.562 \\ -0.562 & 0.938 \end{pmatrix}, &
B_{12}=\begin{pmatrix} -0.312 & 0.188 & 0 \\ 0.188 & -0.312 & 0 \end{pmatrix}, \\[6pt]
B_{21}=\begin{pmatrix} -0.312 & 0.188 \\ 0.188 & -0.312 \\ -0.094 & -0.094 \end{pmatrix}, &
B_{22}=\begin{pmatrix} 0.438 & -0.062 & 0 \\ -0.062 & 0.438 & 0 \\ 0.031 & 0.031 & 0.25 \end{pmatrix}
\end{array}
\]

Итак,

\[
A^{-1}=
\begin{pmatrix}
0.938 & -0.562 & -0.312 & 0.188 & 0\\
-0.562 & 0.938 & 0.188 & -0.312 & 0\\
-0.312 & 0.188 & 0.438 & -0.062 & 0\\
0.188 & -0.312 & -0.062 & 0.438 & 0\\
-0.094 & -0.094 & 0.031 & 0.031 & 0.25
\end{pmatrix}.
\]

Следующие Шаги: Темы, Которые Расширят Ваш Арсенал

Вы уже увидели, как блочный («клеточный») метод упорядочивает вычисления и помогает работать с большими матрицами. Тогда вполне логичный вопрос: что изучать дальше, чтобы увереннее решать разные типы задач? Вот три темы, которые естественно продолжают этот материал.

  1. Обратная матрица методом окаймления: Как добавление строк и столбцов ведёт к результату — Покажем идею метода окаймления и объясним, как через последовательное расширение получают обратную матрицу.
  2. Обратная матрица, используя коэффициенты характеристического многочлена: Другой путь к обращению без стандартных схем — Рассмотрим этот подход и покажем, как находить обратную матрицу через связь с характеристическим многочленом.
  3. Псевдообратная матрица: Как работать с прямоугольными и вырожденными случаями — Объясним, что делать, когда обычное обращение не определено, и как на практике находить псевдообратную матрицу.

Обратная Матрица в Коде: Превратите Блок-схему в Рабочую Программу

Теперь посмотрите на блок-схему ниже как на готовый план, по которому легко собрать собственный мини-инструмент. Разве не интересно взять любимый язык программирования и написать небольшую программу, которая вычисляет обратную матрицу именно блочным методом? Такой проект быстро показывает, как аккуратные математические идеи превращаются в чёткую логику в коде — её можно проверять на разных примерах и дорабатывать под свои задачи.

Блок-схема алгоритма, которая шаг за шагом показывает, как вычисляется обратная матрица блочным методом

Leave a Reply

Ваш адрес email не будет опубликован. Обязательные поля помечены *