1. 为什么“刷习题”才是线性代数的真正入口
很多人第一次接触线性代数,都是从矩阵、行列式、向量空间这些名词开始的。课堂上老师讲得飞快,课本上的定义一条接一条,等到真正做题的时候,才发现自己连题目在问什么都没搞明白。这个现象太普遍了,我自己当年也是这样过来的。后来我慢慢意识到一个问题:线性代数这门课,光看是看不懂的,必须动手做。而“MIT 线性代数习题”这个关键词背后,其实指向的是一整套被无数学习者验证过的练习体系——它对应着一门经典公开课的配套习题资源,题目设计从基础计算到理论证明层层递进,覆盖了向量、矩阵、线性方程组、特征值、正交性、行列式等全部核心模块。
这套习题到底能做什么?简单说,它能帮你把“看懂”变成“会做”。每一道题都在逼你调用定义、推导关系、验证结论,而不是被动地接受信息。它适合谁?适合正在学线性代数的大学生、准备考研的理工科考生、想补数学基础的转行者,以及任何需要用到矩阵运算的从业者——比如做数据分析的、搞机器学习的、写图形程序的。你不需要天赋异禀,只需要愿意拿起笔,一道一道地啃。
我写这篇东西,不是要给你一份标准答案,而是想把我自己刷这套习题时踩过的坑、总结的方法、以及那些“原来如此”的瞬间,完整地分享出来。如果你正对着某道题发呆,或者刷了几十道题还是觉得脑子一团浆糊,那接下来的内容应该能帮到你。
2. 习题体系的全貌与刷题前的认知准备
2.1 这套习题到底包含什么
MIT 线性代数习题并不是一本装订好的纸质练习册,而是一套分散在课程各章节后面的问题集。它的结构跟课程进度严格对应,通常每一讲后面都配有一组题目,数量从几道到十几道不等。从内容上看,大致可以分成几个层次:
- 基础计算题:矩阵乘法、高斯消元、求逆、算行列式、求特征值。这类题目占比较大,目的是让你对运算流程形成肌肉记忆。
- 概念辨析题:判断某个命题的真假,或者从几个选项中选出正确的表述。这类题最容易被忽视,但恰恰是检验你是否真正理解定义的关键。
- 证明题:要求你从定义出发,推导某个性质或定理。比如证明矩阵可逆的等价条件、证明特征向量线性无关等。
- 应用题:把线性代数工具用到具体场景中,比如最小二乘拟合、图论中的邻接矩阵、微分方程组的矩阵形式。
这四类题目的难度是递增的,但并不是严格按顺序出现。有时候一道基础计算题里会埋一个概念陷阱,有时候一道证明题反而只需要套定义就能完成。我的建议是:不要跳着做,但也不要死磕。每道题给自己设定一个时间上限,比如十五分钟,超过就先标记,回头再看。
2.2 刷题之前必须想清楚的三个问题
很多人一上来就翻开习题开始做,做了几道发现寸步难行,然后就开始怀疑自己是不是不适合学数学。问题往往不出在智力上,而出在准备上。在动手之前,你需要先确认三件事:
第一,你的工具是否齐全。线性代数的习题离不开纸笔,但光有纸笔不够。你需要一份清晰的公式表,把矩阵运算规则、行列式性质、特征值定义、正交投影公式都列在一起。你还需要一个能帮你验证计算结果的工具——可以是一个简单的计算脚本,也可以是手算之后用另一种方法交叉验证。我个人的习惯是:手算一遍,然后用 Python 的 NumPy 库跑一遍,对比结果。如果不一样,就回头找哪一步出了问题。
第二,你的定义是否清晰。线性代数里很多错误都源于对定义的模糊理解。比如“线性无关”到底是什么意思?“秩”的几何意义是什么?“特征向量”为什么要求非零?这些问题如果答不上来,做题就是碰运气。我的做法是:每做一道题之前,先把涉及的定义在草稿纸上默写一遍。写不出来,就回去翻书,翻完再写,直到能准确复述为止。
第三,你的心态是否摆正。刷习题不是考试,做错了不丢人。相反,做错才是常态,做对才是意外。我见过太多人因为一道题卡了半小时就放弃整本习题,这太可惜了。你要把每一道错题当成一次诊断,它告诉你哪个知识点还有漏洞,哪个方法还没掌握。把错题记录下来,过几天再做一遍,直到能独立完成。
2.3 一个容易被忽略的准备工作:建立符号直觉
线性代数里充满了符号:A、x、b、λ、Σ、det、rank、null space……初学者很容易被这些符号吓住,觉得它们抽象得无法理解。但其实每一个符号背后都有具体的几何或代数含义。比如:
- 矩阵 A 可以看作一个线性变换,它把向量 x 映射成另一个向量 b。
- 行列式 det(A) 衡量的是这个变换对空间的“缩放倍数”。
- 特征值 λ 表示变换在某个方向上的伸缩比例。
- 秩 rank(A) 告诉你变换后的空间维度是多少。
如果你能在脑子里把这些符号和它们的几何意义对应起来,做题的时候就不会觉得是在摆弄一堆没有生命的数字。我自己的经验是:每遇到一个新符号,就画一张图。比如学特征值的时候,画一个向量被矩阵作用后方向不变、长度伸缩的示意图。画多了,符号就活了。
3. 核心题型的拆解与实操方法
3.1 线性方程组:从消元到解的结构
线性方程组是整门课的起点,也是习题里出现频率最高的题型。一道典型的题目会给你一个矩阵方程 Ax = b,要求你判断解的存在性、唯一性,或者求出通解。
操作流程是这样的:
- 写出增广矩阵 [A | b]。
- 用高斯消元法把 A 化成行阶梯形。
- 判断秩的关系:如果 rank(A) < rank([A|b]),无解;如果 rank(A) = rank([A|b]) = n(未知数个数),有唯一解;如果 rank(A) = rank([A|b]) < n,有无穷多解。
- 对于无穷多解的情况,找出主元列和自由变量,写出通解。
这个过程看起来机械,但里面有几个坑。第一个坑是消元过程中容易算错符号,尤其是遇到分数的时候。我的应对方法是:尽量用整数运算,遇到分数先通分,或者干脆用分数形式保留,最后再化简。第二个坑是自由变量的选取。自由变量不是随便选的,它对应的是非主元列。你得先确定哪些列是主元列,剩下的才是自由变量。
注意:在写通解的时候,一定要把特解和零空间解分开写。特解是 Ax = b 的一个具体解,零空间解是 Ax = 0 的通解。两者相加才是 Ax = b 的通解。
我当年做这类题的时候,经常忘记验证。后来养成了一个习惯:求出通解之后,随便代一个自由变量的值进去,算出一个具体的 x,然后代回原方程看是否满足。这个验证步骤花不了多少时间,但能帮你抓住大部分计算错误。
3.2 矩阵运算:乘法、逆、转置的联合运用
矩阵运算题看起来简单,但组合起来就容易出错。比如给你三个矩阵 A、B、C,让你求 (AB)^T C^{-1} 或者类似的表达式。这类题考察的是你对运算规则的熟练程度。
关键规则要记牢:
- (AB)^T = B^T A^T,顺序要反过来。
- (AB)^{-1} = B^{-1} A^{-1},同样要反过来。
- (A^T)^{-1} = (A^{-1})^T,这个顺序无所谓。
- 矩阵乘法不满足交换律,AB ≠ BA。
这些规则单独看都懂,但混在一起就容易搞混。我的方法是:把每个规则编成一个简单的口诀,比如“转置逆,反着来”。做题的时候,先一步一步写清楚每一步用了哪条规则,不要跳步。跳步是错误的主要来源。
还有一个常见的陷阱:题目会给你一个矩阵,让你判断它是否可逆。很多人第一反应是算行列式,但有时候行列式很难算。这时候可以观察矩阵的行或列是否线性相关。如果存在一行是另一行的倍数,或者某一列全为零,那矩阵肯定不可逆。这种观察法比硬算行列式快得多。
3.3 特征值与特征向量:从定义到对角化
特征值问题是线性代数里最核心也最容易让人困惑的部分。一道典型的题目会给你一个 3×3 矩阵,让你求所有特征值和对应的特征向量,然后判断能否对角化。
标准步骤:
- 写出特征方程 det(A - λI) = 0。
- 解这个多项式方程,得到所有特征值。
- 对每个特征值 λ,解方程组 (A - λI)x = 0,得到对应的特征向量。
- 检查每个特征值的代数重数和几何重数是否相等。如果相等,矩阵可对角化;否则不可对角化。
这里最大的难点是特征方程的求解。对于 2×2 矩阵,特征方程是一个二次方程,用求根公式就行。对于 3×3 矩阵,特征方程是一个三次方程,有时候需要试根。我的经验是:先试 λ = 0, 1, -1, 2, -2 这些简单的整数。如果矩阵的元素都是整数,特征值往往也是整数或者简单的分数。试出一个根之后,用多项式除法降次,再解剩下的二次方程。
提示:在求特征向量的时候,不要忘记特征向量必须是非零向量。有时候解出来的方程组只有一个自由变量,那特征向量就是这个自由变量对应的基向量。如果有两个自由变量,那特征空间就是二维的,需要找两个线性无关的特征向量。
对角化的问题,关键在于判断几何重数是否等于代数重数。代数重数是特征值在特征方程中作为根的重数,几何重数是特征空间的维度,也就是 n - rank(A - λI)。如果对某个特征值,几何重数小于代数重数,矩阵就不可对角化。这个判断在习题里经常出现,一定要练熟。
3.4 正交性与投影:几何直觉的试金石
正交性这部分,题目往往跟投影、最小二乘、Gram-Schmidt 正交化有关。这类题的特点是计算量大,但几何意义清晰。如果你能画出图来,就不容易出错。
投影的核心公式:
- 向量 b 在向量 a 上的投影是 proj_a b = (a^T b / a^T a) a。
- 向量 b 在子空间 W 上的投影是 proj_W b = A(A^T A)^{-1} A^T b,其中 A 的列向量是 W 的一组基。
这两个公式看起来复杂,但本质是一样的:先找到方向,再算比例,最后乘回去。我在做这类题的时候,会先把 a 和 b 画出来,目测一下投影的大致方向和长度,然后再算。算完之后对比一下,如果差得太远,就说明哪里出错了。
Gram-Schmidt 正交化是另一个高频考点。步骤是:取第一个向量作为第一个正交基,然后第二个向量减去它在第一个向量上的投影,得到第二个正交基,以此类推。最后把每个正交基单位化,就得到标准正交基。这个过程计算量很大,容易算错。我的建议是:每一步都写清楚,不要跳步,算完一个向量就验证一下它是否与前面的向量正交。
3.5 行列式:性质比计算更重要
行列式的计算题在习题里占比不小,但真正拉开差距的不是计算速度,而是对性质的理解。比如题目会问:如果交换矩阵的两行,行列式怎么变?如果某一行是另外两行的线性组合,行列式是多少?如果矩阵是上三角的,行列式怎么算?
核心性质:
- 交换两行,行列式变号。
- 某一行乘以常数 k,行列式乘以 k。
- 某一行加上另一行的倍数,行列式不变。
- 如果两行相同或成比例,行列式为 0。
- 上三角或下三角矩阵的行列式等于对角线元素之积。
这些性质看起来简单,但在综合题里经常组合出现。我的做法是:拿到一个行列式,先观察有没有明显的行关系,能不能通过行变换化成三角形。如果能,就用性质化简,最后算对角线乘积。如果不行,再考虑按行或按列展开。展开的时候,尽量选零多的行或列,这样计算量最小。
注意:行列式为 0 意味着矩阵不可逆,这是判断可逆性的重要依据。但反过来,行列式不为 0 只是可逆的必要条件,不是充分条件——对于方阵来说,行列式不为 0 确实等价于可逆。这一点在习题里经常被用来设置陷阱。
4. 刷题过程中最常见的六个坑与排查方法
4.1 计算错误:符号、分数、抄错行
这是最普遍的问题,没有之一。我统计过自己做错的题目,大概有六成以上都是计算错误,而不是概念不清。常见的计算错误包括:负号漏写、分数化简出错、矩阵某一行抄错、消元时加减法算错。
排查方法:
- 每一步都写清楚,不要跳步。跳步是计算错误的最大来源。
- 算完之后用另一种方法验证。比如解方程组的解代回原方程,矩阵乘法的结果用 NumPy 验证。
- 对于符号问题,可以在草稿纸上把负号圈出来,提醒自己注意。
- 对于分数问题,尽量保持分数形式,不要过早化成小数。
我自己的习惯是:每做完一道题,花三十秒快速检查一遍关键步骤。这个习惯帮我省下了大量回头找错误的时间。
4.2 概念混淆:秩、零空间、列空间分不清
秩、零空间、列空间、行空间这几个概念经常被混在一起。题目会问:矩阵的秩是多少?零空间的维度是多少?列空间的基是什么?如果你分不清这些概念,就很容易答非所问。
快速区分:
- 秩 rank(A) = 列空间的维度 = 行空间的维度 = 主元列的个数。
- 零空间 null(A) 是 Ax = 0 的所有解构成的集合,其维度是 n - rank(A)。
- 列空间 col(A) 是 A 的列向量的所有线性组合构成的集合,其基是主元列对应的原始列。
- 行空间 row(A) 是 A 的行向量的所有线性组合构成的集合,其基是行阶梯形中的非零行。
这些关系在习题里经常以判断题的形式出现。我的建议是:把秩-零化度定理(rank + nullity = n)背熟,遇到问题先想这个定理。
4.3 特征值计算:三次方程解不出来
3×3 矩阵的特征值计算是很多人的噩梦。特征方程是一个三次多项式,有时候没有有理根,只能用数值方法。但在习题里,出题人通常会设计成有整数根或简单分数根的形式。
应对策略:
- 先试简单的整数根:0, 1, -1, 2, -2, 3, -3。
- 如果试出一个根,用多项式除法降次,把三次方程变成二次方程。
- 如果试不出整数根,检查一下矩阵是不是有特殊结构,比如对称矩阵(特征值都是实数)、三角矩阵(特征值就是对角线元素)。
- 实在不行,用求根公式或者数值方法,但这种情况在习题里很少见。
提示:对称矩阵的特征值一定是实数,而且不同特征值对应的特征向量一定正交。这个性质在习题里经常用来简化计算。
4.4 证明题:不知道从哪下手
证明题是很多人最头疼的部分。题目往往只有一句话:“证明某某性质成立。”没有数字,没有矩阵,只有抽象的定义和符号。很多人看到这种题就懵了。
我的证明题方法论:
- 把题目中的每个词都翻译成定义。比如“A 可逆”翻译成“存在矩阵 B 使得 AB = BA = I”。
- 从定义出发,一步一步推导。不要试图一步到位,先写出已知条件,再写出要证明的结论,然后找中间的联系。
- 如果卡住了,试试反证法。假设结论不成立,看看会推出什么矛盾。
- 多用等价条件。比如“A 可逆”等价于“det(A) ≠ 0”等价于“Ax = 0 只有零解”等价于“A 的列向量线性无关”。这些等价条件在证明题里非常有用。
我自己的经验是:证明题做多了,就会形成一种直觉。看到某个条件,就知道该往哪个方向推。这种直觉不是天生的,是练出来的。
4.5 应用题:不知道如何建模
应用题的特点是文字多,背景复杂,需要你把实际问题转化成线性代数模型。比如最小二乘问题、网络流问题、马尔可夫链问题。很多人看到文字就晕,不知道从哪开始。
建模步骤:
- 找出问题中的变量和参数。变量是你要解的,参数是已知的。
- 找出变量之间的关系。这些关系通常可以写成线性方程或矩阵方程。
- 确定目标。是求精确解还是近似解?是求最优解还是可行解?
- 把关系写成矩阵形式,然后调用相应的线性代数工具。
比如最小二乘问题,目标是最小化 ||Ax - b||^2。解法是解正规方程 A^T A x = A^T b。这个公式在习题里经常出现,一定要记住。
4.6 时间管理:在一道题上卡太久
这是策略问题,不是知识问题。很多人做习题的时候,遇到一道难题就死磕,结果一个小时过去了,其他题都没做。这种刷题方式效率极低。
我的时间管理方法:
- 每道题设定一个时间上限,比如十五分钟。
- 超过时间上限就标记,先跳过,做后面的题。
- 等所有题都做完一遍之后,再回头处理标记的题。
- 如果回头还是做不出来,就看答案或者问人。看懂之后,自己再独立做一遍。
这个方法的核心逻辑是:不要让一道题阻塞整个学习流程。线性代数的知识点是相互关联的,后面的题可能会给你前面的题提供灵感。先做一遍,再回头,往往会有新的思路。
5. 从习题到实战:如何把刷题成果转化成真实能力
5.1 建立错题本:不是抄题,是写诊断
很多人有错题本,但用法不对。他们把错题抄一遍,答案抄一遍,然后就再也不看了。这种错题本没有任何价值。真正有用的错题本,应该记录的是:这道题我为什么错了?是概念不清、计算失误、还是方法不对?正确的思路是什么?下次遇到类似的题,我该怎么避免同样的错误?
我的错题本格式是这样的:
| 题目编号 | 错误类型 | 错误原因 | 正确思路 | 预防措施 |
|---|---|---|---|---|
| 3.2.5 | 计算错误 | 消元时漏了负号 | 每一步都写清楚,不跳步 | 算完后代回验证 |
| 4.1.2 | 概念混淆 | 把零空间和列空间搞混 | 秩-零化度定理 | 做题前默写定义 |
| 5.3.1 | 方法不对 | 硬算行列式,没想到用性质 | 先观察行关系,再化简 | 拿到题先观察三十秒 |
这个表格看起来简单,但坚持记录一个月,你就会发现自己的错误模式。比如你可能发现自己总是在符号上出错,或者总是在特征值计算上卡住。找到模式之后,就可以有针对性地练习。
5.2 从“会做”到“讲清楚”:费曼技巧的运用
检验你是否真正掌握一道题,最好的方法是把它讲给别人听。如果你能清晰地把解题思路讲出来,说明你真的懂了。如果你讲着讲着卡住了,说明那里还有漏洞。
我自己的做法是:每做完一道有代表性的题,就假装面前有一个同学,把这道题的解法讲一遍。讲的时候不看书,不查公式,完全凭记忆和理解。如果讲不下去,就回去翻书,翻完再讲。这个过程很花时间,但效果极好。
你也可以找一个学习伙伴,互相讲题。如果没有伙伴,就对着手机录音,然后回放。回放的时候,你会发现自己哪里讲得含糊,哪里逻辑跳跃。这些地方就是你需要加强的地方。
5.3 把习题和真实场景挂钩
线性代数的习题往往很抽象,但它的应用场景非常广泛。如果你能把习题和真实场景挂钩,学习动力会强很多。
比如:
- 矩阵乘法对应的是线性变换的复合。图像旋转、缩放、剪切都是矩阵乘法。
- 特征值对应的是变换的不变方向。在振动分析中,特征值对应固有频率。
- 最小二乘对应的是数据拟合。给你一堆散点,找一条直线使误差平方和最小。
- 马尔可夫矩阵对应的是状态转移。网页排名、人口流动都可以用马尔可夫链建模。
我在刷题的时候,会刻意去想:这道题如果放到真实场景里,会是什么样子?比如做投影题的时候,我会想:这就像把三维空间中的点投影到二维平面上,做降维。做特征值题的时候,我会想:这就像找系统的固有模式。这种联想让抽象的符号变得具体,也让刷题变得不那么枯燥。
5.4 定期回顾:三天、一周、一个月
刷题不是一锤子买卖,需要定期回顾。我的回顾周期是这样的:
- 三天后:把三天内做错的题重做一遍。如果还错,标记为“顽固错题”。
- 一周后:把一周内的所有错题重做一遍,包括三天内已经做对的。
- 一个月后:把一个月内的顽固错题重做一遍,同时随机抽几道做对的题,检验是否真的掌握了。
这个回顾周期看起来麻烦,但实际执行起来并不花太多时间。每天花十五分钟回顾,比一次性刷三个小时然后忘光要有效得多。
提示:回顾的时候,不要只看答案,要重新推导一遍。看答案会产生“我会了”的错觉,重新推导才能暴露真实水平。
6. 工具与资源:让刷题效率翻倍
6.1 手算与机算的配合
手算是基础,机算是验证。两者配合,效率最高。我的做法是:手算一遍,然后用 Python 的 NumPy 库验证。如果结果一致,就跳过;如果不一致,就回头找错误。
比如解线性方程组:
import numpy as np A = np.array([[2, 1, -1], [-3, -1, 2], [-2, 1, 2]]) b = np.array([8, -11, -3]) x = np.linalg.solve(A, b) print(x)这段代码几秒钟就能跑完,但手算可能需要几分钟。用机算验证手算,既快又准。
6.2 符号计算工具的使用
有些题目涉及符号运算,比如带参数的矩阵求逆、特征值。这时候 NumPy 就不够用了,需要用 SymPy 这样的符号计算库。
from sympy import Matrix, symbols a, b = symbols('a b') A = Matrix([[a, b], [b, a]]) print(A.eigenvals()) print(A.inv())SymPy 可以帮你处理符号运算,但不要依赖它。习题的目的是训练你的手算能力,符号计算工具只是辅助验证。
6.3 可视化工具:让抽象概念变直观
线性代数里很多概念是几何的,用可视化工具可以帮你建立直觉。比如用 Matplotlib 画向量、画投影、画特征向量。
import matplotlib.pyplot as plt import numpy as np v = np.array([2, 1]) w = np.array([1, 3]) plt.quiver(0, 0, v[0], v[1], angles='xy', scale_units='xy', scale=1, color='r') plt.quiver(0, 0, w[0], w[1], angles='xy', scale_units='xy', scale=1, color='b') plt.xlim(-1, 4) plt.ylim(-1, 4) plt.grid() plt.show()这段代码会画出两个向量。你可以直观地看到它们的方向和长度。做投影题的时候,把投影向量也画出来,一眼就能看出对不对。
6.4 习题答案的正确使用方式
很多人把答案当成救命稻草,做不出来就看答案。但答案的正确用法是:做完之后对答案,而不是做之前看答案。
我的建议是:
- 先自己做,不管花多长时间。
- 做完之后,对答案。如果对了,快速扫一眼答案的思路,看看有没有更简洁的方法。
- 如果错了,不要只看答案,要分析自己错在哪一步,为什么错。
- 看完答案之后,把答案合上,自己重新做一遍。如果能独立做出来,才算真正掌握。
注意:答案不是标准,只是参考。有时候答案的方法很笨,你的方法更简洁,那就坚持自己的方法。线性代数里很多题都有多种解法,找到最适合自己的那种。
7. 不同基础的学习者该怎么上手
7.1 零基础:先补概念,再刷题
如果你完全没有线性代数基础,直接刷题会很痛苦。我的建议是:先花一周时间把基本概念过一遍。不需要深入,只需要知道每个名词是什么意思,每个运算怎么算。
具体来说:
- 第一天:向量和矩阵的定义,矩阵加减法和乘法。
- 第二天:线性方程组和高斯消元。
- 第三天:逆矩阵和行列式。
- 第四天:向量空间和子空间。
- 第五天:特征值和特征向量。
- 第六天:正交性和投影。
- 第七天:综合复习,做几道简单题练手。
一周之后,你就可以开始刷习题了。刚开始的时候,从最简单的计算题做起,不要碰证明题。等计算熟练了,再慢慢过渡到概念题和证明题。
7.2 有基础但做题总出错:专项突破
如果你已经学过一遍,但做题总是出错,那问题可能出在某个特定环节上。这时候不要盲目刷题,要先诊断。
诊断方法是:找一套综合题,限时做一遍。做完之后,统计错误类型。如果计算错误占多数,就专门练计算;如果概念错误占多数,就回去补概念;如果证明题不会,就专门练证明。
专项突破的关键是:集中火力,一次只解决一个问题。比如你这周只练特征值计算,每天做十道特征值题,连做一周。一周之后,你会发现特征值计算变得像呼吸一样自然。
7.3 冲刺高分:挑战难题和综合题
如果你基础已经很扎实,做题正确率也很高,那就可以挑战更高难度的题目。MIT 线性代数习题里有一些综合题,涉及多个知识点的交叉。比如一道题可能同时用到特征值、正交性和最小二乘。
这类题的特点是:步骤多,计算量大,但每一步都不难。你需要的是耐心和细心。我的建议是:把每道综合题拆成若干个小步骤,一步一步来。每完成一步,就检查一下。不要试图一口气做完,那样容易出错。
另外,可以尝试一题多解。比如一道特征值题,你可以用特征方程解,也可以用对角化解,还可以用几何方法解。比较不同方法的优劣,能加深你对知识的理解。
8. 一些零散但重要的经验
8.1 草稿纸的用法
草稿纸不是随便乱写的。我的习惯是:把草稿纸分区,每道题一个区域,标上题号。这样检查的时候容易找到对应的计算过程。另外,重要的步骤用方框框起来,方便回头查看。
8.2 符号的书写规范
线性代数里符号很多,写清楚很重要。比如 λ 和 x 要区分开,A 和 a 要区分开,0 和 O 要区分开。我见过很多人因为符号写得潦草,导致自己看错,算错。
8.3 遇到瓶颈怎么办
刷题遇到瓶颈是正常的。这时候不要硬扛,可以换个科目学一学,或者出去走走。有时候放空一下,回来就有思路了。另外,跟别人讨论也是突破瓶颈的好方法。给别人讲一遍,往往能发现自己思维的盲区。
8.4 保持手感
线性代数是一门需要保持手感的学科。如果你停了两周不做题,再捡起来会觉得生疏。我的建议是:即使很忙,每天也做一道题。一道题花不了十分钟,但能保持你的思维活跃。
8.5 不要追求刷题数量
刷题的目的是掌握知识,不是比谁做的题多。我见过有人刷了五百道题,但遇到新题还是不会。问题在于他们只刷题,不总结。每做一道题,都要问自己:这道题考了什么?我学到了什么?下次遇到类似的题,我能独立做出来吗?
我自己的节奏是:每天做五到十道题,但每道题都认真总结。一个月下来,大概做两百道题,但这两百道题我都能讲清楚。这比刷一千道题但一知半解要强得多。
8.6 考试前的准备
如果你是为了考试而刷题,那考试前一周要调整策略。不要再做新题,而是把错题本翻一遍,把典型题重做一遍。考试前一天,早点休息,不要熬夜刷题。线性代数考试考的是熟练度和细心程度,休息好才能发挥出水平。
提示:考试的时候,先做会做的题,把难题留到最后。不要在一道题上卡太久,浪费时间。做完之后,如果有时间,一定要检查计算过程。
9. 从习题延伸到更远的地方
线性代数习题只是一个起点。当你把这套习题刷透之后,你会发现很多后续课程都建立在它之上。比如:
- 微分方程:线性微分方程组的解可以用矩阵指数表示,特征值决定了系统的稳定性。
- 数值分析:矩阵分解(LU、QR、SVD)是数值计算的核心工具。
- 机器学习:数据降维、回归、分类都离不开矩阵运算和特征值分解。
- 信号处理:傅里叶变换可以写成矩阵形式,滤波器的设计用到特征值。
- 量子力学:态向量、算符、测量都对应线性代数中的向量、矩阵和投影。
如果你能把线性代数习题里的每一个概念都理解透彻,后续的学习会轻松很多。反过来,如果习题里的漏洞没补上,后续课程就会越学越吃力。
我自己的体会是:线性代数是一门“越用越懂”的学科。第一次学的时候,很多概念是模糊的;做题的时候,慢慢清晰;等到在真实场景里用到的时候,才真正理解。所以,不要指望一遍就学透。多做题,多回顾,多应用,自然就懂了。
最后再分享一个小技巧:如果你觉得某道题特别难,试着把它简化。比如把 3×3 矩阵换成 2×2 矩阵,把一般情况换成特殊情况。简化之后,往往能看出问题的本质。然后再把结论推广回去,难题就不难了。这个技巧我在做证明题的时候经常用,效果很好。