一步一步建立直观
先预测,再点“演示本步”核对右图。每一步都重设到指定情形,随后可以自由修改参数。
01用放大倍率理解复合
设输入先经过 ,再经过 。一个很小的输入位移先被放大为约 ,随后又被放大为约 倍。右图展示其中一台局部放大器:随着取样窗口缩小,曲线附近越来越像直线,而倍率就是切线斜率。
02为什么倍率相乘,却不总是常数
链式法则把两级倍率相乘,但第二级必须在第一级的输出位置测量。移动右图的观察点,切线斜率随位置改变,便能看到“先代入正确位置”不能省略。对每一级都使用同一个输入位置,是复合求导中常见的错误。
03乘积的变化来自两块薄条
乘积可以看作长方形面积。长度和宽度同时改变时,新增面积包含两块一阶薄条,还有一个二阶小角。除以输入步长后,小角项趋零,两块薄条分别留下 与 。右图仅演示差商极限;长方形分解才是乘积法则的几何理由。
2.5.1 两个变化共同决定结果¶
面积 随 改变时,两条边都可能变化。新增面积包含一条 的带、一条 的带和角上的 。除以输入增量后,前两项分别成为 与 。
角项为什么能消失?可导性意味着两条边的增量都是输入增量的一阶量,所以相乘是二阶量;再除以一次增量,仍会趋零。若没有这项数量级分析,“把角忽略”只是图像猜测。乘积法则计算的是两条独立贡献的和。
2.5.2 串行变化则把倍率相乘¶
复合函数的结构不同:输入先经过 ,中间输出再经过 。附近小间距先放大约 倍,再放大约 倍,所以总倍率相乘。外层导数必须在实际收到的中间值处计算,不能把它误写成 。
比较 和 。前者同时改变两块因子,因此两条贡献相加;后者把平方结果送入正弦,因此倍率串联。先画计算关系,再选择法则,比看到两个符号便机械判断更可靠。
有时用差商约去中间增量来记忆链式法则很方便,但中间增量也可能为零,严格证明需要用局部线性近似处理。下一章的反向传播会重用同样结构:沿一条计算路径相乘,多条路径汇合时相加。
与本图相连的定义与证明:2.2 · 平方函数的差商与误差。本节的具体条件与形式化范围见下文。
数学表述 2.5.1¶
面积 的增量来自两条边的改变;复合函数的局部伸缩倍率则相乘。
乘积展开中还有 ,可导性保证它除以 后趋零。链式法则中的外层导数要在内层输出处求值。
例 2.5.1 把概念用于具体计算
;。
练习 2.5.1¶
的导数?
展开解答与检查
答案 。
Lean 对照 2.5.1 命题、证明与适用边界
chain_rule 与同文件的 product_rule 完整保留两函数在相应点可导的假设。
Calculus.chain_rule
theorem chain_rule (f g : ℝ → ℝ) (x df dg : ℝ)
(hf : HasDerivAt f df x) (hg : HasDerivAt g dg (f x)) :
HasDerivAt (fun t => g (f t)) (dg*df) x := hg.comp x hf