Блочная матрица

Материал из Википедии — свободной энциклопедии
Перейти к: навигация, поиск

Бло́чная (кле́точная) ма́трица — представление матрицы, при котором она рассекается вертикальными и горизонтальными линиями на прямоугольные части — блоки (клетки):

,

где блок имеет размер для и

Пример[править | править код]

Матрица размера 4×4

может быть представлена в виде блочной матрицы из четырёх блоков размера 2×2 каждый.

При следующем определении блоков

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

Операции[править | править код]

Формально операции с блочными матрицами производятся по тем же правилам, как если бы на месте блоков были числовые элементы. Для выполнимости операций необходимо соответствующее согласование размеров блоков. Например, при умножении блочных матриц требуется, чтобы горизонтальные размеры блоков первого сомножителя совпадали с соответствующими вертикальными размерами второго сомножителя[1].

Прямая сумма[править | править код]

Прямая сумма двух квадратных матриц и размеров и определяется как блочная матрица следующего вида:

где обозначает нулевой блок(нулевую матрицу типа вверху и внизу). Эта операция некоммутативна, но ассоциативна[2].

Виды блочных матриц[править | править код]

Многие виды матриц могут быть представлены в блочном виде. В этом случае к названию добавляется приставка блочно- или блочная, а операции над элементами трансформируются в операции над блоками.

Блочно-диагональная (квазидиагональная) матрица[править | править код]

У блочно-диагональной матрицы все блоки, кроме расположенных на главной диагонали, являются нулевыми матрицами.

Матрица выглядит, как

где каждый элемент является ненулевой матрицей.

Определитель квадратной квазидиагональной матрицы равен произведению определителей диагональных клеток.

Квазитреугольная матрица[править | править код]

Квазитреугольной называется блочная квадратная матрица у которой блоки при (или ):

.

Определитель квазитреугольной матрицы равен произведению определителей диагональных блоков. Легко заметить, что блочно-диагональная матрица является частным случаем квазитреугольной[3].

Блочно-трёхдиагональная матрица[править | править код]

См. также трёхдиагональная матрица.

Блочно-теплицева матрица[править | править код]

См. также матрица Тёплица.

Блочное умножение матриц[править | править код]

С целью повышения эффективности использования кэш-памяти CPU существует алгоритм блочного умножения матриц

,

в котором результирующая матрица

формируется поблочно с использованием известной формулы

либо её более быстрых аналогов, а размер обрабатываемых данных на каждой итерации не превышает ёмкость кэш-памяти. Размер блока напрямую зависит от архитектуры вычислительной системы и определяет время выполнения умножения[4]. Аналогичный подход применяется при умножении матриц с использованием GPU с оптимизацией использования разделяемой памяти ограниченного объёма[5][6].

Формулы[править | править код]

Формула Фробениуса[править | править код]

Для обращения невырожденной блочной матрицы может использоваться формула Фробениуса:

где  — невырожденная квадратная матрица размера ,  — квадратная матрица размера и .

Эта формула позволяет свести обращение матрицы размера к обращению двух матриц меньшего размера и и операциям умножения и сложения матриц размеров , , , [7].

Примечания[править | править код]

  1. Гантмахер, 2004, с. 53—54.
  2. Ильин, Позняк, 2007, с. 18.
  3. Гантмахер, 2004, с. 55.
  4. Ватутин Э. И., Мартынов И. А., Титов В. С.  Оценка реальной производительности современных процессоров в задаче умножения матриц для однопоточной программной реализации // Известия Юго-Западного государственного университета. Серия: Управление, вычислительная техника, информатика. Медицинское приборостроение. 2013. № 4. — С. 11—20.
  5. Ватутин Э. И., Мартынов И. А., Титов В. С.  Оценка реальной производительности современных видеокарт с поддержкой технологии CUDA в задаче умножения матриц // Известия Юго-Западного государственного университета. Серия: Управление, вычислительная техника, информатика. Медицинское приборостроение. 2014. № 2. — С. 8—17.
  6. Параллельные вычисления на GPU. Архитектура и программная модель CUDA / Боресков А. В., Харламов А. А. Марковский Н. Д. и др. — М.: Изд-во Моск. ун-та, 2012. — 336 с.
  7. Гантмахер, 2004, с. 57—58.

Литература[править | править код]