线性结构化语言——矩阵的分块简化(四)

分块矩阵是线性代数中的一个重要内容,是处理阶数较高的矩阵时常采用的技巧,也是数学在多领域的研究工具。对矩阵进行适当分块,可使高阶矩阵的运算可以转化为低阶矩阵的运算,同时也使原矩阵的结构显得简单而清晰,从而能够大大简化运算步骤,或给矩阵的理论推导带来方便。有不少数学问题利用分块矩阵来处理或证明,将显得简洁、明快。矩阵分块的意思是将一个大矩阵分隔为几个小的矩阵,将每个小的矩阵作为新的矩阵元素。分块可以降低大矩阵运算带来的复杂性。分块后的小矩阵,叫做矩阵的子块,以子块为元素的形式上的矩阵叫做分块矩阵。

一 矩阵的分块

分块矩阵其实就是把一个完整的矩阵随意地切割成不同的块,这种定义就决定了分块矩阵具有很多种形式。其中,把一个矩阵按照列或行来进行划分是一种对矩阵分块的特殊情况。通常来讲,对于一个m×n 的矩阵 A 来说,有如下矩阵分块的形式:

A=[A11A1rAq1Aqr](A11Rm1×n1AqrRmq×nr)

其中m1++mq=mn1++nr=nAαβ 表示位于位置 (α,β) 上的子矩阵且 AαβRmα×nβ 。用这样的表示方法,我们就可以说A=(Aαβ)是一个 q×r的分块矩阵。

分块对角矩阵(Block Diagonal)

An 阶方阵,若 A 的分块矩阵在非主对角线上的子矩阵都是零矩阵,且在主对角线上的子矩阵都为方阵,即

A=[A1OOOA2OOOAs]

其中 O表示零矩阵, Ai(i=1,2,,s)都是方阵,那么称 A分块对角矩阵(Block Diagonal)

[110000110000001110001110001110000001]

分块上(下)三角形矩阵(Block Upper/Lower Triangular)

当我们对方阵进行分块后,主对角线上的子矩阵都是方阵,主对角线以上(以下)的子矩阵都是零矩阵,那我们称之为分块上(下)三角形矩阵(Block Upper/Lower Triangular),即
[A11A12A1sOA22A2sOOAss]

[A11OOA21A22OAs1As2Ass]

分块矩阵示例

例13×4的矩阵分块。

[a11a12a13a14a21a22a23a24a31a32a33a34]

分成子块的方法很多,一般根据矩阵中子块的特点来划分。如可以分成

a11a12a13a14a21a22a23a24a31a32a33a34

[A11A12A21A22]

其中

A11=(a11a12a21a22);A12=(a13a14a23a24);A21=(a31a32);A22=(a33a34)

矩阵的分块是一种根据矩阵的具体特点将其划分为若干子矩阵的技术,通过这种方式可以简化矩阵的表达形式和计算过程。在许多实际问题中,矩阵往往具有一定的结构特性,例如对称性、稀疏性或带状分布等,这些特性可以被利用,通过分块将大矩阵划分为若干规模较小的子矩阵,从而降低计算复杂度。

二 矩阵的分块运算

这里简要说一下分块矩阵的一些运算操作。

数乘

μ[A11A12A21A22A31A32]=[μA11μA12μA21μA22μA31μA32]

加法

[A11A12A21A22A31A32]+[B11B12B21B22B31B32]=[A11+B11A12+B12A21+B21A22+B22A31+B31A32+B32]

乘法

[A11A12A21A22A31A32][B11B12B21B22]=[A11B11+A12B21A11B12+A12B22A21B11+A22B21A21B12+A22B22A31B11+A32B21A31B12+A32B22]

三 矩阵的分块应用

例2 已知 N=[0100010010]A=[a11a12a1na21a22a2na31a32a3na41a42a4n]
,求 N4A

解:令 A=[A1A2A3A4] ,则 NA=[A2A3A4O]N2A=N(NA)=[A3A4OO]
N4A=[OOOO]

例3 已知 A=[1212121212121212] ,求 A10

解:令 A1=[1,2,1,2] ,则 A=[A1A1A1A1]=[1111]A1=YA1

A10=(YA1)10=YA1YA1YA1=Y(A1Y)(A1Y)(A1Y)A1=Y(A1Y)9A1

A1Y=[1,2,1,2][1111]=12+12=2

所以 A10=Y(2)9A1=(2)9YA1=512A=[51210245121024512102451210245121024512102451210245121024]

例4 计算 [1210010100210003][1031012100230003]

解: 根据上面两个矩阵的特点分块进行计算,依题意可得:

A11=[1201],A22=[2103],B12=[3121],B22=[2303]

=[A11E2OA22][E2B12OB22]=[A11A11B12+B22OA22B22]


A11B12+B22=[1201][3121]+[2303]=[5224]A22B22=[2103][2303]=[4309]

所以

=[1252012400430009]

例5AMm(R), DMn(R)都可逆,则:

(ABOD)1=(A1A1BD1OD1)

证明:

(ABImOODOIn)

经过初等行变换:

(II)(A+((BD1)O)B+((BD1)D)Im+((BD1)O)O+((BD1)In)ODOIn)

简化得:

=(AOImBD1ODOIn)

继续变换:

(III)((A1)A(A1)O(A1)Im(A1)BD1(D1)O(D1)D(D1)O(D1)In)

最终结果为:

=(ImOA1A1BD1OInOD1)

例6AMn(R),则存在 δ>0,使得对0<t<δ,有:

tIn+A=(t+a11a12a1na21t+a22a2nan1an2t+ann)

证明:根据行列式的定义,|tIn+A|=f(t) 是一个首项系数为1的关于tn 次多项式。

(插一句:这个关于tn 次多项式是连续函数,这个连续性就是后面取极限处理的基石。)

因为f(t)=0R上最多有n个根(有限个),所以存在足够小的δ>0,根不落在(0,δ) 上。

因此,对于0<t<δ|tIn+A|=f(t)0,即tIn+A可逆。

总结

分块矩阵是对矩阵的集成重构。对于一些行数和列数较高的矩阵,为了简化分析和计算,时常用若干条横线和竖线将一个大矩阵划分成许多小矩阵,这些小矩阵称为子块,由子块组成的矩阵就称为分块矩阵。对矩阵进行适当分块,可使高阶矩阵的运算可以转化为低阶矩阵的运算,同时也使原矩阵的结构显得简单而清晰,从而能够大大简化运算步骤,或给矩阵的理论推导带来方便。有不少数学问题利用分块矩阵来处理或证明,将显得简洁、明快。分块矩阵有很多应用,将复杂矩阵转化为稍显熟悉的子块、分块对角矩阵的求逆等方面。分块矩阵最重要的用处就是(在某些情况下)可以把分块矩阵的块看成是数,按照普通矩阵(就是每个元素都是数)去发现解题思路,从而帮助我们思考,最后完成解题的过程(实际上整个线性代数都是这个思想,就是矩阵他具有数的一些特征,从而使我们看问题有一个站在更高的角度上,把问题看的更清楚的,更简单的思路)。

参考文献

  1. 矩阵计算(三):分块矩阵基本概念
  2. 4.2 矩阵的分块运算
  3. 数学技巧篇58:分块矩阵
posted @   郝hai  阅读(1250)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
点击右上角即可分享
微信分享提示