[内容增强] 关于线性代数基本概念的整理
提案的具体内容
线性代数,是大学理工科几乎必然要学习的学科,也是算法竞赛数学版块里面极其重要的内容,还是代数学里面最基础且最重要的一部分。然而,至少于我,应该也于其他很多人而言,OI Wiki 这一部分的许多内容似乎有点粗糙。
大方向上,我认为核心问题是 许多概念的分类上出现了非常极端的割裂与混乱,导致这一部分许多基础概念根本就看不懂。我尝试举几个问题看看对你们而言这是否确实值得修改:
核空间与像空间同时出现在了两个页面:线性空间 和 线性映射。
我的观点:它不应该出现在「线性空间」这里,就算硬要写,短短几句话介绍然后定向至「线性映射」就行了,因为 $\ker$ 和 $\rm im$ 完全就是基于线性映射才有的定义,没有线性映射根本就不会有 $\ker$ 和 $\rm im$。
-
很好笑的是「初等变换」对逆矩阵的介绍比「矩阵」竟然还详细一点(
行列式部分的内容,三种定义看起来几乎没有关联,可能会看起来莫名其妙。
行列式的内容应该是 #4126 这个 issue 提出后加进来的,后来我在 #5967 简单修改了一些内容。当时就有人吐槽过:
另外我觉得这页面硬是把这三个写成了行列式的三种定义,多少有些茴字的四种写法了。……
好吧我其实也这么觉得。横向对比抽象代数那一版块,许多定理还是给出了比较不错的证明的,我不觉得线性代数相关的内容就应该这么简略;何况多了解相关定理的证明对算法竞赛生来说不像是坏事,只要避免内容太长就行(抽象代数通过把证明全部默认折叠来避免在视觉上占用太大篇幅)。当然排版太灾难的问题也是要处理的。
线性空间 和 向量 篇幅太过巨大,内容有点臃肿,且部分概念介绍顺序过于混乱。
比如说线性空间这一页,极大线性无关组和秩这一节经常出现这样的表述:
于是,向量组的秩的定义与矩阵的秩的定义完全一致.
……
向量组等价比矩阵等价条件更强,不仅要求秩相同,还要求空间完全一样.因此,把两个矩阵 横向 拼在一起,秩不能发生变化.
矩阵等价仅要求秩相同,因此矩阵等价表示前一个矩阵或空间,可以通过可逆变换,到达后一个矩阵或空间.
首先值得一提的是,上面出现的太多与矩阵相关的概念,矩阵那一章里一个都没有。其次这些表述已经反复说明这个概念放在矩阵或者线性映射里面更好解释(巧了,秩最简短的定义就是像空间的维数)。
然后是同构,同构映射是线性映射相关的概念。我能理解放在这里是因为这是跟线性空间相关的概念,但是真不觉得这个凭空飞出来的定义有点奇怪吗?
然后是向量这一页。实际上我有一种感觉,这里面绝大多数内容甚至直接搬到计算几何那部分都不会有一丁点违和感。核心原因我觉得是太过于注重应用,反而有点完全不把适当程度的抽象放在眼里了(请问这里面二维跟三维的大多数概念有哪怕一丁点区别吗)。以及这么早就在这一页介绍 向量与矩阵 真的有人能看懂吗(
上面的绝大多数问题,对我来说归根结底都是因为许多概念整理太过混乱导致的。分清楚什么概念应该放在什么地方,就能解决许多问题。然而由于概念与定理的数量太过巨大,而且很多子话题(比如求解线性方程组,线性基)完全值得单开一整个页面去详细介绍,我暂时想不出最完美的页面编排方案。下面的想法整体上参考了 Sheldon Axler 的 Linear Algebra Done Right:
线性代数简介
没有什么值得修改的,不过可以提前介绍一下线性组合来说明线性代数研究的是什么。
此外如果抽象的内容逐渐变多,引言可能要引导一下怎么阅读。
向量与向量空间(将向量与线性空间合并)
关于向量,不希望出现什么?
所有与 2D / 3D Euclid 几何相关的内容我提议全部移到计算几何那部分去,出于如下考虑:
- 如果一个算法竞赛生遇到了 2D / 3D Euclid 几何的题目或者需要学习相关内容,ta 少说有 60% 的概率会先去看计算几何而非线性代数;
- 所有与 2D / 3D Euclid 几何相关的内容太早提及了,对线性代数基础理解的帮助未必大,而且很多几乎没基础的人应该是看不懂矩阵那部分内容的;
- 如果实在有什么必须放在线性代数这一块来介绍的,我提议单开几个页面并搬走,但绝对不是现在该出现的;
- 就算是作为具体例子来引入,这当中的绝大多数内容也都是 $\mathbb k^n$ 就足以承载的。
那么关于向量,这一页写什么呢?
首先是向量部分,写 $\mathbb k^n$ 相关的内容就行了。它是所有算法竞赛生在用代码操作向量一定会用到的不是吗?很快就会发现,关于 $\mathbb k^n$ 的内容实际上几乎没什么好讲的,具体来说写这些就行了:
- $\mathbb k^n$ 的定义;
- 向量加法与数乘;
- 基本性质;
这些东西尽管非常重要,实际上根本占不了多大篇幅;而且基本性质铺垫完,顺带就能直接把向量空间给介绍了。
向量空间介绍什么呢?
向量空间的定义;
线性组合、线性包;
这里需要把线性包提前介绍,因为它本来从线性组合的概念能直接出来,而且解释下面的线性相关时清爽的多。
线性相关、线性无关
极大线性无关组、基、维数
这当中的一个细节是把「秩」替换为「维数」,因为「秩」放到线性映射再去介绍更好,正好这一页也缺一个「维数」的定义。
如果你觉得这个替换很迷惑,可以问一下绝大多数只学了工科线性代数的能不能说出「秩」到底是什么,又为什么有那些性质。我以 80% 的概率肯定没什么人能自然地说出来,更不用说之前完全没学过线性代数的算法竞赛生了。
子向量空间
空间的交、和、直和、直积
这里砍掉了:
- 「同构」,因为把它放到线性映射再介绍好得多,放在向量空间实际上我没看出来意义是什么;
- 「欧氏空间与线性空间的关系」,首先是因为有些概念还没出现,其次是介绍上述相关概念时就加上欧氏空间的相关概念才更好理解。
- 旧页面「应用」里的所有内容,因为这些东西在没有引入线性映射和矩阵的概念时全都解释不了(看看这三节是不是全是矩阵),它们都应该放在线性映射和矩阵那里。
最后,有些记号肯定要改了,比如 $\mathbb P$ 改成 $\mathbb F$ 或者 $\mathbb k$,把 $\theta$ 换成 $\mathbf 0$。
应用要写什么吗?
我其实不太喜欢在这一页写应用,因为这一页的概念本身就比较抽象也没啥特别值得提起的应用。至于求解一组基的算法,到这里篇幅已经太长了,而且这个就是所谓的「完全值得单开一整个页面去详细介绍」的内容,所以不适合放在这。如果有,可以之后再说。
分级标题
- $n$ 维向量与 $\mathbb k^n$
- 定义
- 基本运算
- 性质
- 向量空间
- 定义
- 线性组合、线性包
- 线性相关、线性无关
- 极大线性无关组、基、维数
- 空间的集合运算
矩阵与线性映射(将矩阵和线性映射合并)
矩阵这一页是我目前觉得最灾难的。实际上因为这部分实在是灾难到我不太接受在这里小修小改了(不进行大篇幅甚至跨页面 refactor 的话根本改不动啊),我才下定决心至少一定要提一个哪怕不完美的提案了。
引入部分:
矩阵的引入来自于线性方程组.……
我个人挺喜欢这一部分,对大多数人来说应该挺直观的。
线性代数主要研究的运算模型是内积.……
但是从这之后的所有内容恕我实在是一点都不理解。首先我看不出来用内积解释矩阵作为线性映射的道理是什么,我甚至觉得这可能有点误导的成分在,因为用内积解释它极不直观,它竟然把一组列向量拆解然后拼接成了行向量,有可能偏离对向量的直觉。其次我知道的矩阵与内积相关的内容都已经是 Euclid 空间 / 实二次型相关的内容了,放在这里恐怕太早了。对此我唯一认为合理的解释是试图用一组线性函数拼出线性映射,但是这好像也不合适,至少也不能用内积解释(这个其实是对偶向量空间的东西)。我偏向于将它们直接删掉,或者不要在这里用内积的表述。
定义部分:
出于不知道什么原因,矩阵竟然连定义都没有()
然后线性映射的定义可以比矩阵作为线性映射定义先介绍,因为线性映射的定义很短也很有直觉在,还能清楚解释矩阵加减乘。
比较麻烦的是转置,尽管它的很多性质比较显然,用向量空间解释起来却比较费劲(需要对偶向量空间)。视情况看看对偶向量空间与转置要不要放在这里面,可能建议单开一页(当然也可以不讲,不过到处都是行向量的话不讲这个好像不合适)。
最后是关于主对角线、对称矩阵、……这些东西,如果没有什么特别要介绍的重要性质,首先不要为它们开子标题,其次很多东西其实可以到了需要提及它们的时候再讲(比如到 Euclid 空间 / 实二次型时再讲对称矩阵,到消元法时再讲上三角下三角矩阵),避免概念太多把人搞迷糊了。不过这个影响不大。
线性映射里面的所有内容?
比较令人发颤的事情是线性映射的所有内容全都非常重要,而且还有求解线性方程组这一个大专题。把它们全都塞进同一页里面内容量绝对会暴涨。但是感觉没办法,就应该讲这么多。线性方程组的内容可以单开一个页面去详细介绍(比如放进消元法介绍),这一页可能重点放在抽象概念上。
一定要介绍对偶向量空间吗?
首先如果真的要解释行秩等于列秩这种极不显然的定理,不唠对偶实在是说不下去(有多少人能解释出转置更深层的道理?);就算对算法竞赛生能用消元法解释,缺乏对它进一步的理解似乎有点可惜。
应用部分
应用本应是个很重要的部分,但是它的内容量可能也已经大到了值得单开一个页面去细讲(尤其是这里面怎么那么多图论的),如果页面篇幅太大的话这个应该也可以考虑单开了。
分级标题
- 引入
- 定义
- 线性映射
- 列向量和行向量
- 矩阵
- 矩阵作为线性映射
- 基本运算
- 核空间与像空间
- 定义
- 映射的单、满、可逆
- 线性映射基本定理
- 同构映射与基变换
- 对偶向量空间与转置
- 定义
- 基本性质
- 对偶映射的核空间与像空间
- 应用(太长的话可以砍掉单开)
Euclid 空间(替换掉原先的内积与外积)
考虑到线性代数在 Euclid 空间的应用,为此单开一个页面去详细讲应该是合适的,同时也是对「向量」过早提及旋转矩阵等一系列概念的弥补。
分级标题
- 距离与内积
- 定义
- 性质
- 相关概念
- Euclid 空间
- 定义
- 标准正交基
- 正交补空间
- 相关概念
- 常用的映射
- 伴随映射与实二次型
- 自伴算子与实对称矩阵
- 正交变换与旋转矩阵
- 放缩变换
- 平移变换
- 外积
- 混合积
- 二重外积
- 距离与内积
行列式
线性代数的一个难啃的骨头了。我之前大致编辑过一些内容,这次的话应该考虑把所有的知识点串联起来,一个个证明定义之间的关联性。
一段时间后,我找到了第四种定义方法(通过反对称 $(n, 0)$-张量),名字听着很吼人,其实可能是最符合直觉的定义:1. 是多重线性函数;2. 只要存在共线向量 det 就是 0(与体积相呼应);3. 单位矩阵的 det 是 1。反正这里不写张量相关的东西,就具体写出是啥意思就好了。最后采用它的原因是好串联所有的定义。
最后一个比较重要的是行列式的性质,旧页面比较缺这个,也要一并加上去。
分级标题
- 引言
- 定义
- 通过公理
- 通过初等变换
- 通过展开式
- 性质
剩下的暂时没什么好修改的了。
最后一个问题是关于消元法的。现在这一页内容被单独分出去到 数值算法 那里去了,而太多东西与线性代数相关了,比如线性基也要消元法(贪心法实际上也是消元),求解线性方程组要消元法,det 也要消元法,特征值也要消元法,将来如果打算开 Pfaffian 的话大概还要消元法:这些东西应该各自放在相应概念的页面还是全部整理到 Gauss 消元里?我倾向于前者。
因此整体上,这个提案的重点是 将线性代数的基础概念进行分类。当然目前这个提案整体上非常激进,如果有什么问题当然欢迎讨论~
相关链接与参考资料
Source: OI-wiki/OI-wiki