1、=圈灵程序设计丛书 日平冈和幸掘玄著卢晓南译从入门到应用,透彻理解线性代数的本质最易上手的图解教程心夕4”令才、四中国工信出版集团詹人民邮电出版社=图灵程序设计丛书 日平冈和幸掘玄著卢晓南译f、Z 心人民邮电出版社北京图书在版编目(CIP)数据程序员的数学.3,线性代数/CI I)平冈和幸,c Fl)堋玄著;卢晓南译北京:入民邮屯出版社,2016.3(图灵程序设计丛书)ISBN 978-7-115-41774-9 程II.CD平堋卢III.CD屯了计算机数学基础线性代数IV.(DTP30l.6015l.2 中国版本图书销CIP数据核字(2016)第023197号内容提要本书沿袭“程序员的数学”
2、系列平易近人的风格,用通俗的语言和具象的图表深入讲解了编程中所盂的线性代数知识,内容包括向屈、矩阵、行列式、秋、逆矩阵、线性方程、LU分解、特征伯、对角化、Jordan标准型、特征值算法等。本书适合所有与计算机相关的专业和1卜专业人士,以及学习线性代数的学生阅i女。著译责任编铅执行编辑 II 1平冈和幸掘玄片晓南乐馨札晓静责任印刷杨林杰 人民邮电出版社出版发行北京市韦台区成寿寺路II号邮编100164 电子邮件3 I 网址http:/ 北京天宇扭印刷厂印刷 开本:800X 1000 1/16 印张:24 字数:510千字2016年3月第1版印数:1-4000册2016年3月北京第1次印刷茗作权
3、合同登记号图字:01-20 l 3-R253号定价:79.00元读者服务热线:(010)51095186转600印装质量热线:(010)81055316 反盗版热线:(010)R1055315 广告经营许可证:京东工商广字第8052号译者序相信手捧本书的读者,对“线性代数”这个词一定不陌生不管当你回想起这四个字时心里是什么滋味,我相信通过本书,你一定会对这门数学(同时可能也是你的工具)产生新的认识其实,译者在最初学习线性代数的时候,也经历过一段仙折的过程。在没有问题导向的学习方式下学习的过程既枯燥又效率低下但是后来在数学专业课的学习过程中,无时无刻不在使用微积分和线性代数作为基本具具,经过这种
4、“居高临下”的训练,才悟出线性代数的木质是什么当时很多数学系的同学都有这样的感悟:“学过数值代数,才知道线性代数是多简单,多纯粹(本书就会带领大家快速进入数值代数领域!)工科的读者可能没有这样的经历,也就渐渐忘记了大一时学过的数学,然而,在信息科学、计算机科学的研究开发领域,向址、矩阵巳经是“基本单位”了。如果你正因为“向屈、矩阵”而在研究中放不开手脚或者因为“数值算法的实现”而在工作中畏首畏尾,那么本书正是为你准备的关于本书的内容和风格,这里就不多说了,请乔后面的前言吧!说起来,译者也是偶然与本书结缘的。在“脱离“数学系后,写了不少年的程序,直到译者赴日本继续数学学习和研究,无意间见到本书原
5、版这时才发现,原来可以通过这样的方式来讲解、学习线性代数本书不仅直接从本质意义出发对所有核心概念都给予了直观的解释,还能带领读者“快速直达“数值代数领域!同样也是机缘巧合,在发现图灵公司打算引进本书时,译者几乎是一瞬间就决定了要尝试翻译本书。在投身翻译丁什作之后,才意识到仅有数学、计算机知识以及日语阅读能力是远远不够的因此,在翻译中可能会有表达不到位的情况出现,欢迎大家批评指正这里也要特别感谢图灵的编辑在翻译过程中给予的帮助和支持正文中原作者多次提到了参考文献和扩展阅读书目,但是据译者所知,原书的参考文献iv 译者序目前都没有中译木为此,译者在这里斗胆推荐一些中文的参考文献关千第2章中提到的“
6、张屈”“外积”等概念,建议有兴趣的读者参考柯斯特利金的代数学引论(第二卷):线性代数的第6音”张扯另外,对千在数学的抽象性和严密性1.有较高要求的“数学派”的诙者,特别推荐龚界先生的线性代数五讲这本很剌的小册户从现代数学的观点(校理论)出发,对线性空间、线性变换进行了全新的诠释巾千龚先生书写得非常精炼,如果阅读起米感觉吃力的话,不妨乔乔戈德门特的代数学教程通过我们这本书,读者可以对线性变换(包括坐标变换)有直观感受、而通过更窃阶的阅读、则能从一般线性群等更抽象的角度去理解“变换,这对从书信息科学、数据科学等研究T作的读者来说是颇有裨益的从1和2中,i关者也可以略微感受到老牌数学强国俄罗斯和法国
7、的数学风格如果不打殍深究”纯数学”的话,汝者可以在本书的基础I.:.根据lI己的需要,参考数值分析矩阵论等教材r最后,巾衷希望大家能从本书中有所收获,喜欢本书,并推荐给亲友谢谢!参考文献与扩展阅读书目卢晓南2015年1月于名古屋1 A.J1柯斯特利金著,牛风山译代数学引论(第二卷)线性代数(第3版)l1 北京高等教育出版社,20082 n戈德门特著,卫耀东译代数学教程lI北京高等教育出版社,2013.3龚异线性代数五讲lI北京科学出版社.2005.4丘维卢高等代数(上)(第2版)ll北京扁等教育出版补.2002 5丘维卢高等代数(下)(第2版)lI.北京高客教育出版社.2003 6徐树方,商立
8、张平文数俏线性代数lI北京北京大学出版社,2000.削舌看到本书的标题程序员的数学3:线性代数时,不同的读者应该会有不同的印象吧J我们根据读者可能会产生的第一印象,为读者设定了“快捷方式”又是程序员的数学系列啊”一(a)肯定有好多公式,推理也会很烦,念起来应该很吃力吧-t(b)想必会解释得细致入微,但讲韶的深度应该很有限吧-t(c).这作者是干嘛的-t(d)我也不编程啊-t(c)(a)致想到”又是程序员的数学系列啊的读者木书面向的主要读者群体包括与计符机相关的所有专业与作专业人士作为一本线性代数的参考书,本书的一大特色是,针对以上这些读者,在讲解时使用了易于他们理韶的表述方式,并运川了大屈的示
9、例和比喻。我们的目标是向非数学专业的读者讲述线性代数的本质正因为如此,这不是一本单单讲韶“如何进行线性代数相关的编程”的书读者只要阅读一下前言的(c)部分,就可以对本书的风格有个大概的了解r我们把本书特别推荐给以下读者 想要从事信号处理、数据分析等方面的工作或研究,在阅读相关专业书籍的过程中遇到了线性代数,面对这些问题怎么也搞不明白,因此希屯学习(或者补充)一下相关知识但是能找到的参考书中不是充斥着数学证明的教科书就是看过之后似懂旧们的入门书言前,1 v 正在学校学习线性代数,而且不仅仅满足于通过考试,而是希望切切实实地掌握相关知识,以便在以后的下作中熟练使用因为本书面向的读者主要是非数学专业
10、的,所以我们不会为了数学而讲数学,而是更加强调”这些知识在哪里会有用n虽然理了科中有众多不同的专业,每个专业所研究的对象也是各种各样,但是其中涉及的数学问题却总有着这样那样的共通之处在本书中,我们首先会提炼出这类问题,接着在挑战这些问题的过程中导入线性代数的概念这就是本书的风格。这样做不仅是为了讲解数学理论,更是为了使读者学会线性代数的“用法”。(b)致想到“肯定有好多公式,推理也会很烦,念起来应该很吃力吧的读者为了让读者尽可能透彻地理解线性代数的本质含义,本书中在说明时穿插了很多直观的示意图。试想,如果学完了线性代数,却只懂得行列式的计符,而对行列式的意义一无所知,那这种学习有什么用呢?无论
11、是笔算还是用计算机算,如果只是求出了“迷一般的行列式的值,那没有任何意义。为了避免这种徒劳无功的学习,本书会着重对原理、推导过程进行细致的解释-但是,就算再完美、再严密的理论体系,(对非数学专业的人来说)也总会在少数地方存在一些麻烦的东西。在学习比入门书难度稍大一点的参考书时,想必很多读者都在一些无关痛痒的难点处栽了跟头。在本书中,我们会重点关注真正重要的地方,为读者讲解思路和方法,使读者不只是学会计笥步骤,还能达到更高的层次。关丁数学公式,在必要的时候当然会使用,但是为了避免读者产生恐惧心理,我们尽撮避免了那些往往会吓到外行的一木正经的表述例另外,针对读者不同层次的需求,本书采用了可以进行跳
12、跃式阅读的结构(更加细致的章节结构请参考目录)第层次在阅读那些以线性代数为丁具的资料时比如信号处理、数据分析等领域的参考书,希望能够明白其中的数学公式等的意义一阅读第1章(跳过标有v和77的章节)比如,不写成I:10a,的形式,而是采用a1+a10的记法。对于涉及变扯、下标等的地方,我们会i=l 采用更加具体直观的写法标有v的章节的主要内容是如何进行笔算(以及相关知识),标有vv的章节的主要内容是如何使用计算机进行计算以及相关的算法分析那些只是草草学过一遍线性代数的读者,在阅读过第1章之后,也会有不少新的发现和启发第二层次在阅读以线性代数为工具的参考书时,希望理韶书中的内容一阅读全书(跳过标有
13、v和vv的章节)第三层次希望能够自已进行计算一阅读全书(跳过标有vv的章节)第四层次希望踏入大规模矩阵计算的世界一阅读全书,包括标有vv的章节于削云.VII 那些不期望自已成为专家的读者,把目标定在第二层次如何?如果有时间学习逆矩阵的笔算法”的话,记住“如果映射带来了压缩扁平化变换,则不存在逆矩阵”这一本质特性是作常有意义的。哪怕是为了计算而学,比起死记硬背笔算法的步骤,“能够区分XXT是矩阵,五x是数”“能够用分块矩阵来表示Ax+b这些技能在后续的学习和丁一作中会更有用心好了,以L是笔者对读者的一些建议(c)致想到“想必会解释得细致人微,但讲解的深度应该很有限吧的读者生硬的数学书就好比是缺少
14、注释的源代砃。虽然有些程序执行效率非常高,也很优雅,但是从可读性的角度来讲,要想理韶代砃的含义,就需要付出一定的努力、具有一定的素养,以及对程序有感觉(夸张地讲,可能还需要一些逆向工程的知识)另一方面,入门书一不小心就会出现类似千“只有注释而没有代码”“虽然有代码段,但是没办法将其作为完整的程序来执行的情况本书属于“既给出能够执行的完整代码.又附带充足的注释“那种类型我们的注释,不会是如下这种风格给p增加1p=p+1 这种注释有没有都一样我们的风格是这样的前奏已经足够了,转到下一页这些将在1.2.13节和1.2.9节中进行说明对于尤论如何都尤法避免繁杂操作的部分,在少数地方我们会利用现成的下具
15、包、类库进行封装处理.宁Vlll月1巨p=p+1 注释只有说明了指令的意图才是有意义的我们一方面通过注释帮助代码把“内心的八实想法”传达给读者,同时也写出了本身就“不乏风味”的代砃这也是本书的一大亮点另外“不乏风味”还有一层含义、那就是不单单让读者学会韶题,还要学到一种行待问题的新方式比如,“学了秩的概念之后一下子就能判断出能否由结果推出原因.学f特征值、特征向址的概念之后,很快就能了解系统是否有失控危险了,像这样如果汝者能够感到自己的思路被打开,最后体会到了“一览众山小的快乐那么我们的目的就达到了为此如果仅仅是简单介绍秩的概念,或者简单讲解计算方法,那是远远不够的只有充分理解了其本质含义,才
16、能从问题的根源出发,从而轻而易举地理韶不满秩则矩阵的逆不存在”等问题出于这种考虑,木书遴循以下原则要讲就要讲到本质,否则就没有意义了用浅显的语言逐步解释,让读者打心底里认为、推出这祥的结果是理所斗1然的最后要达到的层次绝对不符低本书涉及了很多线性代数教科书中通常不会提及的数值分析的内容这一点大家看行目录就会发现另外,本书作为“基础篇”,基本上不考虑带有度址的问题,而是以无度址的问题为中心。以后如果有机会的话,我们也许会以某种方式发布“应川篇,届时冉讨论带有度扯的实际问题v(d)致想到“这作者是干嘛的的读者笔者是从事应用数学、丁程数学研究的科研丁作者在诸如模式识别、神经网络、作线性动力系统、统计数据分析等领域,本书涉及的内容作为“常识”,每天都在发挥着关键作用。就算是进入了非线性理论的世界,线性代数作为基本的丁且也是必不可少的。无论是在理论上还是在应用上,笔者都将尽可能地展现出数学真正有川的一面另外本书中也川心地选取了合适的题材和恰当的切入点,使得在实际问题中线性代数的“使川”不显得突兀,(e)致想到“我也不编程啊的读者读过前言的(a)部分就会了解到,本书并不以“如何进行线性代数的相关编