《烧掉数学书重新发明数学》笔记提炼1. “前数学”思维聚焦概念的创造过程而非最终结果What“前数学”不是指代数或微积分的预备知识而是指发明数学概念时头脑里的一整套想法、问题和动机是从模糊定性到精确定量的思维过程。它包括为什么要定义这个概念而不是其他有哪些可能的备选定义最终选择这个定义的原因发明过程中可能的错误尝试和摸索路径Why传统数学教育只展示最终的、完美的数学结果隐藏了最有价值的创造过程。这导致学生只能死记硬背公式和定理无法真正理解数学的本质也培养不出独立思考和创造能力。如果数学是香肠前数学就是香肠的制造过程。数学很多时候是“结构化的直觉”直觉不等于胡说但形式化是后来的“表达方式”。真正重要的不是“一个东西被如何正式定义”而是“它到底在解决什么问题”、”它本质上是什么“。在创造知识时人类从来不是先有定义。例子导数的发明传统教学直接给出导数的极限定义前数学思维我们想知道弯曲的东西在某一点的陡峭度。直的东西陡峭度好算上升量 / 水平量但弯曲的东西不行。于是我们想到如果把弯曲的东西无限放大它看起来就会变直。这样我们就可以用直的方法来算弯曲的陡峭度了。数学应用理解任何数学概念的起源和动机如导数的本质是局部变化率、积分的本质是累积、傅里叶变换的本质是拆频率、特征值的本质是系统固有模式、概率的本质是不确定的结构、向量空间的本质是可线性组合的东西自己重新发明数学知识获得更深刻的理解培养从问题出发创造新数学概念的能力而不仅仅是解题能力EECS 应用算法设计理解算法为什么这样设计而不是只记住算法步骤编程语言设计理解语言特性背后的设计思想而非仅学习语法系统架构从问题本质出发设计系统而不是盲目套用现有方案2. 性质优先定义法根据行为而非本质定义事物What不根据 “它是什么”来定义事物而是根据 “它做什么”或 “它有什么性质”来定义。当我们想把一个概念推广到新领域时我们要求新定义保持原有概念的核心性质不变。Why很多时候我们无法直接描述一个事物的本质特别是当我们想把熟悉的概念推广到不熟悉的领域时。通过性质来定义我们可以间接地把握事物的本质并且保证推广后的概念与原有概念在逻辑上一致。现实问题经常先出现“约束和需求”而不是先给出某个“对象本体”。很多复杂系统内部实现可以不同但只要行为一致就可以视为同一种东西。例子幂运算的推广原始定义xⁿ n 个 x 相乘n 为正整数核心性质x^(mn) xᵐ・xⁿ推广到零次幂要求 x^(n0) xⁿ・x⁰所以 x⁰ 1推广到负数幂要求 x^(n(-n)) xⁿ・x^(-n) x⁰ 1所以 x^(-n) 1/xⁿ推广到分数幂要求 (x^(1/n))ⁿ x^(1/n・n) x¹ x所以 x^(1/n) x 的 n 次方根数学应用所有数学概念的推广从整数到实数、从实数到复数、从有限维到无限维抽象代数群、环、域等结构都是根据运算性质定义的拓扑学根据连续性等性质定义拓扑空间EECS 应用面向对象编程接口定义了对象的行为而不关心对象的内部实现抽象数据类型如栈、队列只定义 push/pop 等操作不关心底层是数组还是链表设计模式关注组件之间的交互方式而不是组件的具体实现类型系统根据类型支持的操作来定义类型微服务通过 API 契约定义服务行为不关心服务内部实现3.对美的追求优雅与简单是数学定义的重要准则What我们在选择数学定义时除了要求它符合日常观念和保持核心性质外还会主动追求优雅和简单。优雅的定义通常具有对称性、一致性和最小性能用最少的假设解释最多的现象。Why优雅简单的定义不仅更容易理解、记忆和推广更重要的是它们往往能揭示事物的深层本质。数学史上无数次证明最优美的数学理论最终都会在自然界中找到应用。例子0! 的定义直观上“0 个东西相乘” 没有意义但如果我们定义 0! 1那么阶乘的递推公式 n! n・(n-1)! 在 n1 时仍然成立组合数公式 C (n,k) n!/(k!(n-k)!) 在 k0 或 kn 时也成立泰勒级数的表达式变得更加简洁统一因此我们选择了这个虽然不直观但极其优雅的定义数学应用数学公理体系的构建追求最少的公理数量和最简洁的公理体系数学证明追求简洁优美、一目了然的证明方法数学理论的统一如用群论统一各种对称性研究EECS 应用代码设计KISS 原则Keep It Simple, Stupid算法设计优先选择简单高效的算法系统架构最小化原则避免过度设计API 设计简洁一致的接口设计4. 等式只是语句符号只是思想的缩写What数学中的等式不是什么神秘的真理只是用符号写出来的普通语句。所有数学符号都只是我们为了方便而使用的缩写一个好的缩写应当能清晰地提醒我们它所描述的是什么思想。Why很多人害怕数学就是因为他们把符号和等式看得过于神秘。如果我们认识到符号只是日常语言的简写等式只是普通的陈述数学就会变得平易近人得多。例子等式 “235” 只是 “如果我们有两个东西再加上三个东西我们就有五个东西” 这句话的缩写导数符号 dy/dx 只是 “当我们把 x 改变一个无穷小的量 dx 时y 改变的无穷小的量 dy 与 dx 的比值” 这句话的缩写积分符号∫只是一个拉长的 “S”代表 “求和”(Sum)因为积分本质上是无穷多个无穷小量的和数学应用理解数学符号的本质避免对符号的盲目崇拜创造合适的符号来表达新的数学思想用自然语言解释数学概念加深理解EECS 应用变量命名好的变量名应该能清晰表达变量的用途代码注释用自然语言解释代码背后的思想API 设计好的 API 名称应该能让用户通过名称就能理解其功能文档写作用通俗易懂的语言解释技术概念协议设计设计简洁清晰的协议格式和消息结构5. 机器函数的统一视角从输入到输出的转换What将函数视为 ”机器”它吞进一个东西输入然后吐出另一个东西输出。这个视角比传统的 ”函数是一个公式”更一般、更强大。Why传统的函数定义限制了我们的思维让我们以为函数必须有一个明确的公式。而机器视角让我们可以把任何输入输出关系都视为函数包括那些无法用公式表达的关系。例子加 1 机器输入 x输出 x1自乘机器输入 x输出 x²排序机器输入一个数组输出排序后的数组神经网络输入一张图片输出图片的类别数学应用函数概念将函数理解为一般的输入输出映射而非特定公式复合函数将多个简单机器连接成复杂机器反函数将机器倒过来运行从输出反推输入泛函分析将函数本身作为另一个函数的输入EECS 应用函数式编程将计算视为函数之间的组合和变换模块化设计每个模块都是一个黑盒机器数据流编程将计算表示为数据在机器之间的流动API 设计API 本质上就是一个远程调用的机器人工智能所有 AI 模型都是从输入到输出的复杂机器6. 四种基本机器类型基于运算性质的分类What书中根据机器对加法 (Add)和乘法 (Multiple)这两种最基本运算的行为性质将所有机器分为四种基本类型AA 型加法进加法出。满足函数方程f (xy) f (x) f (y)AM 型加法进乘法出。满足函数方程f (xy) f (x)・f (y)MA 型乘法进加法出。满足函数方程f (x・y) f (x) f (y)MM 型乘法进乘法出。满足函数方程f (x・y) f (x)・f (y)Why这四种类型涵盖了自然界和数学中最常见、最重要的函数行为模式。通过这种分类我们可以快速识别函数的核心性质预测它们的行为并找到它们之间的关系。例子AA 型机器f (x) kx正比例函数AM 型机器f (x) aˣ指数函数MA 型机器f (x) logₐx对数函数MM 型机器f (x) xⁿ幂函数数学应用函数分类根据运算性质对函数进行系统分类函数方程求解描述不同类型机器的函数方程函数关系发现不同类型机器之间的反函数关系函数推广将基本函数类型推广到更一般的数学结构EECS 应用信号处理用指数函数描述信号的衰减和增长过程通信系统用对数函数进行分贝计算和信号强度表示计算机图形用幂函数进行伽马校正和颜色空间转换算法分析用幂函数描述算法的时间复杂度和空间复杂度控制系统用指数函数描述系统的动态响应特性7. 加乘机器用简单构建复杂What书中将所有只由加法和乘法构成的函数称为 “加乘机器”即多项式。任何足够光滑的函数都可以用加乘机器任意精确地近似这就是泰勒级数特别是麦克劳林级数的核心思想。Why加乘机器是最简单的函数类型我们对它们的性质已经有了充分的了解。通过用加乘机器近似复杂函数我们可以将复杂问题转化为简单问题。例子一次加乘机器f (x) ax b直线二次加乘机器f (x) ax² bx c抛物线麦克劳林级数eˣ 1 x x²/2! x³/3! …用无穷次加乘机器近似指数函数正弦函数的麦克劳林级数sin (x) x - x³/3! x⁵/5! - …数学应用函数近似用简单的多项式近似复杂的函数局部分析分析函数在某一点附近的局部行为微分方程用级数解法求解复杂的微分方程数值计算用多项式进行数值计算和插值EECS 应用计算机图形用多项式曲线和曲面近似复杂的几何形状机器学习用多项式回归拟合数据用多项式近似激活函数信号处理用多项式滤波器进行信号处理和噪声去除数值计算用多项式插值和近似进行科学计算控制系统用多项式模型描述和分析控制系统8. 反函数思维反向运行机器What如果有一个机器 M它把输入 x 变成输出 y那么反函数就是另一个机器它把输入 y 变回输出 x。换句话说反函数就是原机器的逆操作。Why很多时候我们知道输出是什么但想知道输入是什么。反函数让我们可以 ”倒过来”解决问题。它是数学中最基本的思维工具之一。例子指数函数 eˣ的反函数是自然对数 ln (x)平方函数 x² 的反函数是平方根函数√x在非负实数域上加法机器 xa 的反函数是减法机器 x-a乘法机器 ax 的反函数是除法机器 x/aa≠0数学应用方程求解用反函数求解各种类型的方程逆变换进行傅里叶逆变换、拉普拉斯逆变换等积分计算将积分视为微分的反操作几何变换进行几何变换的逆变换EECS 应用加密解密加密算法和解密算法互为反函数编码解码压缩算法和解压缩算法互为反函数错误纠正从错误的输出恢复正确的输入逆向工程从可执行文件反推源代码控制系统通过反馈控制反向计算期望的输入9. 锤子与反锤子操作与逆操作的系统化What将数学中的各种运算视为 ”锤子”它们可以用来解决特定类型的问题。而每种锤子都有对应的 ”反锤子”也就是逆运算。书中提到的基本锤子包括相加锤子(fg)‘ f‘ g‘相乘锤子(fg)‘ f‘g fg‘重新缩写锤子链式法则d/dx f (g (x)) f‘(g (x)) g‘(x)对应的反锤子就是积分法则Why系统化地整理操作与逆操作可以让我们更有条理地解决问题。当我们遇到一个问题时我们可以查看我们的工具箱看看有哪些锤子可以用。例子求积分∫2x cos (x²) dx我们注意到 2x 是 x² 的导数我们可以用重新缩写锤子链式法则的反锤子换元法令 u x²则 du 2x dx积分变为∫cos (u) du sin (u) C sin (x²) C数学应用微积分系统化地应用微分法则和积分法则代数运算应用加法与减法、乘法与除法等互逆运算线性代数应用矩阵乘法与矩阵求逆等互逆运算逻辑推理应用蕴含与逆否命题等互逆逻辑关系EECS 应用算法设计设计正向算法与反向算法如前向传播与反向传播数据结构实现插入与删除、入栈与出栈等互逆操作编译原理实现编译与反编译、汇编与反汇编等互逆过程数字信号实现信号分析与信号合成等互逆过程数据库操作实现插入与查询、更新与回滚等互逆操作10. 无穷放大镜思想局部线性化What直的东西比弯曲的东西容易对付但如果你放得足够大弯曲的东西的每一小部分看起来都基本是直的。因此如果你有一个弯曲的问题只需想象不断放大直到看上去像直的在比较容易的微观层面解决问题然后再缩小回去。Why这是微积分的核心思想。它让我们可以用简单的线性方法来解决复杂的非线性问题。整个微积分大厦就是建立在这个简单而深刻的洞察之上。例子求曲线在某一点的切线斜率我们无法直接计算曲线的斜率但我们可以在曲线上取两个非常接近的点计算这两点之间的割线斜率当这两个点无限接近时割线斜率就变成了切线斜率数学应用微分学用局部线性近似求导数、极值和切线积分学用局部矩形近似求面积、体积和弧长泰勒级数用多项式在局部近似任意函数微分方程用欧拉法等数值方法求解微分方程EECS 应用信号处理将非线性信号在工作点附近线性化控制系统基于线性系统理论设计和分析控制系统计算机图形用多边形近似曲面用线段近似曲线机器学习用梯度下降算法寻找损失函数的最小值数值计算所有数值方法都基于局部近似思想11. 两种问题解决策略直接法与化归法What解决任何问题都只有两种基本方法直接法直接面对问题从头开始解决化归法解决一小部分问题然后发现余下的问题类似于某个答案已知的问题然后照做。即把问题变成一个你已经会的问题Why问题只有在我们不知道如何解决时才难。一旦我们知道如何做了我们就可以开启自动驾驶模式。化归法是数学中最强大的问题解决工具之一它让我们可以利用已有的知识解决新的问题。例子烧水壶笑话问题 1空水壶、水池、火炉要求烧一壶水解法 1接水→放火上→点火直接法问题 2装满水的水壶、水池、火炉要求烧一壶水数学家解法把水倒掉→转化为问题 1→照做化归法数学应用积分计算通过换元法、分部积分法等将复杂积分转化为已知积分方程求解将高次方程转化为低次方程将非线性方程转化为线性方程几何证明将复杂图形转化为简单图形的组合EECS 应用软件工程将复杂系统分解为简单模块每个模块解决一个已知问题算法设计分治法、动态规划、贪心算法等都是化归思想的体现调试将复杂 bug 分解为简单问题逐步定位代码复用利用已有的库和框架解决常见问题12. 向量与函数的统合无限维线性代数What向量不仅仅是有大小和方向的箭头也不仅仅是一组数字。向量的本质是任何可以进行加法和数乘运算的东西都可以被称为向量。基于这个性质优先的定义我们会发现一个惊人的事实所有函数都是向量。这个定义是统一的既适用于连续函数也适用于离散函数只是它们的维度不同。连续函数无限维向量定义f (x)x 可以取任意实数值加法(fg)(x) f(x) g(x)数乘(c·f)(x) c·f(x)维度无限维因为 x 可以取无限多个值内积f,g ∫f (x) g (x) dx积分是无限求和离散函数有限维向量定义f [n]n 只能取整数数值0,1,2,…,N-1加法(fg)[n] f[n] g[n]数乘(c·f)[n] c·f[n]维度N 维因为有 N 个采样点内积f,g Σ(n0 到 N-1) f [n]・g [n]有限求和关键区分理论思想层与工程实现层理论思想层连续函数是无限维向量属于泛函分析的研究范畴提供了理论基础和设计灵感工程实现层所有 EECS 领域的应用 100% 都是离散的有限维向量使用的是标准的本科一年级线性代数工具为什么还要讲无限维设计灵感来源所有工程中使用的离散变换DCT、DFT、DWT 等都先有连续的无限维理论然后才被离散化和有限化统一思维框架让我们可以用同一套语言描述 3 维坐标、1000 维音频、100 万维图像和无限维连续函数高层次理解让我们看到所有信号处理、图像处理、机器学习算法的共同本质选择合适的基投影后丢弃不重要的分量线性代数概念的统一推广无论维度是有限还是无限以下概念都是通用的内积对应分量相乘再相加有限维是求和无限维是积分长度自身内积的平方根正交性内积为 0基变换将向量从一组基转换到另一组基正交投影将向量投影到子空间上得到最佳近似例子傅里叶级数与离散傅里叶变换的统一连续傅里叶级数将周期函数分解为无限多个正弦和余弦函数的线性组合离散傅里叶变换将长度为 N 的离散信号分解为 N 个正弦和余弦函数的线性组合两者本质上是完全相同的操作只是维度不同Why这个视角统一了线性代数和微积分让我们可以用线性代数的强大工具来解决微积分问题。我们在有限维线性代数中学到的所有强大工具如基变换、正交投影、特征值、特征向量等都可以直接推广到无限维的函数空间中。这意味着我们可以用处理简单向量的方法来处理复杂的函数问题这是现代数学、物理学和工程学的基础。例子两个函数可以相加(fg)(x) f (x) g (x)函数可以乘以一个数(cf)(x) c・f (x)函数有 ”长度”||f||² ∫f (x)²dx两个函数有 ”内积”f,g ∫f (x) g (x) dx函数可以展开为基函数的线性组合f (x) Σcᵢφᵢ(x)如傅里叶级数数学应用泛函分析研究无限维向量空间的线性代数。它把函数看作向量把作用在函数上的操作如微分、积分看作线性变换。泛函分析是现代数学的基础为量子力学、信号处理、控制理论等领域提供了统一的数学框架。傅里叶分析将函数分解为正交基函数的线性组合。最常见的是傅里叶级数和傅里叶变换它们将时域函数转换为频域函数让我们能够看到信号中包含的不同频率成分。这就像把一首复杂的音乐分解成不同音高的音符一样。微分方程将微分算子视为线性变换求解线性微分方程。在这个视角下解微分方程就相当于在函数空间中寻找线性变换的特征向量和特征值。例如弹簧振子的运动方程可以看作是一个线性变换它的特征值对应于振子的固有频率。量子力学将粒子的状态表示为希尔伯特空间中的向量。希尔伯特空间是一种特殊的无限维向量空间。粒子的可观测量如位置、动量、能量对应于希尔伯特空间中的线性算子。量子力学的整个理论体系都是建立在这个向量与函数统合的思想之上的。EECS 应用信号处理用傅里叶变换、小波变换分析和处理信号将信号分解为不同频率的分量。例如在音频处理中我们可以用傅里叶变换将声音信号转换为频谱然后去除不需要的高频噪音再转换回时域信号得到更清晰的声音。图像处理将图像视为二维函数进行各种变换和处理如 JPEG 压缩就是基于离散余弦变换。JPEG 压缩的基本原理是将图像分成 8×8 的小块对每个小块进行离散余弦变换DCT将图像从空间域转换到频率域然后丢弃人眼不敏感的高频分量只保留低频分量进行存储从而实现高压缩比。机器学习用核方法、支持向量机处理高维数据将数据映射到更高维的函数空间。核技巧的核心思想是将低维空间中线性不可分的数据映射到一个高维的函数空间中在这个高维空间中数据变得线性可分然后就可以用简单的线性分类器进行分类。这就像把一张揉皱的纸展开让原本混在一起的点变得可以用一条直线分开。通信系统用正交频分复用 (OFDM) 技术进行数据传输利用正交函数作为载波。OFDM 是现代无线通信如 4G、5G的核心技术。它将高速数据流分成多个低速子数据流每个子数据流调制在一个正交的子载波上进行传输。由于子载波之间是正交的它们可以在同一信道上传输而不互相干扰大大提高了频谱利用率。控制理论用状态空间方法描述和分析控制系统将系统状态视为向量。在状态空间方法中系统的状态用一个向量表示系统的动态行为用一个矩阵微分方程描述。这使得我们可以用线性代数的强大工具来分析和设计复杂的控制系统如飞机的自动驾驶系统、工业机器人的控制系统等。13. 数学是发明而非发现我们创造自己的数学世界What数学不是存在于某个柏拉图式的理想世界中等待我们去发现的真理而是人类为了解决问题而发明的工具。我们从简单的概念出发根据我们的需要和直觉一步步创造出复杂的数学体系。Why这个视角让我们摆脱了对数学的敬畏和恐惧认识到数学是我们自己的创造。我们不需要接受别人给我们的数学我们可以自己发明数学用自己的方式理解数学。例子我们发明了数来计数我们发明了几何来测量土地我们发明了微积分来解决运动和变化的问题我们发明了复数来解决方程 x² -1 的问题我们发明了非欧几何来描述弯曲的空间数学应用数学研究创造新的数学概念和理论数学教育让学生体验数学的创造过程跨学科应用为其他学科创造合适的数学工具EECS 应用理论计算机科学发明计算模型、算法和数据结构形式化方法发明逻辑系统来验证软件和硬件的正确性人工智能发明新的数学模型来描述智能密码学发明新的数学难题来保证信息安全编程语言理论发明新的类型系统和语义模型14. 从定性到定量模糊直觉的精确化What数学创造的过程总是从模糊的、定性的日常直觉开始然后逐步将其精确化、定量化。我们先有一个大概的想法然后通过不断的尝试和修正最终得到一个精确的数学定义。Why这是人类认知的自然过程。我们不可能一开始就有一个完美的、精确的定义。只有通过不断地将模糊的直觉转化为精确的语言我们才能真正理解一个概念。例子陡峭度概念的发明定性直觉陡峭度是描述一个东西有多陡的量初步想法陡峭度应该与上升量和水平量有关尝试 1陡峭度 上升量。问题水平量不同时相同上升量的陡峭度不同尝试 2陡峭度 上升量 / 水平量。问题水平量为 0 时无意义最终定义对于直线陡峭度 上升量 / 水平量对于曲线用无穷放大镜思想定义导数数学应用概念发明将模糊的直觉转化为精确的数学定义数学建模将实际问题转化为精确的数学问题数学证明将直观的论证转化为严格的数学证明数学交流用精确的数学语言表达思想和观点EECS 应用需求分析将模糊的用户需求转化为精确的系统规格说明系统设计将高层的设计思想转化为详细的实现方案性能评估将定性的性能要求转化为定量的性能指标软件测试将模糊的测试目标转化为精确的测试用例人机交互将定性的用户体验描述转化为可测量的指标
《烧掉数学书:重新发明数学》笔记提炼
发布时间:2026/5/25 7:36:07
《烧掉数学书重新发明数学》笔记提炼1. “前数学”思维聚焦概念的创造过程而非最终结果What“前数学”不是指代数或微积分的预备知识而是指发明数学概念时头脑里的一整套想法、问题和动机是从模糊定性到精确定量的思维过程。它包括为什么要定义这个概念而不是其他有哪些可能的备选定义最终选择这个定义的原因发明过程中可能的错误尝试和摸索路径Why传统数学教育只展示最终的、完美的数学结果隐藏了最有价值的创造过程。这导致学生只能死记硬背公式和定理无法真正理解数学的本质也培养不出独立思考和创造能力。如果数学是香肠前数学就是香肠的制造过程。数学很多时候是“结构化的直觉”直觉不等于胡说但形式化是后来的“表达方式”。真正重要的不是“一个东西被如何正式定义”而是“它到底在解决什么问题”、”它本质上是什么“。在创造知识时人类从来不是先有定义。例子导数的发明传统教学直接给出导数的极限定义前数学思维我们想知道弯曲的东西在某一点的陡峭度。直的东西陡峭度好算上升量 / 水平量但弯曲的东西不行。于是我们想到如果把弯曲的东西无限放大它看起来就会变直。这样我们就可以用直的方法来算弯曲的陡峭度了。数学应用理解任何数学概念的起源和动机如导数的本质是局部变化率、积分的本质是累积、傅里叶变换的本质是拆频率、特征值的本质是系统固有模式、概率的本质是不确定的结构、向量空间的本质是可线性组合的东西自己重新发明数学知识获得更深刻的理解培养从问题出发创造新数学概念的能力而不仅仅是解题能力EECS 应用算法设计理解算法为什么这样设计而不是只记住算法步骤编程语言设计理解语言特性背后的设计思想而非仅学习语法系统架构从问题本质出发设计系统而不是盲目套用现有方案2. 性质优先定义法根据行为而非本质定义事物What不根据 “它是什么”来定义事物而是根据 “它做什么”或 “它有什么性质”来定义。当我们想把一个概念推广到新领域时我们要求新定义保持原有概念的核心性质不变。Why很多时候我们无法直接描述一个事物的本质特别是当我们想把熟悉的概念推广到不熟悉的领域时。通过性质来定义我们可以间接地把握事物的本质并且保证推广后的概念与原有概念在逻辑上一致。现实问题经常先出现“约束和需求”而不是先给出某个“对象本体”。很多复杂系统内部实现可以不同但只要行为一致就可以视为同一种东西。例子幂运算的推广原始定义xⁿ n 个 x 相乘n 为正整数核心性质x^(mn) xᵐ・xⁿ推广到零次幂要求 x^(n0) xⁿ・x⁰所以 x⁰ 1推广到负数幂要求 x^(n(-n)) xⁿ・x^(-n) x⁰ 1所以 x^(-n) 1/xⁿ推广到分数幂要求 (x^(1/n))ⁿ x^(1/n・n) x¹ x所以 x^(1/n) x 的 n 次方根数学应用所有数学概念的推广从整数到实数、从实数到复数、从有限维到无限维抽象代数群、环、域等结构都是根据运算性质定义的拓扑学根据连续性等性质定义拓扑空间EECS 应用面向对象编程接口定义了对象的行为而不关心对象的内部实现抽象数据类型如栈、队列只定义 push/pop 等操作不关心底层是数组还是链表设计模式关注组件之间的交互方式而不是组件的具体实现类型系统根据类型支持的操作来定义类型微服务通过 API 契约定义服务行为不关心服务内部实现3.对美的追求优雅与简单是数学定义的重要准则What我们在选择数学定义时除了要求它符合日常观念和保持核心性质外还会主动追求优雅和简单。优雅的定义通常具有对称性、一致性和最小性能用最少的假设解释最多的现象。Why优雅简单的定义不仅更容易理解、记忆和推广更重要的是它们往往能揭示事物的深层本质。数学史上无数次证明最优美的数学理论最终都会在自然界中找到应用。例子0! 的定义直观上“0 个东西相乘” 没有意义但如果我们定义 0! 1那么阶乘的递推公式 n! n・(n-1)! 在 n1 时仍然成立组合数公式 C (n,k) n!/(k!(n-k)!) 在 k0 或 kn 时也成立泰勒级数的表达式变得更加简洁统一因此我们选择了这个虽然不直观但极其优雅的定义数学应用数学公理体系的构建追求最少的公理数量和最简洁的公理体系数学证明追求简洁优美、一目了然的证明方法数学理论的统一如用群论统一各种对称性研究EECS 应用代码设计KISS 原则Keep It Simple, Stupid算法设计优先选择简单高效的算法系统架构最小化原则避免过度设计API 设计简洁一致的接口设计4. 等式只是语句符号只是思想的缩写What数学中的等式不是什么神秘的真理只是用符号写出来的普通语句。所有数学符号都只是我们为了方便而使用的缩写一个好的缩写应当能清晰地提醒我们它所描述的是什么思想。Why很多人害怕数学就是因为他们把符号和等式看得过于神秘。如果我们认识到符号只是日常语言的简写等式只是普通的陈述数学就会变得平易近人得多。例子等式 “235” 只是 “如果我们有两个东西再加上三个东西我们就有五个东西” 这句话的缩写导数符号 dy/dx 只是 “当我们把 x 改变一个无穷小的量 dx 时y 改变的无穷小的量 dy 与 dx 的比值” 这句话的缩写积分符号∫只是一个拉长的 “S”代表 “求和”(Sum)因为积分本质上是无穷多个无穷小量的和数学应用理解数学符号的本质避免对符号的盲目崇拜创造合适的符号来表达新的数学思想用自然语言解释数学概念加深理解EECS 应用变量命名好的变量名应该能清晰表达变量的用途代码注释用自然语言解释代码背后的思想API 设计好的 API 名称应该能让用户通过名称就能理解其功能文档写作用通俗易懂的语言解释技术概念协议设计设计简洁清晰的协议格式和消息结构5. 机器函数的统一视角从输入到输出的转换What将函数视为 ”机器”它吞进一个东西输入然后吐出另一个东西输出。这个视角比传统的 ”函数是一个公式”更一般、更强大。Why传统的函数定义限制了我们的思维让我们以为函数必须有一个明确的公式。而机器视角让我们可以把任何输入输出关系都视为函数包括那些无法用公式表达的关系。例子加 1 机器输入 x输出 x1自乘机器输入 x输出 x²排序机器输入一个数组输出排序后的数组神经网络输入一张图片输出图片的类别数学应用函数概念将函数理解为一般的输入输出映射而非特定公式复合函数将多个简单机器连接成复杂机器反函数将机器倒过来运行从输出反推输入泛函分析将函数本身作为另一个函数的输入EECS 应用函数式编程将计算视为函数之间的组合和变换模块化设计每个模块都是一个黑盒机器数据流编程将计算表示为数据在机器之间的流动API 设计API 本质上就是一个远程调用的机器人工智能所有 AI 模型都是从输入到输出的复杂机器6. 四种基本机器类型基于运算性质的分类What书中根据机器对加法 (Add)和乘法 (Multiple)这两种最基本运算的行为性质将所有机器分为四种基本类型AA 型加法进加法出。满足函数方程f (xy) f (x) f (y)AM 型加法进乘法出。满足函数方程f (xy) f (x)・f (y)MA 型乘法进加法出。满足函数方程f (x・y) f (x) f (y)MM 型乘法进乘法出。满足函数方程f (x・y) f (x)・f (y)Why这四种类型涵盖了自然界和数学中最常见、最重要的函数行为模式。通过这种分类我们可以快速识别函数的核心性质预测它们的行为并找到它们之间的关系。例子AA 型机器f (x) kx正比例函数AM 型机器f (x) aˣ指数函数MA 型机器f (x) logₐx对数函数MM 型机器f (x) xⁿ幂函数数学应用函数分类根据运算性质对函数进行系统分类函数方程求解描述不同类型机器的函数方程函数关系发现不同类型机器之间的反函数关系函数推广将基本函数类型推广到更一般的数学结构EECS 应用信号处理用指数函数描述信号的衰减和增长过程通信系统用对数函数进行分贝计算和信号强度表示计算机图形用幂函数进行伽马校正和颜色空间转换算法分析用幂函数描述算法的时间复杂度和空间复杂度控制系统用指数函数描述系统的动态响应特性7. 加乘机器用简单构建复杂What书中将所有只由加法和乘法构成的函数称为 “加乘机器”即多项式。任何足够光滑的函数都可以用加乘机器任意精确地近似这就是泰勒级数特别是麦克劳林级数的核心思想。Why加乘机器是最简单的函数类型我们对它们的性质已经有了充分的了解。通过用加乘机器近似复杂函数我们可以将复杂问题转化为简单问题。例子一次加乘机器f (x) ax b直线二次加乘机器f (x) ax² bx c抛物线麦克劳林级数eˣ 1 x x²/2! x³/3! …用无穷次加乘机器近似指数函数正弦函数的麦克劳林级数sin (x) x - x³/3! x⁵/5! - …数学应用函数近似用简单的多项式近似复杂的函数局部分析分析函数在某一点附近的局部行为微分方程用级数解法求解复杂的微分方程数值计算用多项式进行数值计算和插值EECS 应用计算机图形用多项式曲线和曲面近似复杂的几何形状机器学习用多项式回归拟合数据用多项式近似激活函数信号处理用多项式滤波器进行信号处理和噪声去除数值计算用多项式插值和近似进行科学计算控制系统用多项式模型描述和分析控制系统8. 反函数思维反向运行机器What如果有一个机器 M它把输入 x 变成输出 y那么反函数就是另一个机器它把输入 y 变回输出 x。换句话说反函数就是原机器的逆操作。Why很多时候我们知道输出是什么但想知道输入是什么。反函数让我们可以 ”倒过来”解决问题。它是数学中最基本的思维工具之一。例子指数函数 eˣ的反函数是自然对数 ln (x)平方函数 x² 的反函数是平方根函数√x在非负实数域上加法机器 xa 的反函数是减法机器 x-a乘法机器 ax 的反函数是除法机器 x/aa≠0数学应用方程求解用反函数求解各种类型的方程逆变换进行傅里叶逆变换、拉普拉斯逆变换等积分计算将积分视为微分的反操作几何变换进行几何变换的逆变换EECS 应用加密解密加密算法和解密算法互为反函数编码解码压缩算法和解压缩算法互为反函数错误纠正从错误的输出恢复正确的输入逆向工程从可执行文件反推源代码控制系统通过反馈控制反向计算期望的输入9. 锤子与反锤子操作与逆操作的系统化What将数学中的各种运算视为 ”锤子”它们可以用来解决特定类型的问题。而每种锤子都有对应的 ”反锤子”也就是逆运算。书中提到的基本锤子包括相加锤子(fg)‘ f‘ g‘相乘锤子(fg)‘ f‘g fg‘重新缩写锤子链式法则d/dx f (g (x)) f‘(g (x)) g‘(x)对应的反锤子就是积分法则Why系统化地整理操作与逆操作可以让我们更有条理地解决问题。当我们遇到一个问题时我们可以查看我们的工具箱看看有哪些锤子可以用。例子求积分∫2x cos (x²) dx我们注意到 2x 是 x² 的导数我们可以用重新缩写锤子链式法则的反锤子换元法令 u x²则 du 2x dx积分变为∫cos (u) du sin (u) C sin (x²) C数学应用微积分系统化地应用微分法则和积分法则代数运算应用加法与减法、乘法与除法等互逆运算线性代数应用矩阵乘法与矩阵求逆等互逆运算逻辑推理应用蕴含与逆否命题等互逆逻辑关系EECS 应用算法设计设计正向算法与反向算法如前向传播与反向传播数据结构实现插入与删除、入栈与出栈等互逆操作编译原理实现编译与反编译、汇编与反汇编等互逆过程数字信号实现信号分析与信号合成等互逆过程数据库操作实现插入与查询、更新与回滚等互逆操作10. 无穷放大镜思想局部线性化What直的东西比弯曲的东西容易对付但如果你放得足够大弯曲的东西的每一小部分看起来都基本是直的。因此如果你有一个弯曲的问题只需想象不断放大直到看上去像直的在比较容易的微观层面解决问题然后再缩小回去。Why这是微积分的核心思想。它让我们可以用简单的线性方法来解决复杂的非线性问题。整个微积分大厦就是建立在这个简单而深刻的洞察之上。例子求曲线在某一点的切线斜率我们无法直接计算曲线的斜率但我们可以在曲线上取两个非常接近的点计算这两点之间的割线斜率当这两个点无限接近时割线斜率就变成了切线斜率数学应用微分学用局部线性近似求导数、极值和切线积分学用局部矩形近似求面积、体积和弧长泰勒级数用多项式在局部近似任意函数微分方程用欧拉法等数值方法求解微分方程EECS 应用信号处理将非线性信号在工作点附近线性化控制系统基于线性系统理论设计和分析控制系统计算机图形用多边形近似曲面用线段近似曲线机器学习用梯度下降算法寻找损失函数的最小值数值计算所有数值方法都基于局部近似思想11. 两种问题解决策略直接法与化归法What解决任何问题都只有两种基本方法直接法直接面对问题从头开始解决化归法解决一小部分问题然后发现余下的问题类似于某个答案已知的问题然后照做。即把问题变成一个你已经会的问题Why问题只有在我们不知道如何解决时才难。一旦我们知道如何做了我们就可以开启自动驾驶模式。化归法是数学中最强大的问题解决工具之一它让我们可以利用已有的知识解决新的问题。例子烧水壶笑话问题 1空水壶、水池、火炉要求烧一壶水解法 1接水→放火上→点火直接法问题 2装满水的水壶、水池、火炉要求烧一壶水数学家解法把水倒掉→转化为问题 1→照做化归法数学应用积分计算通过换元法、分部积分法等将复杂积分转化为已知积分方程求解将高次方程转化为低次方程将非线性方程转化为线性方程几何证明将复杂图形转化为简单图形的组合EECS 应用软件工程将复杂系统分解为简单模块每个模块解决一个已知问题算法设计分治法、动态规划、贪心算法等都是化归思想的体现调试将复杂 bug 分解为简单问题逐步定位代码复用利用已有的库和框架解决常见问题12. 向量与函数的统合无限维线性代数What向量不仅仅是有大小和方向的箭头也不仅仅是一组数字。向量的本质是任何可以进行加法和数乘运算的东西都可以被称为向量。基于这个性质优先的定义我们会发现一个惊人的事实所有函数都是向量。这个定义是统一的既适用于连续函数也适用于离散函数只是它们的维度不同。连续函数无限维向量定义f (x)x 可以取任意实数值加法(fg)(x) f(x) g(x)数乘(c·f)(x) c·f(x)维度无限维因为 x 可以取无限多个值内积f,g ∫f (x) g (x) dx积分是无限求和离散函数有限维向量定义f [n]n 只能取整数数值0,1,2,…,N-1加法(fg)[n] f[n] g[n]数乘(c·f)[n] c·f[n]维度N 维因为有 N 个采样点内积f,g Σ(n0 到 N-1) f [n]・g [n]有限求和关键区分理论思想层与工程实现层理论思想层连续函数是无限维向量属于泛函分析的研究范畴提供了理论基础和设计灵感工程实现层所有 EECS 领域的应用 100% 都是离散的有限维向量使用的是标准的本科一年级线性代数工具为什么还要讲无限维设计灵感来源所有工程中使用的离散变换DCT、DFT、DWT 等都先有连续的无限维理论然后才被离散化和有限化统一思维框架让我们可以用同一套语言描述 3 维坐标、1000 维音频、100 万维图像和无限维连续函数高层次理解让我们看到所有信号处理、图像处理、机器学习算法的共同本质选择合适的基投影后丢弃不重要的分量线性代数概念的统一推广无论维度是有限还是无限以下概念都是通用的内积对应分量相乘再相加有限维是求和无限维是积分长度自身内积的平方根正交性内积为 0基变换将向量从一组基转换到另一组基正交投影将向量投影到子空间上得到最佳近似例子傅里叶级数与离散傅里叶变换的统一连续傅里叶级数将周期函数分解为无限多个正弦和余弦函数的线性组合离散傅里叶变换将长度为 N 的离散信号分解为 N 个正弦和余弦函数的线性组合两者本质上是完全相同的操作只是维度不同Why这个视角统一了线性代数和微积分让我们可以用线性代数的强大工具来解决微积分问题。我们在有限维线性代数中学到的所有强大工具如基变换、正交投影、特征值、特征向量等都可以直接推广到无限维的函数空间中。这意味着我们可以用处理简单向量的方法来处理复杂的函数问题这是现代数学、物理学和工程学的基础。例子两个函数可以相加(fg)(x) f (x) g (x)函数可以乘以一个数(cf)(x) c・f (x)函数有 ”长度”||f||² ∫f (x)²dx两个函数有 ”内积”f,g ∫f (x) g (x) dx函数可以展开为基函数的线性组合f (x) Σcᵢφᵢ(x)如傅里叶级数数学应用泛函分析研究无限维向量空间的线性代数。它把函数看作向量把作用在函数上的操作如微分、积分看作线性变换。泛函分析是现代数学的基础为量子力学、信号处理、控制理论等领域提供了统一的数学框架。傅里叶分析将函数分解为正交基函数的线性组合。最常见的是傅里叶级数和傅里叶变换它们将时域函数转换为频域函数让我们能够看到信号中包含的不同频率成分。这就像把一首复杂的音乐分解成不同音高的音符一样。微分方程将微分算子视为线性变换求解线性微分方程。在这个视角下解微分方程就相当于在函数空间中寻找线性变换的特征向量和特征值。例如弹簧振子的运动方程可以看作是一个线性变换它的特征值对应于振子的固有频率。量子力学将粒子的状态表示为希尔伯特空间中的向量。希尔伯特空间是一种特殊的无限维向量空间。粒子的可观测量如位置、动量、能量对应于希尔伯特空间中的线性算子。量子力学的整个理论体系都是建立在这个向量与函数统合的思想之上的。EECS 应用信号处理用傅里叶变换、小波变换分析和处理信号将信号分解为不同频率的分量。例如在音频处理中我们可以用傅里叶变换将声音信号转换为频谱然后去除不需要的高频噪音再转换回时域信号得到更清晰的声音。图像处理将图像视为二维函数进行各种变换和处理如 JPEG 压缩就是基于离散余弦变换。JPEG 压缩的基本原理是将图像分成 8×8 的小块对每个小块进行离散余弦变换DCT将图像从空间域转换到频率域然后丢弃人眼不敏感的高频分量只保留低频分量进行存储从而实现高压缩比。机器学习用核方法、支持向量机处理高维数据将数据映射到更高维的函数空间。核技巧的核心思想是将低维空间中线性不可分的数据映射到一个高维的函数空间中在这个高维空间中数据变得线性可分然后就可以用简单的线性分类器进行分类。这就像把一张揉皱的纸展开让原本混在一起的点变得可以用一条直线分开。通信系统用正交频分复用 (OFDM) 技术进行数据传输利用正交函数作为载波。OFDM 是现代无线通信如 4G、5G的核心技术。它将高速数据流分成多个低速子数据流每个子数据流调制在一个正交的子载波上进行传输。由于子载波之间是正交的它们可以在同一信道上传输而不互相干扰大大提高了频谱利用率。控制理论用状态空间方法描述和分析控制系统将系统状态视为向量。在状态空间方法中系统的状态用一个向量表示系统的动态行为用一个矩阵微分方程描述。这使得我们可以用线性代数的强大工具来分析和设计复杂的控制系统如飞机的自动驾驶系统、工业机器人的控制系统等。13. 数学是发明而非发现我们创造自己的数学世界What数学不是存在于某个柏拉图式的理想世界中等待我们去发现的真理而是人类为了解决问题而发明的工具。我们从简单的概念出发根据我们的需要和直觉一步步创造出复杂的数学体系。Why这个视角让我们摆脱了对数学的敬畏和恐惧认识到数学是我们自己的创造。我们不需要接受别人给我们的数学我们可以自己发明数学用自己的方式理解数学。例子我们发明了数来计数我们发明了几何来测量土地我们发明了微积分来解决运动和变化的问题我们发明了复数来解决方程 x² -1 的问题我们发明了非欧几何来描述弯曲的空间数学应用数学研究创造新的数学概念和理论数学教育让学生体验数学的创造过程跨学科应用为其他学科创造合适的数学工具EECS 应用理论计算机科学发明计算模型、算法和数据结构形式化方法发明逻辑系统来验证软件和硬件的正确性人工智能发明新的数学模型来描述智能密码学发明新的数学难题来保证信息安全编程语言理论发明新的类型系统和语义模型14. 从定性到定量模糊直觉的精确化What数学创造的过程总是从模糊的、定性的日常直觉开始然后逐步将其精确化、定量化。我们先有一个大概的想法然后通过不断的尝试和修正最终得到一个精确的数学定义。Why这是人类认知的自然过程。我们不可能一开始就有一个完美的、精确的定义。只有通过不断地将模糊的直觉转化为精确的语言我们才能真正理解一个概念。例子陡峭度概念的发明定性直觉陡峭度是描述一个东西有多陡的量初步想法陡峭度应该与上升量和水平量有关尝试 1陡峭度 上升量。问题水平量不同时相同上升量的陡峭度不同尝试 2陡峭度 上升量 / 水平量。问题水平量为 0 时无意义最终定义对于直线陡峭度 上升量 / 水平量对于曲线用无穷放大镜思想定义导数数学应用概念发明将模糊的直觉转化为精确的数学定义数学建模将实际问题转化为精确的数学问题数学证明将直观的论证转化为严格的数学证明数学交流用精确的数学语言表达思想和观点EECS 应用需求分析将模糊的用户需求转化为精确的系统规格说明系统设计将高层的设计思想转化为详细的实现方案性能评估将定性的性能要求转化为定量的性能指标软件测试将模糊的测试目标转化为精确的测试用例人机交互将定性的用户体验描述转化为可测量的指标