程序员数学:用Python学透线性代数和微积分
上QQ阅读APP看书,第一时间看更新

本书结构

第1章带你进入数学的世界。它涵盖数学在计算机编程中的一些重要应用,介绍本书中的一些主题,并解释编程如何成为一个数学学习者的宝贵工具。之后,本书分为三个部分。

  • 第一部分关注向量和线性代数。
    • 第2章讲解二维向量数学,主要介绍使用坐标来定义二维图形,还包含对一些基本三角学知识的回顾。
    • 第3章将前一章的知识扩展到三维,用三个(而不是两个)坐标来标注点的位置。这一章介绍点积(dot product)和向量积(cross product),它们对测量角度和渲染三维模型很有帮助。
    • 第4章介绍线性变换,也就是把向量作为输入和输出并实现旋转或镜像等几何效果的函数。
    • 第5章介绍矩阵,也就是可以编码线性向量变换的数字数组。
    • 第6章泛化二维和三维中的概念,让你可以处理任何维度的向量集合。这就是所谓的向量空间。这一章还将通过一个主要示例介绍如何使用向量数学处理图像。
    • 第7章重点讨论线性代数中最重要的计算问题:求解线性方程组。这一章将通过在一个简单的视频游戏中实现碰撞检测系统来说明这一概念。
  • 第二部分介绍微积分及其在物理学中的应用。
    • 第8章介绍函数变化率的概念,包括计算函数变化率的导数以及从函数变化率还原函数的积分。
    • 第9章介绍一种近似积分的重要技术,叫作欧拉方法。它将扩展第7章的视频游戏,使其包含会移动和加速的对象。
    • 第10章介绍如何在代码中使用代数表达式,包括自动寻找函数的导数公式。这一章还将介绍符号编程,不同于本书中的其他内容,这是一种在代码中进行数学运算的方法。
    • 第11章将微积分主题扩展到二维,定义梯度运算,并展示如何使用梯度运算来定义力场。
    • 第12章介绍如何使用导数来求函数的最大值或最小值。
    • 第13章展示如何将声波当作函数来处理,以及如何将其分解为其他更简单的函数之和,即所谓的傅里叶级数。这一章还演示如何编写Python代码来演奏音符与和弦。
  • 第三部分结合前两部分的思想,介绍机器学习中的一些重要思想。
    • 第14章介绍如何将二维数据拟合到一条线上,这一过程被称为线性回归。我们探讨的示例是找到一个根据里程数预测二手车价格的最佳函数。
    • 第15章解决的是一个不同的机器学习问题:根据汽车的一些相关数据,找出汽车的型号。找出一个数据点代表的对象类型就是所谓的分类。
    • 第16章介绍如何设计和实现神经网络(一种特殊的数学函数),并用它对图像进行分类。这一章结合了前几章的几乎所有知识点。

如果你在阅读每一章的时候都掌握了前面章节中的知识,那么不会遇到任何障碍。将所有概念按顺序排列的缺点是,应用程序代码看起来很繁杂。希望各种示例能让本书读起来更有趣,帮你了解本书所涉及的数学知识以及对这些知识的广泛应用。