理解线性代数的好课本

最近被一篇文章线性代数(同济版)耻辱柱 (以下简称吐槽文)火了。这篇文章一出,即引起很多讨论。一时间有觉得自己本来可以走上数学家之光辉大道感叹被耽搁一生的,也有奋起反击认为同济版本考研非常有效的,还有照旧的“你来你上”型评论。真是好久没见到一本线性代数就会引起这么大的讨论了。

今天我本人也就蹭个热点,和大家聊聊这本同济版本的线性代数。我自己在大学期间并没有直接用这本作为课本。当年学校教线性代数好像没有教材,就是老师直接每节课板书。自己当时买了同济版的线代做为辅助课本。当时的印象是感觉老师也是基本上遵循同济版的顺序一个个概念教过来。到了毕业以后用线代用的基本很少。直到几年前转行了以后,要重新补补基础,才又拿起线代。美帝这边线代有名的是MIT Gilber Strang的课本(如下图)。这看起来以后就发现这本书让我以前不懂的地方豁然开朗。所以今天就想和大家说说,为什么这个书入门更佳。

Strang Linear Algebra

线代的教学顺序到底应该是怎样

这个是吐槽文的第一个重点。这个我完全赞成。同济版从行列式出发,第二章才讲矩阵,第三第四章讲向量和向量空间,然后接上线性空间和线性变换,最后是特征值和二次型。说实话,要是手边没有一个同济版的书,我是一定想不起来这个结构的。Strang的书就好多了,从解方程出发,到向量空间,线性变化,正交,行列式,然后特征值,最后来个矩阵的数值计算和线性规划来让大家开开眼线性代数到底有什么用。这个顺序个人觉得更佳,更适合我这样的工科背景的和学习线代希望马上能用的学生。线性代数最早的起源从解方程组出发,所以从这里开始引入线代的一些概念更加自然。当然,同济版先从行列式开始也不是完全没有道理。历史上行列式对多元方程组的解起到很大的作用,这个作用现在已经完全没落了,特别是各种高效的计算机上的矩阵分解算法让解方程完全不需要使用行列式。但是,同济版如果增加些“我们为什么一开始要行列式呢?行列式曾经在解线性方程中间有什么用呢?”,这样把线性方程和行列式联系起来。这样说不定学生进一步学习的兴趣更浓。

线性代数的主要应用是什么?

这点我觉得是同济版做的最不好的一点。这点其实在吐槽文里面并没有着重展开,却是我觉得区分同济版和Strang版的一个重要的方面。对于大部分工科学生来说,线性代数其实将来会非常有用。首先,很多非线性的关系最后都通过各种方法来线性近似。举个例子,在分析里面的Taylor展开可以在一个定域解决很多比较困难的非线性问题。这样一个非线性的问题就转化成了一个线性的问题去解决。这几年来一直爆火的神经网络,本质上也是一个大规模的线性近似一个非线性关系。而线性代数,其实就是一个很方便的处理很多线性方程的一个非常好用的工具。从这点上来说,它基本上成了所有现在应用数学领域的基础。

同济版的线性代数不是没有应用的部分,这点吐槽文也说了。不过很多应用的部分讲的不透,而且非常简略。以至于读者完全不知道学习的方法有什么用,还以为这些应用的例子是特例。相比而言,Strang的书基本上从头到尾都是用例子回答“这些有什么用”此类的灵魂拷问。比如:LU分解(说起来LU分解我压根在同济版里面就没有找到)本质就是高斯消元解方程;矩阵的列空间,核空间和基尔霍夫电流定律的关系;正交关系里面的正交和几何中的投影的关系。AX=b这样的线性方程组在几何中的表示,以及QR分解在函数空间的推广就是勒让德多项式;特征值和特征矩阵和解微分方程的关系,以及利用特征值和特征矩阵可以快速得到矩阵的幂值,快速得到矩阵的幂值在马尔科夫过程中的用途;最后部分讲了正定矩阵在极值问题里面的广泛应用。

从一个工科生的角度来说,如此紧密的把数学工具和它的的应用结合让我的学习更有动力。我不否认纯粹数学体系的美,但是对于我而言学习线性代数主要为了用它。比如我在之前完全不明白为什么要特征值和特征向量。Strang一上来就提出了一个微分方程,在解的过程中自然引出了特征方程:

\[\frac{dY}{dt} = AY \\ 如果\ Y_{i} = m_{i}\exp{\lambda t} \\ 那么: \\ \frac{dY}{dt} = \lambda M\exp{\lambda t} = \lambda Y \\ 而此时最初微分方程就变为: \\ \lambda Y = AY\]

而上式就是本征值方程。

其次让人惊艳的是相似变换。想当年学习这个概念的时候完全不知道这个概念有什么用。Strang用了一个线性变化的例子,展示了这个线性变换在两套不同坐标系下的表示。直观的表现出来相似变化其实就是同一个线性变换在不同坐标系下的表示。所以特征矩阵就是一个坐标系换到另外一个坐标系的线性变换。而特征值组成的对角阵就是在这个新坐标系下的线性变换的等价表示。当然,这里的描述还是一个非常简单的概括,而且Strang的描述比本人的高超多了。所以要详细理解这个,还是建议去看Strang的书。在这里引用这个例子主要是为了说明结合有无应用对于理解线性代数的概念有很大的差别。

让我最感差别的就算是二次型部分了。在同济版本中,二次型这章节完全就是定理的堆砌,唯一的和几何的关系部分也就是二次型如何代表了各种圆锥曲线。看了Strang的这部分,才让人真正理解到二次型原来就是在优化过程中经常见到的Hessian矩阵。而Hessian矩阵,又其实是多元函数在某个点的Taylor展开中的二次项前面的系数。如此这般打通,为什么大家要这么执着直到正定,半正定和负定二次型呢?因为正定Hessian矩阵一定保证函数在此取得极小点。同济版的基本上有Strang书上的所有知识点,但是都是止于正定负定判断。看了让人觉得似乎二次型,正定矩阵这样类似的概念就是从石头缝里蹦出来的一样。

线性代数教学要推广到什么程度

前面说的两点其实大家一般共识度比较高。这第三点到底要在线性代数中间拓展更深的知识到什么程度,那就见仁见智了。同济版本基本完全没有拓展,就是知识点的全覆盖。有人在吐槽文的评论里面说这主要是因为该书是为了全方位快速覆盖考研知识点。这样没有拓展可以理解。Strang里面其实有很多很有意思的拓展,让人觉得线性代数很有意思。比如在线性空间和正交基之后涉及到了一点Hilbert空间,因为Hilbert空间的定义主要依赖于内积。然后据此从实数,复数组成的线性空间推广到由函数组成的函数空间:矩阵中的内容不再是数字而是函数。矩阵中得到正交基的QR分解推广到求正交函数。感觉Strang完全没有“哦,这些超纲了”的感觉所以就刻意避开这些概念。当然,这些概念也被他在一个合适的地方拓展了开来。个人的感觉这样类似的拓展其实是很有意思的,而且说实话我也很有兴趣去进一步了解这些领域。所谓好书经常引人深思估计不过如此把。

所以说到最后到底应该用什么?

我强烈建议如果你是初学线性代数,或者是想重新温习一下,都从Strang的这本书开始比较好。如果你还需要考研,那么可以在看完Strang之后快速看一下同济版以免遗漏任何考研要点。

Written on September 22, 2020