理解矩阵与矩阵乘积(二)

本篇有些内容是孟岩《理解矩阵(三)》中观点的严密化与深化。

数域 \( \mathbf{F}\) 上的两个向量空间 \( U\) 到 \( V\) 的一个映射 \( \varphi\),若保持加法和数量乘法,即满足
\( \varphi(u_1+u_2)=\varphi(u_1)+\varphi(u_2)\)
\( \varphi(ku)=k\varphi(u)\)
则称 \( \varphi\) 为线性映射。

矩阵及矩阵的乘法与线性映射有十分重大的联系。为了看清这一点,我们采取以下步骤:

一、从一维空间谈起

显然,数域 \( \mathbf{F}\) 本身可以看作 \( \mathbf{F}\) 上的向量空间,记做 \( \mathbf{F}^1\),并且,\( \mathbf{F}\) 上的任何一个一维的向量空间 \( V\) 都同构于 \( \mathbf{F}^1\),即取定 \( V\) 的一组基底 \( e_1\) 后,\( V\) 中的任何向量都可以唯一地表示为 \( ke_1\) 的形式,因此 \( V\) 中的向量与 \( \mathbf{F}^1\) 中的向量是一一对应的。我们把 \( \mathbf{F}^1\) 称作 \( \mathbf{F}\) 上一维向量空间的坐标系统。

\( \mathbf{F}\) 上的两个一维向量空间 \( U\) 和 \( V\) 之间的一个线性映射 \( \varphi\),在分别取定 \( U\) 和 \( V\) 上的基底 \( u_1\) 与 \( v_1\) 之后,\( \forall u\in U, \exists x\in \mathbf{F}, \textrm{s.t.} u=xu_1\),因此 \( \varphi(u)=\varphi(xu_1)=x\varphi(u_1)\)。设 \( \varphi(u_1)=av_1\),则 \( \varphi(u)=axv_1\)。这样,在两个一维向量空间的坐标系统之间就衍生出一个线性映射 \( \varphi(x)=ax\),我们要研究前述的两个向量空间,只需要研究它们的坐标系统 \( \mathbf{F}^1\),要研究前述两个向量空间之间的线性映射\( \varphi\),只需要研究它们坐标系统之间的线性映射 \( \varphi(x)=ax\),因为它们是一一对应并且性质相同的。

\( \mathbf{F}^1\) 空间是由基底 1 张成的向量空间,那么根据上面的论述,\( \mathbf{F}^1\) 到 \( \mathbf{F}^1\) 的任何一个线性映射 \( f\) 都有 \( \mathbf{F}\) 中的唯一一个数 \( a\) 使得 \( f(x)=ax\),并且任何一个数 \( a\),都唯一地确定一个线性映射 \( f(x)=ax\)。因此,我们可以说,\( \mathbf{F}\) 中的数与一维空间之间的线性映射是一一对应的。

怎么看待 \( a\) 和 \( x\) 这样一对数的乘法呢?针对以后推广到高维空间的情形,我们总结以下几点:

1) 我们可以说 \( x\) 本身是 \( \mathbf{F}^1\) 中的一个向量,\( a\) 是 \( \mathbf{F}\) 中的一个数,代表一个线性映射,那么 \( ax\) 这样的乘法就是一个线性映射 \( a\) 作用在向量 \( x\) 上得到的像,并且,如果另一个线性映射 \( g(x)=bx\),那么 \( f\circ g(x)=g\circ f(x)=abx\);
2) 但是,\( a\) 本身也是 \( f(1)\),所以也可以看成 \( \mathbf{F}^1\) 中的一个向量,它跟 \( x\) 并没有什么本质的区别,在表达式 \( f(x)=ax\) 中,二者唯一的区别就是 \( a\) 是固定不变的,而 \( x\) 是变量,但只要脱离映射 \( f\) 的语境,二者是对称的,因为根据乘法的交换律 \( ax=xa\);
3) 既然二者是对称的,那么完全可以把 \( a\) 当作变量而把 \( x\) 当作对 \( a\) 的映射,这样的映射是从 \( \mathcal{L}(\mathbf{F}^1)\) 到 \( \mathbf{F}^1\) 的映射:自变量是 \( a\),代表一个线性函数,它的像是 \( ax\),是 \( \mathbf{F}\) 中的一个数;
4) 如果 \( a\not=0\),那么线性映射 \( f\) 是个可逆的映射,有逆映射 \( f^{-1}(x)=a^{-1}x\)。在这个时候,作为 \( \mathbf{F}^1\) 中的向量 \( a(=f(1))\) 可以看作新的参考系(即坐标系,或基底),如果在这个新的基底下某个向量的坐标为 \( x\),那么在原来基底 1 下,同一个向量的坐标就是 \( ax\)。这样,\( f\) 和 \( f^{-1}\) 可以看作某个向量的新坐标与原坐标之间的转换函数。

二、多维到一维的映射

设 \( U\) 是数域 \( \mathbf{F}\) 上的 n 维向量空间,\( U\) 到 \( \mathbf{F}\) 的线性映射称为 \( U\) 上的线性函数。取定 \( U\) 的一组基底 \( e_1,e_2,\dots,e_n\) 之后,\( U\) 中的向量一一对应于 \( \mathbf{F}^n\) 中的向量。同一维情形类似,我们也可以用 \( U\) 的坐标系统 \( \mathbf{F}^n\) 代替 \( U\) 本身。\( U\) 上的一个线性函数 \( f\) 同样也衍生出一个 \( \mathbf{F}^n\) 到 \( \mathbf{F}\) 的线性映射。因此我们可以看 \( \mathbf{F}^n\) 上的线性函数。

\( \mathbf{F}^n\) 是由基底
\( e_1=\begin{pmatrix}1\\ 0\\ \vdots\\ 0\end{pmatrix},e_2=\begin{pmatrix}0\\ 1\\ \vdots\\ 0\end{pmatrix},\dots,e_n=\begin{pmatrix}0\\ 0\\ \vdots\\ 1\end{pmatrix}\)
张成的,现要计算 \( \mathbf{F}^n\) 上的线性函数 \( f\) 的表达式。
\( \mathbf{F}^n\) 上任何一个向量 \( x=(x_1,x_2,\dots,x_n)^T\), 有
\( f(x)=f(x_1e_1+x_2e_2+\dots+x_ne_n)\)\( =x_1f(e_1)+x_2f(e_2)+\dots+x_nf(e_n)\)
这个算式每一项中,都有一部分是常量,即 \( f(e_i)\),是跟随线性函数 \( f\) 而变化的数,它们可代表 \( f\) 本身;另一部分是变量,对应于 \( x\) 的分量 \( x_i\),可代表自变量。我们把这两部分分开书写,定义一个行向量和一个列向量的乘积是它们每个分量分别相乘并把结果相加,如下:
\( \begin{pmatrix}a_1&a_2&\dots&a_n \end{pmatrix}\begin{pmatrix}x_1\\ x_2\\ \vdots\\ x_n\end{pmatrix}=\sum_{i=1}^na_ix_i\)
(为什么这里定义的是一个行向量和一个列向量相乘?为什么不规定成两个行向量或两个列向量相乘?这个要等到考察多维到多维的映射的时候才能看出一些端倪来,因为这样定义之后,横着的行向量将总可以看成一个映射,而纵向的列向量通常就是定义域或值域空间中的向量,只有在特殊的情况下它们才互相转化。)
设 \( a_i=f(e_i)\),那么 \( f(x)\) 就可表示为
\( f(x)=\begin{pmatrix}a_1&a_2&\dots&a_n \end{pmatrix}\begin{pmatrix}x_1\\ x_2\\ \vdots\\ x_n\end{pmatrix}\)
这样,与一维情形类似,\( \mathcal{L}(U,\mathbf{F})\) 中的任何一个线性函数都与一个 n 维的行向量一一对应。

那么怎么看待多维行向量 \( a\) 与列向量 \( x\) 的乘积呢?
1)与一维的情况类似,列向量 \( x\) 是定义域中的一个向量,行向量 \( a\) 代表一个多维空间 \( \mathbf{F}^n\) 到一维空间 \( \mathbf{F}\) 的映射,这种映射称为 \( \mathbf{F}^n\) 上的线性函数。\( \mathbf{F}^n\) 上的所有线性函数构成一个向量空间,记为 \( \mathcal{L}(\mathbf{F}^n,\mathbf{F})\) 或 \( (\mathbf{F}^n)^*\),称为 \( \mathbf{F}^n\) 的对偶空间。显然,它也是 n 维的,与 \( \mathbf{F}^n\) 的维数相同。
\( \mathcal{L}(\mathbf{F}^n,\mathbf{F})\) 上有一组自然的基底:
\( l_i=\begin{pmatrix}0&0&\dots&1&0&\dots&0 \end{pmatrix}\)
即第 i 个基底的第 i 个坐标分量是1,其它分量是0。这组基底是什么意义呢?显然 \( l_i\) 代表一个线性函数,且满足 \( l_ie_i=1,l_ie_j=0,i\not=j\)。即第 i 个基底 \( l_i\) 把 \( \mathbf{F}^n\) 的第 i 个基底向量映射为1,其它基底向量映射为0。
2)与一维对一维的映射不同,这时的 \( a\) 是个 n 维的行向量,这些行向量可以和定义域 \( \mathbf{F}^n\) 中的向量一一对应,而值域只有一维,所以 \( a\) 作为 n 维向量无法看成值域中的元素。但是,\( a\) 的每个分量却是值域中的元素,其第 i 个分量可以看成 \( f(e_i)\)。
既然 n 维的行向量可以与 \( \mathbf{F}^n\) 中的向量一一对应,那么 \( a\) 所对应的列向量 \( a^T\) 就依然与 \( x\) 没有本质区别。对于 \( \mathbf{F}^n\) 中的两个向量 \( x,y\),定义记号 \( \langle x,y\rangle=x^Ty\),那么 \( \langle a^T,x\rangle=\langle x,a^T\rangle=ax\),\( a\) 与 \( x\) 依然是对称的。
3)从这个意义上讲,第一,我们可以把映射 \( a\) 当作自变量而把 \( x\) 看成是这个映射的线性函数,这样 \( \mathbf{F}^n\) 中的每一个向量就可以看作是它的对偶空间 \( \mathcal{L}(\mathbf{F}^n,\mathbf{F})\) 上的线性函数;第二,\( \langle x,y\rangle\) 定义了两个向量的乘积,乘积的结果是一个数。当 \( \mathbf{F}\) 是实数域时,这个乘积就是内积,当 \( \mathbf{F}\) 是复数域的时候,这样的乘积只是个对称双线性函数。
4)因为映射的值域与定义域维数不等,所以映射不是可逆的,因此也就没有坐标变换之说。但是,如果 \( a\not=0\),即 \( a\) 的分量不全为零,那么 \( ax\) 就是对 \( \mathbf{F}^n\) 中向量的一种投影测量,它很像我们三维空间中的高度,知道了一个物体的高度,虽然不知道这个物体确切位置如何,但是我可以知道这个物体下落到地面重力做了多少功。这部分内容涉及到的内积与双线性函数的一些认识可能要留待以后去阐述了。

三、多维到多维映射

基于前面所述的一些原因,我们只需看 \( \mathbf{F}^n\) 到 \( \mathbf{F}^m\) 的线性映射 \( f\),和前面一样的推导过程,可知
\( f(x)=x_1f(e_1)+x_2f(e_2)+\dots+x_nf(e_n)\)
其中 \( e_1,e_2,\dots,e_n\) 是 \( \mathbf{F}^n\) 中的一组基底,\( x_1,x_2,\dots,x_n\) 是 \( x\) 在这组基底下的坐标。如果在 \( \mathbf{F}^m\) 中也取一组基底,那么每一个向量 \( f(e_i)\) 也有一组坐标,我们把这些坐标也写成列向量的形式,那么 \( f(x)\) 是这些列向量的线性组合,它也是列向量的形式。
定义 \( m\times n\) 阶矩阵与一个 n 维列向量的乘积是这个矩阵列向量的线性组合:
\( \begin{pmatrix}a_1&a_2&\dots&a_n \end{pmatrix}\begin{pmatrix}x_1\\ x_2\\ \vdots\\ x_n\end{pmatrix}=\sum_{i=1}^nx_ia_i\)
其中 \( a_i\) 是矩阵的第 i 列向量。
设 \( a_i=f(e_i)\),那么 \( f\) 的表达式可写成
\( f(x)=\begin{pmatrix}a_1&a_2&\dots&a_n \end{pmatrix}\begin{pmatrix}x_1\\ x_2\\ \vdots\\ x_n\end{pmatrix}\)
这个表面上看跟前述多维到一维的映射的矩阵表达式没什么不同,但是唯一的区别就是这里的每一个 \( f(e_i)\) 都扩展成了一个 m 维的列向量,因此 \( a_i\) 组成的实际上是一个 \( m\times n\) 阶矩阵,我们用 \( A\) 指代这个矩阵。

怎么看待 \( Ax\) 这个表达式呢?
1)与前述观点完全雷同,矩阵 \( A\) 代表一个线性映射,\( x\) 代表自变量,是一个向量。
2)\( A\) 的每一个列向量是值域中的一个向量,这些列向量张成了值域空间。那么,\( A\) 的每个行向量呢?它们每一个都是定义域到一个一维向量空间的映射。我们把 \( A\) 的第 i 个行向量记为 \( f_i\),经过简单的计算推导容易看出,\( f\) 的表达式也可以写成如下形式:
\( f(x)=\begin{pmatrix}f_1\\ f_2\\ \vdots\\ f_m\end{pmatrix}x=\begin{pmatrix}f_1(x)\\ f_2(x)\\ \vdots\\ f_m(x)\end{pmatrix}\)
因此,\( f_i(x)\) 相当于只取了 \( f(x)\) 的第 i 个分量,所以它是 \( \mathbf{F}^n\) 到 \( \mathbf{F}^m\) 中第 i 个基向量张成的一维子空间的映射。可以很容易地理解,\( Ax\) 即可以看成是 \( A\) 各个列向量的线性组合,其每个分量又可以看成是 \( A\) 的每个行向量与 \( x\) 的乘积。
3)如果考虑到 \( f_i\) 与 \( x\) 的对称性,把 \( x\) 看成是 \( (\mathbf{F}^n)^*\) 上的线性函数,那么,\( Ax\) 可以看作
\( \begin{pmatrix}\langle x,f_1^T\rangle\\ \langle x,f_2^T\rangle\\ \vdots\\ \langle x,f_n^T\rangle\end{pmatrix}\)
我们也把它看成 \( x\) 的同类,得到一个 \( \mathbf{F}^m\) 对偶空间上的线性函数。后面我们会看到,这将导出 \( (Ax)^T=x^TA^T\),只是现在还没有定义矩阵与矩阵的乘法。
4)如果 \( f\) 是 \( \mathbf{F}^n\) 到自身的映射,并且 \( \det(A)\not=0\),那么 \( f(e_1),f(e_2),\dots,f(e_n)\) 可以构成 \( \mathbf{F}^n\) 的基底,那么 \( f\) 可逆,且如果一个向量在基底 \( f(e_1),f(e_2),\dots,f(e_n)\) 下的坐标为 \( x\),那么在 \( e_1,e_2,\dots,e_n\) 下的坐标就是 \( f(x)\)。

(未完待续)