Sheldon Alxer 曾写过一篇文章, 题目是“Down with Determinant”, 后来扩展为一本书“Linear Algebra Done Right”, 国内有翻译本《线性代数应该怎么学》. 按他的观点, 行列式太难、不直观, 并且很多书上行列式的定义太突兀, 缺乏动机; 更重要的是, 线性代数的大部分内容不依赖于行列式. 他的观点有一定道理, 不过我不站在他的一边.
简单翻了翻他的书, 有两个地方让我觉得不舒服. 一是在线性空间的定义中, 他把加法和数乘的结合律放在同一条里了, 大概是想合并同类项. 由于我的惯性思维(也许是老眼昏花), 第一遍没看出来, 认为他少了一个条件. 有个同行提醒了我. 不过, 这个合并不太好, 因为它掩盖了一个重要的东西: 线性空间的定义中前四条是关于加法的, 简而言之就是加法是一个 Abel 群; 另外四条总结为一句话就是线性空间是数域的模. 这种合并把概念搞乱了.
另一个就是关于行列式的. 不用行列式当然也可以定义方阵或线性变换的特征值, 问题是一般矩阵的特征值怎么计算? 比如三阶的如何计算? 他在书中只举出了一些简单矩阵的特征值的计算, 这明显是不够的. 用特征值建了一个大厦, 却不会计算特征值, 这无异于空中楼阁. 刻意避开行列式有点适得其反, 人为地制造了很多麻烦. 当然, 不排除我看得不仔细, 没有领会到其中奥妙之处.
跟清华大学的扶磊老师和首师大的王永晖老师聊数学教育的问题, 我提到了行列式的定义, 结果引发了一场讨论. 就目前所了解的, 行列式的定义方式大致有如下几种: 1、按第一行(列)展开; 2、完全展开; 3、反对称多重线性函数; 4、外积; 5、体积; 6、群同态. 每个人对行列式的喜好角度都不一样: 我喜欢从二、三元一次方程组的角度来引入行列式, 利用找规律归纳出行列式的一般定义; 扶磊老师认为行列式的本质是外积, 说简单一点就是反对称多重线性函数; 王永晖老师更喜欢几何直观, 推崇一些书本上的几何定义, 也就是把平行多面体的体积定义为行列式.
这三种观点本身不矛盾, 是行列式的几种不同表现形式, 也是行列式在不同数学分支上的应用, 实质上起到了一个互补的作用. 从这个角度看, 把行列式的各种定义整理一下介绍给学生们还是有必要的. 文章题目本来想写成“Long Live Determinant”, 有点夸张, 还是低调点好.
起源: 线性方程组求解
我介绍一个理论喜欢从历史发展谈起, 希望能讲清楚数学概念、命题的来龙去脉, 也建议初学者去走一走数学家们走过的路. 不过, 关注历史并不意味着要严格按照历史进程, 毕竟历史上对很多数学问题的探索延续了很多年, 走了很多弯路, 我们不是很有必要重走这些弯路, 偶尔走一走也可以.
行列式具有传奇色彩, 它是日本数学家关孝和在 1683 年首先提出, 十年后德国数学家 Leibniz 又独立提出的. 关孝和的出发点是考虑两个多项式
其中
行列式的第一个定义: 第一行展开
中学生经常需要求解二元一次方程组. 我一直很好奇, 为什么我们会告诉学生们一元二次方程有求根公式, 却不讨论二元一次方程组的求解公式, 每次解方程组都需要加减或代入消元呢? 在我上中学的时候, 课本上已经没有二、三阶行列式了, 而比我高几级的同学是要学的. 当然, 二元一次方程组很简单, 引入行列式有点小题大做之嫌. 不知道是不是出于这种想法, 一元二次方程的求根公式和韦达定理在中学课本中的角色也渐渐淡化甚至消失了.
我们从二阶行列式的定义开始吧.
问题 1 二元一次线性方程组
有唯一解, 求解的表达式.
这个问题自然很简单, 不过, 如果我们引入一个记号——二阶行列式, 即
解的表达式就非常漂亮.
二阶不足以说明问题, 再研究一下三元一次方程组.
问题 2 三元一次线性方程组
有唯一解, 求解的表达式.
这个问题稍微复杂了一点, 可以利用消元法化为二元一次方程组, 不过我更喜欢利用二元情形的结论: 把
如果还看不出规律, 就不妨试一下四元一次方程组的求解. 此时一定要利用三元一次方程组的结果, 否则会很麻烦! 这样就很容易发现行列式的归纳定义了.
问题 3 (行列式按第一行展开) 设
尽管这个过程与历史上数学家们的探索过程不一定吻合, 但我个人还是喜欢这样来引入行列式, 因为这个过程很自然, 也是研究问题的一个合理思路. 类似地, 还可以用消元法得到行列式按第一列展开的定义. 当然, 按第一行展开的定义只是一个递推关系, 只能计算一些特殊的行列式. 一般地,
行列式的第二个定义: 完全展开
不难得到三阶行列式的完全展开式为
很多书上用如下的图来直观地表示三阶行列式:
这个图有一定的误导性: 我刚开始接触行列式的时候就猜四阶行列式的展开式有 8 项! 这当然是不对的, 正确的定义方式如下:
问题 4 (行列式的完全展开)
其中求和取遍
很多书上就是直接讲排列, 然后就给出如上的定义. 这的确如 Sheldon Alxer 所说不直观、缺乏动机! 至少我学的时候困扰很久: 为什么这么定义? 怎么想到这么定义的? 可惜当时没人告诉我, 我也不想这样去折磨我的学生们, 尽管他们不一定会产生与我一样的困扰.
行列式的完全展开式一般不具有可操作性, 很少有行列式能这样计算出来, 不过, 它有理论上的意义, 根据它很容易得出行列式的性质, 既方便我们计算行列式, 又使得从其他角度来看待行列式成为可能.
行列式的第三个定义: 反对称多重线性函数
利用完全展开式不难得到行列式具有如下性质:
问题 5 (1) 行列式中两行(列)互换, 行列式变号.
(2) 行列式的某一行(列)乘以常数
(3) 行列式的某一行(列)若可以拆成两行(列), 则行列式可拆成两个行列式之和.
(4) 行列式的某一行(列)的
当然, (4) 是 (1), (2) 与 (3) 的推论. 如果将
问题 6 行列式
(1) 反对称性:
(2) 线性性: 设有某个
因此, 行列式是
问题 7 (1)
(2) (行列式的第三个定义)
2002 年在北京大学做博士后的时候, 我给蓝以中老师做助教, 他的《高等代数》一书就先讲矩阵, 然后引入了行列式的上述定义. 当时, 我觉得这种定义很合理, 因为这是研究矩阵过程中自然产生的问题. 不过, 在我主讲高等代数课程的时候, 我开始关注代数学的发展史, 才发现行列式的出现比矩阵早很多, 并且行列式是可以作为一个独立的问题来研究的, 因此讲课时遵循了历史.
行列式的第四个定义: 外积
多重线性函数观点的一个好处是可以引出张量代数和外代数. 设
这就得到了一个
这里,
问题 8 (1)
(2)
(3)
这样,
问题 9 设
为
行列式的第五个定义: 体积
实数域上的行列式有一个有趣的几何意义, 它的绝对值是其列向量组张成的平行多面体的体积, 行列式的正负就给出了这组向量的定向——正向或负向. 有的书上就是从体积角度来引出行列式的定义的. 首先考虑平面问题.
问题 10 在平面直角坐标系
即
同样可以考虑三维空间的问题.
问题 11 空间直角坐标系中的三个点
及原点
在这个计算过程中需要先计算
如果约定
当然体积一般是非负的, 行列式可能是负的, 所以需要注意体积定向的问题. 以三维空间为例, 给定三个右手系的向量, 让其中一个向量移动, 还是右手系时体积不变号, 共面时体积为零, 变成左手系时体积改变符号, 这样的有向体积有助于判别三个向量的关系. 这个想法可以推广到高维.
扶磊老师不太喜欢这种底乘高的定义方式, 他希望从体积的可加性出发. 以三维空间为例, 记
我开始觉得这三个平行多面体的可加性不好理解, 不过发现他们的底面都一样就明白了. 当然这里需要等底等高的平行多面体的切割, 或者说是祖暅原理. 扶磊后来用行列式的性质给一个代数的证明, 其中绕不过去的是要做体积的切割. 于是一个有意思的事情出现了: 行列式的几条性质(两行互换、某一行乘以
从变换的角度看行列式
对于
这个观点也可以用外积的语言来描述, 从而推广到一般空间. 设
同样可以在外积空间
若
用矩阵来看或许更清楚. 设
而后者就是
Jacobi 行列式和微分形式
上述观点在分析学上很有用. 在多元微积分中, 对函数
在积分的时候会出现 Jacobi 行列式
用微分形式的观点更清楚一点. 对于一元函数
把积分
于是
多元微积分时不考虑定向, 体积不是负值, 因此 Jacobi 行列式需要加绝对值.
进一步, 我们还可以对于任意一阶微分形式
定义其微分为
这里不详细解释其中含义了. 于是
右式就是一个二阶微分形式. 如此可以对任何
辛变换
外积的观点还有一个奇妙的应用. 我们知道, 只有偶数维的线性空间
若
则称
问题 12 如果
很容易看出
问题 13 设
(1)
(2)
(3)
行列式的第六个定义: 乘积公式
最后我们从表示论角度给出行列式一个新的定义. 利用矩阵乘法, 我们有行列式的一个重要特点:
于是可以考虑满足上述条件的函数. 不过这种函数也有很多, 任何一个这样函数的幂也满足条件. 我们增加一个条件即可.
问题 14 设
并且对
乘法公式可以看作是一般线性群的一维表示, 自然地实现在