基本信息
编辑推荐
畅销书《程序员的数学》第3弹!
机器学习、数据挖掘、模式识别必备基础知识
从入门到应用,透彻理解线性代数的本质
内容简介
作译者
目录
0.1 空间想象给我们带来的直观感受
0.2 有效利用线性近似的手段
第1章 用空间的语言表达向量、矩阵和行列式
1.1 向量与空间
1.1.1 最直接的定义:把数值罗列起来就是向量
1.1.2 “空间”的形象
1.1.3 基底
1.1.4 构成基底的条件
1.1.5 维数
1.1.6 坐标
1.2 矩阵和映射
1.2.1 暂时的定义
1.2.2 用矩阵来表达各种关系(1)
1.2.3 矩阵就是映射!
1.2.4 矩阵的乘积=映射的合成
1.2.5 矩阵运算的性质
1.2.6 矩阵的乘方=映射的迭代
1.2.7 零矩阵、单位矩阵、对角矩阵
1.2.8 逆矩阵=逆映射
译者序
其实,译者在最初学习线性代数的时候,也经历过一段曲折的过程。在没有问题导向的学习方式下,学习的过程既枯燥又效率低下。但是后来在数学专业课的学习过程中,无时无刻不在使用微积分和线性代数作为基本工具,经过这种“居高临下”的训练,才悟出线性代数的本质是什么。当时很多数学系的同学都有这样的感悟:“学过数值代数,才知道线性代数是多简单,多纯粹。”(本书就会带领大家快速进入数值代数领域!)工科的读者可能没有这样的经历,也就渐渐忘记了大一时学过的数学。然而,在信息科学、计算机科学的研究开发领域,向量、矩阵已经是“基本单位”了。如果你正因为“向量、矩阵”而在研究中放不开手脚,或者因为“数值算法的实现”而在工作中畏首畏尾,那么本书正是为你准备的。关于本书的内容和风格,这里就不多说了,请看后面的前言吧!
说起来,译者也是偶然与本书结缘的。在“脱离”数学系后,写了不少年的程序,直到译者赴日本继续数学学习和研究,无意间见到本书原版,这时才发现,原来可以通过这样的方式来讲解、学习线性代数。本书不仅直接从本质意义出发对所有核心概念都给予了直观的解释,还能带领读者“快速直达”数值代数领域!
同样也是机缘巧合,在发现图灵公司打算引进本书时,译者几乎是一瞬间就决定了要尝试翻译本书。在投身翻译工作之后,才意识到仅有数学、计算机知识以及日语阅读能力是远远不够的。因此,在翻译中可能会有表达不到位的情况出现,欢迎大家批评指正。这里也要特别感谢图灵的编辑在翻译过程中给予的帮助和支持。
正文中原作者多次提到了参考文献和扩展阅读书目,但是据译者所知,原书的参考文献目前都没有中译本。为此,译者在这里斗胆推荐一些中文的参考文献。
关于第2 章中提到的“张量”“外积”等概念,建议有兴趣的读者参考柯斯特利金的《代数学引论(第二卷):线性代数》的第6 章“张量”。另外,对于在数学的抽象性和严密性上有较高要求的“数学派”的读者,特别推荐龚昇先生的《线性代数五讲》。这本很薄的小册子,从现代数学的观点(模理论)出发,对线性空间、线性变换进行了全新的诠释。由于龚先生书写得非常精炼,如果阅读起来感觉吃力的话,不妨看看戈德门特的《代数学教程》。通过我们这本书,读者可以对线性变换(包括坐标变换)有直观感受,而通过更高阶的阅读,则能从一般线性群等更抽象的角度去理解“变换”,这对从事信息科学、数据科学等研究工作的读者来说是颇有裨益的。从[1] 和[2] 中,读者也可以略微感受到老牌数学强国俄罗斯和法国的数学风格。如果不打算深究“纯数学”的话,读者可以在本书的基础上,根据自己的需要,参考《数值分析》《矩阵论》等教材。
最后,由衷希望大家能从本书中有所收获,喜欢本书,并推荐给亲友。谢谢!
卢晓南
2015 年11 月于名古屋
前言
“又是程序员的数学系列啊”!→(a)
“肯定有好多公式,推理也会很烦,念起来应该很吃力吧”! →(b)
“想必会解释得细致入微,但讲解的深度应该很有限吧”! →(c)
“这作者是干嘛的”! →(d)
“我也不编程啊”! →(e)
(a)致想到“又是程序员的数学系列啊”的读者
本书面向的主要读者群体包括与计算机相关的所有专业与非专业人士。作为一本线性代数的参考书,本书的一大特色是,针对以上这些读者,在讲解时使用了易于他们理解的表述方式,并运用了大量的示例和比喻。我们的目标是向非数学专业的读者讲述线性代数的本质。正因为如此,这不是一本单单讲解“如何进行线性代数相关的编程”的书。读者只要阅读一下前言的(c)部分,就可以对本书的风格有个大概的了解了。我们把本书特别推荐给以下读者。
想要从事信号处理、数据分析等方面的工作或研究,在阅读相关专业书籍的过程中遇到了线性代数,面对这些问题怎么也搞不明白,因此希望学习(或者补充)一下相关知识。但是能找到的参考书中,不是充斥着数学证明的教科书,就是看过之后似懂非懂的入门书
正在学校学习线性代数,而且不仅仅满足于通过考试,而是希望切切实实地掌握相关知识,以便在以后的工作中熟练使用
因为本书面向的读者主要是非数学专业的,所以我们不会为了数学而讲数学,而是更加强调“这些知识在哪里会有用”。虽然理工科中有众多不同的专业,每个专业所研究的对象也是各种各样,但是其中涉及的数学问题却总有着这样那样的共通之处。在本书中,我们首先会提炼出这类问题,接着在挑战这些问题的过程中导入线性代数的概念。这就是本书的风格。这样做不仅是为了讲解数学理论,更是为了使读者学会线性代数的“用法”。
(b)致想到“肯定有好多公式,推理也会很烦,念起来应该很吃力吧”的读者
为了让读者尽可能透彻地理解线性代数的本质含义,本书中在说明时穿插了很多直观的示意图。试想,如果学完了线性代数,却只懂得行列式的计算,而对行列式的意义一无所知,那这种学习有什么用呢?无论是笔算还是用计算机算,如果只是求出了“迷一般”的行列式的值,那没有任何意义。为了避免这种徒劳无功的学习,本书会着重对原理、推导过程进行细致的解释。
但是,就算再完美、再严密的理论体系,(对非数学专业的人来说)也总会在少数地方存在一些麻烦的东西。在学习比入门书难度稍大一点的参考书时,想必很多读者都在一些无关痛痒的难点处栽了跟头。在本书中,我们会重点关注真正重要的地方,为读者讲解思路和方法,使读者不只是学会计算步骤,还能达到更高的层次。关于数学公式,在必要的时候当然会使用,但是为了避免读者产生恐惧心理,我们尽量避免了那些往往会吓到外行的一本正经的表述①。
另外,针对读者不同层次的需求,本书采用了可以进行跳跃式阅读的结构(更加细致的章节结构请参考目录)。
第一层次
在阅读那些以线性代数为工具的资料时,比如信号处理、数据分析等领域的参考书,希望能够明白其中的数学公式等的意义
→阅读第1 章(跳过标有▽ 和▽▽ 的章节②)
①比如,不写成 的形式,而是采用 的记法。对于涉及变量、下标等的地方,我们会采用更加具体直观的写法。
②标有▽ 的章节的主要内容是如何进行笔算(以及相关知识),标有▽▽ 的章节的主要内容是如何使用计算机进行计算以及相关的算法分析。那些只是草草学过一遍线性代数的读者,在阅读过第1 章之后,也会有不少新的发现和启发。