当前位置:文档之家› 深入理解矩阵——矩阵革命(完全版)

深入理解矩阵——矩阵革命(完全版)

深入理解矩阵——矩阵革命(完全版)
深入理解矩阵——矩阵革命(完全版)

矩阵革命-理解矩阵

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

事实上,我并不是特例。一般工科学生初学线性代数,通常都会感到困难。这种情形在国内外皆然。瑞典数学家Lars Garding在其名著Encounter with Mathematics中说:“如果不熟悉线性代数的概念,要去学习自然科学,现在看来就和文盲差不多。”,然而“按照现行的国际标准,线性代数是通过公理化来表述的,它是第二代数学模型,...,这就带来了教学上的困难。”事实上,当我们

开始学习线性代数的时候,不知不觉就进入了“第二代数学模型”的范畴当中,这意味着数学的表述方式和抽象性有了一次全面的进化,对于从小一直在“第一代数学模型”,即以实用为导向的、具体的数学模型中学习的我们来说,在没有并明确告知的情况下进行如此剧烈的paradigm shift,不感到困难才是奇怪的。大部分工科学生,往往是在学习了一些后继课程,如数值分析、数学规划、矩阵论之后,才逐渐能够理解和熟练运用线性代数。即便如此,不少人即使能够很熟练地以线性代数为工具进行科研和应用工作,但对于很多这门课程的初学者提出的、看上去是很基础的问题却并不清楚。比如说:

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

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

*行列式究竟是一个什么东西?为什么会有如此怪异的计算规则?行列式与其对应方阵本质上是什么关系?为什么只有方阵才有对应的行列式,而一般矩阵就没有(不要觉得这个问题很蠢,如果必要,针对m x n矩阵定义行列式不是做

不到的,之所以不做,是因为没有这个必要,但是为什么没有这个必要)?而且,行列式的计算规则,看上去跟矩阵的任何计算规则都没有直观的联系,为什么又在很多方面决定了矩阵的性质?难道这一切仅是巧合?

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

*对于矩阵转置运算A T,有(AB)T=B T A T,对于矩阵求逆运算A-1,有(AB)-1= 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,...,x n为基,那么任何一个这样的多项式都可以表达为一组n+1维向量,其中的每一个分量a i其实就是多项式中x(i-1)项的系数。值得说明的是,基的选取有多种办法,只要所选取的那一组基线性无关就可以。这要用到后面提到的概念了,所以这里先不说,提一下而已。

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

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

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

题。

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

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

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

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

上一篇里说“矩阵是运动的描述”,到现在为止,好像大家都还没什么意见。但是我相信早晚会有数学系出身的网友来拍板转。因为运动这个概念,在数学和物理里是跟微积分联系在一起的。我们学习微积分的时候,总会有人照本宣科地告诉你,初等数学是研究常量的数学,是研究静态的数学,高等数学是变量的数学,是研究运动的数学。大家口口相传,差不多人人都知道这句话。但是真知道这句

话说的是什么意思的人,好像也不多。简而言之,在我们人类的经验里,运动是一个连续过程,从A点到B点,就算走得最快的光,也是需要一个时间来逐点地经过AB之间的路径,这就带来了连续性的概念。而连续这个事情,如果不定义极限的概念,根本就解释不了。古希腊人的数学非常强,但就是缺乏极限观念,所以解释不了运动,被芝诺的那些著名悖论(飞箭不动、飞毛腿阿喀琉斯跑不过乌龟等四个悖论)搞得死去活来。因为这篇文章不是讲微积分的,所以我就不多说了。有兴趣的读者可以去看看齐民友教授写的《重温微积分》。我就是读了这本书开头的部分,才明白“高等数学是研究运动的数学”这句话的道理。

不过在我这个《理解矩阵》的文章里,“运动”的概念不是微积分中的连续性的运动,而是瞬间发生的变化。比如这个时刻在A点,经过一个“运动”,一下子就“跃迁”到了B点,其中不需要经过A点与B点之间的任何一个点。这样的“运动”,或者说“跃迁”,是违反我们日常的经验的。不过了解一点量子物理常识的人,就会立刻指出,量子(例如电子)在不同的能量级轨道上跳跃,就是瞬间发生的,具有这样一种跃迁行为。所以说,自然界中并不是没有这种运动现象,只不过宏观上我们观察不到。但是不管怎么说,“运动”这个词用在这里,还是容易产生歧义的,说得更确切些,应该是“跃迁”。因此这句话可以改成:“矩阵是线性空间里跃迁的描述”。

可是这样说又太物理,也就是说太具体,而不够数学,也就是说不够抽象。因此我们最后换用一个正牌的数学术语——变换,来描述这个事情。这样一说,大家就应该明白了,所谓变换,其实就是空间里从一个点(元素/对象)到另一个点(元素/对象)的跃迁。比如说,拓扑变换,就是在拓扑空间里从一个点到另

一个点的跃迁。再比如说,仿射变换,就是在仿射空间里从一个点到另一个点的跃迁。附带说一下,这个仿射空间跟向量空间是亲兄弟。做计算机图形学的朋友都知道,尽管描述一个三维对象只需要三维向量,但所有的计算机图形学变换矩阵都是4x4的。说其原因,很多书上都写着“为了使用中方便”,这在我看来简直就是企图蒙混过关。真正的原因,是因为在计算机图形学里应用的图形变换,实际上是在仿射空间而不是向量空间中进行的。想想看,在向量空间里相一个向量平行移动以后仍是相同的那个向量,而现实世界等长的两个平行线段当然不能被认为同一个东西,所以计算机图形学的生存空间实际上是仿射空间。而仿射变换的矩阵表示根本就是4x4的。又扯远了,有兴趣的读者可以去看《计算机图形学——几何工具算法详解》。

一旦我们理解了“变换”这个概念,矩阵的定义就变成:

“矩阵是线性空间里的变换的描述。”

到这里为止,我们终于得到了一个看上去比较数学的定义。不过还要多说几句。教材上一般是这么说的,在一个线性空间V里的一个线性变换T,当选定一组基之后,就可以表示为矩阵。因此我们还要说清楚到底什么是线性变换,什么是基,什么叫选定一组基。线性变换的定义是很简单的,设有一种变换T,使得对于线性空间V中间任何两个不相同的对象x和y,以及任意实数a和b,有:

T(ax+by)=aT(x)+bT(y),

那么就称T为线性变换。

定义都是这么写的,但是光看定义还得不到直觉的理解。线性变换究竟是一种什么样的变换?我们刚才说了,变换是从空间的一个点跃迁到另一个点,而线性变

换,就是从一个线性空间V的某一个点跃迁到另一个线性空间W的另一个点的运动。这句话里蕴含着一层意思,就是说一个点不仅可以变换到同一个线性空间中的另一个点,而且可以变换到另一个线性空间中的另一个点去。不管你怎么变,只要变换前后都是线性空间中的对象,这个变换就一定是线性变换,也就一定可以用一个非奇异矩阵来描述。而你用一个非奇异矩阵去描述的一个变换,一定是一个线性变换。有的人可能要问,这里为什么要强调非奇异矩阵?所谓非奇异,只对方阵有意义,那么非方阵的情况怎么样?这个说起来就会比较冗长了,最后要把线性变换作为一种映射,并且讨论其映射性质,以及线性变换的核与像等概念才能彻底讲清楚。我觉得这个不算是重点,如果确实有时间的话,以后写一点。以下我们只探讨最常用、最有用的一种变换,就是在同一个线性空间之内的线性变换。也就是说,下面所说的矩阵,不作说明的话,就是方阵,而且是非奇异方阵。学习一门学问,最重要的是把握主干内容,迅速建立对于这门学问的整体概念,不必一开始就考虑所有的细枝末节和特殊情况,自乱阵脚。

接着往下说,什么是基呢?这个问题在后面还要大讲一番,这里只要把基看成是线性空间里的坐标系就可以了。注意是坐标系,不是坐标值,这两者可是一个“对立矛盾统一体”。这样一来,“选定一组基”就是说在线性空间里选定一个坐标系。就这意思。

好,最后我们把矩阵的定义完善如下:

“矩阵是线性空间中的线性变换的一个描述。在一个线性空间中,只要我们选定一组基,那么对于任何一个线性变换,都能够用一个确定的矩阵来加以描述。”理解这句话的关键,在于把“线性变换”与“线性变换的一个描述”区别开。一

个是那个对象,一个是对那个对象的表述。就好像我们熟悉的面向对象编程中,一个对象可以有多个引用,每个引用可以叫不同的名字,但都是指的同一个对象。如果还不形象,那就干脆来个很俗的类比。

比如有一头猪,你打算给它拍照片,只要你给照相机选定了一个镜头位置,那么就可以给这头猪拍一张照片。这个照片可以看成是这头猪的一个描述,但只是一个片面的的描述,因为换一个镜头位置给这头猪拍照,能得到一张不同的照片,也是这头猪的另一个片面的描述。所有这样照出来的照片都是这同一头猪的描述,但是又都不是这头猪本身。

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

但是这样的话,问题就来了如果你给我两张猪的照片,我怎么知道这两张照片上的是同一头猪呢?同样的,你给我两个矩阵,我怎么知道这两个矩阵是描述的同一个线性变换呢?如果是同一个线性变换的不同的矩阵描述,那就是本家兄弟了,见面不认识,岂不成了笑话。

好在,我们可以找到同一个线性变换的矩阵兄弟们的一个性质,那就是:

若矩阵A与B是同一个线性变换的两个不同的描述(之所以会不同,是因为选定了不同的基,也就是选定了不同的坐标系),则一定能找到一个非奇异矩阵P,使得A、B之间满足这样的关系:

A=P-1BP

线性代数稍微熟一点的读者一下就看出来,这就是相似矩阵的定义。没错,所谓相似矩阵,就是同一个线性变换的不同的描述矩阵。按照这个定义,同一头猪的不同角度的照片也可以成为相似照片。俗了一点,不过能让人明白。

而在上面式子里那个矩阵P,其实就是A矩阵所基于的基与B矩阵所基于的基这两组基之间的一个变换关系。关于这个结论,可以用一种非常直觉的方法来证明(而不是一般教科书上那种形式上的证明),如果有时间的话,我以后在blog 里补充这个证明。

这个发现太重要了。原来一族相似矩阵都是同一个线性变换的描述啊!难怪这么重要!工科研究生课程中有矩阵论、矩阵分析等课程,其中讲了各种各样的相似变换,比如什么相似标准型,对角化之类的内容,都要求变换以后得到的那个矩阵与先前的那个矩阵式相似的,为什么这么要求?因为只有这样要求,才能保证变换前后的两个矩阵是描述同一个线性变换的。当然,同一个线性变换的不同矩阵描述,从实际运算性质来看并不是不分好环的。有些描述矩阵就比其他的矩阵性质好得多。这很容易理解,同一头猪的照片也有美丑之分嘛。所以矩阵的相似变换可以把一个比较丑的矩阵变成一个比较美的矩阵,而保证这两个矩阵都是描述了同一个线性变换。

这样一来,矩阵作为线性变换描述的一面,基本上说清楚了。但是,事情没有那么简单,或者说,线性代数还有比这更奇妙的性质,那就是,矩阵不仅可以作为线性变换的描述,而且可以作为一组基的描述。而作为变换的矩阵,不但可以把线性空间中的一个点给变换到另一个点去,而且也能够把线性空间中的一个坐标系(基)表换到另一个坐标系(基)去。而且,变换点与变换坐标系,具有异曲

同工的效果。线性代数里最有趣的奥妙,就蕴含在其中。理解了这些内容,线性代数里很多定理和规则会变得更加清晰、直觉。

首先来总结一下前面两部分的一些主要结论:

1.首先有空间,空间可以容纳对象运动的。一种空间对应一类对象。

2.有一种空间叫线性空间,线性空间是容纳向量对象运动的。

3.运动是瞬时的,因此也被称为变换。

4.矩阵是线性空间中运动(变换)的描述。

5.矩阵与向量相乘,就是实施运动(变换)的过程。

6.同一个变换,在不同的坐标系下表现为不同的矩阵,但是它们的本质是一样的,所以本征值相同。

下面让我们把视力集中到一点以改变我们以往看待矩阵的方式。我们知道,线性空间里的基本对象是向量,而向量是这么表示的:

[a1,a2,a3,...,a n]

矩阵呢?矩阵是这么表示的:

a11,a12,a13,...,a1n

a21,a22,a23,...,a2n

...

a n1,a n2,a n3,...,a nn

不用太聪明,我们就能看出来,矩阵是一组向量组成的。特别的,n维线性空间里的方阵是由n个n维向量组成的。我们在这里只讨论这个n阶的、非奇异的方阵,因为理解它就是理解矩阵的关键,它才是一般情况,而其他矩阵都是意外,都是不得不对付的讨厌状况,大可以放在一边。这里多一句嘴,学习东西要抓住主流,不要纠缠于旁支末节。很可惜我们的教材课本大多数都是把主线埋没在细节中的,搞得大家还没明白怎么回事就先被灌晕了。比如数学分析,明明最要紧的观念是说,一个对象可以表达为无穷多个合理选择的对象的线性和,这个概念是贯穿始终的,也是数学分析的精华。但是课本里自始至终不讲这句话,反正就是让你做吉米多维奇,掌握一大堆解偏题的技巧,记住各种特殊情况,两类间断点,怪异的可微和可积条件(谁还记得柯西条件、迪里赫莱条件...?),最后考试一过,一切忘光光。要我说,还不如反复强调这一个事情,把它深深刻在脑子里,别的东西忘了就忘了,真碰到问题了,再查数学手册嘛,何必因小失大呢?

言归正传。如果一组向量是彼此线性无关的话,那么它们就可以成为度量这个线性空间的一组基,从而事实上成为一个坐标系体系,其中每一个向量都躺在一根坐标轴上,并且成为那根坐标轴上的基本度量单位(长度1)。

现在到了关键的一步。看上去矩阵就是由一组向量组成的,而且如果矩阵非奇异的话(我说了,只考虑这种情况),那么组成这个矩阵的那一组向量也就是线性无关的了,也就可以成为度量线性空间的一个坐标系。结论:矩阵描述了一个坐标系。

“慢着!”,你嚷嚷起来了,“你这个骗子!你不是说过,矩阵就是运动吗?怎么这会矩阵又是坐标系了?”

嗯,所以我说到了关键的一步。我并没有骗人,之所以矩阵又是运动,又是坐标系,那是因为——

“运动等价于坐标系变换”。

对不起,这话其实不准确,我只是想让你印象深刻。准确的说法是:

“对象的变换等价于坐标系的变换”。

或者:

“固定坐标系下一个对象的变换等价于固定对象所处的坐标系变换。”

说白了就是:

“运动是相对的。”

让我们想想,达成同一个变换的结果,比如把点(1,1)变到点(2,3)去,你可以有两种做法。第一,坐标系不动,点动,把(1,1)点挪到(2,3)去。第二,点不动,变坐标系,让x轴的度量(单位向量)变成原来的1/2,让y轴的度量(单位向量)变成原先的1/3,这样点还是那个点,可是点的坐标就变成(2,3)了。方式不同,结果一样。

从第一个方式来看,那就是我在《理解矩阵》1/2中说的,把矩阵看成是运动描述,矩阵与向量相乘就是使向量(点)运动的过程。在这个方式下,

Ma=b

的意思是:

“向量a经过矩阵M所描述的变换,变成了向量b。”

而从第二个方式来看,矩阵M描述了一个坐标系,姑且也称之为M。那么:

Ma=b

的意思是:

“有一个向量,它在坐标系M的度量下得到的度量结果向量为a,那么它在坐标系I的度量下,这个向量的度量结果是b。”

这里的I是指单位矩阵,就是主对角线是1,其他为零的矩阵。

而这两个方式本质上是等价的。

我希望你务必理解这一点,因为这是本篇的关键。

正因为是关键,所以我得再解释一下。

在M为坐标系的意义下,如果把M放在一个向量a的前面,形成Ma 的样式,我们可以认为这是对向量a的一个环境声明。它相当于是说:

“注意了!这里有一个向量,它在坐标系M中度量,得到的度量结果可以表达为a。可是它在别的坐标系里度量的话,就会得到不同的结果。为了明确,我把M放在前面,让你明白,这是该向量在坐标系M中度量的结果。”

那么我们再看孤零零的向量b:

b

多看几遍,你没看出来吗?它其实不是b,它是:

Ib

也就是说:“在单位坐标系,也就是我们通常说的直角坐标系I中,有一个向量,度量的结果是b。”

而Ma=Ib的意思就是说:

“在M坐标系里量出来的向量a,跟在I坐标系里量出来的向量b,其实根本就是一个向量啊!”

这哪里是什么乘法计算,根本就是身份识别嘛。

从这个意义上我们重新理解一下向量。向量这个东西客观存在,但是要把它表示出来,就要把它放在一个坐标系中去度量它,然后把度量的结果(向量在各个坐标轴上的投影值)按一定顺序列在一起,就成了我们平时所见的向量表示形式。你选择的坐标系(基)不同,得出来的向量的表示就不同。向量还是那个向量,选择的坐标系不同,其表示方式就不同。因此,按道理来说,每写出一

个向量的表示,都应该声明一下这个表示是在哪个坐标系中度量出来的。表示的方式,就是Ma,也就是说,有一个向量,在M矩阵表示的坐标系中度量出来的结果为a。我们平时说一个向量是[2357]T,隐含着是说,这个向量在I坐标系中的度量结果是[2357]T,因此,这个形式反而是一种简化了的特殊情况。

注意到,M矩阵表示出来的那个坐标系,由一组基组成,而那组基也是由向量组成的,同样存在这组向量是在哪个坐标系下度量而成的问题。也就是说,表述一个矩阵的一般方法,也应该要指明其所处的基准坐标系。所谓M,其实是IM,也就是说,M中那组基的度量是在I坐标系中得出的。从这个视角来看,M×N也不是什么矩阵乘法了,而是声明了一个在M坐标系中量出的另一个坐标系N,其中M本身是在I坐标系中度量出来的。

回过头来说变换的问题。我刚才说,“固定坐标系下一个对象的变换等价于固定对象所处的坐标系变换”,那个“固定对象”我们找到了,就是那个向量。但是坐标系的变换呢?我怎么没看见?

请看:

Ma=Ib

我现在要变M为I,怎么变?对了,再前面乘以个M-1,也就是M的逆

我看矩阵在实际生活中的应用

矩阵在实际生活中的应用 华中科技大学文华学院 城市建设工程学部

环境工程1班丛 目录 摘要 (3) 实际应用举例 (4) 论文总结 (15) 参考文献 (16)

摘要:随着现代科学的发展,数学在经济中广泛而深入的应用 是当前经济学最为深刻的因素之一,马克思曾说过:“一门学科 只有成功地应用了数学时,才真正达到了完善的地步”。下面 通过具体的例子来说明矩阵在经济生活中、人口流动、电阻电路、密码学、文献管理的应用。 关键词:矩阵、人口流动、电阻电路、密码学、文献管理

一:矩阵在经济生活中的应用 1.“活用”行列式定义 定义:用符号表示的n阶行列式D指的是n!项代数和,这些项是一切可能的取自D不同行与不同列上的n个元素的乘积的符号为。由定义可以看出。n阶行列式是由n!项组成的,且每一项为来自于D 中不同行不同列的n个元素乘积。 实例1:某市打算在第“十一”五年规划对三座污水处理厂进行技术改造,以达到国家标准要求。该市让中标的三个公司对每座污水处理厂技术改造费用进行报价承包,见下列表格(以1万元人民币为单位).在这期间每个公司只能对一座污水处理厂进行技术改造,因此该市必须把三座污水处理厂指派给不同公司,为了使报价的总和最小,应指定哪个公司承包哪一座污水处理厂? 设这个问题的效率矩阵为,根据题目要求,相当于从效率矩阵中选取来自不同行不同列的三个元素“和”中的最小者!从行列式定义知道,这样的三个元素之共有31=6(项),如下: 由上面分析可见报价数的围是从最小值54万元到最大值58万元。

由④得到最小报价总数54万元,因此,该城市 应选定④即 2.“借用”特征值和特征向量 定义:“设A是F中的一个数.如果存在V中的零向量,使得,那么A就叫做的特征值,而叫做的属于本征值A的一个特征向量。 实例2:发展与环境问题已成为21世纪各国政府关注 和重点,为了定量分析污染与工业发展水平的关系,有人提出了以下的工业增长模型:设是某地区目前的污染水平(以空气或河湖水质的某种污染指数为测量单位),是目前的工业发展水平(以某种工业发展指数为测量单位).若干年后(例如5年后)的污染水平和工业发展水平分别为和 它们之间的关系为 试分析若干年后的污染水平和工业发展水平。对于这个 问题,将(1)写成矩阵形式,就是

稀疏矩阵的建立与转置

实验2 稀疏矩阵的建立与转置 一、实验目的 掌握特殊矩阵的存储和操作算法。 二、实验内容及问题描述 实现用三元组保存稀疏矩阵并实现矩阵转置的算法。 三、实验步骤 1. 定义稀疏矩阵的三元组形式的存储结构。 2. 实现三元组矩阵的传统转置算法。 3. 实现三元组矩阵的快速转置算法。 4. 输入矩阵非零元素,测试自己完成的算法。 四、程序流程图

五、概要设计 矩阵是很多的科学与工程计算中研究的数学对象。在此,我们感兴趣的是,从数学结构这门学科着眼,如何存储矩阵的元从而使矩阵的各种运算有效的进行。本来,用二维数组存储矩阵,在逻辑上意义是很明确的,也很容易理解,操作也很容易和方便。但是在数值分析中经常出现一些阶数很高的矩阵,同时,在矩阵中又有很多值相同或者都为零的元素,可以对这种矩阵进行压缩存储:对多个值相同的元素只分配一个存储空间;对零元素不分配空间。稀疏矩阵的定义是一个模糊的定义:即非零元个数较零元个数较少的矩阵。例如下图所示的矩阵 为一个稀疏矩阵。为了实现稀疏矩阵的这种存储结构,引入三元组这种数据结构。三元组的线性表顺存储形式如下图: 六、详细设计 sanyuanzu.h 头文件 #define max 100 typedef struct { int row,col; int e; }Triple;//定义三元组 typedef struct { Triple data[max]; int mu,nu,tu; }TSMatrix;///*定义三元组的稀疏矩阵*/ void creat( TSMatrix &M) ; void fasttrans(TSMatrix A,TSMatrix &B);

2019年注册会计师考试辅导考前精准押题预测卷2完整版

预测试题二 一、单项选择题(本题型共24小题,每小题1分,共24分。每小题只有一个正确答案,请从每小题的备选答案中选出一个你认为正确的答案,用鼠标点击相应的选项。) 1.甲公司评估战略备选方案时,主要考虑选择的战略是否发挥了企业优势,克服了劣势,是否利用了机会,将威胁削弱到最低程度,是否有助于企业实现目标。甲公司评估战略备选方案使用的标准是()。 A.适宜性标准 B.外部性标准 C.可行性标准 D.可接受性标准 『正确答案』A 『答案解析』适宜性标准,考虑选择的战略是否发挥了企业的优势,克服了劣势,是否利用了机会,将威胁削弱到最低程度,是否有助于企业实现目标。 2.下列选项中,不属于企业战略变革的主要任务的是()。 A.调整企业理念 B.企业战略重新进行定位 C.重新构建企业文化 D.重新设计企业的组织结构 『正确答案』C 『答案解析』企业战略变革的主要任务包括:(1)调整企业理念;(2)企业战略 重新进行定位;(3)重新设计企业的组织结构。 3.甲公司所处产业属于互联网金融信息服务产业,用户对资讯产品的品牌依赖度较 大。只有建立起一定的市场知名度和美誉度,方能取得客户的信任,相关产品和服务的推出、升级、更新换代才能被市场快速接受。甲公司给潜在进入者设置的进入障碍是()。 A.规模经济 B.资金需求 C.现有企业的市场优势 D.现有企业对关键资源的控制 『正确答案』C 『答案解析』现有企业的市场优势主要表现在品牌优势上。用户对资讯产品的品牌 依赖度较大。只有建立起一定的市场知名度和美誉度,方能取得客户的信任,相关 产品和服务的推出、升级、更新换代才能被市场快速接受。甲公司给潜在进入者设 置的进入障碍属于现有企业的市场优势。 4.下列选项中,适宜采用市场开发战略的是()。 A.甲公司发现邻国市场上对本企业生产的同类产品需求旺盛,但是当地的供应量不 足 B.乙公司在现有行业中经营多年,竞争优势明显,但该行业被称为“夕阳行业” C.丙公司从自身实际出发,决定将经营重心集中在现有产品和现有市场领域 D.丁公司希望避免资金投入和开发风险,以及资源重新配置和组合的成本 『正确答案』A 『答案解析』选项A适宜采用市场开发战略;选项B适宜采用相关(同心)多元化 战略;选项C适宜采用市场渗透战略;选项D适宜采用稳定战略。

数据结构课程设计之稀疏矩阵实现与应用1

数据结构课程设计报告 题目:十字链表成为存储结构,实现稀疏矩阵的求和运算 学生姓名:张旋 班级:软件三班学号:201213040304 指导教师: 吴小平

一、需求分析 1.问题描述: 要求:十字链表下的稀疏矩阵的加、转、乘的实现。 2.基本功能 实现十字链表下的转置,乘法,加法运算。 3.输入输出 (1)设计函数建立稀疏矩阵,初始化值。 (2)设计函数输出稀疏矩阵的值。 (3)构造函数进行两个稀疏矩阵相加,输出最终的稀疏矩阵。 (4)构造函数进行两个稀疏矩阵的相乘,输出最终的稀疏矩阵。 (5)构造函数进行稀疏矩阵的转置,并输出结果。 (6)退出系统。 二、概要设计 1.设计思路: 本实验要求在三元组,十字链表下实现稀疏矩阵的加、转、乘。首先要进行矩阵的初始化操作,定义三元组和十字链表的元素对象。写出转置,加法,乘法的操作函数。通过主函数调用实现在一个程序下进行矩阵的运算操作。 2.数据结构设计: 抽象数据类型稀疏矩阵的定义如下: ADT SparseMatrix{ 数据对象:D={aij | i=1,2,…,m; j=1,2,..,n; aij∈Elemset, m和n分别称为矩阵的行数和列数。} 数据关系:R={Row,Col} Row={ | 1<=i<=m, 1<=j<=n-1} Col= { | 1<=i<=m-1, 1<=j<=n} 基本操作: CreateSMatrix(&M); 操作结果:创建稀疏矩阵M。 DestroySMatrix(&M); 初始条件:稀疏矩阵M存在。操作结果:销毁稀疏矩阵M。 PrintSMatrix(M); 初始条件:稀疏矩阵M存在。操作结果:输出稀疏矩阵M。 AddSMatrix(M,N,&Q); 初始条件:稀疏矩阵M与N的行数和列数对应相等操作结果:求稀疏矩阵的和Q=M+N。 MultSMatrix(M,N,&Q); 初始条件:稀疏矩阵M的列数等于N的行数。操作结果:求稀疏矩阵乘积Q=M*N。 TransposeSMatrix(M,&T); 初始条件:稀疏矩阵M存在。操作结果:求稀疏矩阵M的转置矩阵T。 }ADT SparseMatrix 3.软件结构设计:

稀疏矩阵在迭代求解线性方程组中的运用

稀疏矩阵在迭代求解线性方程组中的运用 学院:自动化院 专业:电力系统及其自动化 姓名:张庆磊 学号:111101112 指导老师:杨伟

摘要:对于稀疏矩阵的稀疏存储技术进行了研究,研究了按行存储的检索方式,以便于迭代计算,分别对雅克比法和高斯—赛特法的算法进行理论研究和程序实现,并且比较了两种方法的优劣。 关键词:系数技术;线性方程;迭代 大型稀疏矩阵线性化方程组的求解问题,在电力系统中有着广泛的的运用。由于电力网本身的结构限制,节点导纳矩阵节点繁多,而仅有少量的非零元,稀疏度很高,若采用传统存储计算方式,会占用大量的存储空间,并且降低运算效率。在迭代计算中,由于无法分辨零元素,也会无谓地浪费运算时间。因此稀疏技术在求解方程组中的运用显得尤为重要。 1.稀疏矢量与稀疏矩阵的存储 稀疏矢量与稀疏矩阵的存储特点是排零存储,即只存储其中的非零元和有关的检索信息.存储的目的是为了在计算中方便的访问和运用,这就要求既节省内存,又便于搜索。论文采用了按行存储格式。 按行顺序依次存储A 中的非零元,同一行元素依次排列在一起,存储格式: V A ——按行存储矩阵A 中的非零元ij a ,共τ个; JA ——按行存储矩阵A 中的非零元的列号,共τ个; IA ——记录A 中每行第一个非零元在V A 中的位置,共n 个。 2.迭代法求解线性方程 设n n n n R b R A ∈∈?,,考虑线性方程组 Ax=b 一般的,先将式1变为同解方程组 X=Bx+f 形成迭代式 f Bx x k k +=+)()1( 式中:B 为迭代矩阵; 若要求迭代式收敛则需满足1B 1)(<<或B ρ,其中?为任意范数 式1中,A 可以分裂为 A=M+N (1)

矩阵理论中的矩阵分析的实际应用论文

矩阵分析在同步捕获性能研究新应用 摘要:该文提出了一种利用概率转移矩阵计算捕获传输函数的方法,通过将以往分析方法中的流程图转换为概率转移矩阵,仅需知道一步转移概率矩阵,利用现代计算机编程语言(如MAPLE,MATLAB等)的符号运算功能,即可得到捕获系统的传输函数:通过对传输函数求导,可计算平均捕获时间。矩阵分析方法可完整地计算出捕获系统的传输函数,可弥补流程图方法在分析传统连续搜索捕获方案的传输函数时所忽略的项;可纠正流程图方法在分 析非连续搜索捕获方案的传输函数时所引起的误差。 关键词:CDMA;矩阵分析;传输函数;流程图;捕获 A Novel Acquisition Performance Evaluation Approach Based on Matrix Analysis Abstract:A novel acquisition performance analysis approach is proposed based on matrix analysis.Given the first step transition probability matrix,the transfer function of acquisition system can be obtained by utilizing the symbol operation function of computer programming such as MAPLE,MATLAB and so on,and the mean acquisition time can be computed by differentiating the transfer function.The transfer function of acquisition system can be computed perfectly by matrix analysis,it not only complements the items neglected in that of conventional serial acquisition scheme but also corrects the error items in that of nonconsecutive acquisition scheme.

矩阵应用简介

矩阵应用简介 The introduction of Matrix application 作者:刁士琦 2015/12/27

摘要 本课题以线性代数的应用为研究对象,通过网络、书籍查询相关知识与技术发展。 全文分为四部分,第一部分是绪论,介绍本课题的重要意义。第二部分是线性代数的发展。第三部分是经典矩阵应用。第四部分是矩阵应用示例。第五部分为结论。 关键词:莱斯利矩阵模型、希尔密码

目录 摘要 (2) 1 引言 (4) 2 矩阵的发展 ............................................................................................ 错误!未定义书签。 3 经典矩阵应用 (4) 3.1矩阵在经济学中的应用 (4) 3.2矩阵在密码学中的应用 (7) 3.3莱斯利矩阵模型 (5) 4 矩阵应用示例 (6) 4.1经济学应用示例 (6) 4.2希尔密码应用示例 (7) 4.3植物基因分布 (7) 6 结论 (8) 参考文献 (9)

1引言 线性代数是以向量和矩阵为对象,以实向量空间为背景的一种抽象数学工具,它的应用遍及科学技术的国民经济各个领域。 2矩阵的发展 1850年,西尔维斯特在研究方程的个数与未知量的个数不相同的线性方程时,由于无法使用行列式,所以引入了Matrix-矩阵这一词语。现代的矩阵理论给出矩阵的定义就是:由mn 个数排成的m行n列的数表。在此之后,西尔维斯特还分别引入了初等因子、不变因子的概念[5]。虽然后来一些著名的数学家都对矩阵中的不同概念给出了的定义,也在矩阵领域的研究中做了很多重要的工作。但是直到凯莱在研究线性变化的不变量时,才把矩阵作为一个独立的数学概念出来,矩阵才作为一个独立的理论加以研究。 矩阵概念的引入,首先是由凯莱发表的一系列和矩阵相关的文章,将零散的矩阵的知识发展为系统完善的理论体系。矩阵论的创立应归功与凯莱。凯莱在矩阵的创立过程中做了极大的贡献。其中矩阵的转置矩阵、对称矩阵和斜对称矩阵的定义都是由凯莱给出的。“从逻辑上来说,矩阵的概念应限于行列式的概念,但在历史上却正好相反。”凯莱如是说。1858年,《A memoir on the theory of matrices》系统阐述了矩阵的理论体系,并在文中给出了矩阵乘积的定义。 对矩阵的研究并没有因为矩阵论的产生而停止。1884年,西尔维斯特给出了矩阵中的对角矩阵和数量矩阵的定义。1861年,史密斯给出齐次方程组的解的存在性和个数时引进了增广矩阵和非增广矩阵的术语。同时,德国数学家弗罗伯纽斯的贡献也是不可磨灭的,他的贡献主要是在矩阵的特征方程、特征根、矩阵的秩、正交矩阵、矩阵方程等方面。并给出了正交矩阵、相似矩阵和合同矩阵的概念,指明了不同类型矩阵之间的关系和矩阵之间的重要性质。 3经典矩阵应用 3.1矩阵在经济学中的应用 投入产出综合平衡模型是一种宏观的经济模型,这是用来全面分析某个经济系统内

浅谈矩阵在实际生活中的应用

浅谈矩阵在实际生活中的应用 摘要:从数学的发展来看,它来源于生活实际,在科技日新月异的今天, 数学越来越多地被应用于我们的生活,可以说数学与生活实际息息相关。我们在学习数学知识的同时,不能忘记把数学知识应用于生活。在学习线性代数的过程中,我们发现代数在生活实践中有着不可或缺的位置。在本文中,我们对代数中的矩阵在成本计算、人口流动、加密解密、计算机图形变换等方面的应用进行了探究。 关键词:线性代数矩阵实际应用 Abstract:From the development of mathematics, we can see that it comes from our life. With the development of science and technology, the math is more and more being used in our lives, it can be said that mathematics and real life are closely related. While learning math knowledge we can not forget to apply mathematical knowledge to our life. In the process of learning linear algebra, we found that algebra has an indispensable position in life practice. In this article, we explore the application of the matrix in the costing, population mobility, encryption and decryption, computer graphics transform. Keywords: linear algebra matrix practical application

数据结构 稀疏矩阵相乘问题

#include #include #define OK 1 #define ERROR 0 #define MAXSIZE 25 //最多非0元素的个数 #define MAXR 5 //rpos所能处理的最大行数 #define MAXC 5 //系数矩阵相乘时,保留临时列结果的数组temp[MAXC] typedef struct NODE{ //定义稀疏矩阵结点 int i; int j; int data; } Node; typedef struct MATRIX{ //定义稀疏矩阵(可以快速访问) int mu, nu, tu; Node matrix[MAXSIZE+1]; int rpos[MAXR+1]; } Matrix; int CreatSMatrix( Matrix* M ); //创建一个矩阵(由用户输入原始矩阵,转化为稀疏矩阵方式储存) int Print( Matrix M ); //打印一个稀疏矩阵 int Mul_SMatrix( Matrix M, Matrix N, Matrix *Q); //两个稀疏矩阵相乘 main(){ printf("计科四班刘辉学号:41012169"); printf("\n"); printf("稀疏矩阵相乘"); printf("\n\n"); Matrix A1, A2, A3; //定义矩阵 CreatSMatrix( &A1 ); CreatSMatrix( &A2 ); if( A1.nu==A2.mu ){ //判断能否相乘 Mul_SMatrix( A1, A2, &A3 ); printf("两矩阵相乘得:\n"); Print(A3); } system("pause"); } //稀疏矩阵相乘 int Mul_SMatrix( Matrix M, Matrix N, Matrix *Q) { int i,Mj;

循环矩阵在密码学中的应用

题目循环矩阵在密码学中的应用 学生姓名韩媛媛学号 1109014156 所在院(系) 数学与计算机科学学院 专业班级数学与应用数学1102 指导教师潘平 2015 年 5 月 10 日

循环矩阵在密码学中的应用 韩媛媛 (陕西理工学院数学与计算机科学学院数学与应用数学专业1102班级,陕西 汉中 723000) 指导教师:潘平 [摘要]矩阵是线性代数的重要构成部分,而循环矩阵就是一类有特殊结构的矩阵,在许多实际问题中有广泛的 应用,有关循环矩阵的问题仍是矩阵论研究中的热点。在当今社会,随着科学技术水平的迅速发展,我们需要更深入的研究数学工具在现实中的实际应用。密码学是研究编译密码和破解密码的尖端技术科学,与数学、信息学、计算机科学有着广泛而密切的联系,由于循环矩阵是现代科技工程中具有广泛应用的一类特殊矩阵,具有良好的性质和结构,因而关于循环矩阵的研究非常活跃,本文中简单介绍了ElGamal 密码体制,以及循环矩阵在ElGamal 中加密解密过程的描述。利用循环矩阵在密码学中的研究,探索循环矩阵在几类典型密码中加密和破译的研究有着重要的现实意义。 [关键字]循环矩阵;密码学;有限域 1. 循环矩阵的概念 定义 1.1 ] 1[设),(n n n n R C A ??∈如果矩阵A 的最小多项式等于特征多项式,则称A 为循环矩 阵. 定义1.2 设A 是n 维向量空间V 上的一个线性变换,若存在向量V ∈α,使得,α αα1A ,,A -n 线性无关.则称α为A 的一个循环向量. 定义1.3 已知n 阶基本循环矩阵 ? ????????? ????? ???? ?=00 110000000001000010 D , 并令 ),,2,1(n i D I i i ==, 称121,,,-n I I I I 为循环矩阵基本列(其中n n I D I ==为单位矩阵). 2. 循环矩阵的性质 2.1 循环矩阵基本性质 性质2.1.1 ]3[循环矩阵基本列121,,,-n I I I I 是线性无关的. 性质2.1.2 ] 3[任意的n 阶循环矩阵A 都可以用循环矩阵基本列线性表出,即 11110--+++=n n I a I a I a A . 性质2.1.3 同阶循环矩阵的和矩阵为循环矩阵.

数据结构C语言版-稀疏矩阵三元组的基本操作

数据结构 课程设计实验报告 内容名称:稀疏矩阵的基本操作成员1:09213020-陈东 成员2:09213040-蔡丹 班级:09数31 教师:李晓翠 江苏师范大学 数学科学学院

目录 1.序言 (3) 1.1数据结构背景 (3) 1.2课程设计目的 (3) 1.3 课程名称 (3) 1.4设计要求 (3) 1.5设计说明 (3) 2.课程任务设计说明书 (5) 3.需求分析 (6) 3.1题目名称 (6) 3.2题目内容 (6) 3.3题目分析 (6) 4.概要设计 (7) 4.1稀疏矩阵存储结构 (7) 4.2.稀疏矩阵的基本操作 (7) 4.3各模块设计要求 (8) 4.4总体功能流程图 (9) 4.4.1存储结构流程图 (9) 4.4.2稀疏矩阵基本操作流程图 (10) 5.详细设计 (11) 5.1设计原理 (11) 5.2基本函数实现流程图 (13) 6.主要函数代码 (21) 7.调试与操作说明 (27) 7.1操作说明 (27) 7.2调试结果………………………………………………………………………………. ..28 7.3结果分析 (31) 8.设计体会 (32) 9.参考文献 (32) 10.分工说明 (33)

1.序言 1.1数据结构背景 数据结构是一门理论性强、思维抽象、难度较大的课程,是基础课和专业课之间的桥梁。该课程的先行课程是计算机基础、程序设计语言、离散数学等,后续课程有操作系统、编译原理、数据库原理、软件工程等。通过本门课程的学习,我们应该能透彻地理解各种数据对象的特点,学会数据的组织方法和实现方法,并进一步培养良好的程序设计能力和解决实际问题的能力,而且该课程的研究方法对我们学生在校和离校后的学习和工作,也有着重要的意义。 数据结构是计算机科学与技术专业的一门核心专业基础课程,在该专业的课程体系中起着承上启下的作用,学好数据结构对于提高理论认知水平和实践能力有着极为重要的作用。学习数据结构的最终目的是为了获得求解问题的能力。对于现实世界中的问题,应该能从中抽象出一个适当的数学模型,该数学模型在计算机内部用相应的数据结构来表示,然后设计一个解此数学模型的算法,再进行编程调试,最后获得问题的解答。 基于此原因,我们开设了数据结构课程设计。针对数据结构课程的特点,着眼于培养我们的实践能力。实习课程是为了加强编程能力的培养,鼓励学生使用新兴的编程语言。相信通过数据结构课程实践,无论是理论知识,还是实践动手能力,同学们都会有不同程度上的提高。 1.2课程设计的目的 巩固和深刻理解―数据结构(C语言版)‖课程所讲解的C语言作为数据结构的算法的描述,掌握对数据的存储结构和算法进行描述时,尽量考虑C 语言的特色。培养学生独立工作和创新思维的能力,取得设计与调试的实践经验。提高和加强计算机应用及软件开发能力。通过课程设计题目的练习,强化学生对所学知识的掌握及对问题分析和任务定义的理解,对每到题目作出了相应的逻辑分析和数据结构的选择,通过对任务的分析,为操作对象定义相应的数据结构,以过程化程序设计的思想方法为原则划分各个模块,定

矩阵在通信中的应用论文

矩阵理论(论文) 矩阵理论在通信领域的应用 学生: 学号:

矩阵理论在通信领域的应用 【摘要】矩阵是数学的基本概念之一,也是线性代数的核心内容。矩阵广泛运用于各个领域,如数学建模、密码学、化学、通信和计算机科学等,解决了大量的实际问题。本文主要介绍矩阵在通过信领域的应用,如:在保密通信中,应用逆矩阵对通信的信息进行加密;在信息论中,利用矩阵理论计算信源熵、信道容量等;在信息论的信道编码中,利用监督矩阵,生成矩阵,对信道中的信息进行编码,利用错误图样对信道传输的信息进行纠正;此外,矩阵分析在MIMO技术这个模块中也有着很重要的应用,基本可以说矩阵分析是MIMO技术研究的基础。关键词:矩阵;保密通信;信道容量;信道编码;MIMO 1、引言 随着科技快速稳健的发展,通信技术也得到了飞速的发展,人们对通信的要求也不断提高,不仅要求通信的实时性、有效性,还要求通信的保密性。而现实环境中,由于噪声的影响,常常使通信出现异常,这就要求人们对接收到的信号能够更好的实现检错纠错。此外,在频谱资源的匮乏己经成为实现高速可靠传输通信系统的瓶颈。一方面,是可用的频谱有限;另一方面,是所使用 的频谱利用率低下。因此,提高频谱利用率就成为解决实际问题的重要手段。多进多出(MIMO)[1]技术即利用多副发射天线和多副接收天线进行无线传输的 技术,该技术能够很好的解决频谱利用率的问题。然而对以上通信中存在的问题的分析和研究都需要用到矩阵理论的知识,本文把矩阵理论和其在通信领域的应用紧密结合,通过建立一些简单的分析模型,利用矩阵知识将通信领域很多复杂的计算和推导变得简单明了。 2、矩阵在通信领域中的应用 2.1 矩阵在保密通信中的应用[2] 保密通信是当今信息时代的一个非常重要的课题, 而逆矩阵正好在这一领域有其应用。我们可以用逆矩阵[3][4]所传递的明文消息进行加密(即密文消息),然后再发给接收方,而接收方则可以采用相对应的某种逆运算将密文消息编译成明文。

数据结构C语言版-稀疏矩阵的三元组顺序表存储表示和实现

typedef int ElemType; // 稀疏矩阵的三元组顺序表存储表示 #define MAXSIZE 100 // 非零元个数的最大值 typedef struct { int i,j; // 行下标,列下标 ElemType e; // 非零元素值 }Triple; typedef struct { Triple data[MAXSIZE+1]; // 非零元三元组表,data[0]未用 int mu,nu,tu; // 矩阵的行数、列数和非零元个数 }TSMatrix; // 创建稀疏矩阵M int CreateSMatrix(TSMatrix *M) { int i,m,n; ElemType e; int k; printf("请输入矩阵的行数,列数,非零元素个数:(逗号)\n"); scanf("%d,%d,%d",&(*M).mu,&(*M).nu,&(*M).tu); (*M).data[0].i=0; // 为以下比较顺序做准备 for(i = 1; i <= (*M).tu; i++) { do { printf("请按行序顺序输入第%d个非零元素所在的行(1~%d)," "列(1~%d),元素值:(逗号)\n", i,(*M).mu,(*M).nu); scanf("%d,%d,%d",&m,&n,&e); k=0; // 行或列超出范围 if(m < 1 || m > (*M).mu || n < 1 || n > (*M).nu) k=1; if(m < (*M).data[i-1].i || m == (*M).data[i-1].i && n <= (*M).data[i-1].j) // 行或列的顺序有错 k=1; }while(k);

稀疏矩阵应用.

稀疏矩阵应用 ●课题简介 1.1课题及要求 稀疏矩阵应用(限1 人完成) 设计要求:实现三元组,十字链表下的稀疏矩阵的加、转、乘的实现。 (1)稀疏矩阵的存储 (2)稀疏矩阵加法 (3)矩阵乘法 (4)矩阵转置 1.2课程任务分析 本课程设计主要实现在三元组存储结构与十字链表存储结构下输入稀疏矩阵,并对稀疏矩阵进行转置,相加,相乘操作,最后输出运算后的结果。稀疏矩阵采用三元组和十字链表表示,并在两种不同的存储结构下,求两个具有相同行列数的稀疏矩阵A和B的相加矩阵C,并输出C;求出A的转置矩阵D,输出D;求两个稀疏矩阵A和B的相乘矩阵E,并输出E。 1.3课程的意义 其意义是让我们在学习完C、数据结构等课程基础上,掌握多维数组的逻辑结构和存储结构、掌握稀疏矩阵的压缩存储及转置,相加,相乘等基本操作,并用不同的方法输出结果,进一步掌握设计、实现较大系统的完整过程,包括系统分析、编码设计、系统集成、以及调试分析,熟练掌握数据结构的选择、设计、实现以及操作方法,为进一步的应用开发打好基础。 ●程序分析 2.1设计函数建立稀疏矩阵及初始化值和输出稀疏矩阵的值 本模块要求设计函数建立稀疏矩阵并初始化,包括在三元组结构下和十字链表结构下。首先要定义两种不同的结构体类型,在创建稀疏矩阵时,需要设计两个不同的函数分别在三元组和十字链表下创建稀疏矩阵,在输入出现错误时,能够对错误进行判别处理,初始化稀疏矩阵都为空值,特别注意在十字链表下,对变量进行动态的地址分配。在设计输出稀疏矩阵的值的函数时,也要针对两种不同的情况,分别编制函数,才能准确的输出稀疏矩阵。在对稀疏矩阵进行初始化及输出值时,均只输出非零元素的值和它所在的所在行及所在列。 2.2构造函数进行稀疏矩阵的转置并输出结果 本模块要求设计函数进行稀疏矩阵的转置并输出转置后的结果,由于对稀疏函数的转置只对一个矩阵进行操作,所以实现起来难度不是很大,函数也比较容易编写。在编写函数时,要先定义一个相应的结构体变量用于存放转置后的矩阵,最后把此矩阵输出。

稀疏矩阵

攀枝花学院 学生课程设计(论文)课程名称 设计题目 学生姓名:学号: 所在院(系): 专业: 班级: 指导教师:职称: 年月日 攀枝花学院教务处制

注:任务书由指导教师填写。

课程设计(论文)指导教师成绩评定表

摘要 本课程设计主要实现在三元组存储结构与十字链表存储结构下输入稀疏矩阵,并对稀疏矩阵进行转置,相加,相乘等操作,最后输出运算后的结果。考虑到难易程度,先用三元组实现稀疏矩阵的输入,输出,及其转置,相加,相乘等操作的方法,再在十字链表下实现。程序通过调试运行,结果与预期一样,初步实现了设计目标。 关键词:程序设计,稀疏矩阵,三元组,十字链表

目录 摘要........................................................................ I 绪论 (1) 1.设计目的与要求 (2) 1.1题目名称:稀疏矩阵的操作 (2) 1.2设计要求 (2) 1.3设计涉及知识 (2) 2、功能设计 (2) 2.1需求分析 (2) 2.2总体设计 (3) 2.3数据结构 (3) 3.功能模块图 (3) 3.1概要设计 (4) 3.2 系统流程图 (5) 3.3 菜单函数 (6) 4.稀疏矩阵的操作的源代码及说明 (7) 4.1 矩阵的声明与结构体定义 (7) 4.2 矩阵的输出函数模块 (7) 4.3 两矩阵相加 (8) 4.4 矩阵的转置 (9) 4.5 创建矩阵 (10) 4.6 主函数模块 (12) 5程序运行结果 (13) 5.1 经过调试,无错误,无警告 (13) 5.2创建矩阵并显示登录页面即主菜单 (13) 5.3 运行操作 (14) 5.4转置矩阵A (14) 5.5转置矩阵B (15) 5.6输出矩阵R (15) 5.7退出程序 (15) 6编程中遇到的困难及解决方法 (16) 7总结心得及良好建议 (17) 8致谢 (18) 9参考文献 (19)

矩阵理论与应用(张跃辉)(上海交大)第二章参考答案

第二章习题及参考解答 注:第27题(2)(3)错(可将“证明”改为证明或否定),第28题可不布置。第50题(含)以后属于附加内容,没有参考解答。 1.证明子空间判别法:设U是线性空间V的一个非空子集.则U是子空间??对任 意λ∈F,α,β∈U,有α+β∈U与λα∈U. 证明:必要性是显然的,下证充分性。设U关于加法“+”与数乘均封闭。则U中加法“+”的结合律与交换律以及数乘与“+”的分配律、1α=α均自动成立,因为U?V.由 于U关于数乘封闭,而0=0α∈U,?α=?1α∈U,因此U是子空间。 2.证明子空间的下述性质。(1)传递性:即若U是V的子空间,W是U的子空间,则W 也是V的子空间; (2)任意多个(可以无限)子空间的交集仍是子空间,且是含于这些子空间的最大子空间; 特别,两个子空间U与W的交U∩W仍是子空间. 证明:(1)由子空间判别法立即可得。 (2)由子空间判别法可知任意多个(可以无限)子空间的交集仍是子空间,且若某个子空 间含于所有这些子空间,则该子空间必然含于这些子空间的交。 3.(1)设V是线性空间,U与W是V的两个子空间.证明: dim(U+W)=(dim U+dim W)?dim(U∩W). (2)设V是有限维线性空间.证明并解释下面的维数公式: dim V=max{m|0=V0?V1?···?V m?1?V m=V,V i是V i+1的真子空间} 证明:(1)设dim U=s,dim W=t,dim(U∩W)=r.任取U∩W的一组基α1,α2,···,αr.由于U∩W是U与W的公共子空间,故U∩W的基是U与W的线性无关的向量组,因此 可以扩充成U或W的基.设 α1,α2,···,αr,βr+1,βr+2,···,βs(0.0.1) 与 α1,α2,···,αr,γr+1,γr+2,···,γt(0.0.2) 分别是U与W的基.我们证明 α1,α2,···,αr,βr+1,βr+2,···,βs,γr+1,γr+2,···,γt(0.0.3) 是U+W的一组基.为此需要证明该向量组线性无关,且U+W的任何向量均可由这些向量 线性表示. 设 k1α1+k2α2+···+k rαr+b r+1βr+1+···+b sβs+c r+1γr+1+···+c tγt=0.(0.0.4) 12

高等数学的矩阵在实际生活中的应用

矩阵在实际生活中的应用 一.【摘要】 随着科学技术的发展,数学的应用越来越广泛,可以说和我们的生活息息相关。而高等数学中的线性代数,也同样有着广泛的应用。本篇论文中,我们就对线性代数中的矩阵在生产成本、人口流动、加密解密、计算机图形变换等方面的应用进行研究。 【关键词】 高等数学矩阵实际应用 二.应用举例 1.生产成本计算:在社会生产管理中经常要对生产过程中产生的很多数据进行统计、处理、分析,以此来对生产过程进行了解和监控,进而对生产进行管理和调控,保证正常平稳的生产以达到最好的经济收益。但是得到的原始数据往往纷繁复杂,这就需要用一些方法对数据进行处理,生成直接明了的结果。在计算中引入矩阵可以对数据进行大量的处理,这种方法比较简单快捷。 例1.某工厂生产三种产品A、B、C。每种产品的原料费、支付员工工资、管理费和其他费用等见表1,每季度生产每种产品的数量见表2。财务人员需要用表格形势直观地向部门经理展示以下数据:每一季度中每一类成本的数量、每一季度三类成本的总数量、四个季度每类成本的总数量。 表1.生产单位产品的成本(元)表2.每种产品各季度产量(件) 产品 成本 A B C 原料费用10 20 15 支付工资30 40 20

解 我们用矩阵的方法考虑这个问题。两张表格的数据都可以表示成一个矩阵。如下所示: 通过矩阵的乘法运算得到 MN 的第一行元素表示了四个季 度中每个季度的原料总成本; MN 的第二行元素表示了四个季度中每个季度的支付工资总成本; MN 的第三行元素表示了四个季度中每个季度的管理及其他总成本。 MN 的第一列表示了春季生产三种产品的总成本; MN 的第二列表示了夏季生产三种产品的总成本; MN 的第三列表示了秋季生产三种产品的总成本; MN 的第四列表示了冬季生产三种产品的总成本。 对总成本进行汇总,每一类成本的年度总成本由矩阵的每一行元素相加得到,每一季度的总成本可由每一列相加得到。如下表: 表3. 总成本汇总表 管理及其他费用 10 15 10 产品 季度 春季 夏季 秋季 冬季 A 2000 3000 2500 2000 B 2800 4800 3700 3000 C 2500 3500 4000 2000 季度 春季 夏季 秋季 冬季 全年 原料费 113500 178500 159000 110000 561000 支付工资 222000 352000 303000 220000 1097000 ????? ??=200040003500250030003700480028002000250030002000N

矩阵论在电路中的应用

矩阵论在电路分析中的应用 随着科学技术的迅速发展,古典的线性代数知识已不能满足现代科技的需要,矩阵的理论和方法业已成为现代科技领域必不可少的工具。诸如数值分析、优化理论、微分方程、概率统计、控制论、力学、电子学、网络等学科领域都与矩阵理论有着密切的联系,甚至在经济管理、金融、保险、社会科学等领域,矩阵理论和方法也有着十分重要的应用。当今电子计算机及计算技术的迅速发展为矩阵理论的应用开辟了更广阔的前景。因此,学习和掌握矩阵的基本理论和方法,对于工科研究生来说是必不可少的。全国的工科院校已普遍把“矩阵论”作为研究生的必修课。 对于电路与系统专业的研究生,矩阵论也显得尤为重要。本文以电路与系统专业研究生的必修课《电网络分析与综合》为例,讲解矩阵论的重要作用。 在电路分析中,对于一个有n个节点,b条支路的电路图, 每条支路的电压和电流均为未知,共有2b个未知量。根据KCL 我们可以列出(b-1)个独立的方程,根据KVL我们也可以列出 (b-n+1)个独立的方程,根据每条支路所满足的欧姆定律,我 们还可以可以列出b个方程;总共2b个方程要解出b个支路电 流变量和b个支路电压变量。当b的数值比较大时,传统的解数学方程组的方法已经不再适用了,因此我们需要引入矩阵来帮助我们求解电路。 一. 电网络中最基本的三个矩阵图 1 1.关联矩阵

在电路图中,节点和支路的关联性质可以用关联矩阵][ij a A =来表示。 选取一个节点为参考节点后,矩阵A 的元素为: ?????-+=个节点无关联条支路与第第方向指向节点个节点相关联,且支路条支路与第第方向离开节点个节点相关联,且支路条支路与第第i j i i j i i j a ij 0 1 1 图1中电路图的关联矩阵为 ????????????= 0 1- 0 1- 1- 0 0 1- 0 0 0 1 1 0 0 0 0 0 0 1- 1-0 0 1- 1 0 0 1 A 2. 基本回路矩阵 在电路图中,基本回路和支路的关联性质可以用基本回路矩阵][ij f b B =来表示。当选定电路图中的一个树,额外再增加一个连枝的时候,就会形成一个基本回路。选取基本回路的方向与它所关联的连枝方向一致,矩阵f B 的元素为: ?? ???-+=个回路无关联条支路与第第反方向和基本回路方向相个回路相关联,且支路条支路与第第同方向和基本回路方向相个回路相关联,且支路条支路与第第i j i j i j b ij 0 1 1 图1中电路图的基本回路矩阵为 ???? ??????=1 0 0 1- 1 0 0 0 1 0 1- 1 1- 1 0 0 1 0 1- 1 1-f B 3. 基本割集矩阵 在电路图中,基本割集和支路的关联性质可以用基本割集矩阵][ij f q Q =来表示。当选

矩阵的应用

矩阵在经济生活中的应用 班级:电子商务151 姓名:xx 学号:2015xxxxxx 总述:随着社会的不断发展,科技的不断进步,大学经济数学在各个方面的应用越来越广。而经济数学中的线性代数之矩阵,同样也同样有着广泛的应用。比如矩阵在生产成本、人口流动、加密解密等方面的应用。 一、首先,我来阐述下矩阵的基本概念。 1、由m ?n 个数a ij (i =1, 2,???,m ;j =1, 2,???,n )按一定秩序排列成的一个m 行n 列的矩形表, 称为一个m 行n 列的矩阵, 简称m ?n 记 其中,矩阵还可以分为,对角矩阵、单位矩阵、数量矩阵三角形矩阵、同型矩阵等等。 2、矩阵的乘法、矩阵转置、逆矩阵、行列式等知识的应用 二、现在来谈谈它在生活中的应用 1.生产成本计算:在社会生产管理中经常要对生产过程中产生的很多数据进行统计、处理、分析,以此来对生产过程进行了解和监控,进而对生产进行管理和调控,保证正常平稳的生产以 111212122212n n m m mn a a a a a a a a a ?? ? ? ???

达到最好的经济收益。但是得到的原始数据往往纷繁复杂,这就需要用一些方法对数据进行处理,生成直接明了的结果。在计算中引入矩阵可以对数据进行大量的处理,这种方法比较简单快捷。 例1、某企业生产4种产品, 各种产品的季度产值(单位: 万元)如下表所示: 这个排成4行4列的矩形产值阵列 结论:具体描述了这家企业各种产品各季度的产值, 同时也揭示了产值的季增长率及年产量等情况。使得生产数据更加简单明了,便于数据的分析和企业未来发展规划的布局与展开。 例2、生产m 种产品需用n 种材料, 如果以a ij 表示生产第i 种产品(i =1, 2,???,m )耗用第j 种材料( j =1, 2,???,n )的定额, 则消耗定额可以用一个矩形表表示, 如下表所示 80587578987085849075909088708280?? ? ? ???

相关主题
文本预览
相关文档 最新文档