跳转到内容

数学

弱依赖

《托马斯微积分》全书很厚,大体可分为两部分

  • 第一部分是单变量微积分,零基础就可以看
  • 第二部分是多变量微积分,建议学完线性代数再看

线性代数课程非常重要,尤其对于机器学习和计算机图形学等原理课程而言。

《线性代数及其应用》这本书更关注实际应用。不过其理论部分也写得很好,我以此为基础仍可以继续学习凸优化、抽象代数和泛函分析等课程。

大多数计算机课程都会依赖离散数学。MIT 把这门课称为“计算机科学中的数学”,我认为这是更好的命名。

《离散数学及其应用》教材内容很全,其中的每章都是后续计算机相关课程的基础。

  • 第 1 章“逻辑和证明”会在逻辑设计、数据库系统、人工智能等课程中用到。
  • 第 2 章“集合、函数、序列、求和与矩阵”会在数据结构和算法、数据库系统等课程中用到。
  • 第 3 章“算法”、第 5 章“归纳和递归”、第 10 章“图”、第 11 章“树”会在数据结构和算法等课程中用到。
  • 第 4 章“数论和密码学”会在数据结构和算法、计算机网络、计算机安全等课程中用到。
  • 第 6 章“计数”、第 7 章“离散概率”、第 8 章“高级计数技术”会在概率论、数据结构和算法、计算机网络等课程中用到。
  • 第 9 章“关系”会在数据库系统等课程中用到。
  • 第 12 章“布尔代数”会在逻辑设计、计算机组成等课程中用到。
  • 第 13 章“计算模型”会在计算机组成、编译原理等课程中用到。

可以只挑后续需要用到的章节看,或者在学到后续课程时回过头来阅读。

强依赖

《概率导论》是 MIT 使用的教材。相比通常的概率论教材,本书还补充了随机过程和统计推断相关的章节。

  • 本书的第 1 章到第 5 章讲概率论的基本概念,包括概率模型、条件、独立性、随机变量、分布、不等式、大数定律和极限定理。
  • 本书的第 6 章和第 7 章讲随机过程,包括伯努利过程、泊松过程和马尔可夫过程。
  • 本书的第 8 章和第 9 章讲统计推断,包括贝叶斯统计推断和经典统计推断。

国内的课程要求不包含随机过程和贝叶斯统计推断。但随机过程有助于理解统计推断,贝叶斯统计推断有助于理解经典统计推断,而且二者都在后续的人工智能和机器学习课程中频繁出现。因此,不建议跳过这些内容。

强依赖
弱依赖

本课程会学习傅里叶变换这一数学工具,对于工科生来说,我认为其重要性不亚于微积分和线性代数。图形学、控制理论、微分方程等课程都会用到傅里叶变换。

信号输入系统,系统处理信号,然后系统再输出信号。这就是信号与系统的关系,也是信号和系统的抽象定义。

  • 信号可以是各种信号,比如压力信号、声音信号、电信号等。
  • 系统也可以是各种系统,比如减震器(把压力信号变小)、扬声器(把声音信号变大)、滤波器(把选定频率范围外的电信号过滤掉)等。

在实际情形中,我们会先分析可能输入的信号,再设计一个对应的系统,以达到我们的目的。然而这些信号随着时间变化,很多时候并不好分析,因此也无法设计系统。这本书就是讨论如何用数学方法(主要是傅里叶变换)来分析信号和设计系统的。

当然,本书所讲的方法非常通用,很多看似无关的东西也可以抽象成信号,用同样的方法来处理。比如图像就可以当作信号。一张黑白图像,把亮度当作值,把水平和垂直坐标当作自变量,就得到了有两个变量的信号。再运用二维傅里叶变换,就可以对图像进行分析,然后按需求设计各种图像处理系统。

我选用的教材是奥本海姆编写的《信号与系统》,这是 MIT 的同款教材。学习前只需要有一点微积分基础就行了,当然如果学了线性代数理解起来可能更轻松。尽管傅里叶变换涉及复变函数,但这本书会进行讲解,因此不必提前掌握。

本课程会学习如何用数值方法求解常见的数学问题,包括解方程、插值、拟合、数值微分和积分、常微分方程和偏微分方程、傅里叶变换、压缩、特征提取、最优化等。

《数值分析》基本每章都有一个事实验证,其实就是大作业,质量相当不错,可以尝试做一做。

本书使用 Matlab 进行教学。Matlab 是一门商业的非开源语言,使用正版 Matlab 需要付费,安装正版 Matlab 库也要付费,并且无法查看具体实现的源代码。如果你既不想花钱又不想用盗版,或者单纯不喜欢非开源语言,那么可以使用别的语言。对于本课程来说,大多数生态良好的语言(比如 Python)都足够替代 Matlab 了。你可以使用你最擅长的语言完成同样的任务,只不过需要安装不同的库、使用不同的语法罢了。

如果你拿不定主意,那么我推荐试试 Julia。这是 MIT 设计并开源的语言,语法简单,非常符合数学习惯,并且支持 Unicode 字符作为标识符。这意味着有些时候直接把数学公式复制下来就能运行。不过 Julia 仅在学术界口碑不错,工业界很少使用。但考虑到本课程就是为教学目的而使用 Julia,因此我认为这个选择挺合适。

强依赖
弱依赖

《微分方程》这本书的中文版已经停止出版了,但我认为内容相当不错。

本书介绍了常微分方程的主要理论,且少数例子涉及到偏微分方程。另外,本书对变分法的介绍非常好。

本书只在最后一章讨论了解的存在及唯一性,其余部分都更偏重于计算而不是详细的证明。

《凸优化》是凸优化领域相当权威的教科书。不过该书充满理论证明,难度较大,建议熟悉微积分、线性代数和概率论后再来阅读。

《信息论基础》是 MIT 研究生课程参考教材,数学要求极高。建议挑选重要章节阅读。

弱依赖

《现代控制系统》探讨了控制系统的建模、设计和分析方法,内容足够全面。

强依赖

《计算理论导引》包含自动机与形式语言、可计算性理论、复杂性理论三部分。