Обернена Матриця Через Блоки: Зрозумілий Старт Клітинного Методу

Обернена матриця часто знаходиться через стандартні підходи на кшталт Гауса–Жордана або алгебраїчних доповнень. Але що робити, якщо матриця велика, а її елементи зручно згрупувати в блоки, наприклад уздовж діагоналі? У такій ситуації блочний (клітинний) метод стає дуже доречним: ми розбиваємо матрицю на блоки, записуємо систему рівнянь для цих блоків, вводимо доповнення Шура і, зрештою, отримуємо формулу для \( 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. Псевдообернена матриця: Як працювати з прямокутними та виродженими випадками — Пояснимо, що робити, коли звичайне обертання не визначене, і як знаходити псевдообернену на практиці.

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

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

Блок-схема алгоритму, що крок за кроком показує, як обчислюється обернена матриця блочним методом

Залишити коментар

Your email address will not be published. Required fields are marked *