c/c++语言开发共享线性代数学习笔记(十四)——分块矩阵

本篇笔记首先介绍了分块矩阵的概念,并介绍了按行或按列进行分块的两种常见分块方式,还讨论了矩阵标准形的主要基本特征,然后重点讨论了分块矩阵的几种运算,包括分块矩阵的和、差、数乘和乘积,以及对角型分块矩阵、三角分块矩阵和下三角分块矩阵的和、差、数乘和乘积,最后还介绍了分块矩阵转置和求逆的运算。

本篇笔记首先介绍了分块矩阵的概念,并介绍了按行或按列进行分块的两种常见分块方式,还讨论了矩阵标准形的主要基本特征,然后重点讨论了分块矩阵的几种运算,包括分块矩阵的和、差、数乘和乘积,以及对角型分块矩阵、三角分块矩阵和下三角分块矩阵的和、差、数乘和乘积,最后还介绍了分块矩阵转置和求逆的运算。

1 基本概念

在计算或证明时为了方便,将矩阵进行分块。

定义:将一个矩阵用若干条横线和竖线分成许多个小矩阵,将每个小矩阵称为这个矩阵的子块,以子块为元素的形式上的矩阵称为分块矩阵。——百度百科

[11340201101111341110]=[A1A2A3A4]begin{bmatrix}1&1&3&4&|&0\-&-&-&-&-&-\2&0&1&1&|&0\1&1&1&1&|&3\4&1&1&1&|&0end{bmatrix}=begin{bmatrix}A_1&A_2\A_3&A_4end{bmatrix}

根据实际做题的方便性和需要灵活分块。

以下是错误分法:
[11340201101111341110]begin{bmatrix}1&|&1&3&|&4&0\&|&&&-&-&-\2&|&0&1&&1&0\&-&-&-&-&-&\1&1&|&1&1&|&3\&-&-&&-&-&-\4&|&1&1&|&1&0end{bmatrix}

要求:不管横线还是竖线,需要一气到头。

如果分块数量比较多,也可以使用以下方式表示:
[A11A12A21A22]begin{bmatrix}A_{11}&A_{12}\A_{21}&A_{22}end{bmatrix}

2 两种常见的分块

2.1 按行分块

将每行进行分块。

[123111144]=[A1A2A3]begin{bmatrix}1&2&3\-&-&-\1&1&1\-&-&-\1&4&4end{bmatrix}=begin{bmatrix}A_1\A_2\A_3end{bmatrix}

每一行构成一个列向量,向量将在后续章节介绍。
(α1α2α3)begin{pmatrix}{alpha}_1\{alpha}_2\{alpha}_3end{pmatrix}

2.2 按列分块

将第列进行分块。

[123111144]=[B1B2B3]begin{bmatrix}1&|&2&|&3\1&|&1&|&1\1&|&4&|&4end{bmatrix}=begin{bmatrix}B_1&B_2&B_3end{bmatrix}

每一列构成一个行向量,向量将在后续章节介绍。
(β1β2β3)begin{pmatrix}{beta}_1&{beta}_2&{beta}_3end{pmatrix}

3 标准形

D=[1100]m×nD=begin{bmatrix}1&&&&&\&ddots&&&&\&&1&&&\&&&0&&\&&&&ddots&\&&&&&0end{bmatrix}_{m{times}n}

最主要特征:从左上角开始一串连续的11,其余地方均为00标准形不一定是方的

判断以下矩不是准形:
[110][100001000010][1111]begin{bmatrix}1&&\&1&\&&0end{bmatrix}是qquadbegin{bmatrix}1&0&0&0\0&1&0&0\0&0&1&0end{bmatrix}是qquadbegin{bmatrix}1&&&\&1&&\&&1&\&&&1end{bmatrix}

[011][1101][000]begin{bmatrix}color{red}{0}&&\&1&\&&1end{bmatrix}不是qquadbegin{bmatrix}1&&&\&1&&\&&color{red}{0}&\&&&1end{bmatrix}不是qquadbegin{bmatrix}0&&\&0&\&&0end{bmatrix}

可以对标准形进行分块:
D=[11+00]m×n=[ErOr×(nr)O(mr)×rO(nr)×(nr)]D=begin{bmatrix}1&&&|&&&\&ddots&&|&&&\&&1&|&&&\-&-&-&+&-&-&-\&&&|&0&&\&&&|&&ddots&\&&&|&&&0end{bmatrix}_{m{times}n}=begin{bmatrix}E_r&O_{rtimes(n-r)}\O_{(m-r){times}r}&O_{(n-r)times(n-r)}end{bmatrix}

4 分块矩阵的运算

4.1 分块矩阵的和、差、数乘和乘积

① 分块矩阵加法(和减法)

[A1A2A3A4]+[B1B2B3B4]=[A1+B1A2+B2A3+B3A4+B4]begin{bmatrix}A_1&A_2\A_3&A_4end{bmatrix}+begin{bmatrix}B_1&B_2\B_3&B_4end{bmatrix}=begin{bmatrix}A_1+B_1&A_2+B_2\A_3+B_3&A_4+B_4end{bmatrix}

对应块分别相加,但需要确保对应块的形状保持一致。

② 数乘以分块矩阵

k[A1A2A3A4]=[kA1kA2kA3kA4]kbegin{bmatrix}A_1&A_2\A_3&A_4end{bmatrix}=begin{bmatrix}kA_1&kA_2\kA_3&kA_4end{bmatrix}

用这个数分别乘以矩阵的每一个子块。

③ 分块矩阵乘法

[A1A2A3A4][B1B2B3B4]=[A1B1+A2B3A1B2+A2B4A3B1+A4B3A3B2+A4B4]begin{bmatrix}A_1&A_2\A_3&A_4end{bmatrix}begin{bmatrix}B_1&B_2\B_3&B_4end{bmatrix}=begin{bmatrix}A_1B_1+A_2B_3&A_1B_2+A_2B_4\A_3B_1+A_4B_3&A_3B_2+A_4B_4end{bmatrix}

将分块看成元素,即第一个矩阵行块与第二个矩阵列块对应先相乘再相加;
然后再对每个子块进行相乘。

分块矩阵能够相乘的前提条件:子块AikA_{ik}BkjB_{kj}可乘

例4:矩阵AAm×nm{times}n阶,矩阵BBn×sn{times}s阶,且B=[B1B2Bt]B=begin{bmatrix}B_1&B_2&cdots&B_tend{bmatrix},求ABAB
解:显然,AABB的每一个子块都可乘。
AB=A[B1B2Bt]AB=Abegin{bmatrix}B_1&B_2&cdots&B_tend{bmatrix}
=[AB1AB2ABt]=begin{bmatrix}AB_1&AB_2&cdots&AB_tend{bmatrix}
错误理解:将外面的AA看作一个数直接乘进去;
正确理解:将AA看作只有一个块的分块矩阵。

4.2 几种分块矩阵

4.2.1 对角型分块矩阵

[A1A2At]begin{bmatrix}A_1&&&\&A_2&&\&&ddots&\&&&A_tend{bmatrix}

只有主对角线上有不为零的块。

例5:已知对角型分块矩阵A=[A1A2Ak]A=begin{bmatrix}A_1&&&\&A_2&&\&&ddots&\&&&A_kend{bmatrix}B=[B1B2Bk]B=begin{bmatrix}B_1&&&\&B_2&&\&&ddots&\&&&B_kend{bmatrix},并且每个子块都是同阶方阵,求ABABA+BA+B
解:AB=[A1A2Ak][B1B2Bk]AB=begin{bmatrix}A_1&&&\&A_2&&\&&ddots&\&&&A_kend{bmatrix}begin{bmatrix}B_1&&&\&B_2&&\&&ddots&\&&&B_kend{bmatrix}
=[A1B1A2B2AkBk]=begin{bmatrix}A_1B_1&&&\&A_2B_2&&\&&ddots&\&&&A_kB_kend{bmatrix}

A+B=[A1A2Ak]+[B1B2Bk]A+B=begin{bmatrix}A_1&&&\&A_2&&\&&ddots&\&&&A_kend{bmatrix}+begin{bmatrix}B_1&&&\&B_2&&\&&ddots&\&&&B_kend{bmatrix}
=[A1+B1A2+B2Ak+Bk]=begin{bmatrix}A_1+B_1&&&\&A_2+B_2&&\&&ddots&\&&&A_k+B_kend{bmatrix}

4.2.2 上三角和下三角分块矩阵

类似地,可以定义上三角分块矩阵和下三角分块矩阵。

容易证明:同型的对角型分块矩阵、三角分块矩阵和下三角分块矩阵的和、差、数乘和乘积仍然是对角型分块矩阵、三角分块矩阵或下三角分块矩阵。

4.3 分块矩阵转置

④ 分块矩阵转置
A=[A1A2A3A4A5A6]A=begin{bmatrix}A_1&A_2&A_3\A_4&A_5&A_6end{bmatrix}

(1) 把子块看作普通元素求转置;
(2) 对每个子块求转置。

AT=[A1TA4TA2TA5TA3TA6T]A^T=begin{bmatrix}A_1^T&A_4^T\A_2^T&A_5^T\A_3^T&A_6^Tend{bmatrix}

4.4 分块矩阵求逆

star 例6:假设H=[ACOB]H=begin{bmatrix}A&C\O&Bend{bmatrix}是分块矩阵,并且AABB分别为mm阶和nn阶的可逆矩阵,试验证HH可逆,并求HH的逆矩阵。

分析:由题意可知:AAmm阶的可逆方阵,BBnn阶的可逆方阵,所以CCm×nm{times}n阶,OOn×mn{times}m阶。

证:行列式H=ACOB=AB|H|=begin{vmatrix}A&C\O&Bend{vmatrix}=|A|cdot|B|

错误理解:=ABOC=AB=|AB-OC|=|A|cdot|B|
正确理解:使用拉普拉斯展开定理,取定后nn行展开,所以只能取后nn列得到的子式不为零(因为取到前面的列得到的子式都等于零),即要以理解为按子式B|B|展开,余子式为A|A|,故其值为:
=B(1)+A=|B|(-1)^{行标+列标}|A|
=B(1)[(m+1)+(m+2)+...+(m+n)]+[(m+1)+(m+2)+...+(m+n)]A=|B|(-1)^{[(m+1)+(m+2)+…+(m+n)]+[(m+1)+(m+2)+…+(m+n)]}|A|
=B(1)2[(m+1)+(m+2)+...+(m+n)]A=|B|(-1)^{2[(m+1)+(m+2)+…+(m+n)]}|A|
=AB=|A||B|

又因为AABB均可逆,故A0|A|{neq0}B0|B|{neq}0
即:AB0|A|cdot|B|{neq}0
所以:HH可逆。

假设:H1=[X1X3X4X2]H^{-1}=begin{bmatrix}X_1&X_3\X_4&X_2end{bmatrix}

所以:HH1=ACOB[X1X3X4X2]HH^{-1}=begin{vmatrix}A&C\O&Bend{vmatrix}begin{bmatrix}X_1&X_3\X_4&X_2end{bmatrix}

=[AX1+CX4AX3+CX2BX4BX2]=[EOOE]=begin{bmatrix}AX_1+CX_4&AX_3+CX_2\BX_4&BX_2end{bmatrix}=begin{bmatrix}E&O\O&Eend{bmatrix}

所以:{AX1+CX4=EAX3+CX2=OBX4=OBX2=Ebegin{cases}AX_1+CX_4=E\AX_3+CX_2=O\BX_4=O\BX_2=Eend{cases}

错误理解:B=OX4=Oxcancel{Longrightarrow}B=O或X_4=O
正确做法:因为BB可逆,所以B1BX4=B1OB^{-1}BX_4=B^{-1}O,所以X4=OX_4=O

错误理解:因为BX2=EBX_2=E,所以X2=EBX_2=frac{E}{B}
正确做法:根据逆矩阵推论,因为BX2=EBX_2=E,所以X2=B1X_2=B^{-1}

同理,将X4=OX_4=O代入AX1+CX4=EAX_1+CX_4=E可求出:X1=A1X_1=A^{-1}

X2=B1X_2=B^{-1}代入AX3+CX2=OAX_3+CX_2=O,得AX3=CB1AX_3=-CB^{-1},故X3=A1CB1X_3=-A^{-1}CB^{-1}

所以:H1=[A1A1CB1OB1]color{red}{H^{-1}=begin{bmatrix}A^{-1}&-A^{-1}CB^{-1}\O&B^{-1}end{bmatrix}}

练习:假设H=[AOCB]H=begin{bmatrix}A&O\C&Bend{bmatrix}是分块矩阵,并且AABB分别为mm阶和nn阶的可逆矩阵,试验证HH可逆,并求HH的逆矩阵。
结论:H1=[A1OB1CA1B1]color{red}{H^{-1}=begin{bmatrix}A^{-1}&O\-B^{-1}CA^{-1}&B^{-1}end{bmatrix}}
证明:略。

推论:若AABB均可逆,则[AB]1=[A1B1]color{red}{begin{bmatrix}A&\&Bend{bmatrix}^{-1}=begin{bmatrix}A^{-1}&\&B^{-1}end{bmatrix}}

可以进行推广:若A1A_1A2A_2AsA_s均可逆,
[A1A2Bs]1=[A11A21Bs1]color{red}{begin{bmatrix}A_1&&&\&A_2&&\&&ddots&\&&&B_send{bmatrix}^{-1}=begin{bmatrix}A_1^{-1}&&&\&A_2^{-1}&&\&&ddots&\&&&B_s^{-1}end{bmatrix}}

5 引用

《线性代数》高清教学视频 “惊叹号”系列 宋浩老师_哔哩哔哩 (゜-゜)つロ 干杯~-bilibili_2.5 分块矩阵

c/c++开发分享线性代数学习笔记(十四)——分块矩阵地址:https://blog.csdn.net/li2008kui/article/details/107301726

本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。

ctvol管理联系方式QQ:251552304

本文章地址:https://www.ctvol.com/c-cdevelopment/599457.html

(0)
上一篇 2021年5月9日
下一篇 2021年5月9日

精彩推荐