
简介丘维声《高等代数》配套学习笔记专门面向系统学习高等代数或线性代数的本科生、考研复习者。这份笔记对应B站丘维声教授151讲视频按章节梳理线性方程组的矩阵消元法、解的情况判别、数域、行列式定义与性质、克莱姆法则、线性空间等核心内容并在习题后附解题思路适合对照视频逐章消化。压缩包内为1个PDF文档约1.21MB章节从第一章到第三章依次展开其中不仅覆盖n元排列、逆序数与对换、n阶行列式展开还详细讨论了线性子空间、线性相关与无关、极大线性无关组、基与维数、矩阵的秩以及齐次与非齐次线性方程组的解集结构便于读者形成系统的线性代数知识框架。已有1173人学习下载既能作为课堂同步笔记也能用于考前快速回顾和查漏补缺。1. 高等代数不是背诵课一套主线串联解集、行列式与空间很多人在面对《高等代数》时最大的挫败感并不是来自计算量而是来自一种“知识都是散的”的错觉今天学矩阵消元明天学行列式后天突然开始讲线性空间每一章都自洽但章节之间好像谁也不认识谁。这份笔记最值得借鉴的恰恰是它从一开始就划出了一条主线研究对象是 n 元线性方程组工具是矩阵归宿是线性空间与线性映射。消元法、行列式、秩、基与维数本质上都是在回答同一个问题——解集长什么样、解的空间有多少自由度。只有把一个具体算法放进这条主线里去理解才不会被“按行展开”和“范德蒙行列式”淹没。这就是我推荐这份笔记的理由它不是帮你背题而是帮你把整个学科的结构看穿。2. 消元法的矩阵化初等行变换为什么能保持同解2.1 矩阵消元的底层动作三种行变化线性方程组的求解笔记从加减消元法开始讲起。为什么加减消元法能保证得到的方程组与原方程组同解常人只记得“行变换不改变解集”这个结论但笔记里给出了更本质的解释所谓加减消元本质上是在对矩阵的每一行做线性组合。把系数矩阵和朋友矩阵并排写成增广矩阵对行做三类操作把一行的倍数加到另一行、两行互换、一行乘以非零系数。这三个操作对应到人的理解上就是“信息的重写”而不是“信息的丢失”。因为每一行本身就是一个等式对等式两边同时做同样的线性组合不会改变等式系统成立的条件——原来满足所有方程的解仍然满足所有重写后的方程反过来因为每一步变换都可逆重写后的解也能反推回原方程。这个可逆性就是同解的底层保障。2.2 阶梯形矩阵把解的情况变成可见的几何当矩阵被化简为阶梯形矩阵后左下角全为零主元依次排列。这时候逻辑分支变得极其清晰如果出现“0 非零常数”这样的行那么方程组无解如果不出现那么一定有解。有解时再看非零行数 r 与未知量个数 n 的关系r n唯一解r n无穷多解。这个判断在今天看来并不复杂但它的价值在于把“解是否存在、解是否唯一”转化成了一个纯机械的观察步骤。笔记里特别区分了主变量和自由未知量主变量是主元所在的列自由未知量是可以任意取值的列。自由未知量的个数 n - r正好就是后面讲线性空间时“解空间的维数”的前身。这里埋了一个伏笔所谓无穷多解本质上不是“乱成一团”而是解集带有一个由 n - r 个自由方向张成的线性结构。2.3 数域让“解在哪”变得合法笔记讲完消元法后立刻转入数域的定义。这看起来像是在补集合论但实际上是一个关键铺垫当你解有理数系数的方程组时消元过程中做除法结果可能跑出有理数范围。比如两个有理数相除结果一定还是有理数所以有理数是一个数域但整数就不行因为整数相除可能不再是整数。数域的定义本质上是在回答一个问题我们在哪个范围里讨论解的存在性行列式判断、克莱姆法则、线性空间的定义全部依赖这个“范围”的封闭性。没有数域的概念很多定理会陷入歧义——比如“方程是否有解”到底是说有理数解还是实数解笔记在第一章末尾安插这个内容逻辑上是非常顺的。2.4 消元法的实际陷阱另一个让人翻车的点是有些人习惯在化简过程中“顺手”把某一行同时乘以系数并直接加到多行上。这样做虽然在算术上没错但它会让回代过程变得极其混乱而且容易破坏已有的主元位置。独立的行变换是保证可逆性的最小单元你把两个动作合并成一个虽然也能得到同样的结果但在排查错误时你就少了一个中间锚点。血泪经验是每一步只做一个变换并且做完后在旁边写下这一行是哪一行加上了哪一行的几倍这样一旦结果不对你可以反向追踪。# 用增广矩阵表示线性方程组消元后观察阶梯形 import numpy as np # 系数矩阵与常数列拼成增广矩阵 A np.array([[1, 1, 1], [2, 1, 1], [1, 2, 3]], dtypefloat) b np.array([6, 5, 14], dtypefloat) aug np.column_stack([A, b]) # 先做第一列消元第二行减2倍第一行第三行减1倍第一行 aug[1] aug[1] - 2 * aug[0] aug[2] aug[2] - 1 * aug[0] print(aug)这段代码展示了消元的第一步第二行减去第一行的两倍消掉第二行第一列的元素第三行减去第一行的一倍消掉第三行第一列的元素。不做联合操作每一步都是对单一行的一次线性组合。算完之后矩阵第一列除主元外都是0接下来再对第二列做同样的操作就能逐步变成阶梯形。这里的关键是每一步的操作都对应一个初等矩阵记录这些初等矩阵的乘积你甚至能反推出消元过程的完整足迹。3. 行列式的涌现从二阶特例到展开定理的计算本质3.1 二阶行列式为何是 a11a22 - a21a12笔记在第二章以二元一次方程组为引子分析了 a11a22 - a21a12 这个表达式的来历——它不是凭空定义的而是从消元过程中直接“涌现”出来的。考虑二元方程组a11x1 a12x2 b1a21x1 a22x2 b2用消元法求解时你会先把第一行乘以 a21第二行乘以 a11然后相减消去 x1得到的表达式中x2 的系数恰好就是 a11a22 - a21a12。这个式子一出现你就能明显看明白机存消元法天然地生成了未来所有行列式定理的雏形。所以说行列式是消元法的浓缩化而不是凭空多出来的新概念。这里有一个值得注意的细节——笔记特意解释了表达式 |A| ≠ 0 与唯一解的关系系数矩阵行列式非零二元的方程组就有唯一解等于0就意味着无限多解或无解。相似地在更高阶的方程组中行列式的符号与解的关系会被克莱姆法则总结成系统化的判据。行列式在这里不是为了给矩阵“打分”而是直接嵌在求解过程中理解这一点之后行列式的很多奇怪性质——比如两行互换变号、两行相同为0——就不再是记忆负担而是几何意义上的“面积/体积定向”直觉。3.2 行列式展开按行、按列与代数余子式的选择笔记中引入 n 阶行列式定义之后马上讲了按一行列展开定理。这个定理其实是用递归的眼光看行列式n 阶行列式的值等于它某一行每个元素乘以对应的代数余子式再做和。这个说法的计算意义是退化降阶——把一个 n 阶计算拆成 n 个n-1阶计算。这在手算时代是极其重要的解题技术因为阶梯降阶可以把一个看起来很吓唬的高阶行列式逐步分解成可控的片段。真正能够把笔记读厚的地方在哪里在展开定理的选择上。同一行列式你选择不同的行或列展开计算量差异很大。经验法则是先做列变换或行变换把某行列尽量多的元素化简为0再针对这一行展开。笔记里大量习题都是这个思路——先利用性质7把一行的倍数加到另一行做预处理再展开。这解释了为什么“行列式性质7”在习题里出场最多它不是靠计算便宜取胜而是靠把目标行变得稀疏让展开项数从 n 项缩减到只有少数几项。3.3 范德蒙行列式笔记里的“模板式”结论范德蒙行列式是笔记中反复出现的一个识别模式。它的值形如 ∏(xj - xi)是一个连乘结果只要存在两列相等行列式就为0。这个结论最常出现在证明线性无关、推导插值多项式的存在性以及行列式计算填空题里。笔记里多处习题应用了范德蒙的化简比如“第k1行减去第k行”的递推处理本质就是把任意行列式往范德蒙形式靠近然后套用现成的连乘结构。在机制层面范德蒙行列式值得记住的并不是公式本身而是它揭示了行列式对“元素差”的敏感性。行列式这个映射把矩阵映射成一个标量而范德蒙告诉你说如果某几列之间有线性关系——比如两列完全相同甚至按比例——那么行列式会立即归零这意味着原矩阵在几何意义上发生了降维坍缩。# 验证一个 3 阶范德蒙行列式 import numpy as np x np.array([1, 2, 3], dtypefloat) V np.vstack([x**0, x**1, x**2]).T print(矩阵) print(V) print(行列式值, np.linalg.det(V)) # 手算: (2-1)*(3-1)*(3-2)1*2*12上面这个计算展示了范德蒙结构的判定方法向量x的各次幂作为列向量排布行列式值就等于所有 xj - xi 的连乘。当你拿到一个行列式发现它是这种结构时可以直接写答案如果不是标准结构也可以尝试用列变换或行变换把它化为这个模式——这是竞赛解题和高代考试中最常见的套路。后面线性相关的证明中范德蒙行列式还会再次出现这是一个跨章节的“复用结论”。3.4 克莱姆法则听起来好用但计算代价不低克莱姆法则理论上很优雅系数矩阵行列式非零时每个未知量的值等于把对应列替换为常数列后的行列式除以原行列式。这个法则的价值在于形式化的可见性它把解的存在性和矩阵的可逆性直接挂钩。但如果你真去用它求一个 5 元方程组的数值解那计算量是灾难级的——与高斯消元法相比完全不是一个数量级。这在笔记里是一个隐含的取舍克莱姆法则适合理论证明不适合实际大规模计算。你可以用它来写解的显式公式但真要算数值还是回消元法。明白这点再看笔记里的习题你的视角就从“哦这个法则能算题”切换成“这个法则让我理解了为什么行列式非零等价于唯一解”的深层关联。4. 线性空间解集结构如何变成维数与秩4.1 齐次方程组的解集是子空间第三章是整份笔记的转折从具体的系数矩阵运算过渡到对解集本身的结构研究。笔记先讲齐次线性方程组如果两个向量都是方程组 A x 0 的解那么它们的任意线性组合也是解。这既不是运气也不是巧合而是因为矩阵乘法是线性的——A(uv) Au AvA(cu) c(Au)。因此齐次解集 W 自动对加法和数乘封闭它天然就是一个线性子空间。这一认知的跃迁价值非常大解集不再只是“一堆散点”而是一个有结构的空间。你可以问它的维数是多少它的基是什么。笔记给出的定理是解空间 W 的维数等于 n - rn 是未知量个数r 是系数矩阵的秩而这个维数正好就是前面消元法里的自由未知量个数。用自由未知量作为参数写出通解每一组自由变量赋值对应一个解向量这些解向量就是基础解系。4.2 非齐次方程组的解集是“仿射子空间”非齐次方程组 A x b 的解集就不一样了两个解之差是导出组 A x 0 的解因此非齐次的全部解可以写成“一个特解 导出组的任意解”。笔记里清晰地总结了这一结构解集 ξ W其中 ξ 是某个特解W 是导出组解空间。这意味着通过一个向量平移把线性子空间搬离原点得到的仿射结构。在线性空间的语境里看这个定理是在告诉你了线性方程组解的“几何构成”任意非齐次解都同构于导出组的解空间维数相同只是位置发生了偏移。为什么需要这样理解因为很多人在做线性代数题目时只机械记忆“非齐次通解 特解 齐次通解”但没有意识到这句话的本质是仿射空间与线性空间的关系——一旦理解这一点后面学解微分方程、差分方程、特征向量时都能复用同一套心智模型。4.3 线性相关、极大线性无关组与秩笔记从“共线”这个二维直觉出发逐步引导到一般向量组的线性相关定义。线性相关的本质是存在一组不全为零的系数把它们加权相加得到零向量。对应的矩阵视角是齐次方程组有非零解在列向量构成方阵的情形下等价于行列式为0。这些都是同一件事的不同投影。极大线性无关组的定义则进一步抽象向量组里选出一个线性无关的部分组任意加入一个原有向量就变得线性相关。这个“部分组”所含向量的个数就是向量组的秩。于是秩有三个面孔矩阵行向量组的秩、列向量组的秩、非零子式的最高阶数。笔记里梳理了这三者的等价关系——这个等价性不是显然的阶梯形矩阵在其中起到了桥梁作用矩阵经过初等行变换变成阶梯形后非零行数就是行秩主元所在的列构成列向量组的极大线性无关组因此行秩等于列秩都等于非零行数。4.4 维数公式与子空间运算笔记中关于子空间的和与直和也给出了维数公式dim(U W) dim(U) dim(W) - dim(U ∩ W)。乍一看这是一个计数公式但其实它是线性空间里“信息自由度”的守恒律。交集的维度越大两个子空间重叠的部分越多和空间的维度就越被“重复计算”抵消得越厉害。直和则是一种极端情况交集为零空间此时维度直接相加。这里我一般会建议读者把维数公式和线性方程组解的结构对照着看齐次解空间的维数是 n-r非齐次特解加齐次通解的结构本质上就是子空间与其补空间直和的投影。把这些点串起来你会发现在高等代数里所有的“计数”背后都藏着一个线性自由度守恒的原理。5. 避坑指南笔记没直接说破的常见翻车点5.1 阶梯形矩阵判断非零行数算错现象化完阶梯形之后把全零行也当成一个非零行去数导致认为 r n错误判断有唯一解。原因很多人在化简到最后一步时容留了某一行非零但只是常数项的情况或者把“整行全零”和“只有常数非零”混为一谈。解决阶梯形里每一行都检查一下主元是否存在。所谓非零行是指该行至少有一个元素非零如果出现“0 0 ... 0 | c”c≠0那已经不是正常阶梯形了而是无解的标记。5.2 行列式展开时代数余子式的符号现象按行列展开时计算出的符号和标注不对最后结果差一个正负号。原因代数余子式是 (-1)^(ij) 乘以余子式很多人做稀疏行展开时忘记对展开位置做符号处理或者定位行号和列号时使用了从 0 开始的计数习惯。解决建一个符号表从 1 开始数行和列奇数位置为负偶数位置为正展开每一项前先写符号再写系数不要心算。5.3 用克莱姆法则做实际数值求解现象拿克莱姆法则算 4 元以上方程组手算到怀疑人生出错率暴涨。原因克莱姆法则需要计算 n1 个 n 阶行列式计算量是 O(n!) 级别这一成本上天。解决把它当理论工具用真正算数走消元法只有在抽象证明题里利用它写解的显式表达式时才动它。5.4 范德蒙行列式的“套用失败”现象看到一个行列式貌似每一行是某个数的幂套范德蒙公式发现结果不对。原因范德蒙行列式的结构要求是“同底数的递增幂次按行或列排布”如果幂次顺序错乱、缺项、或者相邻列不是严格递增的幂关系公式就不能直接套用。解决先观察列与列之间是否是 x^0, x^1, x^2, ... 的标准递进如果不是尝试用行变换/列变换把幂次顺序排好再套公式。5.5 把等价向量组误认为相等向量组现象习题里告诉你两个向量组等价你直接认为它们有相同的基向量导致后续推导全错。原因向量组等价是指可以互相线性表出它说明两个向量组张成同一个空间但它们的元素可以完全不同。解决把等价理解为“生成空间的同一性”不要把向量的字面内容等同。秩相等是等价的必要条件但不是充分条件。6. 秩是不动点贯穿三章的设计主线与后续学习接口回顾这三章你可以清晰地感知到一个设计主轴线性方程组的求解引出行变换消元过程中的关键指标——主元个数——被抽象为行秩行列式工具给出的判据最终也归结为“秩是否满”线性空间理论里子空间的维数公式和基础解系的个数同样由秩来决定。某种意义上秩是这三章之间一小块不动点它是消元下不变的量是行列式非零子式的最高阶数是解空间自由度的计数。我一般会这么理解这条主线矩阵是编码秩是信息量行列式是可逆性的指示器而解集则是这套编码的输出空间。高代的前半段全部在围绕“秩”这个不变量的不同投影做文章。这也是为什么很多学完高代的人回过头来会发现第三章才是最深刻的一章——因为线性空间的语言才真正把计算性的处理提升到了结构性洞察的层面。笔记里对子空间的同构、直和、补空间的描述就是在为后续线性变换、特征值和若尔当标准形搭建思维框架。从那以后我每次学完一章都会强制自己画一次“同一对象的三张面孔”对照图——这个对象可以是秩、解集、或者某一类变换——我要确认从矩阵视角、行列式视角和空间视角看到的结论完全一致才允许自己进入下一章。这份笔记恰好提供了这种对照所需的全部素材。希望帮到你。本文还有配套的精品资源点击获取