矩阵乘法实质就是矩阵乘以向量,把向量看成列向量,矩阵乘以向量就是矩阵乘以矩阵,以这个最基础构建来说明矩阵分块运算。矩阵乘以向量是向量组的线性组合,必须从这个根源说起! Ax=x1a1+⋯+xnan=(x1a1+⋯+xkak)+(xk+1ak+1+⋯+xnan)=A1x1k+A2xkn=[A1,A2][x1kxkn]A=[a1,⋯,an]A1=[a1,⋯,ak]A2=[ak+1,⋯,an]x=(x1,⋯,xn)x1k=(x1,⋯,xk)xkn=(xk+1,⋯,xn)k∈[1,n) 上面公式意思是,把矩阵 A 和向量 x 任意分成两组,对每组进行矩阵乘以向量,然后矩阵写成分块形式,得到分块计算形式 [A1,A2][x1kxkn]=A1x1k+A2xkn 矩阵分块运算用向量理论解释的话,就是空间的直和分解。
以矩阵分块看待矩阵,矩阵可以看作是列向量的分块, A=[a1,a2,⋯,an] ,前面一直是这么看待矩阵,这是最重要的看待方式。矩阵还可以看作是行向量的分块, A=⎣⎢⎢⎢⎡ar1Tar2T⋮arnT⎦⎥⎥⎥⎤ ,这也是一种重要的看待方式。为了区分,行向量下标有字母 r 。此时一定要注意, ari 表示列向量,但不是矩阵 A 的列向量,而是矩阵 A 的行向量旋转后变换成的列向量。例如 A=[0123]ar1T=[02]ar2T=[13]ar1=[02]ar2=[13] 有四种矩阵分块方式进行矩阵相乘。
最常用的,几何意义最明显的,就是定义矩阵乘法的方式,AB=[Ab1,⋯,Abp] ,即把矩阵 A 作为整体,矩阵 B 看作列向量的分块。积矩阵每列是矩阵 A 列向量组的线性组合。
矩阵 A 看作列向量的分块, A=[a1,a2,⋯,an] ,矩阵 B 看作行向量的分块, B=⎣⎢⎢⎢⎡br1Tbr2T⋮brnT⎦⎥⎥⎥⎤ ,矩阵相乘就是形式上的内积,得 AB=a1br1T+a2br2T+⋯+anbrnT ,就是对应列向量与行向量的外积之和。这种看法十分重要,表明积矩阵可以分解为 n 个简单矩阵之和。
矩阵 A 看作行向量的分块,A=⎣⎢⎢⎢⎡ar1Tar2T⋮arnT⎦⎥⎥⎥⎤ ,矩阵 B 作为整体。AB=⎣⎢⎢⎢⎡ar1Tar2T⋮arnT⎦⎥⎥⎥⎤B=⎣⎢⎢⎢⎡ar1TBar2TB⋮arnTB⎦⎥⎥⎥⎤ 。积矩阵每行是矩阵 B 行向量组的线性组合。
矩阵 A 看作行向量的分块,A=⎣⎢⎢⎢⎡ar1Tar2T⋮arnT⎦⎥⎥⎥⎤ ,矩阵 B 看作列向量的分块, B=[b1,b2,⋯,bn] ,矩阵相乘就是形式上的外积,得 AB=⎣⎢⎡ar1Tb1⋮arnTb1ar1Tb2⋯,ar1TbnarnTb2⋯,arnTbn⎦⎥⎤ ,这种看法用来计算积矩阵每个位置的数值,即第 i 行第 j 列的数值是矩阵 A 的第 i 个行向量与矩阵 B 的第 j 个列向量的内积。这种看法计算矩阵数值比较方便。国内教材基本采用这种方式定义矩阵乘法,把矩阵看成数的表格,掩盖了几何图像。