忘了上大学时老师是否讲过对于矩阵乘法的求解。我现在能记得的也只有一种,就是下边我们要说的第一种。今天看到对矩阵乘法的五种求解,觉得挺有意思。

对于A\cdot B = C
其中A=\begin{bmatrix}1 &  2&0 \\ 1 & 1 & 2\end{bmatrix} B=\begin{bmatrix}1 &  1 \\ 0 & 1\\1 & 2\end{bmatrix}  C=\begin{bmatrix}1 &  3 \\ 3 & 6\end{bmatrix}

首先我们知道对于矩阵相乘,左边矩阵的列数需要和右边矩阵的行数相等,否则不能进行乘法。生成结果矩阵的行数等于左边矩阵的行数,列数为右边矩阵的列数。比如A为两行三列,而B为三行两列。C为两行两列。

1. 行列相乘

A的列数=B的行数=3
对于C的某一位置上的元素,比如第一行,第二列的元素,就是A的第一行,和B的第二列对应元素依次相乘再求和得到的。
C_{i,j}=\sum_{k=0}^{3}A_{i,k}B_{k,j}

这个相乘是我记的最熟的,但是我现在觉得下边几种理解更能体现线性代数的本质。

2.行向量变化

我们把B看成三个行向量(1,1)(0,1)(1,2)
先看A的第一行 1,2,0 它和B相乘就是对向量(1,1)乘以1 , 向量(0,1)乘以2 ,向量(1,2)乘以0,然后首尾相连,得到向量(1,3),也就是C的第一行。
对于A的第二行也是同理。它是对B的三个行向量另一种线性组合。

3.列向量变化

我们把A看成3个列向量(1,1)(2,1)(0,2) B的第一列1,0,1看成对于A的三个列向量的线性组合。得到C的第一列(1,3)
同理对于B的第二列。

4.分解乘积后求和

这个的意思是
A\cdot B = \begin{bmatrix}1\\ 1\end{bmatrix}\cdot \begin{bmatrix}1 & 1\end{bmatrix}+\begin{bmatrix}2\\ 1\end{bmatrix}\cdot \begin{bmatrix}0 & 1\end{bmatrix}+\begin{bmatrix}0\\ 2\end{bmatrix}\cdot \begin{bmatrix}1 & 2\end{bmatrix}
其实仔细想想,它的意思和方法一是类似的。

5.局部分解


就是说把一个矩阵A和B分成很多小块,A和B的相乘就变成他们分解成的小块之间的运算。这个可能对于分布式计算有用。

总结

我觉得对于矩阵运算最正宗的运算,包括理解还是2和3。都是对于向量的线性组合。

发表评论

电子邮件地址不会被公开。 必填项已用*标注

%d 博主赞过: