大家好,欢迎来到IT知识分享网。
矩阵分块
为了简化矩阵运算或从不同角度看矩阵乘法,把矩阵分成多块,每块是子矩阵,子矩阵可“看作”一个数,只要满足形状要求,就可进行形式上的矩阵运算。
子矩阵和子向量看成一个数,进行形式上的矩阵乘法,上式就是形式上的行向量乘以列向量得内积!
矩阵其它形式的分块运算道理和这个一样,本书不给出证明。特别强调一点,子矩阵只要满足形状要求,就可进行形式上的矩阵运算,但由于矩阵乘法不满足交换律,一定要注意矩阵相乘的顺序,这个特别容易出错,因为我们太习惯实数的代数运算,经常不自觉地交换变量的前后位置,但矩阵不能交换!
矩阵乘法的四种方式
以矩阵分块看待矩阵,矩阵可以看作是列向量的分块, A = [ a 1 , a 2 , ⋯ , a n ] A = \left[ \mathbf{a_1},\mathbf{a_2},\cdots,\mathbf{a_n}\right] A=[a1,a2,⋯,an] ,前面一直是这么看待矩阵,这是最重要的看待方式。矩阵还可以看作是行向量的分块, A = [ a r 1 T a r 2 T ⋮ a r n T ] A = \left[ \begin{matrix} \mathbf{a^T_{r1}} \\ \mathbf{a^T_{r2}} \\ \vdots \\ \mathbf{a^T_{rn}} \end{matrix} \right] A=⎣⎢⎢⎢⎡ar1Tar2T⋮arnT⎦⎥⎥⎥⎤ ,这也是一种重要的看待方式。为了区分,行向量下标有字母 r r r 。此时一定要注意, a r i \mathbf{a_{ri}} ari 表示列向量,但不是矩阵 A A A 的列向量,而是矩阵 A A A 的行向量旋转后变换成的列向量。例如
A = [ 0 2 1 3 ] a r 1 T = [ 0 2 ] a r 2 T = [ 1 3 ] a r 1 = [ 0 2 ] a r 2 = [ 1 3 ] A = \left[ \begin{matrix} 0 & 2 \\ 1 & 3 \end{matrix} \right] \quad \mathbf{a^T_{r1}} = \left[0 \quad 2\right] \quad \mathbf{a^T_{r2}} = \left[1 \quad 3\right] \quad \mathbf{a_{r1}} = \left[ \begin{matrix} 0 \\ 2 \end{matrix} \right] \quad \mathbf{a_{r2}} = \left[ \begin{matrix} 1 \\ 3 \end{matrix} \right] \quad A=[0123]ar1T=[02]ar2T=[13]ar1=[02]ar2=[13]
有四种矩阵分块方式进行矩阵相乘。
- 最常用的,几何意义最明显的,就是定义矩阵乘法的方式, A B = [ A b 1 , ⋯ , A b p ] AB=\left[ A\mathbf{b_1},\cdots,A\mathbf{b_p}\right] AB=[Ab1,⋯,Abp] ,即把矩阵 A A A 作为整体,矩阵 B B B 看作列向量的分块。积矩阵每列是矩阵 A A A 列向量组的线性组合。
- 矩阵 A A A 看作列向量的分块, A = [ a 1 , a 2 , ⋯ , a n ] A = \left[ \mathbf{a_1},\mathbf{a_2},\cdots,\mathbf{a_n}\right] A=[a1,a2,⋯,an] ,矩阵 B B B 看作行向量的分块, B = [ b r 1 T b r 2 T ⋮ b r n T ] B = \left[ \begin{matrix} \mathbf{b^T_{r1}} \\ \mathbf{b^T_{r2}} \\ \vdots \\ \mathbf{b^T_{rn}} \end{matrix} \right] B=⎣⎢⎢⎢⎡br1Tbr2T⋮brnT⎦⎥⎥⎥⎤ ,矩阵相乘就是形式上的内积,得 A B = a 1 b r 1 T + a 2 b r 2 T + ⋯ + a n b r n T AB = \mathbf{a_1}\mathbf{b^T_{r1}}+\mathbf{a_2}\mathbf{b^T_{r2}}+\cdots+\mathbf{a_n\mathbf{b^T_{rn}}} AB=a1br1T+a2br2T+⋯+anbrnT ,就是对应列向量与行向量的外积之和。这种看法十分重要,表明积矩阵可以分解为 n n n 个简单矩阵之和。
- 矩阵 A A A 看作行向量的分块, A = [ a r 1 T a r 2 T ⋮ a r n T ] A = \left[ \begin{matrix} \mathbf{a^T_{r1}} \\ \mathbf{a^T_{r2}} \\ \vdots \\ \mathbf{a^T_{rn}} \end{matrix} \right] A=⎣⎢⎢⎢⎡ar1Tar2T⋮arnT⎦⎥⎥⎥⎤ ,矩阵 B B B 作为整体。 A B = [ a r 1 T a r 2 T ⋮ a r n T ] B = [ a r 1 T B a r 2 T B ⋮ a r n T B ] AB = \left[ \begin{matrix} \mathbf{a^T_{r1}} \\ \mathbf{a^T_{r2}} \\ \vdots \\ \mathbf{a^T_{rn}} \end{matrix} \right] B = \left[ \begin{matrix} \mathbf{a^T_{r1}}B \\ \mathbf{a^T_{r2}}B \\ \vdots \\ \mathbf{a^T_{rn}}B \end{matrix} \right] AB=⎣⎢⎢⎢⎡ar1Tar2T⋮arnT⎦⎥⎥⎥⎤B=⎣⎢⎢⎢⎡ar1TBar2TB⋮arnTB⎦⎥⎥⎥⎤ 。积矩阵每行是矩阵 B B B 行向量组的线性组合。
- 矩阵 A A A 看作行向量的分块, A = [ a r 1 T a r 2 T ⋮ a r n T ] A = \left[ \begin{matrix} \mathbf{a^T_{r1}} \\ \mathbf{a^T_{r2}} \\ \vdots \\ \mathbf{a^T_{rn}} \end{matrix} \right] A=⎣⎢⎢⎢⎡ar1Tar2T⋮arnT⎦⎥⎥⎥⎤ ,矩阵 B B B 看作列向量的分块, B = [ b 1 , b 2 , ⋯ , b n ] B = \left[ \mathbf{b_1},\mathbf{b_2},\cdots,\mathbf{b_n}\right] B=[b1,b2,⋯,bn] ,矩阵相乘就是形式上的外积,得 A B = [ a r 1 T b 1 a r 1 T b 2 ⋯ , a r 1 T b n ⋮ a r n T b 1 a r n T b 2 ⋯ , a r n T b n ] AB = \left[ \begin{matrix} \mathbf{a^T_{r1}}\mathbf{b_1} & \mathbf{a^T_{r1}}\mathbf{b_2} \cdots, \mathbf{a^T_{r1}}\mathbf{b_n}\\ \vdots \\ \mathbf{a^T_{rn}}\mathbf{b_1} & \mathbf{a^T_{rn}}\mathbf{b_2} \cdots, \mathbf{a^T_{rn}}\mathbf{b_n} \end{matrix} \right] AB=⎣⎢⎡ar1Tb1⋮arnTb1ar1Tb2⋯,ar1TbnarnTb2⋯,arnTbn⎦⎥⎤ ,这种看法用来计算积矩阵每个位置的数值,即第 i i i 行第 j j j 列的数值是矩阵 A A A 的第 i i i 个行向量与矩阵 B B B 的第 j j j 个列向量的内积。这种看法计算矩阵数值比较方便。国内教材基本采用这种方式定义矩阵乘法,把矩阵看成数的表格,掩盖了几何图像。
免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://haidsoft.com/120171.html