线性就是"可以拆开来算"的承诺
到这儿我们看了矩阵、行列式、特征值,可其实有一个性质在底下撑着这一切运转。线性。名字唬人,意思就一个:"拆开来分别处理,再加回去,跟一口气处理是一样的。"它就是这么个承诺——能把复杂的东西拆成简单的零件来解。第2讲说过,任何向量都是 î 和 ĵ 的组合;第5讲说过,矩阵只要追 î 和 ĵ 就行。这能成立,正是靠这个线性。这一讲,就是连起那两讲的桥。
一个变换"是线性的",意思就是它守两条规则。第一,先加再变换,和先变换再加,结果一样。第二,先放大再变换,和先变换再放大,结果一样。就在这儿亲手验一验。拖动向量 a、b,看两条路径是不是总落在同一个点上。只要守住这两条规则,这个变换就是线性的。看着没什么了不起,对吧?可正是这个"没什么了不起"的承诺,让一切成为可能。
把第一条规则细看。一条路:先把 a 和 b 加起来(a+b),再变换。另一条路:把 a 和 b 分别变换,再把结果加起来。两条路落到的地方,分毫不差地一样。先加还是先变换,根本无所谓。把 a、b 挪来挪去看看。两条路总在同一个点上会合。所以你不必把合起来的东西当成一整块来处理,分开处理各个零件就行。
第二条规则。把向量 v 放大3倍再变换,和把 v 变换了再放大3倍。还是一样。输入翻倍,输出就正好翻倍;翻三倍就翻三倍。干干净净地成比例,没有多余。用滑块改一改倍数。放大放在前还是放在后,结果都一样。你给输入加了多少,原样映到输出上——这就是线性最核心的那种感觉。
把这两条规则合起来,会冒出一个了不得的东西。任何向量,都能像第2讲那样拆成一份 î 和一份 ĵ。靠着线性,变换会分别作用在每一份上,你只要把结果加回去就行。也就是说,变换(任何向量) = (它的 î 的量)·变换(î) + (它的 ĵ 的量)·变换(ĵ)。只要知道变换把 î 和 ĵ 送到哪儿,剩下无穷多个向量,全都自己跟上来。拖动一个向量,看它拆成 î 和 ĵ 两份、被变换、再合起来。第5讲那个矩阵只要两列、只要 î 和 ĵ 的去向就够了,原因正是这个——线性把剩下的都包了。
这条规则在工程里有个有名的名字:叠加原理。如果输入 A 产生输出 A,输入 B 产生输出 B,那么输入 A+B 就正好产生输出 A+B。合起来,不会冒出意外。所以你把一个乱糟糟的输入拆成简单的零件,各自解出来,再把答案加起来,就完事了。把声音拆成纯音(下一讲傅里叶里会讲)、把电路里的多个电源分开算再相加,全是这个叠加。反过来,不是线性的就做不到这一点。看看平方:(a+b)² 并不等于 a²+b²。一合起来,就蹦出个意想不到的东西。所以我们能干净利落解出来的问题,几乎都是线性的。