矩阵的形式很简单,就是一个 m × n m\times n m×n的数表。那么问题来了,为什么要把一堆数汇集在一起,这么做有什么好处?要回答这个问题,还得从矩阵的由来以及矩阵乘法说起。
我们先说说矩阵的由来。矩阵的出现与解线性方程组有关,英国数学家阿瑟·凯莱把线性方程组中的系数和等号右边的的数提取出来,构成一个数表,这个数表就称为矩阵。从而,解线性方程组的过程就转化为对矩阵进行变换的过程。这么说有点抽象,我们看个具体的例子。
图-1第一行是我们熟悉的用消元法解线性方程组的过程。我们可以看出整个过程主要是变量前面的系数在变化,至于变量名是什么并不重要。所以,可以把系数单独提取出来与等号右边的数一起构成一个数表。然后,直接对这个数表进行变换。这样做有一个好处就是排除了变量的干扰,求解过程更不容易出错。图-1第二行矩阵变换中的文字描述:第一行 × ( − 2 ) + \times (-2)+ ×(−2)+第二行的意思是 “第一行保持不变,把第一行乘以-2加到第二行”。可表示为 r 2 ′ = r 2 − 2 r 1 r_2^\prime=r_2-2r_1 r2′=r2−2r1。我们可以将文字描述写成这种表达式,这样看起来更简洁。这种将某行的倍数加至另一行的操作叫作倍加变换。这是矩阵初等行变换的一种操作。矩阵初等行变换操作还有倍乘和对换两种操作。我们只需不断运用矩阵初等行变换操作将图-1矩阵变换为 [ 1 0 ? 0 1 ? ] \left[ \begin{array}{cc:c} 1 & 0 & ? \\ 0 & 1 & ? \end{array} \right] [1001??],这种形式,就可求得方程组的解。
我们可以看出上述矩阵变换过程每做一次变换都要画一个箭号、写上类似这种表达式“ r 2 ′ = r 2 − 2 r 1 r_2^\prime=r_2-2r_1 r2′=r2−2r1”,对于像我这样的懒人来说还是觉得有点烦琐。能不能再简单一点呢,还真有。我们来看上述矩阵第一次变换包括两个操作:1)第一行保持不变;2)第一行乘以(-2)加到第二行。对于第一个操作,我们可以定义一种运算,用向量[1 0]去左乘矩阵,即用这个行向量点乘矩阵的每一列,将所得结果写成一行。即,
[ 1 0 ] [ 1 2 1 2 1 5 ] = [ 1 2 1 ] [1 \quad 0] \begin{bmatrix} 1 & 2 & 1 \\ 2 & 1 & 5 \end{bmatrix}=[1 \quad 2 \quad 1] [10][122115]=[121]
对于第二个操作,我们可以用向量[-2 1]去左乘矩阵,即
[ − 2 1 ] [ 1 2 1 2 1 5 ] = [ 0 − 3 3 ] [-2 \quad 1] \begin{bmatrix} 1 & 2 & 1 \\ 2 & 1 & 5 \end{bmatrix}=[0 \quad -3 \quad 3] [−21][122115]=[0−33]
然后,我们可以将上述两个向量拼在一起去左乘矩阵,
[ 1 0 − 2 1 ] [ 1 2 1 2 1 5 ] = [ 1 2 1 0 − 3 3 ] \begin{bmatrix} 1 & 0 \\ -2 & 1 \end{bmatrix} \begin{bmatrix} 1 & 2 & 1 \\ 2 & 1 & 5 \end{bmatrix}= \begin{bmatrix} 1 & 2 & 1 \\ 0 & -3 & 3 \end{bmatrix} [1−201][122115]=[102−313]
左乘一个矩阵就完成了上图的第一步操作。这种演算方式更形式化、更不容易出错。这就是矩阵乘法的由来。从中我们发现,矩阵初等行变换的三个操作均可用向量左乘的方式实现。例如,要将矩阵第一行与第二行对换,可以这样做
[ 0 1 1 0 ] [ 1 2 1 2 1 5 ] = [ 2 1 5 1 2 1 ] \begin{bmatrix} 0 & 1 \\ 1 & 0 \end{bmatrix} \begin{bmatrix} 1 & 2 & 1 \\ 2 & 1 & 5 \end{bmatrix}= \begin{bmatrix} 2 & 1 & 5 \\ 1 & 2 & 1 \end{bmatrix} [0110][122115]=[211251]
现假设有一个线性方程组,
{ x 1 − x 2 = 1 2 x 1 + x 2 = 2 \begin{equation} \left\{ \begin{array}{c} x_1-x_2=1 \\ 2x_1+x_2=2 \end{array} \right. \end{equation} {x1−x2=12x1+x2=2
根据矩阵乘法的定义,可将其改为矩阵相乘的形式。
(1) 第一种形式:变量在左,矩阵在右。因为 x 1 x_1 x1的系数为1和2,所以把[1, 2]写在矩阵的第一行。将 x 2 x_2 x2的系数[-1, 1]写在第二行。相乘结果的矩阵为一行两列,所以等号右边是一个行向量。因此方程组可表示为
[ x 1 x 2 ] [ 1 2 − 1 1 ] = [ 1 2 ] \begin{bmatrix} x_1 & x_2 \end{bmatrix} \begin{bmatrix} 1 & 2 \\ -1 & 1 \end{bmatrix}= \begin{bmatrix} 1 & 2 \end{bmatrix} [x1x2][1−121]=[12]
(2) 第二种形式,矩阵在左,变量在右。这时候应该将 x 1 x_1 x1的系数写在矩阵的第一列, x 2 x_2 x2的系数写在第二列。相乘结果的矩阵为两行一列,所以等号右边是一个列向量。因此方程组可表示为
[ 1 − 1 2 1 ] [ x 1 x 2 ] = [ 1 2 ] \begin{bmatrix} 1 & -1 \\ 2 & 1 \end{bmatrix} \begin{bmatrix} x_1 \\ x_2 \end{bmatrix}= \begin{bmatrix} 1 \\ 2 \end{bmatrix} [12−11][x1x2]=[12]
如果令 A = [ 1 − 1 2 1 ] A= \begin{bmatrix} 1 & -1 \\ 2 & 1 \end{bmatrix} A=[12−11], x = [ x 1 x 2 ] \textbf{x} = \begin{bmatrix} x_1 \\ x_2 \end{bmatrix} x=[x1x2], b = [ 1 2 ] \textbf{b}= \begin{bmatrix} 1 \\ 2 \end{bmatrix} b=[12],那么上式可简写为 A x = b A \textbf{x}= \textbf{b} Ax=b。教科书中常用这种形式表示线性方程组。
接下来我们要脱离线性方程组,仅从矩阵和向量的角度看矩阵乘法的几何意义。
假设 A = [ 1 − 1 2 1 ] A= \begin{bmatrix} 1 & -1 \\ 2 & 1 \end{bmatrix} A=[12−11], x = [ 1 1 ] \textbf{x} = \begin{bmatrix} 1 \\ 1 \end{bmatrix} x=[11], b = [ 0 3 ] \textbf{b}=\begin{bmatrix} 0 \\ 3 \end{bmatrix} b=[03]。 A x = b A \bold{x}=\bold{b} Ax=b,这个等式可以解释为在矩阵 A A A的帮助下,把 x \bold{x} x变成了 b \bold{b} b。我们还可以用基变换的角度来解释这个等式。
我们知道二维向量空间的自然基为 e 1 = [ 1 0 ] e_1= \begin{bmatrix} 1 \\0 \end{bmatrix} e1=[10], e 2 = [ 0 1 ] e_2= \begin{bmatrix} 0 \\ 1 \end{bmatrix} e2=[01], E = { e 1 , e 2 } = [ 1 0 0 1 ] E=\{e_1, e_2\}= \begin{bmatrix} 1 & 0 \\ 0 &1 \end{bmatrix} E={e1,e2}=[1001]。令 E x = a E \bold{x}=\bold{a} Ex=a。其中 a = [ 1 1 ] \bold{a}=\begin{bmatrix} 1 \\ 1 \end{bmatrix} a=[11], x = [ 1 1 ] \bold{x}= \begin{bmatrix} 1 \\1 \end{bmatrix} x=[11]。我们可以这样解释这个等式,它是指,向量 a \bold{a} a是在以自然基为基的向量空间中,坐标为 x \bold{x} x的那个向量,如下图所示。
而在这个例子中,矩阵 A A A正好是満秩矩阵,可以把它的列向量看作二维向量空间中的另一个基。 A x A \bold{x} Ax与 E x E \bold{x} Ex不同的是把自然基换成了 A A A,其实就是坐标值 x \bold{x} x不变,单位向量变了。所以从基的角度看, A x A \bold{x} Ax表示的是以 A A A为基的空间中坐标为 x \bold{x} x的那个向量。如下图所示
从上面两个图中我们看到,虽然向量 a \bold{a} a和 b \bold{b} b在各自所处向量空间中坐标值一样,都是 [ 1 1 ] \begin{bmatrix} 1 \\ 1 \end{bmatrix} [11],但是单位格子不一样了。
对于这个例子,想到了一个贴切的比喻。假设有两个世界,一个是我们在地球上生活的这个世界。而在宇宙的某个角落还有另一个平行世界。这个平行世界的人和物与地球世界的人和物一一对应,但是两个世界的坐标单位不一样。假设地球世界的单位坐标以自然基为单位,平行世界的坐标单位为矩阵 A A A的列向量。你在地球世界移动一个单位,另一个平行世界中的你会自动地移动一个单位,但是这两个世界的单位不一样。
因为矩阵乘法是用左侧矩阵的各行去点乘右侧矩阵的各列,所以,如果要使得 A B AB AB能相乘,那么 A A A的列数必须等于 B B B的行数。当 A B AB AB能相乘时, B A BA BA不一定能相乘,因为 B B B的列数不一定等于 A A A的行数。即使能相乘,相乘后的结果也不一定与原顺序相乘的结果一样。不过,当 A A A和 B B B都是对称阵时, A B = B A AB=BA AB=BA。也就是说,矩阵乘法不满足交换律。
矩阵乘法不能随意交换矩阵的顺序,但在不改变矩阵顺序的前提下,组合方式可以不一样,例如, ( A B ) C = A ( B C ) (AB)C=A(BC) (AB)C=A(BC)。也就是说矩阵乘法满足结合律。
矩阵乘法还有一个性质: ( A B ) T = B T A T (AB)^T=B^TA^T (AB)T=BTAT。感觉这个性质蛮重要,做了一下证明,可能与书上的证明不太一样。