← 返回《人工智能数学基础》
📑 查看全课大纲(第 16 / 93 节)
  1. 1.概论和集合的定义
  2. 2.逼疯康托的实数集理论
  3. 3.常用不等式与映射
  4. 4.函数及特殊函数
  5. 5.序列极限的定义
  6. 6.序列极限的性质与夹逼定理
  7. 7.重要极限
  8. 8.无穷小量,无穷大量和一组重要的阶的比较关系
  9. 9.聚点原理
  10. 10.函数极限及其性质
  11. 11.重要极限与等价无穷小
  12. 12.连续函数
  13. 13.导数的概念(那些年,扛起牛顿的胡克)
  14. 14.定义法求导
  15. 15.函数四则运算的导数与反函数求导法则
  16. 16.复合函数,隐函数,参数式求导
  17. 17.不定式求导之“洛必达与伯努利的师生情”
  18. 18.一阶微分
  19. 19.高阶导数
  20. 20.高阶微分
  21. 21.罗尔中值定理与拉格朗日中值定理
  22. 22.柯西空降科学院遭排挤
  23. 23.泰勒公式与泰勒的克妻属性
  24. 24.利用泰勒展开唯一性定理计算泰勒展开
  25. 25.泰勒公式的余项估计
  26. 26.极值问题与导数
  27. 27.函数凹凸性
  28. 28.无卵用的渐近线与函数作图
  29. 29.不定积分的定义
  30. 30.第一换元法
  31. 31.第二换元法
  32. 32.分部积分法
  33. 33.有理式积分
  34. 34.三角替换
  35. 35.定积分的概念
  36. 36.定积分的性质与积分中值定理
  37. 37.变上限定积分
  38. 38.微积分基本定理之“高斯教你如何优雅地装逼”
  39. 39.定积分的换元法
  40. 40.奇偶函数与周期函数的定积分
  41. 41.曲线求长与不可求长曲线(海岸线居然算不出长度?)
  42. 42.旋转体体积
  43. 43.旋转体侧面积
  44. 44.极坐标下图形的面积(数学系常用表白曲线)
  45. 45.欧式空间
  46. 46.点列极限,开集与闭集
  47. 47.多元函数的定义
  48. 48.多元函数的极限
  49. 49.多元连续函数
  50. 50.一阶偏导数
  51. 51.高阶偏导数
  52. 52.全微分
  53. 53.方向导数与梯度
  54. 54.链式法则
  55. 55.一阶全微分形式的不变性与高阶微分
  56. 56.多元函数的泰勒公式
  57. 57.隐函数存在定理与逆映射存在定理
  58. 58.多元函数的极值
  59. 59.矩阵基础知识
  60. 60.行列式的定义与特殊矩阵的行列式
  61. 61.行列式的性质
  62. 62.行列式按k行展开
  63. 63.线性方程组初步与高斯消元法
  64. 64.齐次线性方程组与Cramer法则
  65. 65.线性空间
  66. 66.线性相关与线性无关
  67. 67.向量组的秩
  68. 68.矩阵的秩与线性方程组有解的充要条件
  69. 69.齐次线性方程组的解集结构
  70. 70.非齐次线性方程组解集结构
  71. 71.基与维数
  72. 72.矩阵的乘法
  73. 73.特殊矩阵
  74. 74.矩阵乘积的秩与行列式
  75. 75.矩阵的逆
  76. 76.正交矩阵
  77. 77.矩阵对角化与特征值特征向量
  78. 78.实对称矩阵对角化
  79. 79.二次型与正定矩阵
  80. 80.LU分解
  81. 81.Cholesky分解
  82. 82.SVD分解
  83. 83.线搜索
  84. 84.步长
  85. 85.最速下降法和牛顿法
  86. 86.共轭梯度法
  87. 87.拟牛顿法
  88. 88.无约束优化
  89. 89.若干知识点补充(一)
  90. 90.若干知识点补充(二)
  91. 91.凸优化问题
  92. 92.对偶问题(一)
  93. 93.对偶问题(二)

复合函数,隐函数,参数式求导

约 28 分钟

📺 正在播放小象官方高清录播(支持倍速与清晰度调节)

复合函数、隐函数与参数式求导

小象实战讲义 · 人工智能数学基础

在掌握了基本初等函数的导数后,我们面对更复杂的函数时,常常需要将它们分解为基本函数的组合。本节将学习三大核心求导法则:链式法则、隐函数求导与参数式求导。它们是处理神经网络反向传播、优化问题中梯度计算以及几何曲线分析的基础工具。学完本节,你将能够对绝大多数由初等函数复合、隐式定义或参数化表达的复杂函数进行求导。

💡 核心导读

本节将构建一套处理复杂函数求导的系统方法:

  1. 链式法则:复合函数求导的核心,理解导数如何通过中间变量“链接”传递。
  2. 隐函数求导:当函数关系由方程 F(x,y)=0F(x, y)=0 隐式给定时,如何不显式解出 y=f(x)y=f(x) 而直接求导。
  3. 对数求导法:处理幂指函数或连乘形式的实用技巧,本质是链式法则与隐函数求导的结合。
  4. 参数式求导:当变量 x,yx, y 均由另一参数 tt 表示时,如何计算 dydx\frac{dy}{dx},广泛应用于几何与物理中轨迹的分析。
  5. 极坐标求导:作为参数式求导的一个特例,处理极坐标曲线 r=r(θ)r=r(\theta) 的切线斜率问题。

链式法则:复合函数求导

定理与直观理解

设有函数 y=f(u)y=f(u)u0u_0 处可导,函数 u=g(x)u=g(x)x0x_0 处可导,且 u0=g(x0)u_0 = g(x_0)。则复合函数 y=f(g(x))y = f(g(x))x0x_0 处可导,且其导数为: dydxx=x0=dyduu=u0dudxx=x0\frac{dy}{dx} \bigg|{x=x_0} = \frac{dy}{du} \bigg|{u=u_0} \cdot \frac{du}{dx} \bigg|_{x=x_0} 或简记为: (fg)(x0)=f(u0)g(x0)(f \circ g)‘(x_0) = f’(u_0) \cdot g’(x_0)

直观解释(莱布尼兹记号之美): 将导数视为“微商”,链式法则变得非常直观: dydx=dydududx\frac{dy}{dx} = \frac{dy}{du} \cdot \frac{du}{dx} 形式上,dudu 可以“约去”,这清晰地展示了导数如何通过中间变量 uuyy 传递到 xx,如同链条一样一环扣一环,故称“链式法则”。

应用示例

例1:求 y=sin(x2)y = \sin(x^2) 的导数。 :识别复合结构:xgu=x2fy=sinux \overset{g}{\longrightarrow} u = x^2 \overset{f}{\longrightarrow} y = \sin u

  1. 外层导数:dydu=cosu\frac{dy}{du} = \cos u
  2. 内层导数:dudx=2x\frac{du}{dx} = 2x
  3. 链式相乘:dydx=cosu2x=2xcos(x2)\frac{dy}{dx} = \cos u \cdot 2x = 2x \cos(x^2)

例2:求 y=(sinx)2y = (\sin x)^2 的导数。 :识别复合结构:xgu=sinxfy=u2x \overset{g}{\longrightarrow} u = \sin x \overset{f}{\longrightarrow} y = u^2

  1. 外层导数:dydu=2u\frac{dy}{du} = 2u
  2. 内层导数:dudx=cosx\frac{du}{dx} = \cos x
  3. 链式相乘:dydx=2ucosx=2sinxcosx=sin(2x)\frac{dy}{dx} = 2u \cdot \cos x = 2\sin x \cos x = \sin(2x)

两个例子虽然最终表达式都是 sin(x2)\sin(x^2)(sinx)2(\sin x)^2,但复合顺序不同,求导过程也不同,关键在于正确识别函数的复合层次

链式法则看反函数求导

y=f(x)y=f(x) 可导且 f(x)0f’(x) \neq 0,其反函数为 x=f1(y)x = f^{-1}(y)。将 y=f(x)y=f(x) 代入反函数得恒等式: f1(f(x))=xf^{-1}(f(x)) = x 两边对 xx 求导,应用链式法则: ddx[f1(f(x))]=df1(y)dydydx=1\frac{d}{dx}[f^{-1}(f(x))] = \frac{d f^{-1}(y)}{dy} \cdot \frac{dy}{dx} = 1 即: df1(y)dyf(x)=1\frac{d f^{-1}(y)}{dy} \cdot f’(x) = 1 因此,反函数的导数公式为: df1(y)dy=1f(x)=1f(f1(y))\frac{d f^{-1}(y)}{dy} = \frac{1}{f’(x)} = \frac{1}{f’(f^{-1}(y))} 这可以从链式法则自然推导,无需死记。

import sympy as sp

# 示例:使用sympy验证链式法则
x = sp.symbols('x')
# 例1: y = sin(x^2)
y1 = sp.sin(x**2)
dy1_dx = sp.diff(y1, x)
print(f"y = sin(x^2) 的导数: {dy1_dx}")
# 手动链式法则验证:令 u = x^2(用独立符号 u 对 sin(u) 求导,再代回 u = x^2)
u = sp.Symbol('u')
dy_du = sp.diff(sp.sin(u), u).subs(u, x**2)  # cos(x^2)
du_dx = sp.diff(x**2, x)                     # 2*x
print(f"链式法则计算: dy/du * du/dx = {dy_du * du_dx}")
print(f"两者是否相等: {sp.simplify(dy1_dx - dy_du*du_dx) == 0}\n")

# 例2: y = (sin x)^2
y2 = (sp.sin(x))**2
dy2_dx = sp.diff(y2, x)
print(f"y = (sin x)^2 的导数: {dy2_dx}")
print(f"化简形式: {sp.simplify(dy2_dx)}")

隐函数求导

概念与方法

若变量 xxyy 之间的函数关系由一个方程 F(x,y)=0F(x, y) = 0 所确定,则称 yyxx隐函数。例如 x2+y2=1x^2 + y^2 = 1 定义了单位圆上的两个函数(上半圆和下半圆)。

隐函数求导法:将方程 F(x,y)=0F(x, y)=0 中的 yy 视为 xx 的函数 y(x)y(x),然后对方程两边关于 xx 求导,再利用链式法则,最后解出 dydx\frac{dy}{dx}

应用示例

例3:求由方程 x2+y2=1x^2 + y^2 = 1 所确定的隐函数 y=y(x)y=y(x) 的导数。

  1. 两边对 xx 求导,将 yy 视为 xx 的函数: ddx(x2)+ddx(y2)=ddx(1)\frac{d}{dx}(x^2) + \frac{d}{dx}(y^2) = \frac{d}{dx}(1)
  2. 应用链式法则求 ddx(y2)\frac{d}{dx}(y^2)2x+2ydydx=02x + 2y \cdot \frac{dy}{dx} = 0
  3. 解出 dydx\frac{dy}{dx}dydx=xy\frac{dy}{dx} = -\frac{x}{y} 结果中允许保留 yy,这正体现了隐函数求导的特点:无需(有时也无法)显式解出 y=f(x)y=f(x)

例4(开普勒方程):求由方程 yxϵsiny=0y - x - \epsilon \sin y = 0ϵ\epsilon 为常数)确定的隐函数的导数。

  1. 两边对 xx 求导: dydx1ϵcosydydx=0\frac{dy}{dx} - 1 - \epsilon \cos y \cdot \frac{dy}{dx} = 0
  2. 合并含有 dydx\frac{dy}{dx} 的项: (1ϵcosy)dydx=1(1 - \epsilon \cos y) \frac{dy}{dx} = 1
  3. 解出导数: dydx=11ϵcosy\frac{dy}{dx} = \frac{1}{1 - \epsilon \cos y}

对数求导法

方法与应用场景

当函数形如 y=u(x)v(x)y = u(x)^{v(x)}(幂指函数)或由多个因式连乘、除、乘方、开方构成时,直接求导繁琐。对数求导法是解决这类问题的利器:

  1. 对函数等式两边取自然对数,利用对数性质化简(化乘为加,化幂为乘)。
  2. 将得到的等式视为隐函数关系,两边对 xx 求导(即隐函数求导)。
  3. 解出 dydx\frac{dy}{dx}

本质:是“取对数”+“隐函数求导”的组合技巧。

应用示例

例5:求 y=xexy = x^{e^x}x>0x>0)的导数。

  1. 两边取自然对数: lny=ln(xex)=exlnx\ln y = \ln(x^{e^x}) = e^x \ln x
  2. 两边对 xx 求导,左边应用链式法则: 1ydydx=ddx(exlnx)\frac{1}{y} \cdot \frac{dy}{dx} = \frac{d}{dx}(e^x \ln x)
  3. 计算右边导数(乘积法则): ddx(exlnx)=exlnx+ex1x\frac{d}{dx}(e^x \ln x) = e^x \ln x + e^x \cdot \frac{1}{x}
  4. 解出 dydx\frac{dy}{dx} 并代回 yydydx=y(exlnx+exx)=xexex(lnx+1x)\frac{dy}{dx} = y \cdot \left( e^x \ln x + \frac{e^x}{x} \right) = x^{e^x} e^x \left( \ln x + \frac{1}{x} \right)
import sympy as sp

# 示例:验证隐函数求导和对数求导
x, y, eps = sp.symbols('x y epsilon')
# 隐函数求导示例:x^2 + y^2 = 1
# 方法1: 使用sympy的idiff函数进行隐函数求导
expr_implicit = x**2 + y**2 - 1
dydx_implicit = sp.idiff(expr_implicit, y, x)
print(f"由 x^2 + y^2 = 1 确定的隐函数导数: dy/dx = {dydx_implicit}\n")

# 对数求导法示例:y = x^(exp(x))
y_func = x**(sp.exp(x))
# 直接求导
dy_direct = sp.diff(y_func, x)
print(f"y = x^(e^x) 直接求导结果:\n{dy_direct}\n")
# 手动对数求导过程验证
ln_y = sp.log(y)
# 构建方程 ln(y) = e^x * ln(x)
eq_log = sp.Eq(ln_y, sp.exp(x) * sp.log(x))
# 隐式求导
dydx_from_log = sp.idiff(eq_log.lhs - eq_log.rhs, y, x)
# idiff 直接返回 dy/dx 的表达式,代入 y = x^(e^x)
dydx_solved = dydx_from_log.subs(y, y_func)
print(f"通过对数求导法得到的结果:\n{dydx_solved}\n")
print(f"两种方法结果是否一致: {sp.simplify(dy_direct - dydx_solved) == 0}")

参数式与极坐标求导

参数式求导

若曲线由参数方程 {x=x(t)y=y(t)\begin{cases} x = x(t) \ y = y(t) \end{cases} 给出,且 x(t),y(t)x(t), y(t) 可导,x(t)0x’(t) \neq 0,则曲线在对应点的切线斜率为: dydx=dydtdxdt=y(t)x(t)\frac{dy}{dx} = \frac{\frac{dy}{dt}}{\frac{dx}{dt}} = \frac{y’(t)}{x’(t)} 推导:视 ttxx 的函数 t=t(x)t=t(x)(由 x=x(t)x=x(t) 反函数得到),则 y=y(t(x))y=y(t(x))xx 的复合函数。由链式法则和反函数求导法则: dydx=dydtdtdx=dydt1dxdt=y(t)x(t)\frac{dy}{dx} = \frac{dy}{dt} \cdot \frac{dt}{dx} = \frac{dy}{dt} \cdot \frac{1}{\frac{dx}{dt}} = \frac{y’(t)}{x’(t)}

例6:求椭圆 x2a2+y2b2=1\frac{x^2}{a^2} + \frac{y^2}{b^2} = 1 在点 (x0,y0)(x_0, y_0) 处的切线方程。

  1. 椭圆的参数方程为:{x=acosty=bsint\begin{cases} x = a\cos t \ y = b\sin t \end{cases},设对应参数为 t0t_0
  2. 参数式求导得斜率: k=dydx=(bsint)(acost)=bcostasint=bacottk = \frac{dy}{dx} = \frac{(b\sin t)’}{(a\cos t)’} = \frac{b\cos t}{-a\sin t} = -\frac{b}{a} \cot t 或由隐函数求导直接得 k=b2x0a2y0k = -\frac{b^2 x_0}{a^2 y_0}
  3. 切线方程(点斜式): yy0=b2x0a2y0(xx0)y - y_0 = -\frac{b^2 x_0}{a^2 y_0} (x - x_0) 可整理为 x0xa2+y0yb2=1\frac{x_0 x}{a^2} + \frac{y_0 y}{b^2} = 1,形式对称易记。

极坐标求导

极坐标曲线 r=r(θ)r = r(\theta) 与直角坐标的转换关系为: {x=r(θ)cosθy=r(θ)sinθ\begin{cases} x = r(\theta) \cos \theta \ y = r(\theta) \sin \theta \end{cases} 这本质上是参数方程为 θ\theta 的参数式。因此,曲线在点 (r,θ)(r, \theta) 处的切线斜率为: dydx=dydθdxdθ=r(θ)sinθ+r(θ)cosθr(θ)cosθr(θ)sinθ\frac{dy}{dx} = \frac{\frac{dy}{d\theta}}{\frac{dx}{d\theta}} = \frac{r’(\theta)\sin\theta + r(\theta)\cos\theta}{r’(\theta)\cos\theta - r(\theta)\sin\theta} 此公式可作为参数式求导的特例,无需死记,用时依参数式求导法则推导即可。

📝 动手练一练

  1. 复合函数求导:设 y=ln(1+e2x)y = \ln(1 + e^{2x}),求 dydx\frac{dy}{dx}参考答案: 令 u=1+e2xu = 1 + e^{2x},则 y=lnuy = \ln udydx=1ududx=11+e2x(0+e2x2)=2e2x1+e2x\frac{dy}{dx} = \frac{1}{u} \cdot \frac{du}{dx} = \frac{1}{1+e^{2x}} \cdot (0 + e^{2x} \cdot 2) = \frac{2e^{2x}}{1+e^{2x}}

  2. 隐函数求导:已知方程 exy+sin(x+y)=1e^{xy} + \sin(x+y) = 1 确定了 yyxx 的函数,求 dydx\frac{dy}{dx} 在点 (0,0)(0,0) 处的值。 参考答案: 两边对 xx 求导:exy(y+xdydx)+cos(x+y)(1+dydx)=0e^{xy}(y + x\frac{dy}{dx}) + \cos(x+y)(1+\frac{dy}{dx}) = 0。 代入 (0,0)(0,0)e0(0+0)+cos(0)(1+dydx)=0e^{0}(0+0) + \cos(0)(1+\frac{dy}{dx}) = 0,即 1+dydx=01+\frac{dy}{dx}=0。 所以 dydx(0,0)=1\frac{dy}{dx}\big|_{(0,0)} = -1

本章小结

本节系统学习了三大类复杂函数的求导法则,它们是微积分工具箱中的重要组件:

  • 链式法则:处理复合函数,核心是“由外到内,逐层求导,依次相乘”。
  • 隐函数求导:处理由方程定义的函数,关键是“将 yy 视为 xx 的函数,两边对 xx 求导”。
  • 对数求导法:处理幂指函数或复杂乘积商,步骤是“取对数、隐函数求导、解出导数”。
  • 参数式求导:处理参数方程,公式为 dydx=y(t)x(t)\frac{dy}{dx} = \frac{y’(t)}{x’(t)},极坐标求导是其特例。

行动清单

  1. 练习分解:面对复杂函数,花30秒识别其结构(是复合、隐式、参数式还是幂指?),选择正确的求导路径。
  2. 代码验证:使用 SymPy 等工具对至少3道手工求导的结果进行验证,确保计算无误,并理解工具输出的每一步。
  3. 联系几何:选取一个参数方程(如摆线、星形线),编程绘制其曲线,并计算、绘制某点处的切线,直观理解导数 dydx\frac{dy}{dx} 的几何意义。

— 小象教研组

配套学习资源与课件
  • 第4章讲义:导数(PDF · 3.6MB)
    下载
🎁 免费学习资源

领取《小象 11GB VIP 课件资料包与大厂真题手册》

包含全套实战 Jupyter 源码、清洗后数据集、大厂高频面试真题与专属学员答疑交流群。

  • 完整 Python / 数据分析 Jupyter 实战源码
  • 大厂真实业务数据集与练习题
  • 微信扫码添加课程顾问,免费获取网盘下载链接
微信二维码:扫码添加课程顾问微信扫码添加顾问