《新理解矩阵1》:矩阵是什么?

前边我承诺过会写一些关于自己对矩阵的理解。其实孟岩在《理解矩阵》这三篇文章中,已经用一种很直观的方法告诉了我们有关矩阵以及线性代数的一些性质和思想。而我对矩阵的理解,大多数也是来源于他的文章。当然,为了更好地理解线性代数,我还阅读了很多相关书籍,以求得到一种符合直觉的理解方式。孟岩的blog已经很久没有更新了,在此谨引用他的标题,来叙述我对矩阵的理解。

当然,我不打算追求那些空间、算子那些高抽象性的问题,我只是想发表一下自己对线性代数中一些常用工具的看法,比如说矩阵、行列式等。同时,文章命名为“理解矩阵”,也就是说这不是矩阵入门教程,而是与已经有一定的线性代数基础的读者一起探讨关于矩阵的其他理解方式,仅此而已。我估计基本上学过线性代数的读者都能够读懂这篇文章。

首先,我们不禁要追溯一个本源问题:矩阵是什么?

我们不妨回忆一下,矩阵是怎么产生的。矩阵可以看成是一个个向量的有序组合,这说明矩阵可以类比向量;但是向量又是怎么产生的?向量则是一个个数字的有序组合,这又把我们的研究方向指向了“数字是什么”这个问题上。比如,数字1是什么?它可以代表1米,可以代表1千克,也可以代表1分钟、1摄氏度甚至1个苹果。它为什么有这么多的表示意义?答案很简单,因为在本质上,它什么都不是,它就是数字1,一个记号,一个抽象的概念。正因为它抽象,它才可以被赋予各种各样直观的意义!回到矩阵本身,我们才会明白,矩阵的作用如此之大,就是因为书本上那个很枯燥的定义——矩阵就是m行n列的一个数表!它把矩阵抽象出来,让它得到了“进化”。它是一个更一般化的概念:一个向量可以看作一个矩阵,甚至一个数都可以看成一个矩阵,等等。

代数方面的理解

当然,上述说法是含糊的,我们还是需要确切知道它究竟有什么用?这可以从代数和几何的角度来分析,因为做到数形结合才是最完美的。首先我们知道数学最基本的元素就是数字,严格来说是自然数,如0,1,2,…;有了数字,我们就可以做到很多东西。但是数字是单一的,而我们很多时候都要批量处理一些类似的运算,比如同时要计算1+2,1+3,2+3,4+5这四个算式。不论是从记录还是从研究的角度来说,分开研究它们都是比较繁琐的。于是一种“批量”的记号产生了,我们记为(1,1,2,4)+(2,3,3,5),用两个不同记号记录它们,比如$\vec{A}=(1,1,2,4),\vec{B}=(2,3,3,5)$,我们就可以将它$\vec{A}+\vec{B}$。这样不论在研究还是记录方面都能够给我们方便。于是一个我们称之为“向量”的东西产生了,也就是说,从代数的角度来讲,向量是为了研究批量运算而产生的。但是向量并没有解决所有的批量运算的问题。比如3元一次方程组

$$
\begin{aligned} a_{11}x_{1}+a_{12}x_{2}+a_{13}x_{3}=b_{1}\ a_{21}x_{1}+a_{22}x_{2}+a_{23}x_{3}=b_{2}\ a_{31}x_{1}+a_{32}x_{2}+a_{33}x_{3}=b_{3} \end{aligned}
$$
单单用向量我们还是没有办法很好地研究这一类问题。于是我们就要想法子创造出一些新的记号,由于左边的系数的具有一定的排列顺序和统一的形式,我们不妨把它们单独写出来

$$
\begin{pmatrix} a_{11} & a_{12} & a_{13} \ a_{21} & a_{22} & a_{23} \ a_{31} & a_{32} & a_{33} \end{pmatrix}
$$
并用一个简单的符号$A$ 表示它,然后把未知数和右边的常数都分别写成向量形式$x=[x_{1},x_{2},x_{3}]^{\top}$ $b=[b_{1},b_{2},b_{3}]^{T}$(多加了上标T表示列向量)。我们期待上面的方程组可以写成一个简单的形式

$$
Ax=b
$$

由此我们可以定义一个3阶方阵乘以一个3维列向量的乘法了,这是一种纯粹的定义,是为了方便我们记录和研究的定义。在此基础上,我们就可以研究更多的东西,比如矩阵乘矩阵会得到什么?

同样,这里要研究的矩阵都是指n阶方阵这个最核心的东西,我们要先把核心问题研究透彻,不然一开始就考虑所有的繁杂的情况,容易让我们陷入迷惘中而不知所措。

在研究一般乘法之前,我们先来了解一下关于运算定律问题。我们知道在实数中,加法满足结合律和交换律,乘法满足结合律、交换律和分配律。哪些定律可以迁移到矩阵乘法中的呢?交换律是无法先验的,它是个定义问题,我可以定义它成立也可以定义不成立,但是为了运算的方便,我们还是希望它满足更多地运算定律,所以我们先来考虑结合律,希望它能够满足这一定律。也就是说

$$
(AB)x=A(Bx)
$$
其中BxBx$Bx$ 经是我们所熟知的运算(由定义而来),它将得到一个列向量,所以我们也可以轻易算出A(Bx)A(Bx)$A(Bx)$,从直观上来讲,ABAB$AB$ 该也是一个n阶方阵,我们可以先把它设出来,然后与列向量x进行运算,最后把两边的结果一一对应起来,就得到了ABAB$AB$ 个n阶方阵中各个元素的表达式。我们最终可以发现,它就是我们书本上定义的表达式。

以2阶方阵为例,令

$$
A= \begin{pmatrix} a & b\ c & d \end{pmatrix},\quad B=\begin{pmatrix} e & f\ g & h \end{pmatrix},\quad AB=\begin{pmatrix} p & q\ r & s \end{pmatrix}
$$
并令$x=[x,y]^{\top}$,那么$(AB)x$ 等于

$$
[px+qy,rx+sy]^{\top}
$$
而$Bx=[ex+fy,gx+hy]^{\top}$,那么$A(Bx)=[aex+afy+bgx+bhy,cex+cfy+dgx+dhy]^{\top}$

那么根据各个元素的对应,就得到$p=ae+bg,q=af+bh,r=ce+dg,s=cf+dh$。这就完成了2阶方阵乘法的定义。

现在我们就可以从代数的角度来讲,矩阵是为了简化批量线性运算的一个“终极武器”!这就是矩阵的一个比较直观和有用的代数意义。

如果根据我们这个定义去考虑交换律,我们会发现矩阵一般不符合交换律。这不能不说是一个遗憾。但是没关系,它服从结合律这一个事实,已经赋予了这个工具极大的力量。比如线性方程组$,我们有$By=B(Ax)=(BA)x$,如果我们想办法找到一个矩阵$B$,使得$BA=I$,那么就很棒了,因为我只要用矩阵$B$ 用于向量$y$ 可以得到方程组的解了,事实上这样的矩阵$B$ 存在的,这就是逆矩阵。要是没有结合律,这一切都免谈!

由于这是实数基本运算(线性运算)的“批量版”,那么我们就可以很自然地把实数的一些公式延伸为矩阵版(只要不是涉及到交换律就行)。比如,在实数中,我们有公式

$$
\frac{1}{1-x}=1+x+x^{2}+x^{3}+…\approx 1+x
$$

那么我们求矩阵的逆阵时,也有类似的公式

$$
(I-A)^{-1}=I+A+A^{2}+A^{3}+…\approx I+A
$$

其中I是单位矩阵,A是一个“比较小”的矩阵。至于“比较小”怎么定义,现在还说不清楚,可以认为是矩阵的行列式值比较小。类似的,根据

$$
\sqrt{1+x}\approx 1+\frac{1}{2}x
$$

也能够相应地给出$(I+\frac{1}{2}A)^{2}\approx I+A$,这是求矩阵“平方根”的一个近似公式。

得益于我们定义的矩阵乘法,批量的运算可以直接用单个量的运算公式进行,不用我们煞费苦心、绞尽脑汁地构思新的公式。这就是矩阵的强大所在!它在解决很多线性问题时有着奇迹般的美妙,最简单的例子莫过于线性方程组$Ax=y$ 解为$x=A^{-1} y$,解答方程组的时候就好像求解一元方程那样有简单的形式!还有一些关于指数的定义等等,以后在应用时会把它介绍的。它们都好像非常精美的“艺术品”

《新理解矩阵2》:矩阵是什么?

上一篇文章中我从纯代数运算的角度来讲述了我对矩阵的一个理解,可以看到,我们赋予了矩阵相应的运算法则,它就在代数、分析等领域显示出了巨大作用。但是纯粹的代数是不足够的,要想更加完美,最好是找到相应的几何对象能够与之对应,只有这样,我们才能够直观地理解它,以达到得心应手的效果。

几何理解

我假设读者已经看过孟岩的《理解矩阵》三篇文章,所以更多的细节我就不重复了。我们知道,矩阵A

$$
\begin{pmatrix}a_{11} & a_{12} \ a_{21} & a_{22}\end{pmatrix}
$$

事实上由两个向量$[a_{11},a_{21}]^T$ $[a_{12},a_{22}]^T$(这里的向量都是列向量)组成,它描述了一个平面(仿射)坐标系。换句话说,这两个向量其实是这个坐标系的两个基,而运算$y=Ax$ 是告诉我们,在$A$ 个坐标系下的x向量,在$I$ 标系下是怎样的。这里的$I$ 标系就是我们最常用的直角坐标系,也就是说,任何向量(包括矩阵里边的向量),只要它前面没有矩阵作用于它,那么它都是在直角坐标系下度量出来的。

(事实上,单位矩阵I是默认的直角坐标系,这一说法并非总是成立的,但是我们现在寻求直观的理解方式,我们就用最简单的东西来实行。)

太多的文字未必能够把问题说清楚,我们需要一张图来解释一下:

矩阵的几何意义

图上所用的矩阵A是
[3,2]
[1,3]
这构成了一个仿射坐标系,在这个坐标系下,有一个向量$x=[2,2]^T$,它在直角坐标系下测得的坐标为$[10,8]^T$,现在我们不难发现,直接用矩阵乘法来计算,有
$$
Ax=[3\cdot 2+2\cdot 2,1\cdot 2+3\cdot 2]^T=[10,8]^T
$$
正是我们所期待的!

为什么会有这样的特点?其实这源于我们对矩阵乘法的定义,反过来,如果我们用这样的几何方式来定义矩阵乘法,那么我们也将得到在书本上了解到的矩阵乘法计算公式。更高阶的矩阵也可以作同样的类比。推导过程只是一道很简单的练习题,读者不妨自己动笔尝试一下?

现在我们又回到孟岩文章上的说法了,对于矩阵作用于一个向量(对应的一个点),我们既可以看作点没有变,只不过是坐标系从直角坐标系变换为仿射坐标系而已;另一方面,我们也可以看做矩阵把直角坐标系的一个A’点“运动”(变换)到了A点。这两种说法都行,正如孟岩所说的“运动是相对的”。更正确地讲,两种说法都要同时被提及,才算是最好的理解。矩阵是一个点到另外一个点的变换,变换的方式就是坐标系的变换。

当然,上面只讨论了矩阵乘以向量的乘法,那么矩阵乘以矩阵呢?比如$AB$,我们就可以看作是矩阵$B$ 出了一个坐标系,但是这个坐标系的各个分量是在$A$ 标系下测量得到的,而$A$ 在直角坐标系下测量得到的,所以要把$B$ 各个分量(列向量)与矩阵A作乘法后,才得到了这个仿射坐标系在直角坐标系下的“像”。这很直接地导致了矩阵乘以矩阵的计算公式,也很显然地回答了“为什么n阶方阵只有与n阶方阵相乘才有意义”,因为两者要在同一空间中测量,才能够完整而唯一地把测量值确定下来。正如,在n+1维的空间中讨论n个n维向量是没有意义的,因为在n+1维空间中的观测者看来,它们只不过是一个“面”,多出的一个维度可以随意变化;在n维空间中讨论n+1维向量就更没有意义了,因为维度根本就不够用。

有了这个直观的几何意义,很多问题看起来几乎都是显然的了,比如那些行列式问题,还有相似矩阵等等,这将在下回谈到。

张量介绍

我们已经大概了解到,数字的有序组合产生了向量,向量的有序组合产生了矩阵。这样两个新构造出来的对象,作用一个比一个大。那么有人会联想到:矩阵的有序组合,就可以产生一个“立方阵”,它的功能会不会更加强大?更一般的,n维立方阵呢?这种联想是有道理的,数学上也有这样的研究对象,它就是张量

最通俗的说法,n阶张量就是一个n维立方阵,所以0阶张量就对应一个数,向量、矩阵分别对应1阶和2阶张量,我们所说的三维立方阵,就是3阶张量啦。当然,张量属于很高深的数学理论,它的性质和作用不可能这么简单就说清楚了。回想当年,爱因斯坦就是用张量分析作为工具,建立起他那伟大的广义相对论的。如果有机会的话,我们一定会重新造访它。

《新理解矩阵3》:行列式的点滴

亲爱的读者朋友们,科学空间版的理解矩阵已经来到了BoJone认为是最激动人心的部分了,那就是关于行列式的叙述。这部分内容没有在孟岩的文章中被谈及到,是我自己结合了一些书籍和网络资源而得出的一些看法。其中最主要的书籍是《数学桥》,而追本溯源,促进我研究这方面的内容的是matrix67的那篇《教材应该怎么写》。本文包含了相当多的直观理解内容,在我看来,这部分内容也许不是正统的观点,但是至少在某种程度上能够促进我们对线性代数的理解。

大多数线性代数引入行列式的方式都是通过讲解线性方程组的,这种方式能够让学生很快地掌握它的计算,以及给出了一个最实际的应用(就是解方程组啦)。但是这很容易让读者走进一个误区,让他们认为线性代数就是研究解方程组的。这样并不能让读者真正理解到它的本质,而只有当我们对它有了一个直观熟练的感觉,我们才能很好地运用它。

行列式的出现其实是为了判断一个矩阵是否可逆的,它通过某些方式构造出一个“相对简单”的函数来达到这个目的,这个函数就是矩阵的行列式。让我们来反思一下,矩阵可逆意味着什么呢?之前已经提到过,矩阵是从一个点到另外一个点的变换,那么逆矩阵很显然就是为了把它变换回来。我们还说过,“运动是相对的”,点的变换又可以用坐标系的变换来实现。但是,按照我们的直觉,不同的坐标系除了有那些运算上的复杂度不同(比如一般的仿射坐标系计算点积比直角坐标系复杂)之外,不应该有其他的不同了,用物理的语言说,就是一切坐标系都是平权的。那么给出一个坐标系,可以自然地变换到另外一个坐标系,也可以自然地将它变换回来。既然矩阵是这种坐标系的一个描述,那么矩阵不可逆的唯一可能性就是:

这个$n$ 矩阵的$n$ 列向量根本就构不成一个$n$ 空间的坐标系。

也就是说,它没有资格成为一个坐标系!(用专业术语说,这$n$ 向量是线性相关的。)

那么我们就想办法为某个$n$ 矩阵$A$ 造一个函数$|A|$,当$|A|$ 0时,就意味着这个矩阵没有资格成为一个坐标系,也就是说它不可逆。

先设$A=[\vec{c_1},\vec{c_2},…,\vec{c_n}]$,其中$\vec{v_i}$ 各个列向量。我们想想,哪些情况下矩阵A显然没有资格成为一个坐标系?

1、显然,能否构成一个坐标系,与每一个向量$\vec{v_i}$ 息息相关,那么$|A|$ 该是每一个向量$\vec{v_i}$ 函数才能满足要求。

2、简单起见,我们函数最好是线性的,也就是说$A=[\vec{c_1},…,\vec{v_i},…,\vec{c_n}]$,$A’=[\vec{c_1},…,\alpha \vec{v_i},…,\vec{c_n}]$,那么$|A’|=\alpha |A|$

3、构成n维坐标系需要$n$ 独立的向量,如果矩阵$A$ $n$ 向量中有两个相同的,那么它自然无法构成坐标系,也就是说此时$|A|=0$;

4、为了确定适当的缩放因子,也为了满足我们的直观感受,我们规定$|I|=1$。

让人意外的是,就凭以上三个性质,就可以确定唯一一个函数$|A|$ ,那个函数就是我们课本给出的行列式计算公式!当然,推导过程有点复杂,在这里不给出了,有兴趣的朋友可以用二阶和三阶矩阵演算一下,然后类比就行了。

让我们再回想一下课本是怎么介绍行列式的:首先是线性方程组给出行列式的计算公式,然后再证明行列式有各种各样的性质,比如“把其中一行乘上5,行列式的值也乘上5”等等。这与上面的说法(这其实也是标准的线性代数讲述方式)相比,未免有点本末倒置的味道。因为行列式本身就是由那些性质来定义的,我们又何必要用行列式的计算公式来反推那些什么性质呢?除了锻炼计算能力,我真的看不出有什么作用。

上面的内容还有一个非常直观的几何理解方式

三维空间中三个向量能够构成一个仿射坐标系的充要条件是什么?很简单,这三个向量必须不共面!因此,推广到n维空间,很显然有:

$n$ 向量可以构成一个坐标系就意味着这些向量不共面!

当然,$n$ 空间中的面不是指二维平面,而是$n-1$ 的东西,它与$n$ 体积相对。

还可以换一种说法

$n$ 向量可以构成一个坐标系就意味着这些向量构成的一个$n$ 平行立体(联想我们的平行六面体)体积不为0!

注意注意,这里涉及到了体积,为0与否关系到矩阵可逆性,这与行列式同出一辙。这个n维体积是否和行列式有关呢?我们不妨分析一下矩阵$A$ 构成的$n$ 立体的体积VV$V$ 些性质:

1、很明显,每一个向量$\vec{v_i}$ 是每一条边长,那么V应该是每一个向量$\vec{v_i}$ 函数;

2、当某个向量变为原来的$\alpha$ ,那么体积也应该变成原来的$|\alpha|$ ,加负号是因为向量是可以反向延伸的,但体积一定是正数;

3、有两个向量相同时,意味着这些向量“共面”,这时体积自然为0;

4、单位的n维立方体体积自然是1.

出人意料,这些性质几乎与行列式一一对应,除了第2点那个$\alpha$ 加绝对值之外。那么,这些性质最终迫使这个n维立体的体积为$V=ABS(|A|)$,为了不引起混乱,我用了ABS表示绝对值。

这真的是一个非常棒的事实,行列式有如此明显的几何意义,它可以用来求体积(二阶矩阵的时候就是平行四边形的面积)!这就不难解释我们一开始在解析几何课程上学到的平行六面体体积公式为什么是这样子的了。它完全就可以撇开什么点乘、叉乘而独立得到!还有很多例子,读者在学习到相关的知识时必然会感受到。但另一方面,这也反映了我们教材的糟糕:要是用我们讲述行列式的方式,我们要花多大功夫才能证明行列式就是体积?

《新理解矩阵4》:相似矩阵的那些事儿

这篇文章估计是这个系列最后一篇了,也许以后会继续谈到线性代数,但是将会独立开来讲述。本文主要讲的是相似矩阵的一些事情,本文的观点很是粗糙,自己感觉都有点模糊,因此请读者细细阅读。在孟岩的文章里头,它对矩阵及其相似有了一个非常精彩的描述:

“矩阵是线性空间中的线性变换的一个描述。在一个线性空间中,只要我们选定一组基,那么对于任何一个线性变换,都能够用一个确定的矩阵来加以描述。”

同样的,对于一个线性变换,只要你选定一组基,那么就可以找到一个矩阵来描述这个线性变换。换一组基,就得到一个不同的矩阵。所有这些矩阵都是这同一个线性变换的描述,但又都不是线性变换本身。

上述所有这些同一个线性变换的描述的矩阵互为相似矩阵。孟岩还提到那个相似矩阵的公式可以用一种非常直观的方式来证明,可是就没有后文了。我没有跟他联系过,但是我一直也在寻求这方面的直观理解。在翻阅了许多书籍之后,终于有了一个自己比较满意的答案。也许读者会感到意外的是,促使我得到这个理解的,不是数学著作,而是一本偏向物理的数《群论与量子力学的对称性》。

Part 1

首先来一个比较物理的理解:矩阵A描述了向量x到向量y的一个运动,即$y=Ax$;但是,这仅仅是在直角坐标系下测量的,在一个新的坐标系P之下,假设测量结果为$y’=Bx’$。

根据我们在前边给出的矩阵几何理解,在P坐标系下测量的$x’$,在直角坐标系测量为$x$,可以表示成$Px’=x$;同理有$Py’=y$。代入就得到:$Py’=APx’$,可以稍稍改成$Py’=P(P^{-1}AP)x’$,换句话说,在P坐标系下,从$x’$ $y’$ 运动用矩阵$B=P^{-1}AP$ 示,这就是A的一个相似矩阵!所以说,一族相似矩阵,只不过是同一个线性变换在不同坐标系下的一个测量结果而已。

Part 2

其实,相似矩阵还有一个相对直观的几何立体模型。我们知道一个矩阵A由n个列向量组成,它实际上给出了n维空间的一个n维平行方体(类比二维的平行四边形和三维的平行六面体)。而矩阵I实际上给出了一个n维单位方体。假设他们两个存在某种对应关系。

而矩阵A在新坐标系P下的测量结果为$P^{-1} A$,即$A=P(P^{-1}A)$;而I在P的测量结果为$I=P(P^{-1})$,也就是说,在新坐标系下,$P^{-1}$ $P^{-1}A$ 有对应关系。那么新坐标系下的单位方体对应什么呢?那就是

$
\begin{aligned}P^{-1} \to P^{-1}P=I \ P^{-1}A \to P^{-1}AP\end{aligned}
$

也就是说新坐标系下的单位方体对应着相似矩阵所描述的n维方体!

这压根儿就是配对原则嘛!

这就不难理解为什么相似矩阵的行列式值都相同了。行列式的几何意义就是体积,虽然矩阵A代表的立方体经过坐标变换后体积变了,但是单位方体的体积实则也变啦,也就是说,新坐标系下一切标度都变化了,但是从“数格子”的角度来说,格子数目是没有变化的,所以体积也就没有变化了。

伟大的矩阵

在物理学,几乎每一个领域都广泛地用到了矩阵,但是,与矩阵联系最紧密的学科当数量子力学。很多人都知道,量子力学有三种等价表达形式,一种是薛定谔的波动方程(就是我现在学习的),一种是海森堡的矩阵力学,最后一种是天才的费曼的路径积分。话说当年海森堡在构思量子力学时,线性代数这门课程已经发展得很丰富了,但他自己并没有学习到。不过他自己却“发明”了一个自称为“能量表格”的东西,用来作为描述他构思的工具。最后当他把论文提交给导师玻恩时,玻恩毫不客气地跟他说:“你这个新的能量表格,就是数学家早已研究过的矩阵。”呵呵,让人惊讶,矩阵力学的创始人居然不知矩阵为何物。后来海森堡补习了矩阵的知识,并和导师合作发表了矩阵力学的成果。

最近我看量子力学和狭义相对论的内容,发现两者的描述方式其实在很大程度上已经得到了统一,大家都是先讲一下基础知识,然后讲一下线性代数、群论等知识。最后都基本上归结为用矩阵和群论知识来分析了。我想这也是为了物理学统一描述的需要吧。让我觉得一点意外的是,这种综合的抽象模式,反倒让我感觉容易上手了。也许正是因为我是个数学爱好者吧。

最后总结一下我的这几篇《新理解矩阵》

这几篇文章很粗糙、放肆,很不成熟,甚至某些观点不一定正确,因为直观理解会给人一种以偏概全的感觉,忽略掉了抽象的巨大作用。但是我想只有在有了直观认识之后,才可以更熟练地运用它;更加全面的认识,也在这种直观的效果下慢慢感悟,慢慢积累起来的,我想数学史上线性代数知识的发展历程也是相似的,既然如此,我们为什么不按照历史的发展方式来学习它呢?