从零开始学习线性代数:浅谈代数结构
「代数结构」是一个数学专有名词,如果你拿这个名词去google,去百度,去知乎,会带出一大堆用高深的数学公式、名词术语构成的根本看不懂的文本来。我们唯一可能知道的就是,「代数结构」是抽象代数这门学科研究的东西,而要能理解抽象代数,又需要一大堆包括线性代数在内的前提知识。而对「代数结构」的理解与否,理解的程度,直接关系到你线性代数这门课程的学习质量,二者似乎是互为前提,令人困惑。因此这里准备「浅谈」一下「代数结构」。为了让人人能懂,我这里采用的方法是独具一格的,没有数学本来的精确严格,也很少公式,语言是我们日常的叙事语言,也就是讲故事的语言。但有一点需要明确的是,这篇笔记的内容只是帮助你理解概念,你绝对不会因为这篇笔记明天就具备了考研的资格,顶多是让你多了一项吹牛的谈资。
闲言少叙、言归正传。要理解什么是「代数结构」,我们需要先准备一样东西——尺子,什么尺子都行,但最好是裁缝用的软尺,理由待会儿细说。

———————————————————深邃的哲学思考线———————————————————
让我们来核对一下: 1. 尺子有一个固定长度,例如我们上面的尺子最大长度是20cm,我们把这长度叫作「定长」 2. 尺子上有刻度,现在你能找到的尺子大概都是公制,基本单位是毫米、厘米、分米和米 3. 尺子上都有一个起点和一个终点,前者表示度量的开始,0表示,后者表示最大度量的量,我们这把尺子的终点是20 4. 刻度上有数字,表示长度的数值。 我们对尺子的物理属性,例如是什么颜色、材料、品牌等基本上没有兴趣,但是偶尔对尺子的软硬程度感兴趣,例如上面提到,我们下面会用到软尺。
有了尺子,我们就可以讨论【结构】的问题了。
第一个问题是,我们是否可以用尺子度量任何长度?很显然,如果用尺子直接量肯定不行,因为我们的尺子是「定长」,如果要度量一个比尺子定长更长的长度,这把尺子就不够用了。生活中一个简易的替代方法是,先用尺子量出最大长,然后再度量余下的部分最后把二者相加,例如,我的尺子最大长是20cm,若要度量25cm,我就必须先度量尺子的最大长——20cm,然后再度量余下的5cm。不过,这个方法有一大缺陷,那就这种度量的长度非常有限,假如用一把20cm的文具尺去度量从你家到附近超市的距离大概就不太实用。那么我们能不能用加大尺子的最大定长解决问题呢?恐怕也不好使。就算你有能度量1000米长的尺子仍然无法度量更大的长度。所以,无论尺子的定长有多长也无法度量任意长度 。
现在我们用一个数学的术语来形容这件事:【闭包】。如果你的尺子无法度量所有的长度,那么我们就说,这不满足闭包。还拿上面的例子,假定你的尺子最大可以度量20cm,现在要度量25cm,那么我就要度量两次,第一次,得到20cm,第二次得到5cm,二者相加,20 + 5 = 25。如果用字母表示,我们用M表示尺子的最大定长,M=20,现在 20 + 5 > M,表示度量大于定长,不满足闭包。因为我们闭包的最大量度是20cm。把这个一般化,【闭包】的一般性论述就是:如果给定一个范围,在这个范围内任取两个数经过加法运算,其和仍然在原来的范围内就称作是满足【闭包】。我们用字母 U 表示范围,a 和 b 是 U 范围内任意两个数,如果 a + b 仍然在 U 范围内,就称之满足闭包。现在,用符号 ∈ 表示 在范围内,那么闭包就可以表示成:
若 a,b ∈ U 则 a + b ∈ U
满足这个条件式的就是【闭包】,大白话就是运算结果不能出圈。例如,自然数的加法和乘法运算不会出圈,和与积仍然是自然数,但减法和除法就不一定了。在自然数范围内,无法施行任意减法,也无法施行任意除法。因此我们知道,任何尺子都无法满足闭包的条件。当然,现实中无法满足条件,不代表我们在想像中也无法实现。例如,我们可以设定一个满足闭包的尺子,想像尺子是无限长,亦即,定长是无限大,这样尺子就可以度量任何长度了。不过这种想像在现实中是无法实现的。要真正解决有限长尺子度量任意长度的问题,就要另想办法。
现在,假定你手里的尺子是一把软尺子,例如裁缝用的皮尺,或者,你可以用一张印了尺子刻度的纸条代替。有了这样的尺子,我们就可以让尺子首尾相连,形成一个环形,然后用这把「环形尺」就可以度量任何长度了。方法是,用这个环形尺在要度量的长度上滚动,滚动一圈就是原尺的定长,然后继续滚动直到得到相应的长度。这样,滚动的圈数乘以定长加上余下的量就是总长度。比如,我要度量的长度是53cm,我的尺子的定长是20cm,围成环状的尺子滚动一圈是20cm,两圈是40cm,再度量余下的13cm,通过计算 20 × 2 + 13 = 53。有人会说,这不是跟拿直尺一次次度量一样吗?在实际度量的意义上确实如此,但有一点不一样,长度不会再「出圈」,永远会在环形圈内。用上面刚学的术语说就是,这样的度量方法满足「闭包」。我们把这样首尾相连的尺子称作「环形尺」。环形尺的一个实例就是钟表。

钟表用来度量时间,但我们知道时间是无限的,无法用常规的直尺度量,而钟表利用环形尺的原理则可以度量任何长度的时间,因为钟表上的刻度永远不会「到头」,我们在钟表上度量、计数、计算永远不会「出圈」,所以环形尺满足「闭包」的条件。
那么,如何说清环形尺度量法和直尺度量法的区别呢?你当然可以使用日常语言和你的生活常识。但如果我们的目的是从类似的现象,过程抽取一般化的「道理」,就需要用到数学了。数学是什么,就是不仅要把直尺、环形尺的区别说清楚,还要把所有可能的类似事情一次性说清楚,而且说得没有任何歧义,严格、精确;最重要的是,数学目标是追求统一性,说清楚所有类似情形的共同规律。
在用数学的名词、术语描述之前,我们先「就事论事」用日常生活语言说清楚,具体看一下直尺和环形尺的区别。首先,如上所述,直尺不可能度量任意长度,而环形尺可以,换句话说,直尺不满足「闭包」而环形尺满足。第二、直尺是单方向的,只能从起点0开始向右表示度量的长度。离起点越远,度量的量也越大,直到到达定长,超过这个定长就无法直接度量了。而环形尺则没有最大长问题,它的度量过程是圆周运动,离0点最远未必是最大。例如,钟表,以12点为起点,离12点最远的是6点,但却不是离12点最大数。同时由于尺子是环形,也就没有绝对的起点。第三、环形尺上数字所表达的也不再是单一固定的量了。钟表上的8,即可以是早上8点,也可以是晚上8点,或者20点。而且也有可能是昨天8点、明天8点,任意日期的8点。第四、在环形尺上,也再没有绝对的大小,例如,在直尺上,7比8小,而在钟表上,如果设8是8,而7则既可能7也可能是19,因为我把钟表指向7的指针向顺时针方向转一圈,让7代表19,这时指针指向的7当然比8大。除此之外,钟表的指针还可以任意正着拨,反着拨,而这些都是直尺不具备的。
现在,我们试着用数学的术语把上面说过的再说一遍。
我们把直尺、环形尺这样包含了数字、刻度、范围、起点这些要素的,所有类似的看得见的东西、看不见的概念统称【结构】。【结构】包含了下列三样至关重要的东西:第一、 范围,例如钟表上的数字范围是1-12; 第二、范围内存在一些「东西」;第三、在这个范围我们可以按照一定规则「摆弄」这些东西,例如在钟表上,我们可以把指针向前拨,再向前拨,反复向前拨,然后逆时针方向往后拨,再往后拨,反复往后拨;如果钟表正常工作,那么指针会自动移动。对钟表指针只能按顺时针方向或按逆时针方向拨动就是规则。如果你不按照规则,随意扭动指针或者对钟表做一些其它动作例如拿个锤子砸,那就「违规」了。
用数学语言表达就是:存在一个非空集合,用 A 表示。这个集合的成员数量或有限或无限,我们可以对集合的成员进行某种或某些按照规则的操作,我们把 A 称作 一个 结构 。例如,所有整数,是一个集合,这个集合内的整数数量无限,我们可以对整数进行加减乘除、取负等操作,所以,环形尺、钟表、直尺、整数都可以看做是「结构」的实例。而「结构」本身,是一个抽象感念,所有我们可以定义为结构的东西,都是「结构」的实例,这就像「大学生」是概念,而「东北大学数学系一年级新生王晓红」是「大学生」的实例一样。
任何可以被称作【结构】的东西,都有下列5项指标,有些结构符合其中一个或多个指标,这样满足任何指标组合的【结构】我们都会给它起个名字,有了这些名字,你就可以吹牛了。这5项指标是:
1. 这个结构是否闭包?也就是:若 a,b ∈ A,则 a + b ∈ A 是否成立? 2. 这个结构中三个元素进行两次运算,运算的顺序是否影响运算结果?也就是:( a + b) + c = a + (b + c) 是否成立? 3. 这个结构是否有「原点」?注意,原点和起点不同,原点根据维度不同方向个数也不同,而起点只有一个方向。原点用 0 表示,例如数轴和坐标上的原点 4. 这个结构中,如果能从元素A到元素B,能不能退回来,从元素B到元素A?换句话说,如果有A,是否有-A? 5. 如果两个元素进行某种运算,元素的顺序会不会影响结果?也就是:a + b = b + a 是否成立?
现在,我们用上面5个指标进行搭配,然后起个名字。当然,我们不会穷尽所有搭配而是列举一些常见的。
如果集合A满足指标1,那么我们将其称为【原群】(magma),原群要求满足闭包
如果集合A满足指标1和2,那么我们将其称为【半群】(semigroup),半群要求满足闭包和结合律
如果集合A满足指标1,2和3,那么我们将其称为【幺半群】(monoid),幺半群要求满足闭包、结合律,而且必须有原点。
如果集合A满足指标1,2,3和4,那么我们将其称为【群】(group),群要求满足闭包、结合律,而且必须有原点和相反数。
如果集合A满足1-5所有指标,那么我们将其称为【阿贝尔群】(Abelian group),阿贝尔群要求满足闭包、结合律、交换律,而且必须有原点和相反数。
下面谈第二个问题:我们如何度量连续多个长度然后得到它们的总长?首先,如果有连续几个长度,如果这个长度满足闭包,那么最简单方便的方法便是,从第一个长度的起点开始,到最后一个长度的终点,一步得到总长度。如果不满足闭包,那么就比较麻烦。例如尺子的定长是100cm,进行了两次度量,每次度量有两个长度,现在问这两次度量得到的结果是否相同: 63 + 48 = 27 + 84 此时你可能要进行若干秒的心算,即可得出结论。但是如果仔细观察,两边的被加数是9的倍数,加数是12的倍数,把其中的数字拆分,36既是9的倍数也是12的倍数 (27 + 36) + 48 = 27 + (36 + 48) 因为 63 = 27 + 36,84 = 36 + 48 这样,凭着结合律的直觉就可以得到等号两边的和相等。
有些运算不符合结合律,例如减法和除法: (12 - 4) - 3 ≠ 12 - (4 - 3) (12 ÷ 3) ÷ 4 ≠ 12 ÷ (3 ÷ 4) 。 可见,结合律是否成立,取决于所选取的运算类型。这样,在进行任何多个二值运算时,结合律就成为结构的一个非常重要的指标。通常,加法和乘法满足结合律,它们的逆运算不符合。
问个问题:乘方和开方、指数与对数互为逆运算,这些运算符合结合律吗?
我们在前面列举的两个【结构】的例子,一个是直尺,一个是环形尺。而关于环形尺再说几句。我们可以像数轴一样给环形尺确定一个「原点」,因为有无「原点」是判断结构类型的重要指标。如果拿钟表为例,我们可以把12改作0,这样,以0为原点,向顺时针方向,我们得到1,2,3,4,5,6,7,8,9,10,11;向逆时针方向,我们得到11,10,9,8,7,6,5,4,3,2,1。在环形尺上做加法运算,其结果是这样的:如果 a + b < 12,结果是 a + b,如果 a + b ≥ 12,结果是 a +b - 12。所以,5 + 4 = 9,5 + 9 = 14 - 12 = 2,意思是,早上5点,过9个小时后是下午2点。
有了环形尺和钟表的例子,我们再介绍几个数学名词。环形尺上,一共有12个数字,这个12,叫做【模】(modulo),以12为【模】,12 实际上就是整数除法的除数。任何整数除以12,其余数就是0-11之间的所有整数,这正好是环形尺上的数字。例如,1 ÷ 12 余 1,4 ÷ 12 余 4,14 ÷ 12 余 2。上面的钟表算术叫做模算术 (modular arithmetic),模算术和常规算术的最大不同是算术的对象数量有限,例如钟表算术的最大数是12,而常规算术的数则是无限。
不要以为环形尺的实例只有钟表,其实这样的实例比比皆是。例如,环球旅行如果绕着赤道行走,我们以为是直尺,实际上是环形尺,因为环球一圈你又回到原点。不过环球的【模】很大,毛主席诗词曾说「坐地日行八万里」,所以以地球为环形尺的【模】大约是四万公里。环形尺的另一个例子是计算机编程中原生整型数据类型。我们知道,计算机是用二进制表示数,一个16位比特的数,可以表达 2^16 = 65536 个整数。如果再要表示正负数和0,那么 65536 个数就要分为两半,一半表示从 -1 到 -32768 的负整数,另一半表示0 到 32767 的正整数。你可以想像这是一根从 -32768 经原点 0 到 +32767 的数轴。那么要在这个数轴上进行 32767 + 1 的运算,就像我们拿直尺度量一样,「出圈」了。计算机为了使计算仍然能够进行,就采用了环形尺的方法,把 -32768 和 + 32767 首尾连接,所以 32767 + 1 所得的结果是——你可以先猜猜... 对了 是 -32768。因为 +32767 是原来数轴上最右边的数,首尾连接以后,再出格就到了原来最左边的数:-32768。
所以,环形尺的概念,作为一种【结构】是非常普遍的。这个结构的最大特点是——对称。那么数学是如何描述对称呢?其实很简单,只要规定原点和两两相反的元素就可以了。例如,我们可以把镜子看做是对称,以镜子面为原点,镜子外的任何物体都会有形状相同的镜像,形成对称。因此数学认为所谓对称需要两个因素:原点,互为相反的对象。这其实就是我们上面所列关于「结构」5项指标中的第3、4项。这样,一个结构是否对称,我们只要看它是否符合这两项指标就可以了,这就是用数学的语言来形容什么叫对称。



我们上面的环形尺的例子也是对称的实例,这个从钟表的数字排列就可知。如果把12换成0,则11 对 1,10 对 2,9 对 3,8 对 4,7 对 5,6 对 6。而在我们上面命名的代数结构中,只有「群」和「阿贝尔群」符合对称。因此我们可以以环形尺为例,看一下「群」的概念:首先,任何结构都和一定的运算相连,例如我们只关心加法运算,这样的「群」我们称作「加法群」。加法群应当
第一、满足闭包,这意味着我们可以在环形尺上度量任意大的量或做任何大小的加法
第二、对称,亦即满足第3,4项指标
第三、满足运算结合律
如果「加法群」还能满足交换律,那就称作「阿贝尔群」,或者,「加法交换群」。
而像环形尺这样的结构满足上面所有要求,因此,环形尺可以作为「群」的实例。换句话说,只要你抬头看看钟表你就能记起「群」是什么东西。

问个问题:直尺满足「群」的要求吗?如果满足,说说理由;如果不满足,那直尺满足上面那几个名称中的哪一个?
如果我们把平面直角坐标系看做是无限大,那么这个坐标系的结构也是一个群。首先,因为是无限大,所以闭包,在坐标系上的任何点都是关于原点对称,也就是在第一象限或第二象限的任何点,都可以找到镜像的第三象限或第四象限的点。在平面坐标系上点的加法就是向量加法,当然满足结合律和交换律,因此这样的平面直角坐标系,当然是一个「群」,同时也是「阿贝尔群」。
以上这些以数学的语言描述诸如直尺、环形尺的结构,我们称之为「代数结构」,而「代数结构」是对我们中学代数内容的更高抽象。我们在小学阶段,认识了自然数,小数、分数,并能进行四则运算,这是第一次抽象——「数」的概念是从「三只鸡」、「五根铅笔」等观察中抽象出来的。 🐔🐔🐔 ——抽象——3 ✏️✏️✏️✏️✏️ —— 抽象 ——5
而小学生学会了在没有「鸡」、「铅笔」等具体实物背景的情况下进行各种算数运算,这其实是非常了不起的成就。
第二次抽象,是在「数」的基础上的抽象,用字母表示数。 4 5.25 ½ —— 抽象 —— a 5 × (?×?) - 3 × ?+ 4 = 0 —— 抽象 —— a, b, c, x², x
在第二次抽象的语境中,像4,5.25,½ 之类的「数」变成了在第一次抽象中类似「鸡」、「铅笔」的具体对象,而字母则类似「数」在第一次抽象中的抽象物。第二次抽象的目标,是归纳算术运算的最基本规律。我们中学乃至大学数学的学习,无论解方程、求极限、导数、积分,最后的运算仍然是在运用这些运算基本定律。
而以「代数结构」为核心内容的抽象代数,则是在这个基础上进一步的抽象。 ax² + bx + c —— 抽象 —— α | 3 -1 2 | |-2 4 3 | —— 抽象 —— β | 1 6 0 | “哈哈哈哈” —— 抽象 —— γ + - × ÷ —— 抽象 —— ※ 「所有的数、矩阵、向量、多项式」—— 抽象 —— 集合
这个抽象表现在,第一、公式里的字母不再局限于数,理论上连猫狗、什么都可以,但在纯数学意义上,一般是指所有的数学对象,或者,非传统数学对象的字符串、逻辑学中的命题真值等也可以成为代数的基本元素;这等于是,在第二次抽象中的数学公式,变成了像「鸡」、「铅笔」之类的具体对象,而对这些公式的抽象使用(不同的)字母,这些字母代表了各种各样的数学对象,除了上面列举的,还有向量、函数、坐标系等。由于「代数结构」中仍然使用字母,大部分人不会觉得这是另一高度的抽象,以为还是我们中学时学过的加法运算定律;第二、中学里的代数公式只关心参加运算个别数,而不关心数是从哪里来的。例如加法交换律,只要给定两个数,就能得到运算定律。而「代数结构」作为第三次抽象,关心的不仅仅是个别数,甚至不仅仅是数全体,而是如上所说,是所有数学对象,因此在讨论任何运算规律之前一定要先确定要进行运算的到底是什么东西。不同的数学对象,对不同的运算就有不同的运算规则。第三、「代数结构」不但抽象化了参加运算的数学对象,从数抽象到所有数学对象,而且还抽象化了运算本身。+、-、×、÷,这些符号,就像1、2、3、4一样,固定的符号代表固定的意义。中学阶段对算术的第一次抽象,我们可以用一个字母代表1,2,3,4中任意一个。类似地,「代数结构」现在可以用 * (星号) 作为+、-、×、÷的代表,换句话说,运算符也可以成为变量了。这样,数学家们就可以任意定义数学对象、甚至非数学对象,任意定义运算,有时不叫运算叫操作,例如,定义数学对象是字符串,是汉字集合,而运算可以是增删改查。所以,抽象度越高,运用面就更广,但是对学习者来说就越难以理解。
站在学习者的角度,对代数结构最直接最简单的理解就是:一个集合加上一个运算满足一定的运算规律。然后根据具体的数学对象,我们想知道哪些运算规则适用,哪些不适用,根据适用情况,我们分别命名,然后研究某些我们感兴趣的结构,例如「群」,「群」的最大特点就是——对称,而环形尺,编程语言中的原生整型类型、直角坐标系、数轴都可以看做是「群」的实例。
最后说说「代数结构」与线性代数的关系。从「代数结构」观点,向量空间是一个比「群」更复杂的结构。首先,「向量空间」是以向量为元素的加法阿贝尔群,它对称,符合交换律,但是向量空间除了包含「阿贝尔群」之外,还包含另外一个结构,叫做「域」。与「群」不同「域」包含了加减乘除四种运算,它的集合是实数集合,也可以是复数集合,我们中学代数的基本运算都可以用「域」来概括。向量空间是「阿贝尔群」与实数/复数域的结合体,所以,向量空间除了要满足向量阿贝尔加法群和实数/复数域的条件外,还要满足连接这两种结构的特殊运算——向量与纯量的乘法,其中向量是向量阿贝尔群的元素,纯量是实数或复数域的元素,二者的乘法运算,其运算法则既不属于向量阿贝尔群,也不属于实数/复数域,而是单独的运算法则,这个包括了向量、纯量的两个分配律,向量纯量的结合律,以及纯量的幺元—— 1。
问个问题,按照「向量空间」的描述,钟表是向量空间吗?
为什么理解「代数结构」对学习线性代数重要?首先,你可以知道任何向量空间都必须有原点,因而所有向量空间都是对称的,无论线性空间如何变换,其「阿贝尔群」的结构不会改变,意思是,它仍然对称于原点,它仍然无限大,因为它闭包,任何加法仍然符合结合律、交换律。同时,矩阵的集合,也是向量空间的一个实例,子空间也是向量空间的实例,函数空间、多项式空间都是向量空间的实例,本质上它们都是「阿贝尔群」,有着和钟表、四合院一样的抽象结构。这就是我在《我们学数学时实际上是在学什么(一)》中所说,数学和小说、电视剧、电影的最大不同是数学想知道所有这些文学作品中最一般、最普遍、最有概括性、能够用一个公式、一个定理、统一表示所有事物、过程中的一般性规律。现在我们学得了第一个规律:「群」,它是对无限对称这种形式的归纳。普希金写过一首童话叙事诗《渔夫与金鱼》,描写一个老人救了一条金鱼,金鱼为了报答许诺可以给他所有他想要的东西,但是渔夫有一个贪婪的妻子,她要求渔夫不断向金鱼提出各种要求,要这个要那个,从把家里的旧木盆换成金盆,到要新房子,要当贵族,当帝王,当天下主宰,渔夫一家的生活经历一个从贫穷到富裕、从低贱到高贵,再从富裕到贫穷、从高贵到低贱的过程,这个过程可以无限延伸,可以从任何一个阶段到另一个阶段,我们可以把渔夫的一生看做是一个具有「群」性质的「结构」,所以说,数学不讲故事,它讲故事的故事。
