四、线性映射的复合
我们已经定义了行向量与列向量的乘法和矩阵与列向量的乘法,现在还差矩阵与矩阵的乘法没有定义。而矩阵与矩阵的乘法要与线性映射的复合联系起来。
设 \( U\)、\( V\) 和 \( W\) 分别为 r 维、n 维、m 维向量空间。\( g\) 和 \( f\) 分别是 \( U\) 到 \( V\) 和 \( V\) 到 \( W\) 的线性映射,那么易证两个线性映射的复合 \( f\circ g\) 也是线性映射。
取三个向量空间的基底,那么三个向量空间就有了坐标系统,如果知道了 \( f\) 和 \( g\) 在坐标系统下的表达式,即按前面所述,知道了它们对应的矩阵:\( f(v)=Av\),\( g(u)=Bu\),其中 \( A\) 为 \( m\times n\) 阶矩阵,\( B\) 为 \( n\times r\) 阶矩阵,那么 \( f\circ g\) 对应的矩阵是什么呢?
依据直观的推导,\( f\circ g(u)=f(Bu)=A(Bu)=ABu\),好像 \( f\circ g\) 对应的矩阵就是 \( A,B\) 两个矩阵的乘积,但是,我们目前并没有定义它们的乘积是什么,所以最后一个等号目前来讲还是没有意义的。
那么,我们就以求两个线性映射的复合映射所对应的矩阵为目的,定义两个线性映射的复合所对应的矩阵就是这两个映射对应矩阵的乘积,那么这个乘积如何来求呢?
我们前面已经知晓,一个线性映射 \( f\) 对应的矩阵,其列向量就恰好等于 \( f(e_1),f(e_2),\dots,f(e_n)\) 在值域坐标系中的坐标,那么我们只需求出这些坐标,就相当于求出一个线性映射的矩阵了。
\( U\) 中的基底 \( e_1,e_2,\dots,e_r\) 在线性映射 \( g\) 的作用下映射到 \( V\) 中,根据 \( g\) 对应矩阵 \( B\) 的意义,相应的 \( g(e_1),g(e_2),\dots,g(e_r)\) 在 \( V\) 中的坐标值就应该是 \( B\) 的各个列向量 \( b_1,b_2,\dots,b_r\),然后,这些向量再经 \( f\) 映射到 \( W\),它们的像在 \( W\) 坐标系中的坐标就应该是 \( Ab_1,Ab_2,\dots,Ab_r\),也就是说,\( U\) 中的基底 \( e_1,e_2,\dots,e_r\) 在 \( f\circ g\) 作用下的像在 \( W\) 中的坐标就是 \( Ab_1,Ab_2,\dots,Ab_r\),把它们作为列向量组成一个矩阵,这就是线性映射 \( f\circ g\) 对应的矩阵。
基于以上论述,定义两个矩阵 \( A_{m\times n},B_{n\times r}\) 的乘积 \( AB\) 如下:
\( AB=\begin{pmatrix}Ab_1&Ab_2&\dots &Ab_r\end{pmatrix}\)
其中 \( b_1,b_2,\dots,b_r\) 为 \( B\) 的列向量。
这样的定义使得 \( A(Bx)=(AB)x\) 成立,因此,矩阵乘法满足结合律:
\( \begin{aligned}A(BC)=&A\begin{pmatrix}Bc_1&Bc_2&\dots &Bc_n\end{pmatrix}\\ =&\begin{pmatrix}ABc_1&ABc_2&\dots &ABc_n\end{pmatrix}\\ =&AB\begin{pmatrix}c_1&c_2&\dots &c_n\end{pmatrix}\\ =&(AB)C&\end{aligned}\)
还有,我们看 \( AB\) 的每个列向量的组成情况,它的的每一列都是 \( Ab_i\),根据矩阵与列向量的乘法定义,它是 \( A\) 的列向量的线性组合,组合系数是 \( b_i\) 的分量。
这是从列向量的角度分析矩阵乘法得到的结果,我们还可以从行向量角度分析矩阵乘法。
前面对矩阵行向量的意义已经说明,每个行向量都是定义域到值域的一维子空间的映射。那么我们分析一下 \( AB\) 的行向量都对应什么映射。
\( ABx=A(Bx)=\begin{pmatrix}a_1\\ a_2\\ \vdots\\ a_m\end{pmatrix}(Bx)=\begin{pmatrix}a_1Bx\\ a_2Bx\\ \vdots\\ a_mBx \end{pmatrix}\)
其中,\( a_1,a_2,\dots,a_m\) 是 \( A\) 的行向量。可见,\( AB\) 的第 i 个行向量对应的映射是 \( A\) 的第 i 行映射对应的映射与映射 \( B\) 的复合,即第 i 行是 \( a_iB\)。
怎么看待这样一个乘积呢?
前面在”三、多维到多维映射”中3)节讨论的时候我们曾与这样的乘积擦肩而过,因为那时还没有定义矩阵之间的乘积,所以当时没有正式提出这个乘积的实质。现在接着那一节的观点讨论,取 \( A\) 与 \( x\) 和 \( f_i\) 的含义同”三.3)”节所述,因为
\( Ax=\begin{pmatrix}\langle x,f_1^T\rangle\\ \langle x,f_2^T\rangle\\ \vdots\\ \langle x,f_n^T\rangle\end{pmatrix}\)
所以
\( (Ax)^T=\begin{pmatrix}\langle x,f_1^T\rangle&\langle x,f_2^T\rangle&\dots&\langle x,f_n^T\rangle\end{pmatrix}\)\( =x^T\begin{pmatrix}f_1^T&f_2^T&\dots&f_n^T\end{pmatrix}=x^TA^T\)
那么回到本节内容,看 \( aB\) 这个行向量 \( a\) 与矩阵 \( B\) 的乘积的意义。因为 \( (aB)^T=(B^Ta^T)\),而 \( B^Ta^T\) 的每一列都是 \( B^T\) 每一列的线性组合,组合系数是 \( a^T\) 的各个分量,那么 \( aB\) 的每一行都是 \( B\) 每一行的线性组合,组合系数是 \( a\) 的各个分量。
五、矩阵的转置
为了从映射的角度了解一下矩阵转置的背景,首先看映射的转置。
设 \( f\) 是向量空间 \( U\) 到 \( V\) 的线性映射,定义对偶空间 \( V^*\) 到 \( U^*\) 上的线性映射 \( ^tf(\varphi)=\varphi\circ f\) 为 \( f\) 的转置映射。
设 \( f(x)=Ax\),\( \varphi\in V^*\),因为 \( V^*\) 中的向量都是 \( V\) 上的线性函数,所以按照表示映射的惯例把它相对于对偶基的坐标写成行向量 \( a\),即 \( \varphi(x)=ax\)。
因为 \( ^tf(\varphi)(x)=\varphi\circ f(x)=aAx\),所以 \( ^tf\) 把 \( a\) 映射成 \( aA\),又因为 \( (aA)^T=A^Ta^T\),所以如果按照表示向量和向量映射的惯例,可以把 \( V^*\) 中的向量 \( \varphi\) 和 \( U^*\) 中的向量 \( ^tf(\varphi)\) 写成列向量,那么线性映射 \( ^tf\) 对应的矩阵就是 \( A^T\)。
对于 n 维列向量的线性映射,是通过左乘列数为 n 的矩阵来实现的,而对于 n 维行向量的线性映射,是通过右乘行数为 n 的矩阵来实现的。
现在证明矩阵乘积的转置的公式 \( (AB)^T=B^TA^T\)。可以有两种方式,一种是根据矩阵乘积的定义:
\( \begin{aligned}(AB)^T=&\begin{pmatrix}Ab_1&Ab_2&\dots&Ab_r\end{pmatrix}^T\\ =&\begin{pmatrix}b_1^TA^T\\ b_2^TA^T\\ \vdots\\ b_r^TA^T\end{pmatrix}\\ =&B^TA^T\end{aligned}\)
另一种是根据转置映射的定义:
\( ^t(f\circ g)(\varphi)=\varphi\circ f\circ g={^tf}(\varphi)\circ g={^tg}(^tf(\varphi))={^tg}\circ {^tf}(\varphi)\)
把一个矩阵分块,每一块都是一个小矩阵,那么这些小矩阵代表的是什么映射,它们跟原来的矩阵代表的映射又有什么关系?
首先分析对矩阵行的分割,设 \( A\) 是向量空间 \( V\) 到 \( W\) 的线性映射 \( T\) 所对应的矩阵,把 \( A\) 的行进行分块,分成行数分别为 \( p_1,p_2,\dots,p_r\) 的 r 块:
\( A=\begin{pmatrix}A_1\\ A_2\\ \vdots\\ A_r\end{pmatrix}\)
它的每一块 \( A_i\) 相当于只取 \( Tv\) 的一部分坐标,也就是 \( A_i\) 相当于 \( V\) 到 \( W\) 的一个 \( p_i\) 维子空间的映射。如果我们把 \( W\) 中前 \( p_1\) 个基底张成的空间记为 \( W_1\),把接下来的 \( p_2\) 个基底张成的空间记为 \( W_2\),…,那么
\( W=W_1\oplus W_2\oplus\dots\oplus W_r\)
向量 \( w\) 向某个 \( W_i\) 的投影记为 \( P_{W_i}\),那么任何一个向量 \( w\) 可以唯一地表示为
\( w=P_{W_1}w+ P_{W_2}w+\dots+P_{W_r}w\)
即
\( P_{W_1}+ P_{W_2}+\dots+P_{W_r}=I\)
每一块 \( A_i\) 是 \( V\) 到 \( W_i\) 的映射 \( P_{W_i}T\) 对应的矩阵。它们的和就是整个的映射 \( T\):
\( \displaystyle T=\sum_{i=1}^rP_{W_i}T\)
接着分析对矩阵列的分割,设 \( B\) 是向量空间 \( U\) 到 \( V\) 的线性映射 \( S\) 所对应的矩阵,把 \( B\) 的列进行分块,分成列数分别为 \( q_1,q_2,\dots,q_s\) 的 s 块:
\( B=\begin{pmatrix}B_1&B_2&\dots&B_s\end{pmatrix}\)
每一块 \( B_i\) 相当于 \( S\) 限制在 \( U\) 的 \( q_i\) 维子空间 \( U_i\) 上的映射所对应的矩阵。如果构造
\( B’=\begin{pmatrix}O&B_i&O\end{pmatrix}\)
即 \( B’\) 只保留 \( B\) 中 \( B_i\) 那一块的元素不变,其它位置的元素都置零,那么 \( B’\) 对应的映射就是 \( SP_{U_i}\)。显然有
\( \displaystyle S=\sum_{i=1}^sSP_{U_i}\)
把 \( U\)、\( V\)、\( W\) 都按照上面的方式分解成子空间的直和,并注意到 \( \sum_{k}P_{V_k}=I\) 和 \( P_{V_k}^2=P_{V_k}\) 那么
\( \displaystyle TS=(\sum_{i}P_{W_i})TS(\sum_{j}P_{U_j})=\sum_{i,j}\sum_{k}(P_{W_i}TP_{V_k})(P_{V_k}SP_{U_j})\)
与矩阵联系起来,\( AB\) 这个乘积矩阵的第 i 个行块与第 j 个列块的交汇处的那个小矩阵所对应的映射是 \( U_j\) 到 \( W_i\) 的线性映射,这个线性映射就是 \( \sum_{k}(P_{W_i}TP_{V_k})(P_{V_k}SP_{U_j})\)(思考:请解释这个映射分解法的几何意义!),而这个映射的矩阵就是这个式子中的映射所对应的矩阵块的相应运算。
把每一个空间分解到一维,那么这个过程就是一般教材中计算矩阵 \( AB\) 的各个元素的过程。
2011年1月8日注:这种观点有一个图表示意,详见文章《图示矩阵分块乘法》
好抽象