线性代数的矩阵可以看做一个系统,一个 input 被矩阵进行转换,从而产生出一个 output,就好像函数,线性代数研究的就是矩阵系统,矩阵是线性代数中的一等公民,就好像函数是函数式编程中的一等公民,因此需要从更高层面看矩阵,而非关注矩阵中的具体某个数字。

既然是把矩阵当成一个系统来研究,那就需要从最简单的矩阵研究起,也就是 Identity 矩阵(简称 I ),这个矩阵的作用就是对 input 什么都不做,直接变成 output。 就好像函数中 Identity function ,f(x) = x

两个矩阵相乘 AB,从工程上的观点来讲,就是把 input 先输入到 B,出来的结果再输入到 A,从而得到最后的结果,就像函数式编程中的函数一样: gf

所以矩阵中存在 逆矩阵( inverse ),也就是 AB=I , 也就是 input 先进入 B,再进入 A,得到的结果还是 input。 在工程上,这个很有用,相当于输入被某个系统作用后,可以再被某个系统还原回来。工程上如果能通过研究一个系统 A,得到它的 逆系统 B,那就相当给力了,覆水不再难收,时光可以回流,比如可以用来做回滚,也就是如果发布了东西出现了问题,没关系,把这个结果再输入另外一个系统,就能还原。所以线性代数需要研究 invert 矩阵。

矩阵相乘满足结合律 A(BC)=(AB)C 。满足分配率 A(B+C)=AB+AC。但不满足交换律 ABC=CBA 。要知道交换律在工程上是很难的,如果某些操作满足交换律,就说明操作的顺序可以任意更改,没有因果关系,时序任意,随意并发。因此在工程上的操作能满足交换律是很难得的,但往往很难如工程师的愿,比如矩阵操作,就不满足交换律。

同时还可以进一步研究矩阵的一些线性相关性质。比如矩阵中的各个列( column ),是否是线性相关的,如果是线性相关的,说明矩阵中有些信息是冗余的,就好像在方程组中的,有些方程和另外一些方程的信息量是一样的。这样有存在列线性相关(dependent)的矩阵,称为 singular 。 相反,非线性相关(independent)的称为 nonsingular 矩阵。 我们会说 nonsingular 矩阵是『好矩阵』,因为矩阵中的每个列都是非线性相关的,没有冗余信息。

同时还有一些矩阵,比如 上三角矩阵(对角线下面的都是 0,0 组成了一个正三角,简称 U),下三角矩阵(对角线上面都是 0,0 组成了一个倒三角,简称 L)。

对于一个线性系统 AA 是矩阵), 对于一个输入 x, 输出 y, 那么就可以表达成 Ax=y 。 对于这样的一个系统 A, 我们可以研究它,通过高斯消去法,把 A 分解成 A=LU 的形式。相当于一个系统可以被分解成两个系统的连续作用, 这样就方便了工程上对系统的理解。类似于编程,把复杂的东西拆解成一个个模块,方便理解、推理和维护。