复合函数的局部误差怎样层层传递?¶
先备知识¶
你需要会把可导性写成局部线性化
并知道可导函数在该点连续。本单元还会反复使用一个事实:若 \(k(h)=O(h)\)、\(\eta(k)\to0\),那么
这里 \(k(h)=O(h)\) 表示 \(k(h)/h\) 在 \(h\to0\) 时有界。
学习目标¶
完成本单元后,你应当能够:
- 从两层局部线性化严格证明链式法则;
- 解释为什么内层增量可能等于零;
- 用延拓后的余项系数消除证明中的除零漏洞;
- 正确计算多层复合函数的导数;
- 把链式法则解释为绝对敏感性与相对敏感性的传递。
牵引问题¶
传感器把温度 \(x\) 转换成电压 \(g(x)\),显示程序再把电压转换成读数 \(f(g(x))\)。 温度的小变化先经过第一层放大或缩小,再经过第二层。直觉上,总变化率应是两层变化率 相乘:
但若内层函数在某些任意靠近基点的位置又回到原值,就会出现 \(g(a+h)-g(a)=0\)。一个依赖
的证明会在这些步长上失去定义。怎样证明直觉公式而不做这次除法?
探索与猜想¶
设 \(b=g(a)\),令内层增量
内层局部模型给出
外层在 \(b\) 附近的局部模型是
形式代入可得
候选导数是 \(f'(g(a))g'(a)\)。真正的困难是把外层的 \(o(k)\) 严格转换为相对于 \(h\) 的 \(o(h)\),同时允许 \(k=0\)。
概念与理论¶
余项系数的零点延拓¶
若 \(f\) 在 \(b\) 可导,可写
定义
因为 \(r_f(k)/k\to0\),所以延拓后的函数满足
而且对所有充分小的 \(k\),包括 \(k=0\),恒有
这一步把“比 \(k\) 高阶”改写成一个趋零系数乘以 \(k\),以后不再需要除以实际出现的 内层增量。
定理:链式法则¶
设 \(g\) 在 \(a\) 处可导,\(f\) 在 \(b=g(a)\) 处可导,并且复合函数在 \(a\) 附近有定义,则 \(f\circ g\) 在 \(a\) 处可导,且
证明障碍。 常见的“两个差商相乘”写法会除以 \(g(a+h)-g(a)\)。可导并不保证这个内层增量对每个充分小的非零 \(h\) 都非零。
证明。 内层可导给出
令
于是 \(k(h)\to0\),并且
在 \(h\to0\) 时趋于 \(g'(a)\),因而在某个去心邻域内有界,即 \(k(h)=O(h)\)。
对外层使用上一段的延拓:
代入 \(k=k(h)\):
最后一项相对于 \(h\) 的比值为
因为第一因子趋于零,第二因子有界。因此它是 \(o(h)\),而 \(f'(b)r_g(h)=o(h)\)。综上,
即使 \(g(a+h)=g(a)\),扩展后的 \(\eta\) 仍有定义,此时对应的余项正好为零;整个 证明没有除以内层增量。由局部线性化判据,
\(\square\)
多层复合¶
若 \(F=f\circ g\circ k\),并且各层在对应点可导,则连续使用链式法则得到
阅读公式时应从外到内列出函数层,再把各层导数相乘。求值点不能丢失:\(f'\) 在 \(g(k(x))\) 取值,\(g'\) 在 \(k(x)\) 取值,只有 \(k'\) 在 \(x\) 取值。
相对敏感性的乘法¶
若相关函数值和自变量均非零,定义相对敏感性
对 \(F=f\circ g\),链式法则给出
因此复合过程的相对敏感性相乘。不过这个公式额外要求 \(x\ne0\)、\(g(x)\ne0\)、\(f(g(x))\ne0\);链式法则本身不需要这些非零条件。
例题与迁移¶
例题1:嵌套多项式¶
设
取 \(g(x)=3x^2-1\)、\(f(u)=u^4\)。由整数幂法则,
链式法则给出
外层导数仍在内层值 \(3x^2-1\) 处求值,不能把它误写成 \(4x^3\)。
例题2:内层增量可以反复为零¶
定义
这里只使用 \(|\sin u|\le1\),不使用三角函数求导。由定义,
所以 \(g'(0)=0\)。又有 \(f'(0)=0\),链式法则给出
直接核验也成立:
另一方面,当 \(h=1/(n\pi)\) 时,\(h\to0\) 且 \(g(h)=g(0)=0\)。因此“先除以 \(g(h)-g(0)\)”的证明在无穷多个任意靠近零的步长上 没有定义,而余项延拓证明始终合法。
即时检验与回望¶
检验1:复合导数的求值点¶
若 \(F(x)=f(g(x))\),已知 \(g(2)=5\)、\(g'(2)=-3\)、\(f'(5)=4\),求 \(F'(2)\)。
答案
链式法则要求外层导数在内层值 \(g(2)=5\) 处求值:
已知的是 \(f'(5)\),并不需要 \(f'(2)\)。
检验2:为什么 \(k(h)=O(h)\)?¶
在链式法则证明中,说明 \(k(h)=g(a+h)-g(a)=g'(a)h+o(h)\) 蕴含 \(k(h)=O(h)\)。
答案
对 \(h\ne0\),
收敛函数在充分小的去心邻域内有界,所以存在 \(M,\delta>0\),使 \(0<|h|<\delta\) 时 \(|k(h)|\le M|h|\)。这正是 \(k(h)=O(h)\)。
习题与答案¶
习题1:三层复合¶
求
的导数,并标出三层函数。
答案
可取
因而
即
习题2:定义域先于公式¶
设
求导并写出原函数和导函数共同的定义域。
答案
原函数要求 \(x^2-1\ne0\),即 \(x\ne\pm1\)。写成 \(F(x)=(x^2-1)^{-3}\),链式法则给出
共同定义域仍是 \(\mathbb R\setminus\{-1,1\}\);分母的四次方不会补上两个空点。
习题3:修复错误消去¶
有人写
并声称这对所有充分小的 \(h\ne0\) 成立。指出缺失条件,并说明本单元证明如何修复。
答案
这次乘除要求 \(g(a+h)-g(a)\ne0\),而可导性并不保证该条件。修复方法是把外层 余项写成
再代入 \(k=g(a+h)-g(a)\)。这样当 \(k=0\) 时等式仍成立,证明不需要作非法消去。
习题4:绝对敏感性传递¶
某测量链的内层在工作点满足 \(g'(a)=0.02\ {\rm V/^\circ C}\),外层满足 \(f'(g(a))=50\ {\rm unit/V}\)。求总变化率并说明单位。
答案
由链式法则,
单位相乘时伏特约去:
所以输入每变化 \(1^\circ{\rm C}\),输出的一阶变化约为 \(1\) 个单位。
习题5:相对敏感性乘法的条件¶
设 \(f(u)=u^3\)、\(g(x)=x^2\)。在 \(x\ne0\) 时分别计算 \(S_f(g(x))\)、\(S_g(x)\) 与 \(S_{f\circ g}(x)\),核验乘法公式。
答案
对 \(u\ne0\),
所以 \(S_f(g(x))=3\)。对 \(x\ne0\),
又 \(f(g(x))=x^6\),故
\(x=0\) 时这些相对比值含零分母,不在该公式的适用范围内。
常见误区与后续¶
- 把链式法则写成两个差商,却不检查内层增量。 公式结论正确不代表含除零漏洞的 证明正确;余项延拓才覆盖所有充分小步长。
- 丢失外层导数的求值点。 \(f'\) 必须在 \(g(a)\) 处求值。
- 只乘“最外层”和“最内层”。 多层复合的每一层导数都必须出现。
- 把相对敏感性公式当作无条件结论。 它比链式法则多出若干非零要求。
下一单元把链式法则用于反函数。复合恒等式 \(f^{-1}(f(x))=x\) 暗示两个导数互为倒数,但严格证明还必须说明反函数自变量趋近时, 原函数自变量确实趋向对应点。