讲解稿 · 第 03 章 第 02 节:积分学¶
时长:约 15–20 分钟|字数:约 3700 字|语速:中速,公式处停两拍
开场钩子(约 75 秒)¶
先把速度表的事说清楚。
你开着车,仪表盘上那根指针指着 80 km/h——这就是瞬时变化率,是 1 小时里能跑多少公里的"快慢"。
但你今天跑了 1 个小时,按 80 跑了 1 小时,你这 1 小时到底走了多远?80 公里。这 80 怎么从 80 km/h 这个速度里"变"出来?把它乘以 1 小时。
再复杂一点。前半小时 60,后半小时 100,平均速度多少?——算总路程就知道:60 × 0.5 + 100 × 0.5 = 30 + 50 = 80 公里,平均 80 km/h。
再复杂一点。速度一直在变,踩油门、刹车、过弯,每一秒的瞬时速度都不一样的曲线 \(v(t)\)。1 小时总共跑了多远?你得把每一秒的速度"切成"薄片,乘以每片的小时间段 \(\Delta t\),再把无数小片加起来。
这一堆切片加起来,就是积分 (integral)。
上节我们讲导数——回答"多快"。这一节我们讲积分——回答"多少"。导数是切线斜率,积分是曲线下的面积。两个方向相反,但基本定理把它们捏成一个硬币的两面。
复习昨日 & 今日路线(约 40 秒)¶
上节——01 微分学——我们讲了:极限、导数定义、链式法则、泰勒展开。导数告诉你某一点的瞬时变化率。
这一节反过来:积分。定积分、不定积分、微积分基本定理、代换、分部积分、ML 里的概率密度和期望值。
下一节——03 多元微积分——我们把单变量推到多变量。Ch02 §04 矩阵乘法出场——多元导数不再是一个数,而是一个矩阵,叫 Jacobian。
核心概念一:定积分 = 曲线下的面积(约 3 分钟)¶
符号首现:\(\int_a^b f(x)\, dx\) — 定积分 (definite integral):函数 \(f(x)\) 在区间 \([a, b]\) 上与 \(x\) 轴围成的带符号面积。
四个细节我说三遍:
第一是带符号。函数图像在 \(x\) 轴上方算正面积,下方算负面积。物理意义:如果 \(f(x)\) 是速度,积分给出净位移——前进减去后退,而不是总路程。你跑了一圈操场回到原点,速度曲线下面净面积为 0,但你跑过的总路程可不是 0。
第二是切片求和。想象在 \([a, b]\) 上竖着切 \(n\) 片,每片宽度 \(\Delta x = (b - a)/n\),第 \(i\) 片在某一点 \(x_i^*\) 上取个函数值 \(f(x_i^*)\),那一片就是一个小矩形,面积为 \(f(x_i^*) \cdot \Delta x\)。\(n\) 个加起来:
这叫黎曼和 (Riemann sum)。
第三是取极限。矩形越切越薄,\(n \to \infty\),\(\Delta x \to 0\)。和的极限——就是定积分的定义:
第四是符号。\(\int\) 是拉长的 S,代表 sum(求和)。\(dx\) 是 \(x\) 轴上一段无穷薄的宽度。这俩一组合,记号自解释:把 \(f(x)\) 沿 \(x\) 轴"加一遍"。
数字锚点:\(f(x) = x^2\),\(a = 0, b = 1\)。宽 \(\Delta x = 1/n\),左端点 \(x_i^* = (i-1)/n\),和 \(\sum (i-1)^2/n^3\)。\(n = 10\) 大约 0.285,\(n = 100\) 大约 0.328,\(n = 10000\) 大约 0.3333... ——精确答案 \(\int_0^1 x^2 dx = 1/3\)。
反例:狄利克雷函数 \(f(x) = 1\)(\(x\) 有理)、\(0\)(\(x\) 无理)。每个区间里都密布着有理和无理点,无论怎么切片,左端点选在无理就估值 0,选在有理就估值满格。黎曼和的极限不存在——这种函数不可积。我们这节课谈的函数都默认连续,不踩这个坑。
一句话总结:定积分 = 黎曼和的极限 = 曲线下的带符号面积。
⏸️ 暂停思考 · 第一次
想一下 \(f(x) = -x\) 在 \([-1, 1]\) 上的积分。图像是过原点、斜率为 -1 的直线。这块"面积"——按你说的"上方正、下方负"——加完应该是几?
——左右对称、上下等大,正负对消,答案是 0。这跟 \(f\) 是奇函数有关:奇函数在对称区间上的定积分恒为 0。这是后面概率论里"对称分布期望为 0"的雏形。
核心概念二:不定积分 = 反导数 + C(约 2.5 分钟)¶
符号首现:\(\int f(x)\, dx = F(x) + C\) — 不定积分 (indefinite integral):所有以 \(f(x)\) 为导数的函数 \(F(x)\) 的集合,写成 \(F(x) + C\)。
注意:第一它没有上下限。定积分 \(\int_a^b\) 是数,不定积分 \(\int\) 是函数。第二它一定要带 \(+C\)——积分常数 (constant of integration)。
为什么?两个不同的反导数,差一个常数。常数求导是 0,所以 \(F(x) + 7\) 和 \(F(x) - 3\) 的导数都还是 \(f(x)\)。反导数有无穷多个,差多少都行——那个差,就是常数 \(C\)。
数字锚点:\(\int 2x\, dx = x^2 + C\)。验证:\((x^2 + C)' = 2x\) ✓。\(C\) 可以是 \(0, 7, -3\),都对。
符号首现:\(F(x)\) — 反导数 (antiderivative):满足 \(F'(x) = f(x)\) 的函数。
大白话:"哪个函数的导数等于 \(f\)?"答案不唯一——差一个常数就行。
反例:能问"\(\int 2x\, dx\)"等于几吗?不能给一个具体的数。得给一族:\(x^2 + C\)。把 \(C\) 忘了丢分。
一句话总结:不定积分 = 反导数 + C,不要丢常数。
核心概念三:微积分基本定理(约 3 分钟)—— 连接微分与积分的桥¶
到这里你可能想问:这黎曼和极限也太难算了吧?——好消息是,没有人真的去算黎曼和。
微积分基本定理 (Fundamental Theorem of Calculus, FTC),分两部分:
第一部分(FTC-1):若 \(F\) 是 \(f\) 的反导数,则
——定积分 = 反导数在两端点处取值的差。
这条定理把"黎曼和极限"这件苦差事一次性外包给"找反导数"。后者通常容易得多——只要你能列出基本积分表,就能一眼扫到答案。
第二部分(FTC-2):若定义 \(F(x) = \int_a^x f(t)\, dt\),则
——先积分到 \(x\)、再对 \(x\) 求导 = 复合等于 \(f(x)\) 自己。
大白话:微分和积分互为逆运算。一个抵消一个,对消回来跟没动一样。
数字锚点:算 \(\int_1^3 x^2\, dx\)。\(x^2\) 的反导数是 \(\frac{x^3}{3}\)(因为 \((x^3/3)' = x^2\))。代进两端:
真值验算:黎曼和 \(n = 10000\),代码跑出来 \(8.6665...\),对上 ✓。
审计链:<!-- FIX: M3-兑现 -- > 第二条定理的工程意义大到可以另写一节——自变量是积分上限这件事意味着,积分自动给出原函数。PyTorch 的 autograd 的反向传播就是这么算梯度的:从输出端的损失一路反向积分——呃不是,是反向微分——回到每个参数。这条链路今天先挂着,到 Ch06 ML 优化再展开。
一句话总结:FTC = 找反导数代替算极限、积分上限成自变量、微分与积分互逆。
核心概念四:基本积分表(约 2 分钟)—— 7 个式子背下来¶
跟微分表对称,积分也有 7 条核心规则:
| 函数 | 积分 | 备注 |
|---|---|---|
| \(x^n\) | \(\frac{x^{n+1}}{n+1} + C\) | \(n \ne -1\) |
| \(\frac{1}{x}\) | \(\ln\|x\| + C\) | 加绝对值! |
| \(e^x\) | \(e^x + C\) | 唯一不动点 |
| \(a^x\) | \(\frac{a^x}{\ln a} + C\) | |
| \(\sin x\) | \(-\cos x + C\) | 符号取反 |
| \(\cos x\) | \(\sin x + C\) | |
| \(k\)(常数) | \(kx + C\) |
加上线性性质:和差可以拆,常数可以拎出去。
数字锚点:\(\int (3x^2 + e^x - 2)\, dx = x^3 + e^x - 2x + C\)。一项一项来 + 别忘了 \(C\)。
反例:\(\int \frac{1}{x}\, dx = \ln x + C\) 是错的(在 \(x < 0\) 上崩了)。正确的是 \(\ln |x| + C\)。考试常考这个坑。
一句话总结:7 条积分规则 + 线性拆开,复杂函数逐步化简。
核心概念五:u 代换——链式法则反着用(约 2.5 分钟)¶
上一节讲过链式法则:复合函数求导是外导 × 内导。积分反过来:遇见 \(f(g(x)) \cdot g'(x)\) 这种"复合尾巴带一个内导"的结构,就令 \(u = g(x)\),把 \(du = g'(x) dx\) 凑进去。
符号首现:\(u\) — 代换变量 (substitution variable):把 \(g(x)\) 换个名字,便于积分的形式化改写。
大白话:把复合函数里那个"内层"包起来,丢掉外层的复杂包装。
数字锚点:\(\int 2x \cos(x^2)\, dx\)。看见 \(2x\, dx\) 跟 \(\cos(x^2)\) 配对了吗?令 \(u = x^2\),则 \(du = 2x\, dx\),原式变 \(\int \cos(u)\, du = \sin(u) + C = \sin(x^2) + C\)。
验算:\((\sin(x^2) + C)' = \cos(x^2) \cdot 2x\) ✓。
反例:\(\int \cos(x^2)\, dx\) —— 没有那个 \(2x\)! 这个积分是找不到初等函数原型的,叫菲涅尔积分,写成 \(\sqrt{\pi/2}\, \mathrm{FresnelC}(x)\)。这意味着没有万能公式,你得让机器去积分(数值积分)。u 代换的硬条件是后面恰好多出 \(g'(x)\, dx\)。
一句话总结:u 代换 = 看见 \(f(g(x)) \cdot g'(x)\) 就令 \(u = g(x)\),前提是那个内导真的在。
⏸️ 暂停思考 · 第二次
想一下 \(\int x \cdot e^{x^2}\, dx\)。能直接 u 代换吗?令 \(u = x^2\)——\(du = 2x\, dx\),但被积函数里只有一个 \(x\) 不是 \(2x\)。怎么办?
——常数拎出去:\(x\, dx = \frac{1}{2} \cdot 2x\, dx = \frac{1}{2}\, du\)。\(\int x e^{x^2}\, dx = \frac{1}{2}\int e^u\, du = \frac{1}{2} e^{x^2} + C\)。线性性质 + u 代换,俩工具叠着用。
核心概念六:分部积分——乘积法则反着用(约 2.5 分钟)¶
分部积分 (integration by parts):被积函数是两个因子乘在一起,其中一个是你能"轻松求导"的(让它变简单),另一个是你能"轻松积分"的(让它变复杂刚好抵消原函数)。
大白话:把被积函数拆成"能求导的"和"能积分的"两半。LIATE 口诀——选 \(u\) 的优先顺序:
Logarithmic(对数) → Inverse trig(反三角) → Algebraic(代数) → Trignometric(三角) → Exponential(指数)
越靠前的越适合当 \(u\),因为这些函数求导会变简单(\(\ln \to 1/x\),\(\arctan \to 1/(1+x^2)\),\(x^n \to x^{n-1}\))。
审计链:<!-- FIX: 模板 B -- > 数字例:\(\int x \cdot e^x\, dx\)。
按 LIATE:\(x\) 是 A(代数),\(e^x\) 是 E(指数)。A 在 E 前面,所以 \(u = x\),\(dv = e^x\, dx\)。于是 \(du = dx\),\(v = e^x\)。代入公式:
验算:\((e^x(x - 1))' = e^x(x - 1) + e^x = x e^x\) ✓。
反例:选错的话 \(\int v\, du\) 会比原题更难。比如反过来令 \(u = e^x, dv = x\, dx\),则 \(v = x^2/2\),\(\int v\, du = \int \frac{x^2}{2} e^x\, dx\)——代数式更复杂,方向错了。LIATE 就是为了避免这种翻车。
一句话总结:分部积分 = 乘积法则反着用,选 \(u\) 走 LIATE。
一个走完全程的例子(约 2.5 分钟)¶
把 6 个工具叠在一道题上——也是 ML 面试时容易出现的活题。
算 \(I = \int_0^1 x e^x\, dx\)。
这条题需要三个工具:(1) 分部积分;(2) 代回原变量;(3) FTC 算端点差。
Step 1 · 分部积分。按 LIATE:\(u = x\),\(dv = e^x\, dx\),则 \(du = dx\),\(v = e^x\)。
Step 2 · FTC 套两层。
Step 3 · 验算。\(x e^x\) 在 \([0, 1]\) 上的几何直观:起点 \(0\),终点 \(e \approx 2.718\),斜着上去、还越来越陡。面积肯定小于 \(1 \times e = 2.718\)(矩形上限)、大于 \(1 \times 0 = 0\)(首点值)。答案 \(1\) 在 \([0, 2.718]\) ✓。
审计链:<!-- FIX: 模板 B 验算 -- > 数字验算:黎曼和 \(n = 10000\),和 \(\approx 1.0000...\),跟精确答案 1 完全对上 ✓。
这一个例子里就套了基本定理 + 分部积分 + 端点代入——链上每一环你都认识,整条链路串得动。
易错点回头看(约 75 秒)¶
三条最常翻车的地方,钉进你笔记最显眼的位置。
-
很多人以为:\(\int_a^b f(x)\, dx\) 是总面积。其实是:带符号面积——\(x\) 轴下方要扣。因为速度 \(f(t)\) 在倒车段是负的,积分给的是净位移、不是总路程。曲线"看起来"大,下方扣完可能只剩一点点。
-
很多人以为:\(\int f(x)\, dx\) 等于某个具体的函数。其实是:\(F(x) + C\) 的一族。因为常数的导数是 0,\(F+7\) 和 \(F-3\) 的导数都等于 \(f\)。把 \(C\) 丢了丢分——高考、考研都爱扣这一分。
-
很多人以为:u 代换能解所有复合函数。其实是:必须被积函数里正好有那个内层导数 \(g'(x)\)——少一个 \(2x\)、多一个 \(\sin x\) 都凑不出。因为代换只是链式法则的逆,没有链可逆就凑不动。反例:\(\int \cos(x^2)\, dx\) 没有 \(2x\) 陪它,初等函数写不出原式,得让 SciPy 数值积分。
与下节的钩子(约 30 秒)¶
到现在为止,所有的 \(f(x)\) 都是单变量的。一个输入、一个输出。
真实世界却不一样:图像是 784 维输入、10 维输出;一句话是 512 维嵌入、一万维概率分布;损失函数是从几百万个参数到一个标量的函数。
下一节——03 多元微积分——我们要把导数升级成Jacobian 矩阵:多变量函数的"梯度"是一个向量,"二阶导"是一个矩阵。这跟 Ch02 §04 矩阵乘法自然握手——Jacobian @ Jacobian 就是复合函数的链式法则,矩阵乘法不是空学了,到 Ch03 §03 显式用上。
下节见。