分块矩阵

作者:追风剑情 发布于:2024-4-1 18:18 分类:Algorithms

基本概念

在处理阶数比较高的矩阵的时候,将其“分割”成一些低阶的矩阵往往能够起到化简计算的作用或者为推理提供新的思路。例如 $$ \begin{flalign} & A=\left[ \begin{array}{c|c} \begin{array}{ccc} 1 & 0 & 0 \\ 0 & 1 & 0 \\ 0 & 0 & 1 \\ \end{array} & \begin{array}{cc} 1 & 2 \\ 4 & 5 \\ 6 & 7 \\ \end{array} \\ \hline \begin{array}{ccc} 3 & 2 & 1 \\ 6 & 5 & 4 \\ \end{array} & \begin{array}{cc} 0 & 0 \\ 0 & 0 \\ \end{array} \end{array} \right] &\\ \end{flalign} $$ 可以表示为 $$ \begin{flalign} &A= \left[ \begin{array}{cc} A_{11} & A_{12} \\ A_{21} & A_{22} \end{array} \right] &\\ \end{flalign} $$ 其中 $ A_{11}= \begin{pmatrix} 1 & 0 & 0 \\ 0 & 1 & 0 \\ 0 & 0 & 1 \\ \end{pmatrix} , A_{12}= \begin{pmatrix} 1 & 2 \\ 4 & 5 \\ 6 & 7 \\ \end{pmatrix} , A_{21}= \begin{pmatrix} 3 & 2 & 1 \\ 6 & 5 & 4 \\ \end{pmatrix} , A_{22}= \begin{pmatrix} 0 & 0 \\ 0 & 0 \\ \end{pmatrix} $

一般地,我们把矩阵A用一些横线和纵线分成s×t个“小矩阵” $$ A_{kl} \quad (k=1,2,\cdots,s; \quad l=1,2,\cdots,t) $$ 称为A的子块。于是A可以表示为以这些子块为元素的形式上的矩阵,即 $$ A=\begin{pmatrix} A_{11} & \cdots & A_{1t} \\ \vdots & \quad & \vdots \\ A_{s1} & \cdots & A_{st} \end{pmatrix} $$ 上式中等号右边的形式上的矩阵称为分块矩阵

常用的分块矩阵

给定一个矩阵,究竟如何分块,要视具体情况而定。

常用的分块方法主要有三种。

(1)按列分块

把矩阵$A=(a_{ij})_{m×n}$的每一列作为一个子块,依次记为$α_1,\cdots,α_n$,可以得到如下分块矩阵 $$ A=(α_1,\cdots,α_n) $$ 其中 $ α_j=\begin{pmatrix} α_{1j} \\ \vdots \\ α_{mj} \\ \end{pmatrix} $ 称为A的列向量$(j=1,2,\cdots,n)$

(2)按行分块

把矩阵$B=(b_{ij})_{m×n}$的每一行作为一个子块,依次记为$β_1,\cdots,β_m$,可以得到如下分块矩阵 $$ B=\begin{pmatrix} β_1 \\ \vdots \\ β_m \end{pmatrix} $$ 其中$β_i=(b_{i1},\cdots,b_{in})$称为B的行向量$(i=1,2,\cdots,m)$

(3)若分块矩阵 $ \begin{pmatrix} A_{11} & \quad & \quad \\ \quad & \ddots & \quad \\ \quad & \quad & A_{ss} \end{pmatrix} $ 中$A_{ii}(i=1,2,\cdots,s)$均为方阵,其余子块均为零矩阵,则称该分块矩阵为分块对角矩阵,简记为$diag(A_{11},\cdots,A_{ss})$。注意分块对角矩阵中主对角线上的各子块$A_{ii}$的阶数可以互不相同。

基本运算

下面介绍分块矩阵的基本运算。

(1)分块矩阵的加法

设分块矩阵$A=(A_{kl})_{s×t}$与$B=(B_{kl})_{s×t}$的对应子块$A_{kl}$和$B_{kl}$都是同型矩阵$(k=1,2,\cdots,s;l=1,2,\cdots,t)$,则$A+B=(A_{kl}+B_{kl})_{s×t}$

(2)分块矩阵的数乘

设分块矩阵$A=(A_{kl})_{s×t}$,λ是一个数,则$λA=(λA_{kl})_{s×t}$

(3)分块矩阵的乘法

设分块矩阵$A=(A_{ij}),B=(B_{jk})$,其中$A_{ij}$的列数等于$B_{jk}$的行数(i=1,2,$\cdots$,r; j=1,2,$\cdots$,s; k=1,2,$\cdots$,t),则

$$ AB= \begin{pmatrix} A_{11} & A_{12} & \cdots & A_{1s} \\ A_{21} & A_{22} & \cdots & A_{2s} \\ \vdots & \vdots & \quad & \vdots \\ A_{r1} & A_{r2} & \cdots & A_{rs} \\ \end{pmatrix} \begin{pmatrix} B_{11} & B_{12} & \cdots & B_{1t} \\ B_{21} & B_{22} & \cdots & B_{2t} \\ \vdots & \vdots & \quad & \vdots \\ B_{s1} & B_{s2} & \cdots & B_{st} \\ \end{pmatrix} = (C_{ik}) $$ 其中$C_{ik}=A_{i1}B_{1k}+A_{i2}B_{2k}+\cdots+A_{is}B_{sk}(i=1,2,\cdots,r;k=1,2,\cdots,t)$

例如,设$A=(a_{ij})_{s×n}$,$B=(b_{jk})_{n×t}$,若对B按行分块,即 $B=\begin{pmatrix} β_1 \\ \vdots \\ β_n \\ \end{pmatrix}$,则 $$ AB= \begin{pmatrix} a_{11} & \cdots & a_{1n} \\ \vdots & \quad & \vdots \\ a_{s1} & \cdots & a_{sn} \\ \end{pmatrix} \begin{pmatrix} β_1 \\ \vdots \\ β_n \\ \end{pmatrix} = \begin{pmatrix} a_{11}β_1+\cdots+a_{1n}β_n \\ \vdots \\ a_{s1}β_1+\cdots+a_{sn}β_n \\ \end{pmatrix} $$

若对B按列分块,即$B=(B_1,\cdots,B_t)$,则$AB=A(B_1,\cdots,B_t)=(AB_1,\cdots,AB_t)$。若对A按列分块,即$A=(α_1,\cdots,α_n)$,则 $$ \begin{aligned} AB &=(α_1,\cdots,α_n) \begin{pmatrix} b_{11} & \cdots & b_{1t} \\ \vdots & \quad & \vdots \\ b_{n1} & \cdots & b_{nt} \\ \end{pmatrix} &\\ &=(b_{11}α_1+\cdots+b_{n1}α_n,\cdots,b_{1t}α_1+\cdots+b_{nt}α_n) \end{aligned} $$

若对A按行分块,即 $ A= \begin{pmatrix} A_1 \\ \vdots \\ A_s \\ \end{pmatrix} $ ,则 $ AB= \begin{pmatrix} A_1 \\ \vdots \\ A_s \\ \end{pmatrix} B = \begin{pmatrix} A_1B \\ \vdots \\ A_sB \\ \end{pmatrix} $

对线性方程组Ax=b而言,如果对A按列分块,即 $$ A=(α_1,\cdots,α_n) $$ 那么Ax=b等价于$x_1α_1+\cdots+x_nα_n=b$

(4)分块矩阵的转置

设分块矩阵 $ A=\begin{pmatrix} A_{11} & A_{12} & \cdots & A_{1t} \\ A_{21} & A_{22} & \cdots & A_{2t} \\ \vdots & \vdots & \quad & \vdots \\ A_{s1} & A_{s2} & \cdots & A_{st} \\ \end{pmatrix} $ ,则A的转置矩阵为 $ A^T=\begin{pmatrix} A^T_{11} & A^T_{12} & \cdots & A^T_{1t} \\ A^T_{21} & A^T_{22} & \cdots & A^T_{2t} \\ \vdots & \vdots & \quad & \vdots \\ A^T_{s1} & A^T_{s2} & \cdots & A^T_{st} \\ \end{pmatrix} $

例 1.7 设 $ A=\begin{pmatrix} 1 & 2 & 1 & 0 \\ 0 & 1 & 0 & 1 \\ 0 & 0 & 2 & 1 \\ 0 & 0 & 0 & 3 \\ \end{pmatrix} $ , $ B=\begin{pmatrix} 1 & 0 & 3 & 1 \\ 0 & 1 & 2 & -1 \\ 0 & 0 & -2 & 3 \\ 0 & 0 & 0 & -3 \\ \end{pmatrix} $ ,求AB

解 将矩阵A,B进行分块如下: $$ A=\begin{pmatrix} A_{11} & E_2 \\ O_2 & A_{22} \\ \end{pmatrix} ,\quad B=\begin{pmatrix} E_2 & B_{12} \\ O_2 & B_{22} \\ \end{pmatrix} $$ 其中 $ A_{11}=\begin{pmatrix} 1 & 2 \\ 0 & 1 \\ \end{pmatrix} ,\; E_2=\begin{pmatrix} 1 & 0 \\ 0 & 1 \\ \end{pmatrix} ,\; O_2=\begin{pmatrix} 0 & 0 \\ 0 & 0 \\ \end{pmatrix} ,\; A_{22}=\begin{pmatrix} 2 & 1 \\ 0 & 3 \\ \end{pmatrix} ,\; B_{12}=\begin{pmatrix} 3 & 1 \\ 2 & -1 \\ \end{pmatrix} ,\; B_{22}=\begin{pmatrix} -2 & 3 \\ 0 & -3 \\ \end{pmatrix} $ ,则 $$ \begin{flalign} &AB= \begin{pmatrix} A_{11} & E_2 \\ O_2 & A_{22} \\ \end{pmatrix} \begin{pmatrix} E_2 & B_{12} \\ O_2 & B_{22} \\ \end{pmatrix} = \begin{pmatrix} A_{11} & A_{11}B_{12}+B_{22} \\ O_2 & A_{22}B_{22} \\ \end{pmatrix} &\\ \end{flalign} $$ 其中 $$ \begin{flalign} &A_{11}B_{12}+B_{22}= \begin{pmatrix} 1 & 2 \\ 0 & 1 \\ \end{pmatrix} \begin{pmatrix} 3 & 1 \\ 2 & -1 \\ \end{pmatrix} + \begin{pmatrix} -2 & 3 \\ 0 & -3 \\ \end{pmatrix} = \begin{pmatrix} 5 & 2 \\ 2 & -4 \\ \end{pmatrix} &\\ \end{flalign} $$ $$ \begin{flalign} &A_{22}B_{22}= \begin{pmatrix} 2 & 1 \\ 0 & 3 \\ \end{pmatrix} \begin{pmatrix} -2 & 3 \\ 0 & -3 \\ \end{pmatrix} = \begin{pmatrix} -4 & 3 \\ 0 & -9 \\ \end{pmatrix} &\\ \end{flalign} $$ 于是可得 $ AB=\begin{pmatrix} 1 & 2 & 5 & 2 \\ 0 & 1 & 2 & -4 \\ 0 & 0 & -4 & 3 \\ 0 & 0 & 0 & -9 \\ \end{pmatrix} $

  注意上述例子中利用分块矩阵算出来的结果与直接根据矩阵乘法的定义算出来的结果是一致的,但采用分块乘法运算更简便一些。

标签: Algorithms

Powered by emlog  蜀ICP备18021003号-1   sitemap

川公网安备 51019002001593号