说来惭愧,自己以前对于一些自然科学课程的学习方式确实不太正确,无论是在学习《线性代数》还是《矩阵论》,还是之前高中、本科学习的其他自然科学课程时,只求如何解答拿分而不求深入理解。这也是随着做科研时间的增加,涉及的知识面越来越广,这些弊端也就越发显露。如果这个过程颠倒,先通过实际应用让你明白学习这些课程的意义所在,这样或许可以让你带有目的性地去学习。最近在看《矩阵论》时,看到了孟岩大佬的《理解矩阵》,个人感觉学习一门课程就应该以此方式学习,所以整理了一下学习笔记,下面的内容大部分出于孟岩大佬在《理解矩阵》三节中的内容(原本打算自己浓缩一下,但是发现作者写的内容都是层层递进,连贯性比较强,所以基本上都是复制的),传送门:
理解矩阵(一)
理解矩阵(二)
理解矩阵(三)
学习一门学问,最重要的是把握主干内容,迅速建立对于这门学问的整体概念,不必一开始就考虑所有的细枝末节和特殊情况,自乱阵脚。
前序
很多人能够很熟练地解答各种线性代数的难题,或者以线性代数为工具进行各种科研和应用工作,但是对于这门课程初学者提出的问题、看上起很基础却无法回答,例如:
-
矩阵究竟是什么东西?向量可以被认为是具有n个相互独立的性质(维度)的对象的表示,矩阵又是什么呢?我们如果认为矩阵是一组列(行)向量组成的新的复合向量的展开式,那么为什么这种展开式具有如此广泛的应用?特别是,为什么偏偏二维的展开式如此有用?如果矩阵中每一个元素又是一个向量,那么我们再展开一次,变成三维的立方阵,是不是更有用?
-
矩阵的乘法规则究竟为什么这样规定?为什么这样一种怪异的乘法规则却能够在实践中发挥如此巨大的功效?很多看上去似乎是完全不相关的问题,最后竟然都归结到矩阵的乘法,这难道不是很奇妙的事情?难道在矩阵乘法那看上去莫名其妙的规则下面,包含着世界的某些本质规律?如果是的话,这些本质规律是什么?
-
行列式究竟是一个什么东西?为什么会有如此怪异的计算规则?行列式与其对应方阵本质上是什么关系?为什么只有方阵才有对应的行列式,而一般矩阵就没有(不要觉得这个问题很蠢,如果必要,针对m x n矩阵定义行列式不是做不到的,之所以不做,是因为没有这个必要,但是为什么没有这个必要)?而且,行列式的计算规则,看上去跟矩阵的任何计算规则都没有直观的联系,为什么又在很多方面决定了矩阵的性质?难道这一切仅是巧合?
-
矩阵为什么可以分块计算?分块计算这件事情看上去是那么随意,为什么竟是可行的?
-
对于矩阵转置运算AT,有(AB)T = BTAT,对于矩阵求逆运算A-1,有(AB)-1 = B-1A-1。两个看上去完全没有什么关系的运算,为什么有着类似的性质?这仅仅是巧合吗?
-
为什么说P-1AP得到的矩阵与A矩阵“相似”?这里的“相似”是什么意思?
-
特征值和特征向量的本质是什么?它们定义就让人很惊讶,因为Ax =λx,一个诺大的矩阵的效应,竟然不过相当于一个小小的数λ,确实有点奇妙。但何至于用“特征”甚至“本征”来界定?它们刻划的究竟是什么?
对于这些问题,经常会使得使用线性代数多年的人感到为难。所以只能用“就是这么规定的,你记住会用就行”来敷衍。即使通过纯粹的数学证明也很难回答,不能使提问者满意,这就是在线性代数教学中直觉性丧失的后果。包括我所学习的课程中,印象中的课堂教学都是通过介绍定理,数学证明开始和结束的。所以说,帮助学生建立起直觉,有助于理解那些抽象的概念,进而理解数学的本质。
线性空间
首先说说空间(space),这个概念是现代数学的命根子之一,从拓扑空间开始,一步步往上加定义,可以形成很多空间。线形空间其实还是比较初级的,如果在里面定义了范数,就成了赋范线性空间。赋范线性空间满足完备性,就成了巴那赫空间;赋范线性空间中定义角度,就有了内积空间,内积空间再满足完备性,就得到希尔伯特空间。
总之,空间有很多种。你要是去看某种空间的数学定义,大致都是“存在一个集合,在这个集合上定义某某概念,然后满足某些性质”,就可以被称为空间。这未免有点奇怪,为什么要用“空间”来称呼一些这样的集合呢?大家将会看到,其实这是很有道理的。
我们一般人最熟悉的空间,毫无疑问就是我们生活在其中的(按照牛顿的绝对时空观)的三维空间,从数学上说,这是一个三维的欧几里德空间,我们先不管那么多,先看看我们熟悉的这样一个空间有些什么最基本的特点。仔细想想我们就会知道,这个三维的空间:1. 由很多(实际上是无穷多个)位置点组成;2. 这些点之间存在相对的关系;3. 可以在空间中定义长度、角度;4. 这个空间可以容纳运动,这里我们所说的运动是从一个点到另一个点的移动(变换),而不是微积分意义上的“连续”性的运动,
上面的这些性质中,最最关键的是第4条。第1、2条只能说是空间的基础,不算是空间特有的性质,凡是讨论数学问题,都得有一个集合,大多数还得在这个集合上定义一些结构(关系),并不是说有了这些就算是空间。而第3条太特殊,其他的空间不需要具备,更不是关键的性质。只有第4条是空间的本质,也就是说,容纳运动是空间的本质特征。
认识到了这些,我们就可以把我们关于三维空间的认识扩展到其他的空间。事实上,不管是什么空间,都必须容纳和支持在其中发生的符合规则的运动(变换)。你会发现,在某种空间中往往会存在一种相对应的变换,比如拓扑空间中有拓扑变换,线性空间中有线性变换,仿射空间中有仿射变换,其实这些变换都只不过是对应空间中允许的运动形式而已。
因此只要知道,“空间”是容纳运动的一个对象集合,而变换则规定了对应空间的运动。
下面我们来看看线性空间。线性空间的定义任何一本书上都有,但是既然我们承认线性空间是个空间,那么有两个最基本的问题必须首先得到解决,那就是:
-
空间是一个对象集合,线性空间也是空间,所以也是一个对象集合。那么线性空间是什么样的对象的集合?或者说,线性空间中的对象有什么共同点吗?
-
线性空间中的运动如何表述的?也就是,线性变换是如何表示的?
我们先来回答第一个问题,回答这个问题的时候其实是不用拐弯抹角的,可以直截了当的给出答案。线性空间中的任何一个对象,通过选取基和坐标的办法,都可以表达为向量的形式。向量是很厉害的,只要你找到合适的基,用向量可以表示线性空间里任何一个对象。这里头大有文章,因为向量表面上只是一列数,但是其实由于它的有序性,所以除了这些数本身携带的信息之外,还可以在每个数的对应位置上携带信息。为什么在程序设计中数组最简单,却又威力无穷呢?根本原因就在于此。这是另一个问题了,这里就不说了。
下面来回答第二个问题,这个问题的回答会涉及到线性代数的一个最根本的问题。
线性空间中的运动,被称为线性变换。也就是说,你从线性空间中的一个点运动到任意的另外一个点,都可以通过一个线性变化来完成。那么,线性变换如何表示呢?很有意思,在线性空间中,当你选定一组基之后,不仅可以用一个向量来描述空间中的任何一个对象,而且可以用矩阵来描述该空间中的任何一个运动(变换)。而使某个对象发生对应运动的方法,就是用代表那个运动的矩阵,乘以代表那个对象的向量。
简而言之,在线性空间中选定基之后,向量刻画对象,矩阵刻画对象的运动,用矩阵与向量的乘法施加运动。
矩阵和线性变换
所谓变换,就是空间中一个点到另一个点的跃迁。
矩阵的完整定义为:矩阵是线性空间中的线性变换的一个描述。在一个线性空间中,只要我们选定了一组基,那么对于任何一个线性变换,都能用一个确定的矩阵加以描述。
同样的,对于一个线性变换,只要选定了一组基,那么就可以找到一个矩阵来描述这个线性变换。换一组基,就得到一个不同的矩阵,所有的这些矩阵都是这同一个线性变换的描述,但又都不是线性变换本身。
类比作者举的例子:在给一头猪拍照时,从不同角度拍摄可以得到从多个角度对这头猪的描述,但是这些描述并不是这头猪本身。
既然这样的话,给定两个矩阵,怎么判断它们是描述同一线性变换的呢?定理就是:若矩阵A和B是同一线性变换T的两个不同描述(选定的基不同,也就是坐标系不同,所以会不同),则一定能找到一个非奇异(方阵,行列式不为零)矩阵P,使得A与B之间满足:
A
=
P
−
1
B
P
A = P^{-1}BP
A=P−1BP,也即是矩阵A与B相似,所以可以这么理解相似矩阵:所谓相似矩阵,就是对同一个线性变换的不同描述矩阵。这样的话,就是同一头猪(线性变换)的不同角度的照片(矩阵)也可以成为相似照片。而上面的特征矩阵P就是A矩阵所基于的基和B矩阵所基于的基,这两组基之间的变换关系。
到现在的话就明白了,一组相似矩阵都是同一个线性变换的描述。这样的话,再来看研究生的《矩阵论》课程,其中讲到的各种各样的相似变换,例如相似标准型、对角化之类的内容,都要求变换之后得到的矩阵与之前的矩阵相似,为的就是保证变换前后的两个矩阵是描述同一个线性变换的。之所以要进行这种相似变换,目的是有些描述矩阵比其他的一般矩阵性质更好。再拿猪的例子,一头猪拍摄的一组照片毕竟也是有美丑之分的。
所以到现在为止,矩阵作为线性变换的描述基本上说清楚了,另外就是,矩阵不仅可以作为线性变换的描述,而且可以作为一组基的描述。作为变换的矩阵,不但可以把线性空间中的一个点给变换到另一个点去,而且也能把线性空间中的一个基(坐标系)变换到另一个基(坐标系)中去。而且变换点和变换坐标系有异曲同工的效果。
总结前面知识:
- 首先有空间,空间可以容纳对象运动的。一种空间对应一类对象。
- 有一种空间叫线性空间,线性空间是容纳向量对象运动的。
- 运动是瞬时的,因此也被称为变换。
- 矩阵是线性空间中运动(变换)的描述。
- 矩阵与向量相乘,就是实施运动(变换)的过程。
- 同一个变换,在不同的坐标系下表现为不同的矩阵,但是它们的本质是一样的,所以本征值相同。
只考虑n维线性空间的n阶非奇异矩阵。一组矩阵就是由一组向量组成的,而且如果矩阵非奇异的话(每组向量都是线性无关的),也就是可以成为线性空间的一个坐标系,这样矩阵就描述了一个坐标系。前面说了矩阵是描述运动的(线性变换),而这并不矛盾,因为运动等价于坐标系变换,或者固定坐标系下的一个对象的变换等价于固定对象所处的坐标系的变换,也就是运动是相对的。
对坐标系施加变换的方法,就是让表示那个坐标系的矩阵与表示那个变化的矩阵相乘。
从变换和坐标系的观点解释矩阵乘法M×N:
1、从变换的观点看,对坐标系N施加M变换,就是把组成坐标系N的每一个向量施加M变换。
2、从坐标系的观点看,在M坐标系中表现为N的另一个坐标系,这也归结为,对N坐标系基的每一个向量,把它在I坐标系中的坐标找出来,然后汇成一个新的矩阵。
矩阵M的行列式实际上是组成M的各个向量按照平行四边形法则搭成一个n维立方体的体积。