线性代数导论神奇的矩阵
(function(){
var cover = "http://mmbiz.qpic.cn/mmbiz/dcEP2tDMibcd7qzGmpLDA4PdmMWJbgsINT8DNnpicOicpsTsvtL7Bibsf0nqIicBhXl8CN9KrVerph29EMSFz1mJgew/0?wx_fmt=jpeg";
var tempImg = document.createElement('img');
tempImg.setAttribute('class', 'rich_media_thumb');
tempImg.setAttribute('id', 'js_cover');
tempImg.setAttribute('data-backsrc', cover);
tempImg.setAttribute('src', cover);
tempImg.setAttribute('onerror', 'this.parentNode.removeChild(this)');
document.getElementById('media').appendChild(tempImg);
})();
这里只是整理了孟岩老师的《理解矩阵》和任广千、胡翠芳老师的《线性代数的几何意义》,在改正一些错误的基础上,前一部分基本忠实原文。但是本文并不是一次简单的复制粘贴,我在最后一部分加入了自己的一些感悟和理解,分别对矩阵的乘法,等价,相似、对角化等做出了讨论。文中重要的内容处采用楷体加粗,以示区分。可以说,本文是对原来文章的一次整理和升华。这里只是出于一种对数学的爱好!有兴趣的读者建议阅读原文,希望
不会引起读者朋友的拍板砖。
本文的大部分内容取材于David C.Lay的《线性代数及其应用》、孟岩老师的《理解矩阵》、任广千、胡翠芳老师的《线性代数的几何意义》、维基百科、范崇金、王锋老师的《线性代数》(也就是我们学校的教材,我感觉这是一本不错的教材,讲解很透彻)。由于线性代数大家都学过,没有秘密可言。数学的好经验应该大家共享,我们自己也是这么学来的。作者愿意公开本文的电子文档。
版权声明如下:
(1)读者可以任意拷贝、修改本书的内容,但不可以篡改作者及所属单位。
(2)未经作者许可,不得出版或大量印发本文。
(3)如果你有好的修改建议,或者也写了一些心得体会,欢迎联系我,与大家共享。
由于本人水平有限, 错误在所难免, 欢迎读者对本文提出批评建议。 相信每一次的思考,
不管对错,都能对你的理解做出贡献。希望这篇拙作能起到抛砖引玉的作用。
谨以此文献给我的母校哈尔滨工程大学,作为一份建校六十周年的纪念!
绪论
学过线性代数的人都感觉到,线性代数带来的困惑实在太多了:对于线性代数,无论你从行列式入手还是直接从矩阵入手,从一开始就充斥着莫名其妙。比如说,在全国一般工科院系教学中应用最广泛的同济线性代数教材,一上来就介绍逆序数这个“前无古人,后无来者”的古怪概念,然后用逆序数给出行列式的一个极不直观的定义,接着是一些简直犯傻的行列式性质和习题——把这行乘一个系数加到另一行上,再把那一列减过来,折腾得那叫一个热闹,可就是压根看不出这个东西有嘛用。大多数像我一样资质平庸的学生到这里就有点犯晕:连这是个什么东西都模模糊糊的,就开始钻火圈表演了,这未免太“无厘头”了吧!于是开始有人逃课,更多的人开始抄作业。这下就中招了,因为其后的发展可以用一句峰回路转来形容,紧跟着这个无厘头的行列式的,是一个同样无厘头但是伟大的无以复加的家伙的出场——矩阵来了!多年之后,我才明白,当老师犯傻似地用中括号把一堆傻了吧叽的数括起来, 并且不紧不慢地说: “这个东西叫做矩阵”的时候, 我的数学生涯掀开了何等悲壮辛酸、惨绝人寰的一幕!自那以后,在几乎所有跟“学问”二字稍微沾点边的东西里,矩阵这个家伙从不缺席。对于我这个没能一次搞定线性代数的笨蛋来说,矩阵老大的不请自来每每搞得我灰头土脸,头破血流。
要想提高自己的专业水平,你肯定深感数学能力的重要。随便打开一篇专著或论文,满纸的微分方程、矩阵扑面而来。竭力迎头而上,每每被打得灰头土脸、晕头转向。我天生就不是搞数学的?我的智力有问题吗?
太失望了,太伤自尊了。转头看看周围,莫不雷同。大多的工程师们靠经验来工作,经验靠时间或试验来积累。数学应用的层次最多就是高中水平。也有硕士博士级的牛人,但也少见把数学工具在工作中应用的得心应手、手到擒来的。
数学工具在科技实践中缺失的严重,导致我们的科技创新能力的严重缺失。普遍现象,绝对的。返回来想一想,我的智力应该没问题,重点大学都毕业了,能有多严重的问题?所有的工程师们、 大学毕业生们的智力也没问题。 问题是大家没把数学学好, 没有真正掌握它。
为啥没有在四年的大学阶段学好《线代》呢?要知道,学生是通过高考百里挑一录取的,智力应是足够正常的。事实上,我并不是特例。一般工科学生初学线性代数,通常都会感到困难。这种情形在国内外皆然。
我认为, 这是我们的线性代数教学中直觉性丧失的后果。 上述这些涉及到“如何能”、 “怎么会”的问题,仅仅通过纯粹的数学证明来回答,是不能令提问者满意的。比如,如果你通过一般的证明方证了矩阵分块运算确实可行,那么这并不能够让提问者的疑惑得到解决。他们真正的困惑是:矩阵分块运算为什么竟然是可行的?究竟只是凑巧,还是说这是由矩阵这种对象的某种本质所必然决定的?如果是后者, 那么矩阵的这些本质是什么?只要对上述那些问题稍加考虑,我们就会发现,所有这些问题都不是单纯依靠数学证明所能够解决的。像我们的教科书那样,凡事用数学证明,最后培养出来的学生,只能熟练地使用工具,却欠缺真正意义上的理解。
自从 1930 年代法国布尔巴基学派兴起以来,数学的公理化、系统性描述已经获得巨大的成功,这使得我们接受的数学教育在严谨性上大大提高。然而数学公理化的一个备受争议的副作用, 就是一般数学教育中直觉性的丧失。 数学家们似乎认为直觉性与抽象性是矛盾的,因此毫不犹豫地牺牲掉前者。然而包括我本人在内的很多人都对此表示怀疑,我们不认为直
觉性与抽象性一定相互矛盾,特别是在数学教育中和数学教材中,帮助学生建立直觉,有助于它们理解那些抽象的概念,进而理解数学的本质。反之,如果一味注重形式上的严格性,学生就好像被迫进行钻火圈表演的小白鼠一样,变成枯燥的规则的奴隶。
”我们在小学和中学的学习阶段,老师常常也讲一些抽象概念所对应的几何意义,为何到了大学我们的大脑就一下子高度抽象起来了?把形象仍得远远的, 象瘟疫一样躲着他?目的是训练抽象思维?最终实际结果呢?不可否认,大学毕业后大家确实是抽象了,抽象得只会夸夸其谈讲理论不会干具体活了。既然你具体的活计不会干那干脆就专搞抽象的理论去嘛,结果也搞不了,为啥?只会做做过的抽象的数学题不会发明创造,没学会真正的抽象,
真是越抽象越糊涂。
事实上,当我们开始学习线性代数的时候,不知不觉就进入了 “第二代数学模型”的范畴当中,这意味着数学的表述方式和抽象性有了一次全面的进化,对于从小一直在“第一代数学模型”,即以实用为导向的、具体的数学模型中学习的我们来说,在没有并明确告知的情况下进行如此剧烈的 paradigm shift,不感到困难才是奇怪的。
我觉得,抽象和形象是相辅相成,缺一不可的。由形象而抽象,再由抽象到形象,人的知识结构螺旋架才能旋转而上,达到越来越高的知识峰巅。
大部分工科学生,往往是在学习了一些后继课程,如数值分析、数学规划、矩阵论之后,才逐渐能够理解和熟练运用线性代数。即便如此,不少人即使能够很熟练地以线性代数为工具进行科研和应用工作,但对于很多这门课程的初学者提出的、看上去是很基础的问题却并不清楚。比如说:
* 矩阵究竟是什么东西?向量可以被认为是具有 n 个相互独立的性质(维度)的对象的表示,矩阵又是什么呢?我们如果认为矩阵是一组列(行)向量组成的新的复合向量的展开式,那么为什么这种展开式具有如此广泛的应用?特别是, 为什么偏偏二维的展开式如此有用?如果矩阵中每一个元素又是一个向量,那么我们再展开一次,变成三维的立方阵,是不是更有用?
* 矩阵的乘法规则究竟为什么这样规定?为什么这样一种怪异的乘法规则却能够在实践中发挥如此巨大的功效?很多看上去似乎是完全不相关的问题,最后竟然都归结到矩阵的乘法,这难道不是很奇妙的事情?难道在矩阵乘法那看上去莫名其妙的规则下面,包含着世界的某些本质规律?如果是的话,这些本质规律是什么?
* 行列式究竟是一个什么东西?为什么会有如此怪异的计算规则?行列式与其对应方阵本质上是什么关系?为什么只有方阵才有对应的行列式,而一般矩阵就没有(不要觉得这个问题很蠢,如果必要,针对 m× n 矩阵定义行列式不是做不到的,之所以不做,是因为没有这个必要,但是为什么没有这个必要)?而且,行列式的计算规则,看上去跟矩阵的任何计算规则都没有直观的联系, 为什么又在很多方面决定了矩阵的性质?难道这一切仅是巧合?
* 为什么说 P-1AP 得到的矩阵与 A 矩阵“相似”?这里的“相似”是什么意思?
* 特征值和特征向量的本质是什么?它们定义就让人很惊讶,因为 Ax =λx,一个诺大的矩阵的效应,竟然不过相当于一个小小的数 λ,确实有点奇妙。但何至于用“特征”甚至“本征”来界定?它们刻划的究竟是什么?它又有什么神通广大的应用呢?
这样的一类问题,经常让使用线性代数已经很多年的人都感到为难。就好像大人面对小孩子的刨根问底,最后总会迫不得已地说“就这样吧,到此为止”一样,面对这样的问题,很多老手们最后也只能用: “就是这么规定的,你接受并且记住就好”来搪塞。然而,这样的问题如果不能获得回答,线性代数对于我们来说就是一个粗暴的、不讲道理的、莫名其妙的规则集合,我们会感到,自己并不是在学习一门学问,而是被不由分说地“抛到”一个强制的世界中,只是在考试的皮鞭挥舞之下被迫赶路,全然无法领略其中的美妙、和谐与统一。直到多年以后,我们已经发觉这门学问如此的有用,却仍然会非常迷惑:怎么这么凑巧?
线性代数有什么用?这是每一个圈养在象牙塔里,在灌输式教学模式下的“被学习”的学生刚刚开始思考时的第一个问题。我稍微仔细的整理了一下学习线代的理由,竟然也罗列了不少,不知道能不能说服你:
1、如果你想顺利地拿到学位,线性代数的学分对你有帮助;
2、如果你想继续深造,考研,必须学好线代。因为它是必考的数学科目,也是研究生科目《矩阵论》、《泛函分析》的基础。例如,泛函分析的起点就是无穷多个未知量的无穷多线性方程组理论。
3、如果你想提高自己的科研能力,不被现代科技发展潮流所抛弃,也必须学好,因为瑞典的 L.戈丁说过,没有掌握线代的人简直就是文盲。他在自己的数学名著《数学概观》中说:要是没有线性代数,任何数学和初等教程都讲不下去。按照现行的国际标准,线性代数是通过公理化来表述的。它是第二代数学模型,其根源来自于欧几里得几何、解析几何以及线性方程组理论。…,如果不熟悉线性代数的概念,像线性性质、向量、线性空间、矩阵
等等,要去学习自然科学,现在看来就和文盲差不多,甚至可能学习社会科学也是如此。
4、如果毕业后想找个好工作,也必须学好线代: 想搞数学,当个数学家(我去,这个还需要列出来,谁不知道线代是数学)。恭喜你,你的职业未来将是最光明的。如果到美国打工的话你可以找到最好的职业。 想搞电子工程,好,电路分析、线性信号系统分析、数字滤波器分析设计等需要线
代,因为线代就是研究线性网络的主要工具;进行 IC 集成电路设计时,对付数百万个集体管的仿真软件就需要依赖线性方程组的方法;想搞光电及射频工程,好,电磁场、光波导分析都是向量场的分析,比如光调制器分析研制需要张量矩阵,手机信号处理等等也离不开矩阵运算。 想搞软件工,好, 3D 游戏的数学基础就是以图形的矩阵运算为基础;当然,如果你只想玩 3D 游戏可以不必掌握线代;想搞图像处理,大量的图像数据处理更离不开矩阵这个强大的工具, 《阿凡达》中大量的后期电脑制作没有线代的数学工具简直难以想象。 想搞经济研究。好,知道列昂惕夫( Wassily Leontief)吗?哈佛大学教授, 1949 年用计算机计算出了由美国统计局的 25 万条经济数据所组成的 42 个未知数的 42 个方程的方程组,他打开了研究经济数学模型的新时代的大门。这些模型通常都是线性的,也就是说,它们是用线性方程组来描述的,被称为列昂惕夫“投入-产出”模型。列昂惕夫因此获得了1973 年的诺贝尔经济学奖。 相当领导,好,要会运筹学,运筹学的一个重要议题是线性规划。许多重要的管理决策是在线性规划模型的基础上做出的。线性规划的知识就是线代的知识啊。比如,航空运输业就使用线性规划来调度航,监视飞行及机场的维护运作等;又如,你作为一个大商场的老板,线性规划可以帮助你合理的安排各种商品的进货,以达到最大利润。 对于其他工程领域,没有用不上线代的地方。如搞建筑工程,那么奥运场馆鸟巢的受力分析需要线代的工具;石油勘探,勘探设备获得的大量数据所满足的几千个方程组需要你的线代知识来解决;飞行器设计,就要研究飞机表面的气流的过程包含反复求解大型的线性方程组,在这个求解的过程中,有两个矩阵运算的技巧:对稀疏矩阵进行分块处理和进行LU 分解; 作餐饮业,对于构造一份有营养的减肥食谱也需要解线性方程组;知道有限元方法吗?这个工程分析中十分有效的有限元方法,其基础就是求解线性方程组。知道马尔科夫链吗?这个“链子”神通广大,在许多学科如生物学、商业、化学、工程学及物理学等领域中被用来做数学模型, 实际上马尔科夫链是由一个随机变量矩阵所决定的一个概率向量序列,看看,矩阵、向量又出现了。 另外,矩阵的特征值和特征向量可以用在研究物理、化学领域的微分方程、连续的或离散的动力系统中,比如结构动力学、刚体动力学、振动力学等,而且不论是机械振动还是振荡电路,只要有振动的地方就有求矩阵的特征值和特征向量的问题。甚至数学生态学家用以在预测原始森林遭到何种程度的砍伐会造成猫头鹰的种群灭亡; 大名鼎鼎的最小二乘算法广泛应用在各个工程领域里被用来把实验中得到的大量测量数据来拟合到一个理想的直线或曲线上,最小二乘拟合算法实质就是超定线性方程组的求解;计算机人脸识别中也应用
到矩阵的特征值和特征向量。 二次型常常出现在线性代数在工程(标准设计及优化)和信号处理(输出的噪声功率)的应用中,他们也常常出现在物理学(例如势能和动能)、微分几何(例如曲面的法曲率)、经济学(例如效用函数)和统计学(例如置信椭圆体)中,某些这类应用实例的数学背景很容易转化为对对称矩阵的研究。嘿嘿(脸红),说实在的,我也没有足够经验讲清楚线代在各个工程领域中的应用,只能大概人云亦云地讲述以上线代的一些基本应用。 因为你如果要真正的讲清楚线代的一个应用,就必须充分了解所要应用的领域内的知识,最好有实际的工程应用的经验在里面;况且
线性代数在各个工程领域中的应用真是太多了,要知道当今成为一个工程通才只是一个传说。
总结一下,线性代数的应用领域几乎可以涵盖所有的工程技术领域。如果想知道更详细的应用材料,建议看一下《线性代数及应用》,这是美国 David C. Lay 教授写的迄今最现代的流行教材。国内的教材可以看看《线性代数实践及 MATLAB 入门》,这是西电科大陈怀琛教授写的最实用的新教材。
更多精彩内容,请点击原文链接,下载本文的pdf版。