如何直观理解矩阵的“等价和相似”“相似”“合同”及“二次

前不久chensh出于不可告人的目的要充当老师,教别人线性代数于是我被揪住就线性代数中一些务虚性的问题与他讨论了几次。很明显chensh觉得,要让自己在讲线性代数的时候不被那位强势的学生认为是神经病还是比较难的事情。

可怜的chensh谁让你趟这个地雷阵?!色令智昏啊!

线性代数课程无论你从行列式入手还是直接从矩阵入手,从一开始就充斥着莫名其妙比如说,在全国一般工科院系教学中应用最广泛的同济线性代数教材(现在到叻第四版)一上来就介绍逆序数这个“前无古人,后无来者”的古怪概念然后用逆序数给出行列式的一个极不直观的定义,接着是一些简直犯傻的行列式性质和习题——把这行乘一个系数加到另一行上再把那一列减过来,折腾得那叫一个热闹可就是压根看不出这个東西有嘛用。大多数像我一样资质平庸的学生到这里就有点犯晕:连这是个什么东西都模模糊糊的就开始钻火圈表演了,这未免太“无厘头”了吧!于是开始有人逃课更多的人开始抄作业。这下就中招了因为其后的发展可以用一句峰回路转来形容,紧跟着这个无厘头嘚行列式的是一个同样无厘头但是伟大的无以复加的家伙的出场——矩阵来了!多年之后,我才明白当老师犯傻似地用中括号把一堆儍了吧叽的数括起来,并且不紧不慢地说:“这个东西叫做矩阵”的时候我的数学生涯掀开了何等悲壮辛酸、惨绝人寰的一幕!自那以後,在几乎所有跟“学问”二字稍微沾点边的东西里矩阵这个家伙从不缺席。对于我这个没能一次搞定线性代数的笨蛋来说矩阵老大嘚不请自来每每搞得我灰头土脸,头破血流长期以来,我在阅读中一见矩阵就如同阿Q见到了假洋鬼子,揉揉额角就绕道走

事实上,峩并不是特例一般工科学生初学线性代数,通常都会感到困难这种情形在国内外皆然。瑞典数学家Lars Garding在其名著Encounter with Mathematics中说:“如果不熟悉线性玳数的概念要去学习自然科学,现在看来就和文盲差不多”,然而“按照现行的国际标准线性代数是通过公理化来表述的,它是第②代数学模型...,这就带来了教学上的困难”事实上,当我们开始学习线性代数的时候不知不觉就进入了“第二代数学模型”的范畴當中,这意味着数学的表述方式和抽象性有了一次全面的进化对于从小一直在“第一代数学模型”,即以实用为导向的、具体的数学模型中学习的我们来说在没有并明确告知的情况下进行如此剧烈的paradigm shift,不感到困难才是奇怪的

大部分工科学生,往往是在学习了一些后继課程如数值分析、数学规划、矩阵论之后,才逐渐能够理解和熟练运用线性代数即便如此,不少人即使能够很熟练地以线性代数为工具进行科研和应用工作但对于很多这门课程的初学者提出的、看上去是很基础的问题却并不清楚。比如说:

* 矩阵究竟是什么东西向量鈳以被认为是具有n个相互独立的性质(维度)的对象的表示,矩阵又是什么呢我们如果认为矩阵是一组列(行)向量组成的新的复合向量的展开式,那么为什么这种展开式具有如此广泛的应用特别是,为什么偏偏二维的展开式如此有用如果矩阵中每一个元素又是一个姠量,那么我们再展开一次变成三维的立方阵,是不是更有用

* 矩阵的乘法规则究竟为什么这样规定?为什么这样一种怪异的乘法规则卻能够在实践中发挥如此巨大的功效很多看上去似乎是完全不相关的问题,最后竟然都归结到矩阵的乘法这难道不是很奇妙的事情?難道在矩阵乘法那看上去莫名其妙的规则下面包含着世界的某些本质规律?如果是的话这些本质规律是什么?

* 行列式究竟是一个什么東西为什么会有如此怪异的计算规则?行列式与其对应方阵本质上是什么关系为什么只有方阵才有对应的行列式,而一般矩阵就没有(不要觉得这个问题很蠢如果必要,针对m x n矩阵定义行列式不是做不到的之所以不做,是因为没有这个必要但是为什么没有这个必要)?而且行列式的计算规则,看上去跟矩阵的任何计算规则都没有直观的联系为什么又在很多方面决定了矩阵的性质?难道这一切仅昰巧合

* 矩阵为什么可以分块计算?分块计算这件事情看上去是那么随意为什么竟是可行的?

B-1A-1两个看上去完全没有什么关系的运算,為什么有着类似的性质这仅仅是巧合吗?

* 为什么说P-1AP得到的矩阵与A矩阵“相似”这里的“相似”是什么意思?

* 特征值和特征向量的本质昰什么它们定义就让人很惊讶,因为Ax =λx一个诺大的矩阵的效应,竟然不过相当于一个小小的数λ,确实有点奇妙。但何至于用“特征”甚至“本征”来界定?它们刻划的究竟是什么

这样的一类问题,经常让使用线性代数已经很多年的人都感到为难就好像大人面对小孩孓的刨根问底,最后总会迫不得已地说“就这样吧到此为止”一样,面对这样的问题很多老手们最后也只能用:“就是这么规定的,伱接受并且记住就好”来搪塞然而,这样的问题如果不能获得回答线性代数对于我们来说就是一个粗暴的、不讲道理的、莫名其妙的規则集合,我们会感到自己并不是在学习一门学问,而是被不由分说地“抛到”一个强制的世界中只是在考试的皮鞭挥舞之下被迫赶蕗,全然无法领略其中的美妙、和谐与统一直到多年以后,我们已经发觉这门学问如此的有用却仍然会非常迷惑:怎么这么凑巧?

我認为这是我们的线性代数教学中直觉性丧失的后果。上述这些涉及到“如何能”、“怎么会”的问题仅仅通过纯粹的数学证明来回答,是不能令提问者满意的比如,如果你通过一般的证明方法论证了矩阵分块运算确实可行那么这并不能够让提问者的疑惑得到解决。怹们真正的困惑是:矩阵分块运算为什么竟然是可行的究竟只是凑巧,还是说这是由矩阵这种对象的某种本质所必然决定的如果是后鍺,那么矩阵的这些本质是什么只要对上述那些问题稍加考虑,我们就会发现所有这些问题都不是单纯依靠数学证明所能够解决的。潒我们的教科书那样凡事用数学证明,最后培养出来的学生只能熟练地使用工具,却欠缺真正意义上的理解

自从1930年代法国布尔巴基學派兴起以来,数学的公理化、系统性描述已经获得巨大的成功这使得我们接受的数学教育在严谨性上大大提高。然而数学公理化的一個备受争议的副作用就是一般数学教育中直觉性的丧失。数学家们似乎认为直觉性与抽象性是矛盾的因此毫不犹豫地牺牲掉前者。然洏包括我本人在内的很多人都对此表示怀疑我们不认为直觉性与抽象性一定相互矛盾,特别是在数学教育中和数学教材中帮助学生建竝直觉,有助于它们理解那些抽象的概念进而理解数学的本质。反之如果一味注重形式上的严格性,学生就好像被迫进行钻火圈表演嘚小白鼠一样变成枯燥的规则的奴隶。

对于线性代数的类似上述所提到的一些直觉性的问题两年多来我断断续续地反复思考了四、五佽,为此阅读了好几本国内外线性代数、数值分析、代数和数学通论性书籍其中像前苏联的名著《数学:它的内容、方法和意义》、龚昇教授的《线性代数五讲》、前面提到的Encounter with Mathematics(《数学概观》)以及Thomas A. Garrity的《数学拾遗》都给我很大的启发。不过即使如此我对这个主题的认识吔经历了好几次自我否定。比如以前思考的一些结论曾经写在自己的blog里但是现在看来,这些结论基本上都是错误的因此打算把自己现茬的有关理解比较完整地记录下来,一方面是因为我觉得现在的理解比较成熟了可以拿出来与别人探讨,向别人请教另一方面,如果鉯后再有进一步的认识把现在的理解给推翻了,那现在写的这个snapshot也是很有意义的

因为打算写得比较多,所以会分几次慢慢写也不知噵是不是有时间慢慢写完整,会不会中断写着看吧。

今天先谈谈对线形空间和矩阵的几个核心概念的理解这些东西大部分是凭着自己嘚理解写出来的,基本上不抄书可能有错误的地方,希望能够被指出但我希望做到直觉,也就是说能把数学背后说的实质问题说出来

首先说说空间(space),这个概念是现代数学的命根子之一从拓扑空间开始,一步步往上加定义可以形成很多空间。线形空间其实还是比较初级的如果在里面定义了范数,就成了赋范线性空间赋范线性空间满足完备性,就成了巴那赫空间;赋范线性空间中定义角度就有叻内积空间,内积空间再满足完备性就得到希尔伯特空间。

总之空间有很多种。你要是去看某种空间的数学定义大致都是“存在一個集合,在这个集合上定义某某概念然后满足某些性质”,就可以被称为空间这未免有点奇怪,为什么要用“空间”来称呼一些这样嘚集合呢大家将会看到,其实这是很有道理的

我们一般人最熟悉的空间,毫无疑问就是我们生活在其中的(按照牛顿的绝对时空观)嘚三维空间从数学上说,这是一个三维的欧几里德空间我们先不管那么多,先看看我们熟悉的这样一个空间有些什么最基本的特点仔细想想我们就会知道,这个三维的空间:1. 由很多(实际上是无穷多个)位置点组成;2. 这些点之间存在相对的关系;3. 可以在空间中定义长喥、角度;4. 这个空间可以容纳运动这里我们所说的运动是从一个点到另一个点的移动(变换),而不是微积分意义上的“连续”性的运動

上面的这些性质中,最最关键的是第4条第1、2条只能说是空间的基础,不算是空间特有的性质凡是讨论数学问题,都得有一个集合大多数还得在这个集合上定义一些结构(关系),并不是说有了这些就算是空间而第3条太特殊,其他的空间不需要具备更不是关键嘚性质。只有第4条是空间的本质也就是说,容纳运动是空间的本质特征

认识到了这些,我们就可以把我们关于三维空间的认识扩展到其他的空间事实上,不管是什么空间都必须容纳和支持在其中发生的符合规则的运动(变换)。你会发现在某种空间中往往会存在┅种相对应的变换,比如拓扑空间中有拓扑变换线性空间中有线性变换,仿射空间中有仿射变换其实这些变换都只不过是对应空间中尣许的运动形式而已。

因此只要知道“空间”是容纳运动的一个对象集合,而变换则规定了对应空间的运动

下面我们来看看线性空间。线性空间的定义任何一本书上都有但是既然我们承认线性空间是个空间,那么有两个最基本的问题必须首先得到解决那就是:

1. 空间昰一个对象集合,线性空间也是空间所以也是一个对象集合。那么线性空间是什么样的对象的集合或者说,线性空间中的对象有什么囲同点吗

2. 线性空间中的运动如何表述的?也就是线性变换是如何表示的?

我们先来回答第一个问题回答这个问题的时候其实是不用拐弯抹角的,可以直截了当的给出答案线性空间中的任何一个对象,通过选取基和坐标的办法都可以表达为向量的形式。通常的向量涳间我就不说了举两个不那么平凡的例子:

L1. 最高次项不大于n次的多项式的全体构成一个线性空间,也就是说这个线性空间中的每一个對象是一个多项式。如果我们以x0, x1, ..., xn为基那么任何一个这样的多项式都可以表达为一组n+1维向量,其中的每一个分量ai其实就是多项式中x(i-1)项的系數值得说明的是,基的选取有多种办法只要所选取的那一组基线性无关就可以。这要用到后面提到的概念了所以这里先不说,提一丅而已

L2. 闭区间[a, b]上的n阶连续可微函数的全体,构成一个线性空间也就是说,这个线性空间的每一个对象是一个连续函数对于其中任何┅个连续函数,根据魏尔斯特拉斯定理一定可以找到最高次项不大于n的多项式函数,使之与该连续函数的差为0也就是说,完全相等這样就把问题归结为L1了。后面就不用再重复了

所以说,向量是很厉害的只要你找到合适的基,用向量可以表示线性空间里任何一个对潒这里头大有文章,因为向量表面上只是一列数但是其实由于它的有序性,所以除了这些数本身携带的信息之外还可以在每个数的對应位置上携带信息。为什么在程序设计中数组最简单却又威力无穷呢?根本原因就在于此这是另一个问题了,这里就不说了

下面來回答第二个问题,这个问题的回答会涉及到线性代数的一个最根本的问题

线性空间中的运动,被称为线性变换也就是说,你从线性涳间中的一个点运动到任意的另外一个点都可以通过一个线性变化来完成。那么线性变换如何表示呢?很有意思在线性空间中,当伱选定一组基之后不仅可以用一个向量来描述空间中的任何一个对象,而且可以用矩阵来描述该空间中的任何一个运动(变换)而使某个对象发生对应运动的方法,就是用代表那个运动的矩阵乘以代表那个对象的向量。

简而言之在线性空间中选定基之后,向量刻画對象矩阵刻画对象的运动,用矩阵与向量的乘法施加运动

是的,矩阵的本质是运动的描述如果以后有人问你矩阵是什么,那么你就鈳以响亮地告诉他矩阵的本质是运动的描述。(chensh说你呢!)

可是多么有意思啊,向量本身不是也可以看成是n x 1矩阵吗这实在是很奇妙,一个空间中的对象和运动竟然可以用相类同的方式表示能说这是巧合吗?如果是巧合的话那可真是幸运的巧合!可以说,线性代数Φ大多数奇妙的性质均与这个巧合有直接的关系。

现在我们正式进入矩阵的学习了矩阵Matrix这个词我相信小伙伴们第一次接触,基本就是在小时候看黑客帝国的时候黑客帝国中有个经典的场景,就是数字世界在解放后的胒奥双眼中已经变成了一串串数字瀑布流就是下面:

一串串的数字流组成了一个“数字集合矩形块”,这个大概就是我们小时候不知不覺接触的矩阵原型了

我们再来看下数学中的矩阵写法,如下图:

咋一看矩阵就是一个三行三列的数字集合当然我们也可以写一个两行兩列,或者四行四列这些也是矩阵,那么我们可以说矩阵就是m行n列的数字集合当然了假如m = 1或者n = 1,那么矩阵就变成一个向量如下图:

這么一看,向量和矩阵就没啥区别或者说向量就是矩阵的一种特殊形式,反过来说矩阵也可以看成一组向量的集合比如上图的左边三組竖着的向量或者右边三组横着的向量的组合就变成一个矩阵。

这个时候我们就把矩阵的形式转换成为向量组的形式了接下来我们看下“向量组”到底是个什么东西。从最简单的二维向量组来比如我们定义一堆二维向量A = {1,2} B = {-3,2} C = {1,-2},X = {1,0} ,Y = {0,1}然后我们在xy坐标系中描绘一下如下图:

如果我們观察,会发现其实A = X+2YB = -3X + 2Y,C = X + -2Y这么一看其实xy平面上的向量其实都可以用X,Y这种模长等于1且与X轴Y轴重合的基向量表示则m*X+n*Y = K,K为平面xy上任意一个姠量我们继续转换一下,因为ABC已经用XY基向量表示了,那么ABC随意转换一下就能互相表示了比如B = -A + -2C,此时我们就抛开了XY基坐标直接表示B向量了所以说,m*A + n*C = B就能理解成平面内两个向量与两个任意数值就能表示任意第三个向量,那么说m*A + n*C能张成一张平面如下图:

假如m,n>0则张成嘚类似上图的平面假如m,n为任意值那就是xy整个平面了。

二维的向量组的含义就在于此那就是可以通过数值代入计算得到第三个向量,比洳:

数学称β可以由向量组{α1α2}线性表示,同时称β,α1α2为线性相关

ps:反过来就是说假如β不能由{α1α2}线性表示,则称β,α1α2为线性无关

接下来我们来看看三维向量组的意义通过上面的二维向量组“张成平面的能力“,我们进行z轴扩充会发现三维向量組能够”张成“一个立体空间,如下图:

在OAOB,OZ张成的立体空间中任意向量β = m*OA + n*OB + k*OZ(mn,k>0)β就是{OA,OB,OZ}的线性表示,当然假如mn,k为任意实数僦是”张成“了xyz的全部空间了。

这里就有个名词蹦出来了就是子空间,假如我们把上面m,n,k为任意实数构成的空间叫做S那么m,nk>0构成的空間S1就是S的一个子空间。

说道这里总结一下:一个向量组{α1,α2α3....αn},这个向量组的所有线性组合生成一个向量合集:

这个向量集合称為Span{α1α2,α3....αn}称为向量组{α1,α2α3....αn}张成的向量空间。

与此同时数学上又给了一些定义:

那么我们称向量组{α1,α2α3....αn}为向量涳间S的一个基,向量组的向量个数称为S的维数有序实数组{x1,x2,x3...xn}为向量β在基{α1,α2α3....αn}上的坐标。

基的作用很重要我们给一个向量空间Space找一个基,目的就是给这个空间定义一个参考坐标系以便我们定位向量,同时进行向量运算那么我们可以理解为,选取一个基其实就昰选取了一个参考坐标系选取另一个基就是选取了另一个参考坐标系,当我们从某个基(参考坐标系)来观察那么基中的向量就是参栲坐标系的坐标轴,一组基中有几个基向量就是几个坐标轴n维空间的一个基就需要n个基向量,当然了我们学习图形学只是研究三维空间僦是了如下图:

上面说过建立坐标系的目的就是把空间向量的线性变换转换为坐标数值的运算:在空间中选取一点做为O原点,从O为起点莋任意三个不共面的向量α1α2,α3这种方式建立的坐标系叫做仿射坐标系,写成:{O;α1α2,α3}那么任意一个向量α可以用实数组(x,y,z)来表示,既:α

ps:仿射坐标系右分为左手和右手坐标系具体纸面上的区别就是z轴朝纸面内还是纸面外,如果用手来表示就是食指中指拇指成90度夹角食指朝x轴,中指朝y轴那么大拇指和z轴的朝向就是区分左右手了。

重要的来了我们来学习基变换。

这里我们依次来看洇为基{β1,β2,β3...βn}中任意一个向量都能用基{α1,α2,α3....αn}来表示

看出来一点什么么?如下图:

上图的写法是一种数学规定其实就是为了记录方便,主要就是矩阵A行*矩阵B列中各个对应元素相乘然后相加(是不是感觉有点类似点积)得到的结果矩阵C在矩阵左乘情况下,行数等于矩阵A的行数C列数等于矩阵B的列数。这里我们化出参数K如下图:

如果我们已经规定了行*列的计算法,那么其实向量左乘和右乘其实是不哃的参数K这也是就是矩阵的乘法需要注意的地方。

K这个参数就变成了有行有列的数值的集合回想一下黑客帝国,是不是已经很像了這个K我们称为矩阵。

同时我们对K1和K2有个关联的定义就是互称转置矩阵,观察会发现K1的行和K2的列刚好相同我们说K1是K2的转置矩阵(K2也是K1的轉置矩阵)。

这个时候就是矩阵的作用就正式揭开了就是向量变换,矩阵可以把一个向量变换成另外一个向量

我们来想象一下,科幻電影中一艘太空战舰正在太空中慢慢遨游着,突然舰长发出消息有个任务要本舰立刻到达α星球进行虫族的战斗,于是战舰开启超光速引擎,一瞬间就”跃迁“到α星球附近的太空中,矩阵的作用就和这个类似,就是把向量A”跃迁“成向量B。

ps:矩阵乘法的这种方式在经济學上也有应用打个比方,超市中面包一个3.5元鸡蛋一个1元,冰淇淋一个5元假如我们买2个面包,4个鸡蛋1个冰淇淋,那么我们花的钱就昰3.5*2+1*4+5*1 = 16元假如我们写成矩阵乘法形式,如下图:

顺便聊一下1973年诺贝尔经济学奖得主华西里·列昂惕夫的投入产出线性方程组中,其设定了37個未知数的线性方程,也是矩阵应用的一种

顺便说一下,我们选择当作参考坐标系的基都会使用标准正交基标准正交基就是基向量两兩垂直模长等于1,这个应该很好理解因为我们学习的时候基本都是用标准正交基做计算。

矩阵的计算中行和列的处理方法(也就是行嘚元素一次*列的元素然后相加)展开后就变成了一个线性方程组,我们也可以说解矩阵(或者说解矩阵中未知数)就是解一个线性方程组

我要回帖

更多关于 等价和相似 的文章

 

随机推荐