# 链式法则 (Chain Rule)
链式法则 (Chain Rule) 是{{{calculus}}}中用于计算复合函数 (composite function) 的{{{derivative}}}的基本规则。如果一个函数是由两个或多个更简单的函数复合而成,链式法则提供了一种系统性的方法来求其导数。该法则在纯数学、物理学、工程学、经济学以及{{{machine learning}}}等领域中都有着至关重要的应用。
其核心思想是:一个复合函数的{{{rate of change}}},等于其外部函数相对于其内部函数的变动率,乘以内部函数相对于其自变量的变动率。
## 核心概念与直观理解
我们可以将复合函数 $h(x) = f(g(x))$ 理解为一个“函数中的函数”。想象一个生产线:一个变量 $x$ 先经过机器 $g$ 的加工,产出中间产品 $g(x)$;接着,这个中间产品 $g(x)$ 再被送入机器 $f$ 进行最终加工,产出最终产品 $f(g(x))$。链式法则就是用来计算最终产品相对于最初原材料 $x$ 的变化率。
我们可以用一个关于变动率的简单例子来直观理解: 假设你开车的速度 $y$ (单位:km/h) 取决于你踩油门踏板的深度 $u$ (单位:cm),即 $y = f(u)$。而你踩油门的深度 $u$ 又随时间 $t$ (单位:秒) 变化,即 $u = g(t)$。
现在,我们想知道你的车速 $y$ 是如何随时间 $t$ 变化的,也就是求 $\frac{dy}{dt}$。 * $\frac{dy}{du}$ (即 $f'(u)$) 表示车速相对于油门深度的变化率(每多踩 1cm,车速增加多少 km/h)。 * $\frac{du}{dt}$ (即 $g'(t)$) 表示油门深度相对于时间的变化率(每过 1 秒,油门多踩了多少 cm)。
逻辑上,车速随时间的变化率,应该是这两个变化率的乘积。例如,如果每深踩 1cm 油门能让车速增加 10km/h,而你每秒多踩 2cm,那么你的车速每秒就会增加 $10 \times 2 = 20$ km/h。这个逻辑正是链式法则的精髓:
$$ \frac{dy}{dt} = \frac{dy}{du} \cdot \frac{du}{dt} $$
## 形式化定义与表示法
链式法则有两种常见的表示方法:{{{Lagrange's notation}}} 和 {{{Leibniz's notation}}}。
一. 拉格朗日表示法 (Lagrange's Notation) 如果一个函数 $h(x)$ 可以表示为 $h(x) = f(g(x))$,其中 $f$ 和 $g$ 均为可微函数,则 $h(x)$ 的导数 $h'(x)$ 为:
$$ h'(x) = f'(g(x)) \cdot g'(x) $$
这里的关键点在于: * $f'(g(x))$: 首先求出外部函数 $f$ 的导数 $f'$,然后将内部函数 $g(x)$ 原封不动地 代入到 $f'$ 中。这是初学者最容易出错的地方,常见的错误是直接计算 $f'(x)$。 * $g'(x)$: 然后乘以内部函数 $g(x)$ 的导数。
口诀可以记为:“外导内不导,再乘内导。”
二. 莱布尼茨表示法 (Leibniz's Notation) 如果我们定义 $y = f(u)$ 并且 $u = g(x)$,那么 $y$ 对于 $x$ 的导数可以表示为:
$$ \frac{dy}{dx} = \frac{dy}{du} \cdot \frac{du}{dx} $$
这种表示法非常直观,形式上看起来就像是 $du$ 被“约分”了。虽然这并非严格的代数约分(因为 $\frac{dy}{du}$ 是一个整体的符号,代表基于{{{limit}}}的导数),但它是一个非常有用的记忆工具。
## 分步应用与示例解析
应用链式法则求解导数通常遵循以下四个步骤:
1. 识别内外函数:将给定的复合函数分解为外部函数 $f(u)$ 和内部函数 $u = g(x)$。 2. 求外部函数的导数:计算 $\frac{dy}{du} = f'(u)$。 3. 求内部函数的导数:计算 $\frac{du}{dx} = g'(x)$。 4. 相乘并代回:将第二步结果中的 $u$ 用 $g(x)$ 替换,然后乘以第三步的结果。
--- 示例 1: 幂函数与多项式的复合
求函数 $h(x) = (x^2 + 5)^3$ 的导数。
1. 识别内外函数: * 外部函数:$f(u) = u^3$ * 内部函数:$u = g(x) = x^2 + 5$ 2. 求外部函数的导数: * $f'(u) = 3u^2$ 3. 求内部函数的导数: * $g'(x) = 2x$ 4. 相乘并代回: * $h'(x) = f'(g(x)) \cdot g'(x) = 3(x^2 + 5)^2 \cdot (2x) = 6x(x^2 + 5)^2$
--- 示例 2: 三角函数与幂函数的复合
求函数 $h(x) = \cos(4x^3)$ 的导数。
1. 识别内外函数: * 外部函数:$f(u) = \cos(u)$ * 内部函数:$u = g(x) = 4x^3$ 2. 求外部函数的导数: * $f'(u) = -\sin(u)$ 3. 求内部函数的导数: * $g'(x) = 12x^2$ 4. 相乘并代回: * $h'(x) = f'(g(x)) \cdot g'(x) = -\sin(4x^3) \cdot (12x^2) = -12x^2\sin(4x^3)$
--- 示例 3: 多层复合函数 (Generalized Chain Rule)
求函数 $h(x) = e^{\sin(x^2)}$ 的导数。 这是一个三层复合函数:$f(g(k(x)))$。我们可以连续使用链式法则。
使用莱布尼茨表示法更清晰:令 $y = e^u$, $u = \sin(v)$, $v = x^2$。 我们需要求解 $\frac{dy}{dx} = \frac{dy}{du} \cdot \frac{du}{dv} \cdot \frac{dv}{dx}$。
* $\frac{dy}{du} = e^u = e^{\sin(v)} = e^{\sin(x^2)}$ * $\frac{du}{dv} = \cos(v) = \cos(x^2)$ * $\frac{dv}{dx} = 2x$
将三者相乘: $$ h'(x) = (e^{\sin(x^2)}) \cdot (\cos(x^2)) \cdot (2x) = 2x \cos(x^2) e^{\sin(x^2)} $$
## 多变量扩展 (Multivariable Chain Rule)
链式法则可以自然地扩展到{{{multivariable calculus}}}。这是其在经济金融等领域应用的基础。
考虑一个函数 $z = f(x, y)$,其中 $x$ 和 $y$ 本身都是另一个变量 $t$ 的函数,即 $x = x(t)$ 和 $y = y(t)$。那么,$z$ 相对于 $t$ 的{{{total derivative}}}为:
$$ \frac{dz}{dt} = \frac{\partial f}{\partial x}\frac{dx}{dt} + \frac{\partial f}{\partial y}\frac{dy}{dt} $$
这里的 $\frac{\partial f}{\partial x}$ 和 $\frac{\partial f}{\partial y}$ 是{{{partial derivatives}}},分别表示在保持其他变量不变的情况下,$z$ 相对于 $x$ 和 $y$ 的变化率。
这个公式的意义是,$t$ 的变化通过两条路径影响 $z$:一条是通过 $x$ 的变化,另一条是通过 $y$ 的变化。$z$ 的总变化率是这两条路径影响的总和。
经济学应用示例: 假设一家公司的{{{profit}}} $\Pi$ 是产出量 $q$ 和广告支出 $a$ 的函数,$\Pi = f(q, a)$。而产出量和广告支出都随时间 $t$ 变化,即 $q(t)$ 和 $a(t)$。
那么,利润随时间的变化率 $\frac{d\Pi}{dt}$ 可以用链式法则计算: $$ \frac{d\Pi}{dt} = \frac{\partial \Pi}{\partial q}\frac{dq}{dt} + \frac{\partial \Pi}{\partial a}\frac{da}{dt} $$
* $\frac{\partial \Pi}{\partial q}$ 是销售的{{{marginal profit}}}。 * $\frac{dq}{dt}$ 是产出量的变化率。 * $\frac{\partial \Pi}{\partial a}$ 是广告的边际利润。 * $\frac{da}{dt}$ 是广告支出的变化率。
这个公式清晰地表明,总利润的变化是“产出渠道”带来的变化和“广告渠道”带来的变化之和。
## 在高级领域的应用
* 经济学与金融学:在动态优化问题中,如分析消费者的跨期{{{utility}}}最大化,需要使用链式法则对效用函数求导。在金融衍生品定价中,著名的{{{Ito's Lemma}}}是链式法则在{{{stochastic calculus}}}中的推广,是构建{{{Black-Scholes model}}}等模型的基石。
* 机器学习:链式法则是训练{{{artificial neural networks}}}的核心算法——{{{backpropagation}}} (反向传播)的数学基础。神经网络的{{{loss function}}}是一个关于网络中成千上万个权重参数的极其复杂的复合函数。反向传播算法正是利用链式法则,高效地计算损失函数对每一个参数的{{{gradient}}},从而实现对网络权重的更新和学习。