第四节 分块矩阵
在许多工程问题的矩阵计算中,为了利用矩阵所具有的某些特点,常常采用分块的方法,将大矩阵的运算化为一些小矩阵的运算。特别是对于大型矩阵的计算,当矩阵的规模超过计算机存储容量时,就必须进行分块运算。而现代计算机并行算法,在处理矩阵计算时,更离不开矩阵的分块技术。
一、分块矩阵的概念
所谓矩阵分块,就是将矩阵用若干条横线和纵线分成许多小矩阵,每个小矩阵称为原来矩阵的子阵或子块,以这些子块为元素所构成的矩阵,称为分块矩阵(Block matrix或Partitioned matrix)。
例如
若记
A11=(a11a12),A12=(a13a14a15)
A31=(a41a42),A32=(a43a44a45)
那么A可以表示为
(2.14)
这是以子块A11,A12,A21,A22,A31,A32为元素的分块矩阵。同样A也可以表示为如下的分块矩阵
(2.15)
特别地,还可以按列来分块
(2.16)
可见,除了划分矩阵的横线和纵线必须贯穿整个矩阵外,矩阵的分块可以是任意的。具体分块方法的选取,主要取决于矩阵自身的特点和实际问题的需要。
二、分块矩阵的运算
分块矩阵有和普通矩阵相类似的运算方法与运算性质。
(1)设矩阵A,B有相同的规模(即行、列数相等),且采用相同的分块方法,即
式中对任意i,j,Aij与Bij的行数与列数对应相同,则
(2)设k为任意常数,而
则
(3)设A是m×l矩阵,B是l×n矩阵,它们分块成
式中矩阵A列的分法与矩阵B行的分法相同,即子块Ai1,Ai2,…,Ais的列数分别等于子块B1j,B2j,…,Bsj的行数。则
其中
【例2.11】 设矩阵
计算AB。
解 根据矩阵A的特点,将A分块为
这时矩阵B的行的分法必须与矩阵A的列的分法一致,但矩阵B的列的分法则可以任意。如果再将矩阵B分块为
这样就有
因为
所以得
我们可以设想,如果矩阵A,B的阶数达到几百阶时,分块运算不仅减少了存储量,而且也减少了计算量。
(4)设A是分块矩阵
则A的转置矩阵
即分块矩阵转置时,既要把整个分块矩阵转置,又要把式中每一个子块转置。
(5)设A为n阶矩阵,如果A的分块矩阵只有主对角线上有非零的子块,而其余的子块都是零矩阵,即
其中Ai(i=1,2,…,r)都是方阵,则称A为分块对角矩阵(Block diagonal matrix)。
分块对角矩阵有下列性质:
①|A|=|A1||A2|…|Ar|;
②设
式中,Ai,Bi是同阶的子方阵(i=1,2,…,r),则
③设A是分块对角矩阵,若A的每个子块Ai(i=1,2,…,r)都是可逆矩阵,则A可逆,且
【例2.12】 设矩阵
其中a≠0,b≠0,求P-1。
解 直接求一个四阶矩阵的逆矩阵工作量稍大,但若将P看作是一分块对角矩阵,即记
又A,B都可逆,且
从而
三、计算矩阵乘积时常见的分块方法
接下来,作为本节矩阵分块运算的最后一个应用,我们给出两个矩阵分块相乘时几种常见的特殊分块方法。
设有两个矩阵
现在要通过分块运算方法求出它们的乘积AB:
(1)若只将矩阵A按行分块为
则有
(2)又若只将矩阵B按列分块为
则又有
AB=A(B1B2…Bn)=(AB1AB2…ABn)
(3)若既将矩阵A按行分块,又同时将矩阵B按列分块,则还有
在不同的分块方法之下,矩阵乘积AB的表达形式也有所不同,但这三种不同形式的结论所对应的最终结果一定是相等的。
上面介绍的分块运算方法与结论,在后面几章或者在其它涉及矩阵分析的实际问题中常常要用到,大家应该力求去领会其实质。当然也可以通过例举的方法去体会上述不同分块运算的具体含意。