程序员的数学3线性代数
畅xiao书《程序员的数学》第3弹!机器学习、数据挖掘、模式识别基础知识
图文直观配合精心制作的示意图和动画,让你读起来不累
重在应用不再为了数学而讲数学,让你知道数学真正有用的一面
透彻深入直接从本质意义出发解释核心概念,让你“快速直达”数值代数领域
通俗易懂用浅显的语言逐步解释,让你打心底里认为“推出这样的结果是理所当然的”
目录
程序员的数学3 线性代数
第0章 动机 1
0.1 空间想象给我们带来的直观感受 1
0.2 有效利用线性近似的手段 2
第1章 用空间的语言表达向量、矩阵和行列式 5
1.1 向量与空间 5
1.1.1 zui直接的定义:把数值罗列起来就是向量 6
1.1.2 “空间”的形象 9
1.1.3 基底 11
1.1.4 构成基底的条件 16
1.1.5 维数 18
1.1.6 坐标 19
1.2 矩阵和映射 19
1.2.1 暂时的定义 19
1.2.2 用矩阵来表达各种关系(1) 24
1.2.3 矩阵就是映射! 25
1.2.4 矩阵的乘积=映射的合成 28
1.2.5 矩阵运算的性质 31
1.2.6 矩阵的乘方=映射的迭代 35
1.2.7 零矩阵、单位矩阵、对角矩阵 37
1.2.8 逆矩阵=逆映射 44
1.2.9 分块矩阵 47
1.2.10 用矩阵表示各种关系(2) 53
1.2.11 坐标变换与矩阵 55
1.2.12 转置矩阵=??? 63
1.2.13 补充(1):时刻注意矩阵规模 64
1.2.14 补充(2):从矩阵的元素的角度看 67
1.3 行列式与扩大率 68
1.3.1 行列式=体积扩大率 68
1.3.2 行列式的性质 73
1.3.3 行列式的计算方法(1):计算公式▽ 80
1.3.4 行列式的计算方法(2):笔算法▽ 87
1.3.5 补充:行列式按行(列)展开与逆矩阵▽ 91
第2章 秩、逆矩阵、线性方程组——溯因推理 95
2.1 问题设定:逆问题 95
2.2 良性问题(可逆矩阵) 97
2.2.1 可逆性与逆矩阵 97
2.2.2 线性方程组的解法(系数矩阵可逆的情况)▽ 97
2.2.3 逆矩阵的计算方法▽ 107
2.2.4 初等变换▽ 110
2.3 恶性问题 115
2.3.1 恶性问题示例 115
2.3.2 问题的恶劣程度——核与像 120
2.3.3 维数定理 122
2.3.4 用式子表示“压缩扁平化”变换(线性无关、线性相关) 126
2.3.5 线索的实际个数(秩) 130
2.3.6 秩的求解方法(1)——悉心观察 137
2.3.7 秩的求解方法(2)——笔算 142
2.4 良性恶性的判定(逆矩阵存在的条件) 149
2.4.1 重点是“是不是压缩扁平化映射” 149
2.4.2 与可逆性等价的条件 150
2.4.3 关于可逆性的小结 151
2.5 针对恶性问题的对策 152
2.5.1 求出所有能求的结果(1)理论篇 152
2.5.2 求出所有能求的结果(2)实践篇 155
2.5.3 zui小二乘法 166
2.6 现实中的恶性问题(接近奇异的矩阵) 167
2.6.1 问题源于哪里 167
2.6.2 对策示例——提克洛夫规范化 170
第3章 计算机上的计算(1)——LU 分解 173
3.1 引言 173
3.1.1 切莫小看数值计算 173
3.1.2 关于本书中的程序 174
3.2 热身:加减乘运算 174
3.3 LU分解 176
3.3.1 定义 176
3.3.2 分解能带来什么好处 178
3.3.3 LU分解真的可以做到吗 178
3.3.4 LU分解的运算量如何 180
3.4 LU分解的步骤(1)一般情况 182
3.5 利用LU分解求行列式值 186
3.6 利用LU分解求解线性方程组 187
3.7 利用LU分解求逆矩阵 191
3.8 LU分解的步骤(2)意外发生的情况 192
3.8.1 需要整理顺序的情况 192
3.8.2 重新整理顺序也无济于事的状况 196
第4章 特征值、对角化、Jordan标准型——判断是否有失控的危险 197
4.1 问题的提出:稳定性 197
4.2 一维的情况 202
4.3 对角矩阵的情况 203
4.4 可对角化的情况 205
4.4.1 变量替换 205
4.4.2 变量替换的求法 213
4.4.3 从坐标变换的角度来解释 215
4.4.4 从乘方的角度来解释 219
4.4.5 结论:关键取决于特征值的绝dui值 220
4.5 特征值、特征向量 220
4.5.1 几何学意义 220
4.5.2 特征值、特征向量的性质 225
4.5.3 特征值的计算:特征方程 232
4.5.4 特征向量的计算▽ 240
4.6 连续时间系统 246
4.6.1 微分方程 247
4.6.2 一阶情况 250
4.6.3 对角矩阵的情况 250
4.6.4 可对角化的情况 252
4.6.5 结论:特征值(的实部)的符号是关键 252
4.7 不可对角化的情况 255
4.7.1 shou先给出结论 255
4.7.2 就算不能对角化——Jordan标准型 256
4.7.3 Jordan标准型的性质 257
4.7.4 利用Jordan标准型解决初始值问题(失控判定的zui终结论) 264
4.7.5 化Jordan标准型的方法 271
4.7.6 任何方阵均可化为Jordan标准型的证明 279
第5章 计算机上的计算(2)——特征值算法 299
5.1 概要 299
5.1.1 和笔算的不同之处 299
5.1.2 伽罗华理论 300
5.1.3 5×5以上的矩阵的特征值不存在通用的求解步骤! 302
5.1.4 有代表性的特征值数值算法 303
5.2 Jacobi方法 303
5.2.1 平面旋转 304
5.2.2 通过平面旋转进行相似变换 306
5.2.3 计算过程的优化 309
5.3 幂法原理 310
5.3.1 求绝dui值zui大的特征值 310
5.3.2 求绝dui值zui小的特征值 311
5.3.3 QR分解 312
5.3.4 求所有特征值 316
5.4 QR方法 318
5.4.1 QR方法的原理 319
5.4.2 Hessenberg矩阵 321
5.4.3 Householder方法 322
5.4.4 Hessenberg矩阵的QR迭代 325
5.4.5 原点位移、降阶 327
5.4.6 对称矩阵的情况 327
5.5 反幂法 328
附录A 希腊字母表 330
附录B 复数 331
附录C 关于基底的补充说明 336
附录D 微分方程的解法 341
D.1 dx/dt = f(x) 型 341
D.2 dx/dt = ax g(t) 型 342
附录E 内积、对称矩阵、正交矩阵 346
E.1 内积空间 346
E.1.1 模长 346
E.1.2 正交 347
E.1.3 内积 347
E.1.4 标准正交基 349
E.1.5 转置矩阵 351
E.1.6 复内积空间 351
E.2 对称矩阵与正交矩阵——实矩阵的情况 352
E.3 埃尔米特矩阵与酉矩阵——复矩阵的情况 353
附录F 动画演示程序的使用方法 354
F.1 执行结果 354
F.2 准备工作 354
F.3 使用方法 355
参考文献 357
程序员的数学2 概率统计
程序员的数学
内容简介
程序员的数学3线性代数
本书沿袭“程序员的数学”系列平易近人的风格,用通俗的语言和具象的图表深入讲解了编程中所需的线性代数知识。内容包括向量、矩阵、行列式、秩、逆矩阵、线性方程、LU分解、特征值、对角化、Jordan标准型、特征值算法等。
程序员的数学2概率统计
程序员的数学2:概率统计》沿袭《程序员的数学》平易近人的风格,用通俗的语言和具体的图表深入讲解程序员必须掌握的各类概率统计知识,例证丰富,讲解明晰,且提供了大量扩展内容,引导读者进一步深入学习。
涉及变量、贝叶斯公式、离散值和连续值的概率分布、协方差矩阵、多元正态分布、估计与检验理论、伪数以及概率论的各类应用,适合程序设计人员与数学爱好者阅读,也可作为高中或大学非数学专业学生的概率论入门读物。
程序员的数学
编程的基础是计算机科学,而计算机科学的基础是数学。因此,学习数学有助于巩固编程的基础,写出更健壮的程序。
本书面向程序员介绍了编程中常用的数学知识,借以培养初级程序员的数学思维。读者无需精通编程,也无需精通数学,只需具备四则运算和乘方等基础知识,就可以阅读本书。
书中讲解了二进制计数法、逻辑、余数、排列组合、递归、指数爆炸、不可解问题等许多与编程密切相关的数学方法,分析了哥尼斯堡七桥问题、少年高斯求和方法、汉诺塔、斐波那契数列等经典问题和算法。引导读者深入理解编程中的数学方法和思路。
本书还对程序员和计算机的分工进行了有益的探讨。读完此书,你会对以程序为媒介的人机合作有更深刻的理解。
作者简介
平冈和幸(作者)专攻应用数学和物理,对机器学习兴趣浓厚。喜欢Ruby,热爱Scheme。被Common Lisp吸引,正在潜心研究。工学博士。
堀玄(作者)专攻应用数学和物理,主要从事脑科学与信号处理领域的研究。喜欢Ruby、JavaScript、PostScript等语言。正在研究基于统计学理论的语言处理。工学博士。
卢晓南(译者)曾就读于西安交通大学少年班和数学系信息与计算科学专业。从大学时代起对计算机算法产生浓厚兴趣,并曾负责校BBS系统开发和维护。从事程序开发工作多年直到赴日留学。目前在名古屋大学攻读博士学位。主要研究方向为组合数学及其在信息科学、计算机科学、统计学、生物信息学中的应用。