今天我读到孟岩大神 @myan的文章系列——理解矩阵,便联想起之前看过的linear algebra(MIT)。
孟岩的文章给出了对空间、向量、矩阵的非常有趣的理解,让人爱不释手。而MIT的课程则教会了我计算矩阵乘法的好几种方法。这种深度和角度,在我大学学习线性代数的过程中是完全没有的,即使我这门课考了98分。
然而,孟岩的文章只是告诉了我们如何理解向量、矩阵、线性空间,如何理解矩阵的乘法,对于乘法具体怎么操作,其实并没有怎么提到。同时,MIT的课程也只是教了几种不同的乘法操作,并没有讲到为什么这么做。
那么两者结合,我总结一下如何理解和计算矩阵的乘法。
先声明一点:左乘和右乘原理一样,所有列变成行、右变成左即可。
矩阵与向量的乘积:
Ma=b
矩阵相乘:
MN=P
其中M,N,P是n*n阶矩阵,a, b是n维列向量。
以下举例说明Ma=b:
1、这是大学老师教的元素法:Ma=b
⎛⎝⎜130284111⎞⎠⎟⎛⎝⎜121⎞⎠⎟=⎛⎝⎜1×1+2×2+1×13×1+8×2+1×10×1+4×2+1×1⎞⎠⎟=⎛⎝⎜6209⎞⎠⎟
这种方法是从解线性方程组而得来,即向量a是n个未知数的解,矩阵M每一行是一个方程,行中的数对应未知数对应的系数,向量b是方程组“=”右边的数。
2、MIT课程中介绍的列组合法:Ma=b
(看成矩阵M的列的线性组合,也就是向量的线性组合)
⎛⎝⎜130284111⎞⎠⎟⎛⎝⎜121⎞⎠⎟=1⎛⎝⎜130⎞⎠⎟+2⎛⎝⎜284⎞⎠⎟+1⎛⎝⎜111⎞⎠⎟
这种将矩阵与向量的乘法表示为矩阵列的线性组合的方法,在孟岩的文章中,大致是这样解释的:
向量这玩意儿其实是在空间上基(坐标系)的投影值的一个排列,排列顺序对应基的顺序,如b
⎛⎝⎜6209⎞⎠⎟
就看作是在常见的忽略不写的基I下的投影值的排序
⎛⎝⎜⎜⎜⎜⎜⎜⎜⎜⎜⎜⎜⎜⎜⎜⎜⎜6⎛⎝⎜100⎞⎠⎟20⎛⎝⎜010⎞⎠⎟9⎛⎝⎜001⎞⎠⎟⎞⎠⎟⎟⎟⎟⎟⎟⎟⎟⎟⎟⎟⎟⎟⎟⎟⎟
看到这儿,你应该恍然大悟了吧。
对于Ma=b,向量a其实就是在坐标系M(基为M的各列)下向量b的表示形式。当然,b其实就是Ib,b在坐标系I下。
也就是说Ma=b,实质上是向量(对象)的变换(运动或说跃迁),M是坐标系。孟岩的文章中解释了更多,最后给联系到了运动是相对的,物质与能量的转化。
其实在数学上也有解释,Ma=b,不仅可以看作向量的线性组合,而且更一般的,其实是一种映射,从n维空间的每一个向量a映射到m维空间的向量b(假设M有m行n列)。
b其实是a(M作用下)的像。
更简单的,把上文的映射替换成函数(函数是特殊的映射),a, b不就类似于高中学的x,而M类似于f(x)吗?
再来看矩阵与矩阵相乘MN=P:
有了矩阵与向量的乘法,矩阵相乘就很好理解了。
1、大学教的元素法:
M的第i行与N的第j列相乘=P的第i行第j列元素 Pij
2、MIT的方法:
元素法:如1。
列方法:M乘以N的第j列=P的第j列。
行方法:与列方法相似。
是不是清楚多了。