解完方程以后,还有什么

我以前很容易把代数想成求解:化简、移项,最后找到 x。后来更吸引我的,是代数为什么能够让不同题目使用同一种方法。用字母替换具体数字,不只是省去重复书写,也是让关系从一个例子里独立出来。

从方程、矩阵到结构,可以作为我的学习路线,但不能把它当作严格的数学史年表。不同分支并行发展。对学习者而言,更有价值的是每往前一步,所研究的对象发生了什么变化。

矩阵可以是一种动作

A = [[0, −1], [1, 0]] A(x, y) = (−y, x) A⁴ = I
这个矩阵使平面向量逆时针旋转 90 度;做四次回到原位。这里的矩阵代表线性变换,而不只是数字表格。

如果只看四个数,A 没有什么故事。把它理解成动作,就能问连续做两次、四次会怎样,以及哪些性质在动作前后没有改变。长度在这个例子里保留,方向发生变化。对象从“算出一个数”变成“理解一种变换”。

换一个顺序,结果还是一样吗

R(x,y) = (−y,x) S(x,y) = (2x,y) S(R(1,0)) = (0,1) R(S(1,0)) = (0,2)
R 是逆时针旋转 90 度,S 只把水平方向放大两倍。先旋转再拉伸,与先拉伸再旋转,得到不同结果。

数的乘法让人习惯交换顺序;变换的复合却未必允许。例子中的两种操作都可逆,仍然不能交换。把“是否可逆”和“能否交换”分开,正是在问运算遵守哪些规则,而不只是把一次乘法算完。

当运算本身成为研究对象

继续抽象,可以研究一组动作在组合下的结构。正方形的旋转能够组合,有不改变任何东西的操作,也有把一次旋转撤销的操作。这些关系并不依赖我们用什么颜色画正方形。群的语言保留的是组合规则。[1]

具体到正方形的四种旋转,0、90、180、270 度的旋转组合后仍在这四种之中;零度旋转是恒等操作,90 度与 270 度互相撤销,复合满足结合律。这些条件使它们构成一个群。旋转还能交换顺序,是这个例子的额外性质,而不是所有群都必须满足的要求。[1]

但抽象也有边界。不能因为两个系统都叫“操作”,就假定它们都可逆。把文件永久删除,与把向量旋转九十度不是一回事。是否可逆、组合顺序是否重要,都必须检查,不能从一个熟悉例子偷渡过去。

我想带走的是这套提问方式

构建软件时,很多问题也从具体数值转向允许的操作:哪些状态可以相互转换,重复一次是否改变结果,两步能否交换顺序。这不是把企业系统硬说成一个群,而是借用代数训练出的敏感性,主动检查规则。

我因此不把抽象视为远离应用的奢侈。它有时比直接套公式更慢,却能让我们看见不同问题之间真正共享的东西。代数的价值不只是把 x 算出来,也在于解释:为什么这个方法在这里有效,换一个结构之后又为什么失效。

来源与延伸阅读

  1. MIT OpenCourseWare · Algebra I

    依据 · 群、线性映射、域和向量空间的课程讲义。