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

Материал из testwiki
Перейти к навигации Перейти к поиску

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

𝐀=[𝐀11𝐀12𝐀1t𝐀21𝐀22𝐀2t𝐀s1𝐀s2𝐀st],

где блок 𝐀αβ имеет размер mα×nβ для α=1,2,,s и β=1,2,,t

Пример

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

𝐏=[1122112233443344]

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

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

𝐏11=[1111],𝐏12=[2222],𝐏21=[3333],𝐏22=[4444]

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

𝐏=[𝐏11𝐏12𝐏21𝐏22].

Операции

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

Прямая сумма

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

𝐀𝐁=[𝐀𝟎𝟎𝐁]

где 𝟎 обозначает нулевой блок(нулевую матрицу типа m×n вверху и n×m внизу). Эта операция некоммутативна, но ассоциативнаШаблон:Sfn.

Виды блочных матриц

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

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

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

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

𝐀=[𝐀1000𝐀2000𝐀n],

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

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

Квазитреугольная матрица

Квазитреугольной называется блочная квадратная матрица 𝐀 у которой блоки 𝐀ij=0 при i>j (или i<j):

𝐀=[𝐀11𝐀12𝐀1n0𝐀22𝐀2n00𝐀nn].

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

Блочно-трёхдиагональная матрица

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

   Шаблон:Дополнить раздел

Блочно-теплицева матрица

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

   Шаблон:Дополнить раздел

Блочное умножение матриц

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

C=AB=[A11A12...A1nA21A22...A2n............An1An2...Ann]×[B11B12...B1nB21B22...B2n............Bn1Bn2...Bnn],

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

C=[C11C12...C1nC21C22...C2n............Cn1Cn2...Cnn]

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

Cij=k=1nAik×Bkj

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

Формулы

Формула Фробениуса

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

[ABCD]1=[A1+A1BH1CA1A1BH1H1CA1H1],

где A — невырожденная квадратная матрица размера m1×m1, D — квадратная матрица размера m2×m2 и H=DCA1B.

Эта формула позволяет свести обращение матрицы размера (m1+m2)×(m1+m2) к обращению двух матриц меньшего размера m1×m1 и m2×m2 и операциям умножения и сложения матриц размеров m1×m1, m2×m2, m1×m2, m2×m1Шаблон:Sfn.

Примечания

Шаблон:Примечания

Литература

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