• 程序员数学 用Python学透线性代数和微积分
  • 程序员数学 用Python学透线性代数和微积分
21年品牌 40万+商家 超1.5亿件商品

程序员数学 用Python学透线性代数和微积分

全新正版 极速发货

83.44 6.4折 129.8 全新

库存40件

广东广州
认证卖家担保交易快速发货售后保障

作者(美)保罗·奥兰德 著 百度KFive 译

出版社人民邮电出版社

ISBN9787115576491

出版时间2021-12

装帧平装

开本16开

定价129.8元

货号1202548394

上书时间2024-11-16

曲奇书店

已实名 已认证 进店 收藏店铺

   商品详情   

品相描述:全新
商品描述
作者简介
【作者简介】
保罗·奥兰德(Paul Orland)
硅谷创业公司Tachyus的联合创始人兼CEO,拥有耶鲁大学数学学士学位和华盛顿大学物理学硕士学位,曾任微软公司软件开发工程师,近10年来一直致力于使用数学和函数式编程来优化能源生产。

【译者简介】
百度KFive
KFive是百度App大前端团队,成员涵盖PC端和手机百度的大前端研发者。在业务支持之外,KFive研究的技术方向还包括前端基础架构、跨端开发、Node.js、端智能和前端智能化等,并且积累了丰富的产出。KFive的名称不仅来源于起初的办公地点在百度科技园五号楼,更体现了其对软件开发的理解,即“五Key”:Key1者,精益求精;Key2者,大巧不工;Key3者,独运匠心;Key4者,百炼千锤;Key5者,善始善终。

目录
第1章通过代码学数学1

1.1使用数学和软件解决商业问题2

1.1.1预测金融市场走势2

1.1.2寻找优质交易4

1.1.3构建三维图形和动画6

1.1.4对物理世界建模8

1.2如何高效学习数学9

1.2.1Jane想学习数学9

1.2.2在数学课本中苦苦挣扎10

1.3用上你训练有素的左脑11

1.3.1使用正式的语言11

1.3.2构建你自己的计算器12

1.3.3用函数建立抽象概念13

1.4小结14

第一部分向量和图形

第2章二维向量绘图16

2.1二维向量绘图16

2.1.1如何表示二维向量18

2.1.2用Python绘制二维图形20

2.1.3练习23

2.2平面向量运算25

2.2.1向量的分量和长度28

2.2.2向量与数相乘29

2.2.3减法、位移和距离31

2.2.4练习34

2.3平面上的角度和三角学41

2.3.1从角度到分量42

2.3.2Python中的三角学和弧度46

2.3.3从分量到角度47

2.3.4练习50

2.4向量集合的变换57

2.4.1组合向量变换59

2.4.2练习60

2.5用Matplotlib绘图61

2.6小结62

第3章上升到三维世界63

3.1在三维空间中绘制向量64

3.1.1用坐标表示三维向量66

3.1.2用Python进行三维绘图66

3.1.3练习68

3.2三维空间中的向量运算70

3.2.1添加三维向量70

3.2.2三维空间中的标量乘法72

3.2.3三维向量减法72

3.2.4计算长度和距离73

3.2.5计算角度和方向74

3.2.6练习75

3.3点积:测量向量对齐78

3.3.1绘制点积78

3.3.2计算点积80

3.3.3点积的示例82

3.3.4用点积测量角度83

3.3.5练习85

3.4向量积:测量定向区域88

3.4.1在三维空间中确定自己的朝向88

3.4.2找到向量积的方向89

3.4.3求向量积的长度91

3.4.4计算三维向量的向量积92

3.4.5练习93

3.5在二维平面上渲染三维对象96

3.5.1使用向量定义三维对象97

3.5.2二维投影98

3.5.3确定面的朝向和阴影99

3.5.4练习101

3.6小结102

第4章变换向量和图形103

4.1变换三维对象105

4.1.1绘制变换后的对象105

4.1.2组合向量变换107

4.1.3绕轴旋转对象110

4.1.4创造属于你自己的几何变换113

4.2线性变换117

4.2.1向量运算的不变性117

4.2.2图解线性变换119

4.2.3为什么要做线性变换121

4.2.4计算线性变换124

4.2.5练习127

4.3小结132

第5章使用矩阵计算变换134

5.1用矩阵表示线性变换135

5.1.1把向量和线性变换写成矩阵形式135

5.1.2矩阵与向量相乘136

5.1.3用矩阵乘法组合线性变换138

5.1.4实现矩阵乘法140

5.1.5用矩阵变换表示三维动画141

5.1.6练习142

5.2不同形状矩阵的含义148

5.2.1列向量组成的矩阵149

5.2.2哪些矩阵可以相乘151

5.2.3将方阵和非方阵视为向量函数152

5.2.4从三维到二维的线性映射投影154

5.2.5组合线性映射156

5.2.6练习157

5.3用矩阵平移向量163

5.3.1线性化平面平移163

5.3.2寻找做二维平移的三维矩阵167

5.3.4在四维世界里平移三维对象170

5.4小结174

第6章高维泛化176

6.1泛化向量的定义177

6.1.1为二维坐标向量创建一个类178

6.1.3使用同样的方法定义三维向量179

6.1.4构建向量基类180

6.1.5定义向量空间182

6.1.6对向量空间类进行单元测试185

6.2探索不同的向量空间188

6.2.1枚举所有坐标向量空间188

6.2.2识别现实中的向量190

6.2.3将函数作为向量处理192

6.2.4将矩阵作为向量处理194

6.2.5使用向量运算来操作图像195

6.2.6练习198

6.3寻找更小的向量空间205

6.3.1定义子空间205

6.3.2从单个向量开始207

6.3.3生成更大的空间207

6.3.4定义“维度”的概念209

6.3.5寻找函数向量空间的子空间210

6.3.6图像的子空间212

6.3.7练习214

6.4小结220

第7章求解线性方程组222

7.1设计一款街机游戏223

7.1.1游戏建模223

7.1.2渲染游戏224

7.1.3发射激光225

7.1.4练习226

7.2找到直线的交点227

7.2.1为直线选择正确的公式227

7.2.2直线的标准形式方程229

7.2.3线性方程组的矩阵形式231

7.2.4使用NumPy求解线性方程组233

7.2.6识别不可解方程组234

7.2.7练习236

7.3将线性方程泛化到更高维度240

7.3.1在三维空间中表示平面240

7.3.2在三维空间中求解线性方程组243

7.3.4计算维数、方程和解245

7.3.5练习246

7.4通过解线性方程来改变向量的基253

7.4.1在三维空间中求解255

7.4.2练习256

7.5小结257

第二部分微积分和物理仿真

第8章理解变化率261

8.1根据体积计算平均流速262

8.1.1实现average_flow_rate函数263

8.1.2用割线描绘平均流速264

8.1.3负变化率265

8.1.4练习266

8.2绘制随时间变化的平均流速266

8.2.1计算不同时间段内的平均流速267

8.2.2绘制间隔流速图268

8.2.3练习270

8.3瞬时流速的近似值271

8.3.1计算小割线的斜率272

8.3.2构建瞬时流速函数274

8.3.3柯里化并绘制瞬时流速函数277

8.4体积变化的近似值278

8.4.1计算短时间间隔内的体积变化279

8.4.2将时间分割成更小的间隔280

8.4.3在流速图上绘制体积变化的图形280

8.4.4练习283

8.5绘制随时间变化的体积图283

8.5.1计算随时间变化的体积283

8.5.2绘制体积函数的黎曼和285

8.5.3提升近似结果的精确度286

8.5.4定积分和不定积分288

8.6小结290

第9章模拟运动的对象291

9.1模拟匀速运动291

9.1.1给小行星设置速度292

9.1.2更新游戏引擎,让小行星运动292

9.1.3保持小行星在屏幕上293

9.1.4练习295

9.2模拟加速295

9.3深入研究欧拉方法296

9.3.1手动计算欧拉方法297

9.3.2使用Python实现算法298

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.3.1寻找表达式中的所有变量317

10.3.3表达式展开319

10.3.4练习321

10.4求函数的导数323

10.4.1幂的导数324

10.4.2变换后函数的导数324

10.4.3一些特殊函数的导数326

10.4.4乘积与组合的导数327

10.4.5练习328

10.5自动计算导数330

10.5.1实现表达式的导数方法330

10.5.2实现乘积法则和链式法则332

10.5.4练习334

10.6符号化积分函数335

10.6.1积分作为反导数335

10.6.2SymPy库介绍336

10.6.3练习337

10.7小结338

第11章模拟力场339

11.1用向量场对引力建模339

11.2引力场建模342

11.2.1定义一个向量场343

11.2.2定义一个简单的力场344

11.3把引力加入小行星游戏345

11.3.1让游戏中的对象感受到引力346

11.3.2练习349

11.4引入势能350

11.4.1定义势能标量场351

11.4.2将标量场绘制成热图352

11.4.3将标量场绘制成等高线图354

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.1.1用欧拉方法建立模拟器368

12.1.2测量弹道的属性369

12.1.3探索不同的发射角度370

12.1.4练习371

12.2计算最佳射程373

12.2.1求炮弹射程关于发射角的函数373

12.2.2求最大射程376

12.2.3确定最大值和最小值378

12.2.4练习379

12.3增强模拟器381

12.3.1添加另一个维度381

12.3.2在炮弹周围建立地形模型383

12.3.4练习386

12.4利用梯度上升优化范围388

12.4.1绘制射程与发射参数的关系图388

12.4.2射程函数的梯度389

12.4.3利用梯度寻找上坡方向390

12.4.4实现梯度上升392

12.4.5练习395

12.5小结399

第13章用傅里叶级数分析声波400

13.1声波的组合和分解401

13.2用Python播放声波402

13.2.1产生第一个声音402

13.2.2演奏音符405

13.2.3练习406

13.3把正弦波转化为声音406

13.3.1用正弦函数制作音频406

13.3.2改变正弦函数的频率408

13.3.3对声波进行采样和播放409

13.3.4练习411

13.4组合声波得到新的声波412

13.4.1叠加声波的样本来构造和弦412

13.4.2两个声波叠加后的图形413

13.4.3构造正弦波的线性组合414

13.4.4用正弦波构造一个熟悉的函数416

13.4.5练习419

13.5将声波分解为傅里叶级数419

13.5.1用内积确定向量分量420

13.5.2定义周期函数的内积421

13.5.3实现一个函数来计算傅里叶系数423

13.5.4求方波的傅里叶系数424

13.5.5其他波形的傅里叶系数424

13.5.6练习426

13.6小结428

第三部分机器学习的应用

第14章数据的函数拟合431

14.1衡量函数的拟合质量433

14.1.1计算数据与函数的距离434

14.1.2计算误差的平方和436

14.1.3计算汽车价格函数的代价440

14.2探索函数空间441

14.2.1绘制通过原点的直线的代价442

14.2.2所有线性函数的空间443

14.2.3练习445

14.3使用梯度下降法寻找最佳拟合线445

14.3.1缩放数据445

14.3.2找到并绘制最佳拟合线446

14.3.3练习447

14.4非线性函数拟合448

14.4.1理解指数函数的行为448

14.4.2寻找最佳拟合的指数函数451

14.5小结453

第15章使用logistic回归对数据分类455

15.1用真实数据测试分类函数456

15.1.1加载汽车数据457

15.1.2测试分类函数458

15.1.3练习458

15.2绘制决策边界460

15.2.1绘制汽车的向量空间460

15.2.2绘制更好的决策边界461

15.2.3实现分类函数462

15.2.4练习463

15.3将分类问题构造为回归问题464

15.3.1缩放原始汽车数据464

15.3.2衡量汽车的“宝马性”465

15.3.3sigmoid函数467

15.3.4将sigmoid函数与其他函数组合468

15.3.5练习470

15.4探索可能的logistic函数471

15.4.1参数化logistic函数472

15.4.2衡量logistic函数的拟合质量472

15.4.3测试不同的logistic函数474

15.4.4练习475

15.5寻找最佳logistic函数477

15.5.1三维中的梯度下降法477

15.5.2使用梯度下降法寻找最佳拟合478

15.5.3测试和理解最佳logistic分类器479

15.5.4练习481

15.6小结483

第16章训练神经网络484

16.1用神经网络对数据进行分类485

16.2手写数字图像分类486

16.2.1构建64维图像向量487

16.2.2构建随机数字分类器488

16.2.3测试数字分类器的表现489

16.2.4练习490

16.3设计神经网络491

16.3.1组织神经元和连接492

16.3.2神经网络数据流492

16.3.3计算激活值495

16.3.4用矩阵表示法计算激活值498

16.4用Python构建神经网络499

16.4.1用Python实现MLP类500

16.4.2评估MLP502

16.4.3测试MLP的分类效果503

16.4.4练习504

16.5使用梯度下降法训练神经网络504

16.5.1将训练构造为最小化问题505

16.5.3使用scikit-learn自动训练507

16.6使用反向传播计算梯度509

16.6.1根据最后一层的权重计算代价509

16.6.2利用链式法则计算最后一层权重的偏导数510

16.6.3练习512

16.7小结513

附录A准备Python(图灵社区下载)

附录BPython技巧和窍门(图灵社区下载)

附录C使用OpenGL和PyGame加载和渲染三维模型(图灵社区下载)

附录D数学符号参考(图灵社区下载)

内容摘要
代码和数学是相知相惜的好伙伴,它们基于共同的理性思维,数学公式的推导可以自然地在编写代码的过程中展开。本书带领程序员使用自己熟知的工具,即代码,来理解机器学习和游戏设计中的数学知识。通过Python代码和200多个小项目,读者将掌握二维向量、三维向量、矩阵变换、线性方程、微积分、线性回归、logistic回归、梯度下降等知识。

主编推荐
1.500余幅图片,本书以图文结合的方式帮助你用Python代码解决程序设计中的数学问题。
2.300余个练习,通过边学边练,你会发现线性代数和微积分的重要概念跃然纸上、印在脑中。
3.提供配套源代码和本书彩色图片下载。

数学拥有无穷的力量。它既帮助游戏开发工程师建模物理世界,也帮助量化金融分析师赚取利润,还帮助音频处理工程师制作音乐。在数据科学和机器学习领域,数学知识更是不可或缺的。

有人热爱数学,将它比作诗歌,为之着迷一生;有人很难领会数学的妙处,受困于“数学焦虑症”。本书正是为了帮助程序员消除这种焦虑,用自己熟悉的工具,即代码,重新发现数学之美。

√ 向量几何和计算机图形
√ 矩阵和线性变换
√ 微积分的核心概念
√ 仿真和优化
√ 图像处理和音频处理
√ 用于回归和分类的机器学习算法

“这本书循序渐进地介绍了程序员应该掌握的有用的数学概念。”
——Christopher Haupt,Swoogo公司工程副总裁

“这本书严谨而简明地概述了对现代编程起支撑作用的数学知识。”
——Dan Sheikh,BCG Digital Ventures公司工程师

“实用、引人入胜。推荐所有程序员阅读。”
——Vincent Zhu,RethinkXSocial网站联合创始人兼CTO

“这本书为需要提高数学技能的程序员建造了一座桥梁,使数学不再那么神秘、那么难以理解。”
——Robert Walsh,Excalibur Solutions公司总裁

   相关推荐   

—  没有更多了  —

以下为对购买帮助不大的评价

此功能需要访问孔网APP才能使用
暂时不用
打开孔网APP