程序员数学 | PDF下载|ePub下载
出版社: 人民邮电出版社
原作名: Cracking the coding interview:150 programming questions and solutions,fifth edition
译者:李琳骁/漆犇
出版年: 2013-11
页数: 372
定价: 59.00元
装帧: 平装
ISBN: 9787115332912
内容简介 · · · · · ·
数学拥有无穷的力量。它既帮助游戏开发工程师建模物理世界,也帮助量化金融分析师赚取利润,还帮助音频处理工程师制作音乐。在数据科学和机器学习领域,数学知识更是不可或缺的。
有人热爱数学,将它比作诗歌,为之着迷一生;有人很难领会数学的妙处,受困于“数学焦虑症”。本书正是为了帮助程序员消除这种焦虑,用自己熟悉的工具,即代码,重新发现数学之美。
◎ 编辑推荐
本书以图文结合的方式帮助你用Python代码解决程序设计中的数学问题。通过边学边练,你会发现线性代数和微积分的重要概念跃然纸上、印在脑中。
◇ 向量几何和计算机图形
◇ 矩阵和线性变换
◇ 微积分的核心概念
◇ 仿真和优化
◇ 图像处理和音频处理
◇ 用于回归和分类的机器学习算法
◎ 内容简介
代码和数学是相知相惜的好伙伴,它们基于共同的理性思维,数学公式的推导可以自然地在编写代码的过程中展开。
本书带领程序员使用自己熟知的工具,即代码,来理解机器学习和游戏设计中的数学知识。通过Python代码和300多个练习,读者将掌握二维向量、三维向量、矩阵变换、线性方程、微积分、线性回归、逻辑回归、梯度下降等。
◎ 名人推荐
“这本书循序渐进地介绍了程序员应该掌握的有用的数学概念。”
——Christopher Haupt,Swoogo公司工程副总裁
“这本书严谨而简明地概述了对现代编程起支撑作用的数学知识。”
——Dan Sheikh,BCG Digital Ventures公司工程师
“实用、引人入胜。推荐所有程序员阅读。”
——Vincent Zhu,RethinkXSocial网站联合创始人兼CTO
“这本书为需要提高数学技能的程序员建造了一座桥梁,使数学不再那么神秘、那么难以理解。”
——Robert Walsh,Excalibur Solutions公司总裁
作者简介 · · · · · ·
◎ 著者简介
保罗·奥兰德(Paul Orland),硅谷创业公司Tachyus的联合创始人兼CEO,拥有耶鲁大学数学学士学位和华盛顿大学物理学硕士学位,曾任微软公司软件开发工程师,近10年来一直致力于使用数学和函数式编程来优化能源生产。
◎ 译者简介
百度KFive,KFive是百度App大前端团队,成员涵盖PC端和手机百度的大前端研发者。在业务支持之外,KFive研究的技术方向还包括前端基础架构、跨端开发、Node.js、端智能和前端智能化等,并且积累了丰富的产出。KFive的名称不仅来源于起初的办公地点在百度科技园五号楼,更体现了其对软件开发的理解,即“五Key”:Key1者,精益求精;Key2者,大巧不工;Key3者,独运匠心;Key4者,百炼千锤;Key5者,善始善终。
目录 · · · · · ·
1.1 使用数学和软件解决商业问题 2
1.2 如何高效学习数学 9
1.3 用上你训练有素的左脑 11
1.4 小结 14
第一部分 向量和图形
第2章 二维向量绘图 16
2.1 二维向量绘图 16
2.2 平面向量运算 25
2.3 平面上的角度和三角学 41
2.4 向量集合的变换 57
2.5 用Matplotlib绘图 61
2.6 小结 62
第3章 上升到三维世界 63
3.1 在三维空间中绘制向量 64
3.2 三维空间中的向量运算 70
3.3 点积:测量向量对齐 78
3.4 向量积:测量定向区域 88
3.5 在二维平面上渲染三维对象 96
3.6 小结 102
第4章 变换向量和图形 103
4.1 变换三维对象 105
4.2 线性变换 117
4.3 小结 132
第5章 使用矩阵计算变换 134
5.1 用矩阵表示线性变换 135
5.2 不同形状矩阵的含义 148
5.3 用矩阵平移向量 163
5.4 小结 174
第6章 高维泛化 176
6.1 泛化向量的定义 177
6.2 探索不同的向量空间 188
6.3 寻找更小的向量空间 205
6.4 小结 220
第7章 求解线性方程组 222
7.1 设计一款街机游戏 223
7.2 找到直线的交点 227
7.3 将线性方程泛化到更高维度 240
7.4 通过解线性方程来改变向量的基 253
7.5 小结 257
第二部分 微积分和物理仿真
第8章 理解变化率 261
8.1 根据体积计算平均流速 262
8.2 绘制随时间变化的平均流速 266
8.3 瞬时流速的近似值 271
8.4 体积变化的近似值 278
8.5 绘制随时间变化的体积图 283
8.6 小结 290
第9章 模拟运动的对象 291
9.1 模拟匀速运动 291
9.2 模拟加速 295
9.3 深入研究欧拉方法 296
9.4 用更小的时间步执行欧拉方法 300
9.5 小结 305
第 10章 使用符号表达式 306
10.1 用计算机代数系统计算精确的导数 309
10.2.1 将表达式拆分成若干部分 310
10.2.3 使用Python语言实现表达式树 311
10.2.4 练习 313
10.3 符号表达式的应用 315
10.4 求函数的导数 323
10.5 自动计算导数 330
10.6 符号化积分函数 335
10.7 小结 338
第 11章 模拟力场 339
11.1 用向量场对引力建模 339
11.2 引力场建模 342
11.3 把引力加入小行星游戏 345
11.4 引入势能 350
11.5.1 用横截面测量陡度 354
11.5.2 计算偏导数 356
11.5.3 用梯度求图形的陡度 357
11.5.4 用势能的梯度计算力场 359
11.5.5 练习 361
11.6 小结 364
第12章 优化物理系统 365
12.1 测试炮弹模拟器 367
12.2 计算最佳射程 373
12.3 增强模拟器 381
12.4 利用梯度上升优化范围 388
12.5 小结 399
第13章 用傅里叶级数分析声波 400
13.1 声波的组合和分解 401
13.2 用Python播放声波 402
13.3 把正弦波转化为声音 406
13.4 组合声波得到新的声波 412
13.5 将声波分解为傅里叶级数 419
13.6 小结 428
第三部分 机器学习的应用
第14章 数据的函数拟合 431
14.1 衡量函数的拟合质量 433
14.2 探索函数空间 441
14.3 使用梯度下降法寻找最佳拟合线 445
14.4 非线性函数拟合 448
14.5 小结 453
第15章 使用logistic回归对数据分类 455
15.1 用真实数据测试分类函数 456
15.2 绘制决策边界 460
15.3 将分类问题构造为回归问题 464
15.4 探索可能的logistic函数 471
15.5 寻找最佳logistic函数 477
15.6 小结 483
第16章 训练神经网络 484
16.1 用神经网络对数据进行分类 485
16.2 手写数字图像分类 486
16.3 设计神经网络 491
16.4 用Python构建神经网络 499
16.5 使用梯度下降法训练神经网络 504
16.6 使用反向传播计算梯度 509
16.7 小结 513
附录A 准备Python(图灵社区下载)
附录B Python技巧和窍门(图灵社区下载)
附录C 使用OpenGL和PyGame加载和渲染三维模型(图灵社区下载)
附录D 数学符号参考(图灵社区下载)
· · · · · ·
发表回复
要发表评论,您必须先登录。