本文较为硬核,请酌情跳过部分内容。
如果你真想知道行列式(以及矩阵)究竟是在说什么,我建议你看完全文。
行列式的本质其实很直观,先说一下结论,行列式的本质是体积。
至于是什么的体积?
请往下看。
对一些读者来说,理解行列式的意义需要重塑对线性代数的整体认知,所以我要先介绍一下线性代数的“正确打开方式”。
大部分线性代数教材都把线性方程组放在第一位,但我认为线性代数应该从线性空间讲起。
线性空间也叫向量空间,之前学过线性代数的人可能会觉得这是个非常复杂的概念,但其实线性空间很简单,最典型的线性空间就是我们熟悉的三维空间。
或许我应该从更简单的一维空间谈起,它也是一种线性空间。
一条直线其实就是一个一维空间,直线上有无穷多个点,或者说直线是由无穷多个点组成的。
类推下去,二维空间、三维空间、更高维的线性空间也都是由无穷多个点组成的,或者说:线性空间是点的集合。
一些读者可能会反驳道:
线性空间明明是满足8条运算定律的向量的集合,怎么能说成是点的集合?
这其实就涉及到我们对向量的理解了,什么是向量?
是有大小和方向的量吗?
不是,尤其是在线性代数中,一定要注意:向量是满足8条运算定律的量,它不需要有方向,也不需要有大小。
点,就是最直观的例子。没错,点也是向量。其实这很好理解,当我们用坐标去表示点或向量(暂且看成有大小和方向的量)的时候,用的方法是一样的。
对于向量这个概念,重要的不是它究竟是什么,而是它满足的运算定律是什么,也就是前文提到的8条运算定律:
这8条运算定律其实都很简单,就是我们熟知的那种有大小和方向的量的运算定律。
只要满足这8条运算定律,那就是向量。这会导致函数也是一种向量,引出非常丰富的内容,在本文中就不多提了。
虽然向量不是有大小和方向的量,但是“有大小和方向的箭头”的图景可以帮助我们理解向量的性质,所以我们可以暂时把下文中的向量看成是“有大小和方向的箭头”。
接下来就是重头戏了,我们需要知道如何描述向量。很多人都知道可以用一组坐标去描述向量,就像下面这样:
但是,仅仅靠坐标还不足以描述向量,因为坐标系有很多种,一组坐标在不同的坐标系中表示的向量是不同的,就像下面这样:
所以,在我们用一组坐标表示向量的时候,一定要知道使用的是什么坐标系。在线性代数中,用“基”表示坐标系,“基”其实也是向量,可以称为基向量。
理解基向量需要重新认识坐标系,我们通常对向量的坐标表示的看法是:
现在我们要放弃上面这种看法,转而用基向量去重新理解坐标,每一种坐标系都有特定的基向量。
向量的坐标表示其实是:
这种方法其实就是把基向量伸缩以后再首尾相连,“伸缩”就是向量的数乘,“首尾相连”就是向量的加法,伸缩的系数就是坐标。
也就是说,完整描述一个向量需要“基向量”和“坐标”,这二者缺一不可。很多人对于向量的印象仅仅只是“坐标”,而忽略了“基向量”,这正是理解行列式的一个障碍,所以我一定要事先强调“基向量”的重要性。
在这里就会出现一个很少有人明确告诉初学者的规则,基向量也是向量,描述基向量也需要“基向量”和“坐标”。这时就会出现“无限套娃”的情况(基向量一层一层套下去),为了防止这种“无限套娃”,线性代数默认:
这可能有点绕,不过我相信大家都能理解它。
也就是说线性代数有一个默认的“背景”,这个“背景”是直角坐标系,在这个“背景”中构建出基向量,再用基向量的线性组合去表示一般的向量。
这是理解行列式必不可少的一环,我必须提前说清楚。
上文的关键内容其实就是这两句话。
变换是连接不同坐标系的桥梁,也就是把一个坐标系变换到另一个坐标系。这种变换包括两部分:
我们可以用一个简单的旋转变换看出它们之间的关系:
也就是说:基变换和坐标变换是反着的,专业一点的说法是它们互为逆变换。
上面的例子其实是线性变换,也是线性代数中讨论的变换。之所以说称其为“线性变换”是因为:
到了这一步,才算是碰到了理解行列式的门槛。
矩阵和行列式很像,事实上行列式就是对矩阵进行一套运算之后的结果,所以在理解行列式之前需要先了解矩阵。
上面的旋转变换还可以写成这种形式:
也就是说,矩阵其实就是线性变换的一种表现形式。
不过仅仅对矩阵理解到这个程度还不够,根本不足以进一步理解行列式,想要加深理解就需要先运用一下矩阵,比如用矩阵表示“基变换”和“坐标变换”:
让我们把重点放在“基变换”上面,“基变换”其实就是把新的基向量表示成旧的基向量的线性组合。相应的,矩阵中每一列的元素都是一个新的基向量的坐标。
这也就是说,矩阵也是一组向量的坐标,更准确地说是:一组基向量在另一组基向量中的坐标。
“线性变换”和“一组向量的坐标”其实是一回事,它们都是矩阵的意义。
(确实也可以简单地说:矩阵就是一组向量。这可能是一个显而易见的结果,不过简单地观察矩阵与向量的形式得到这个结论,和经过“基变换”得到这个结论相比,对结论的理解可远远不在一个档次上。)
现在,终于可以正式谈论行列式的意义了。
前面说过:
将它们综合之后,大家就可以理解行列式的意义了。
行列式是一组基向量构成的图形的“体积”,行列式的计算方法就是计算“体积”的方法。
基向量构成图形的方法其实很简单,两个基向量构成的图形就是平行四边形,三个基向量构成的图形就是平行六面体。
之所以统一用“体积”这个词,而不用“面积”这个词,是因为线性代数研究的向量是任意的n维空间中的向量,基向量构成的图形也是任意的n维空间中的图形,所以用“体积”这个词更合适。
考虑到基向量是“单位向量”,所以行列式表示的“体积”也是“单位体积”,或者说是“体积元”。
(当然,这里说的“体积”和我们熟悉的那个体积还是有些不同的,因为这里说的“体积”是有方向的,这和行列式的计算方法有关。至于计算行列式的方法到底是怎么来的,这就有些麻烦了,本文就不介绍了。)
知道了行列式是体积元,其实就已经可以想到很多用处了。由于笔者只对物理学有所了解,所以想到的用处基本上都在物理学里,比如广义相对论里面会经常用到体积元。欢迎大家在评论区里补充其它用处。
在线性代数里面,行列式通常是用于判断一个矩阵是否有逆矩阵。如果一个矩阵的行列式等于0,就说明这个矩阵没有逆矩阵。
逆矩阵很好理解,在前面提到的旋转变换里面,表示顺时针旋转的矩阵的逆矩阵就是表示逆时针旋转的矩阵。
一个矩阵存在逆矩阵其实就是说:矩阵表示的线性变换是可逆的,也就是在变换之后,还可以用逆变换变回原样。
至于这和体积有什么关系?
依然可以用基向量理解,线性变换是联系两组基向量的桥梁,一个线性变换(“基变换”)存在逆变换其实就是说:两组基向量都可以表示成对方的线性组合。
理解这些内容只需要看一张图片:
如果一组基向量在线性变换之后发生了“降维”,那么新的基向量就无法表示更“高维”的原本的基向量,这就说明这个线性变换没有与之对应的逆变换。
有话要说...