不知道看了我前面几篇关于线性代数的博文的小伙伴们,有没有吸收内化掉这些知识。
最近我在学矩阵LU分解的时候,回头看前面的知识,又有了更深的理解,就在这篇文章里分享一点。
矩阵中行和列的差别
这个应该是矩阵中最关键的问题之一,我认为想通这个问题后你对矩阵的理解肯定会进一步加深。
行与列的差别告诉我们 矩阵 AB 不等于 BA,告诉我们矩阵乘法分为左乘和右乘等等等等。
我的理解,这来自矩阵如何定义的:(这仅是为了方便你理解矩阵行与列之间的差异)
x + 2 y + z x +2y+z x+2y+z
3 x + 8 y + z 3x+8y+z 3x+8y+z
4 y + z 4y+z 4y+z
这样的三个式子可以写成如下矩阵:
1 2 1 3 8 1 0 4 2 \begin{matrix} 1 & 2 & 1 \\ 3 & 8 & 1 \\ 0 & 4 & 2 \end{matrix} 130284112
当然还应该乘以一个 [x,y,z] 向量,这里为了方便理解暂且忽略。
从这两者的变换可以看到,行向量是一个式子x,y,z的系数组合,图像可以当成直线。
而列向量是三个式子的x的系数,并不协同构造一条直线,图像可以看成一个向量。
不知道你是否能get到以上文字的点,如果有一点点,就可以接着往下看了,不需深究。如果没有,那也请接着往下看,因为以上文字仅为方便理解而写,没什么实际意义,经不起推敲。
矩阵乘法本质上是矩阵行或列的线性组合
这点虽然在前面的博文提到过,但是我觉得还是可以展开讲讲。
左乘
左乘是拆分左侧矩阵成为一个个行向量,拆分出来的行向量用以描述结果矩阵是右侧矩阵的行的何种线性组合。
示例:
[ 1 0 0 − 3 1 0 0 0 1 ] [ 1 2 1 3 8 1 0 4 2 ] = [ 1 2 1 0 2 − 2 0 4 2 ] \left[ \begin{matrix} 1 & 0 & 0\\ -3 & 1 & 0\\ 0 & 0 & 1 \end{matrix} \right] \left[ \begin{matrix} 1 & 2 & 1 \\ 3 & 8 & 1 \\ 0 & 4 & 2 \end{matrix} \right] = \left[\begin{matrix} 1 & 2 & 1 \\ 0 & 2 & -2 \\ 0 & 4 & 2 \end{matrix} \right] 1−30010001 130284112 = 1002241−22
结果矩阵第一行可以看成:
[ 1 0 0 ] [ 1 2 1 3 8 1 0 4 2 ] = [ 1 2 1 ] \left[ \begin{matrix} 1 & 0 & 0\\ \end{matrix} \right] \left[ \begin{matrix} 1 & 2 & 1 \\ 3 & 8 & 1 \\ 0 & 4 & 2 \end{matrix} \right] = \left[\begin{matrix} 1 & 2 & 1 \\ \end{matrix} \right] [100] 130284112 =[121]
左侧拆分出来的行向量表示结果矩阵的第一行为右侧矩阵的一个第一行组成,零个第二行和第三行的线性组合。
第二行可以看成:
[ − 3 1 0 ] [ 1 2 1 3 8 1 0 4 2 ] = [ 1 2 1 ] \left[ \begin{matrix} -3 & 1 & 0\\ \end{matrix} \right] \left[ \begin{matrix} 1 & 2 & 1 \\ 3 & 8 & 1 \\ 0 & 4 & 2 \end{matrix} \right] = \left[\begin{matrix} 1 & 2 & 1 \\ \end{matrix} \right] [−310] 130284112 =[121]
左侧拆分出来的行向量表示结果矩阵的第二行为右侧矩阵的负三个第一行,一个第二行和零个第三行组成的线性组合。
相信大家看了前两行是什么样子,第三行如何计算也就自然而然了。
右乘
示例:
[ 1 2 1 3 8 1 0 4 2 ] [ 1 0 0 − 3 1 0 0 0 1 ] = \left[ \begin{matrix} 1 & 2 & 1 \\ 3 & 8 & 1 \\ 0 & 4 & 2 \end{matrix} \right] \left[\begin{matrix} 1 & 0 & 0\\ -3 & 1 & 0\\ 0 & 0 & 1 \end{matrix} \right] = 130284112 1−30010001 =
右乘是拆分右侧矩阵成为一个个列向量,拆分出来的列向量用以描述结果矩阵是左侧矩阵的列的何种线性组合。
结果向量第一列可以用如下方法得出:
[ 1 2 1 3 8 1 0 4 2 ] [ 1 − 3 0 ] \left[ \begin{matrix} 1 & 2 & 1 \\ 3 & 8 & 1 \\ 0 & 4 & 2 \end{matrix} \right] \left[\begin{matrix} 1 \\ -3 \\ 0 \end{matrix} \right] 130284112 1−30
即为左侧矩阵的一个第一列,负三个第二列,零个第三列的线性组合。
总结
相信看到这里如果你对线性代数的理解又加深了,那么也就达到了本篇文章的目的。
最后再写一个关于线性代数很有意思的例子,不知道你有没有想到。
[ 1 0 0 ] [ 1 3 0 ] = 1 \left[ \begin{matrix} 1 & 0 & 0\\ \end{matrix} \right] \left[ \begin{matrix} 1 \\ 3 \\ 0 \end{matrix} \right] = 1 [100] 130 =1
[ 1 − 3 0 ] [ 1 2 1 ] = [ 1 2 1 − 3 6 − 3 0 0 0 ] \left[ \begin{matrix} 1 \\ -3 \\ 0 \end{matrix} \right] \left[ \begin{matrix} 1 & 2 & 1 \\ \end{matrix} \right] = \left[\begin{matrix} 1 & 2 & 1 \\ -3 & 6 & -3 \\ 0 & 0 & 0 \end{matrix} \right] 1−30 [121]= 1−302601−30
行向量乘以列向量得到了点积,而列向量乘行向量得到了矩阵,我想这就能看出矩阵与普通的式子有何区别了。