第四节 分块矩阵

在许多工程问题的矩阵计算中,为了利用矩阵所具有的某些特点,常常采用分块的方法,将大矩阵的运算化为一些小矩阵的运算。特别是对于大型矩阵的计算,当矩阵的规模超过计算机存储容量时,就必须进行分块运算。而现代计算机并行算法,在处理矩阵计算时,更离不开矩阵的分块技术。

一、分块矩阵的概念

所谓矩阵分块,就是将矩阵用若干条横线和纵线分成许多小矩阵,每个小矩阵称为原来矩阵的子阵子块,以这些子块为元素所构成的矩阵,称为分块矩阵(Block matrix或Partitioned matrix)。

例如

若记

A11=(a11a12),A12=(a13a14a15

A31=(a41a42),A32=(a43a44a45

那么A可以表示为

   (2.14)   

这是以子块A11A12A21A22A31A32为元素的分块矩阵。同样A也可以表示为如下的分块矩阵

   (2.15)   

特别地,还可以按列来分块

   (2.16)   

可见,除了划分矩阵的横线和纵线必须贯穿整个矩阵外,矩阵的分块可以是任意的。具体分块方法的选取,主要取决于矩阵自身的特点和实际问题的需要。

二、分块矩阵的运算

分块矩阵有和普通矩阵相类似的运算方法与运算性质。

(1)设矩阵AB有相同的规模(即行、列数相等),且采用相同的分块方法,即

式中对任意ijAijBij的行数与列数对应相同,则

(2)设k为任意常数,而

(3)设Am×l矩阵,Bl×n矩阵,它们分块成

式中矩阵A列的分法与矩阵B行的分法相同,即子块Ai1Ai2,…,Ais的列数分别等于子块B1jB2j,…,Bsj的行数。则

其中   

【例2.11】 设矩阵

计算AB

 根据矩阵A的特点,将A分块为

这时矩阵B的行的分法必须与矩阵A的列的分法一致,但矩阵B的列的分法则可以任意。如果再将矩阵B分块为

这样就有

因为

所以得   

我们可以设想,如果矩阵AB的阶数达到几百阶时,分块运算不仅减少了存储量,而且也减少了计算量。

(4)设A是分块矩阵

A的转置矩阵

即分块矩阵转置时,既要把整个分块矩阵转置,又要把式中每一个子块转置。

(5)设An阶矩阵,如果A的分块矩阵只有主对角线上有非零的子块,而其余的子块都是零矩阵,即

其中Aii=1,2,…,r)都是方阵,则称A分块对角矩阵(Block diagonal matrix)。

分块对角矩阵有下列性质:

①|A|=|A1||A2|…|Ar|;

②设

式中,AiBi是同阶的子方阵(i=1,2,…,r),则

③设A是分块对角矩阵,若A的每个子块Aii=1,2,…,r)都是可逆矩阵,则A可逆,且

【例2.12】 设矩阵

其中a≠0,b≠0,求P-1

 直接求一个四阶矩阵的逆矩阵工作量稍大,但若将P看作是一分块对角矩阵,即记

AB都可逆,且

从而

三、计算矩阵乘积时常见的分块方法

接下来,作为本节矩阵分块运算的最后一个应用,我们给出两个矩阵分块相乘时几种常见的特殊分块方法。

设有两个矩阵

现在要通过分块运算方法求出它们的乘积AB

(1)若只将矩阵A按行分块

则有

(2)又若只将矩阵B按列分块

则又有

AB=AB1B2Bn)=(AB1AB2ABn

(3)若既将矩阵A按行分块,又同时将矩阵B按列分块,则还有

在不同的分块方法之下,矩阵乘积AB的表达形式也有所不同,但这三种不同形式的结论所对应的最终结果一定是相等的。

上面介绍的分块运算方法与结论,在后面几章或者在其它涉及矩阵分析的实际问题中常常要用到,大家应该力求去领会其实质。当然也可以通过例举的方法去体会上述不同分块运算的具体含意。