如何学好线性代数?
(给机器学习算法与Python实战加星标,提升AI技能)
本文转自周志成老师博客 www.ccjou.wordpress.com. ✪ 如果公式较长, 左右滑动可查看全部
线性代数是美国数学教授哈尔莫斯(Paul R. Halmos)的专长,他在 26 岁时出版了一本经典教材《有限维向量空间》( Finite-Dimensional Vector Spaces )。哈尔莫斯在回忆录《我要做数学家》( I Want to Be a Mathematician )谈到他第一次学习线性代数的悲惨遭遇[1]:
代数课很难,我读得很搓火。…当我说搓火,我是真的生气。Brahana… 不知道如何说清楚,我们的教材是 Bôcher 的书(我认为写得一团糟),我花在这个科目的多数时间里,我的情绪恼火到愤怒。…不知怎么的,我的线性代数导论最后幸存下来。过了四、五年,在我取得博士学位,听了诺伊曼(von Neumann) 讲的算子理论后,我才真正开始明白这个科目到底在讲什么。
为什么线性代数这么难?从哈尔莫斯说的这段话可以归结两个原因:第一是老师很烂,第二是课本很糟。如果学习一门科目的两个重要(必要?) 条件不是烂就是糟,我们还能冀望学好它吗?不过话说回来,即使哈尔莫斯的线性代数启蒙老师是数学大师诺伊曼,哈尔莫斯未必当下就能真正明白线性代数在讲什么。我说的真正明白不是指考试拿高分,而是有一天你在洗澡时豁然开悟,奔出浴室光着身子在马路上边跑边叫:「啊哈!我明白了!」老实讲,我不认为有那个老师或那本教科书可以让学生「第一次学线代就上手」。真正全面性的理解线性代数需要时间,需要勤奋练习与坚持思考。
客观上,线性代数之所以不容易学好的主要原因在于这个科目是由许多「人造的概念」架构而成的理论,而且它们经常以公设化的形式出现:定义 ─ 定理 ─ 证明(其实近代数学基本上都是这样)。美国作家梭罗(Henry David Thoreau)说[2]:「任何傻瓜订个规则,就有笨蛋在意它。」数学家制定这些定义与公设的背后当然有其动机与目的(数学家们又不是傻瓜),但在老师与课本都只字不提的情况下,基于什么信念我们要接受这套几乎与日常生活经验无关的理论?(我们也不是笨蛋,对吧?)
人们不可能理解毫无动机的定义与缺少目的的定理。俄国数学家阿诺尔德(Vladimir Arnold)在〈论数学教育〉说[3]:
理解乘法交换律的唯一可能的方式,打个比方就是分别按行序和列序来数一个阵列里士兵的人数,或者说用两种方式来计算长方形的面积 。任何试图只做不与物理和现实世界打交道的数学都属于宗派主义和孤立主义,这必将损毁在所有敏感的人们眼中把数学创造视为一项有用的人类活动的美好印象。
遗憾的是,理解线性代数的核心观念与内容没有什么唯一可能的方式,把物理和现实世界拉进来常常也起不了多少作用。许多学生暗地隐藏心中的困惑与怀疑,继续伪装成线性代数爱好者的一个现实原因是他们听别人说:「线性代数是一门应用广泛的重要基础课目」,于是怀抱着一丝盼望,期待有朝一日经过苦痛学来的线性代数终会发光发热(见“ 学线性代数有什么用?”)。这些学生至少还留下一点火种,另外一批学生或早或晚将放弃线性代数,从此对任何与矩阵运算有关的学科敬而远之。美国计算机科学教授鲍许(Randy Pausch)在〈最后一课〉(The Last Lecture)说[4]:「人生路上有阻挡你梦想的砖墙,那是有原因的。这些砖墙让我们来证明我们究竟有多么想要得到我们所想要的。」线性代数是一道砖墙,接下来我要讲的话是给那些想翻越这道砖墙的人听的。
英国数学家哈代(GH Hardy)说[5]:「数学家的模式,如画家或诗人的模式一定是美丽的;数学家的想法,如色彩或文字必须以和谐的方式结合在一起。美是首要的试金石:丑陋的数学不可能永存。」线性代数是一个优美凝链的数学分支。线性代数像是巴赫(JS Bach)的〈无伴奏大提琴组曲〉,巴赫在这里构建了一种循序渐进和连贯统一的风格,每首组曲在结构上都按照严格的曲式谱成。而在音乐发展的过程中,每个乐章之间的内在联系更是交响曲的先声[6]。线性代数的结构是向量空间,曲式是线性变换。线性代数的乐章有矩阵代数、正交、行列式、特征值与特征向量,以及二次型等。研习线性代数与演奏〈无伴奏大提琴组曲〉同样都需要有效的学习方法。
回到标题,如何学好线性代数?哈尔莫斯从不知道线性代数到底在讲什么,短短几年变身为一代宗师,他是怎么办到的?哈尔莫斯公开了他的数学学习秘笈[7]:
「别只是读;跟它对抗!问你自己的问题,找你自己的例子,发现你自己的证明。这个假设是必要的吗?反向命题成立吗?经典的特例有哪些情况?退化时会怎么样?证明在何处使用了假设?」
在〈无伴奏大提琴组曲〉中,有些乐章(如 Sarabande)的音乐性格和内容与其他乐章明显不同。在线性代数中,两个数学物件常具有某种相异的性质却又有一些相同的性质。譬如,在一般情况下,两个同阶方阵 和 不满足乘法交换律,,但是 。读了课本的证明,你可能依然困惑。哈尔莫斯鼓励我们提出「蠢问题」。譬如, 的几何意义是什么? 与 是否拥有其他的基本不变量使得行列式不改变?继续推广,三个同阶方阵 , , 的乘积 , , , , , 除了行列式不变,是否还有其他相同的性质?一般来说,无论老师或课本都不会主动地回答我们的「蠢问题」。教师常以「世界上没有愚蠢的问题,只有愚蠢的答案」呼吁学生发问,但绝少学生愿意公开提出他们心中的「蠢问题」。吊诡的是,回答「蠢问题」偏偏是研习线性代数的一个极为有效的途径。底下列举一些困扰我们却又羞于启齿的「蠢问题」供读者思考,但我未将「蠢答案」贴上免得破坏众人的学习乐趣。运气好的话,你在这个网站上乱逛说不准可以找到「蠢答案」,当然「蠢答案」不会是大家都认同的标准答案。
"蠢问题"
Q1. 二阶行列式定义为 ,为什么不定义为 或 ?
Q2. 一个 阶矩阵 的行列式是平面上两个向量 与 或 与 所张平行四边形的(有号)面积。三维空间的两个向量 与 也张开一平行四边形,我们何不定义 阶矩阵 的「行列式」为该平行四边形的面积?
Q3. 怎么解释 ,但 ?
Q4. 为什么两个向量 与 没有乘法运算却有外积(cross product)?譬如,为什么不定义向量乘法 ?
Q5. 如何理解一个矩阵的最大线性独立的行向量数(行秩,column rank) 等于最大线性独立的列向量数(列秩,row rank)?
Q6. 为什么 阶矩阵形成的集合可称为向量空间?既然平面上向量是一个具有方向与长度的数学物件,如何理解矩阵 的方向与长度?我们需要引入什么必要的运算?
Q7. 行列式可乘公式 ,即两个同阶方阵乘积的行列式为等于这两个方阵的行列式的乘积,这个事实的几何意义是什么?
Q8. 矩阵乘法不具有交换律,为什么不定义一种矩阵乘法使得同阶方阵的乘积具有交换律?
Q9. 「线性」是什么意思?为什么向量空间也称为线性空间?对于向量 ,与纯量 ,线性变换 满足 与 ,何以具备这两个性质就称为线性变换?
Q10. 为什么线性变换的定义域与到达域都限定为向量空间(或子空间) 而非任意的向量集合?
Q11.向量空间的一个子空间为什么一定要包含零向量?为什么 的解集合称为子空间,但 ,,的解集合却不称为子空间?
Q12. 一个线性变换可以用不同的矩阵来表示,那么不同的线性变换可以用相同的矩阵来表示吗?
Q13.为什么线性代数课本都没有讨论如何解矩阵方程,譬如,满足 以及 的 阶矩阵 与 要怎么解?
推荐阅读
(点击标题可跳转阅读)
老铁,三连支持一下,好吗?↓↓↓