高阶导数
小象实战讲义 · 人工智能数学基础
在掌握了一阶导数这一瞬时变化率的工具后,我们很自然地会问:一个函数的变化率本身是如何变化的?高阶导数正是回答这个问题的数学语言。它不仅是导数概念的简单重复,更是我们理解函数更精细的局部行为(如凹凸性)以及后续构建泰勒公式、求解微分方程的基础。本节我们将系统地学习高阶导数的定义、计算方法和核心性质,并通过典型例题掌握其应用技巧。
💡 核心导读
- 定义与记号:理解二阶及n阶导数的定义,掌握三种标准数学记号。
- 基本函数的高阶导数:归纳推导指数函数、幂函数、对数函数、三角函数等基本初等函数的n阶导数公式。
- 高阶导数的运算法则:掌握和差、数乘运算,重点学习函数乘积的莱布尼兹公式。
- 综合应用与递推技巧:学习利用隐函数求导和递推关系求解特定点高阶导数的复杂问题。
高阶导数的定义与记号
若函数 y=f(x) 的导数 f′(x) 在点 x 处仍然可导,则称 f′(x) 的导数为 f(x) 的二阶导数,记作: f′′(x),y′′,或dx2d2y.
类似地,二阶导数的导数称为三阶导数,记作 f′′′(x) 或 y′′′。一般地,若函数 f(x) 的 n−1 阶导数 f(n−1)(x) 仍然可导,则其导数称为 f(x) 的 n 阶导数,记作: f(n)(x),y(n),或dxndny.
这里需要特别注意符号 dxndny 的含义:它表示 n 阶导数的整体记号,其分母是 (dx)n(即 dx 的 n 次方),而不是 n 阶微分 dnx。一阶导数的定义基于微分之比 dxdy,而 n 阶导数记号 dxndny 是这一形式的自然推广。
基本初等函数的高阶导数
求高阶导数的核心方法是数学归纳法:先计算前几阶导数,观察规律,然后猜想并证明通项公式。
1. 指数函数 f(x)=eax
- 一阶导:f′(x)=aeax
- 二阶导:f′′(x)=a⋅aeax=a2eax
- 三阶导:f′′′(x)=a⋅a2eax=a3eax
观察规律,每次求导都会在指数函数前多乘一个因子 a。因此,n 阶导数为: f(n)(x)=aneax,n=1,2,3,…
2. 幂函数 f(x)=xα (α∈R)
- 一阶导:f′(x)=αxα−1
- 二阶导:f′′(x)=α(α−1)xα−2
- 三阶导:f′′′(x)=α(α−1)(α−2)xα−3
归纳可得 n 阶导数公式 (n≥1): f(n)(x)=α(α−1)(α−2)⋯(α−n+1)xα−n
特例:α 为正整数 m 若 f(x)=xm,则其 n 阶导数需分情况讨论:
- 当 n<m 时,f(n)(x) 是 x 的 m−n 次多项式。
- 当 n=m 时,f(m)(x)=m!(常数)。
- 当 n>m 时,f(n)(x)=0。
重要推论:任何 m 次多项式,其 m+1 阶及更高阶的导数恒为零。这表明多项式的高阶导数信息是有限的。
3. 对数函数 f(x)=ln(1+x)
- 一阶导:f′(x)=1+x1=(1+x)−1
- 二阶导:f′′(x)=−1⋅(1+x)−2
- 三阶导:f′′′(x)=(−1)(−2)⋅(1+x)−3=2!(1+x)−3
- 四阶导:f(4)(x)=2!⋅(−3)⋅(1+x)−4=−3!(1+x)−4
观察系数符号和阶乘规律,可得 n 阶导数公式 (n≥1): f(n)(x)=(−1)n−1(n−1)!(1+x)−n
4. 三角函数 sinx 与 cosx
利用三角恒等式可以将求导结果统一表达。
对于 y=sinx:
- y′=cosx=sin(x+2π)
- y′′=−sinx=sin(x+π)
- y′′′=−cosx=sin(x+23π) 归纳可得: (sinx)(n)=sin(x+2nπ)
对于 y=cosx,注意到 cosx=sin(x+2π),利用正弦函数的结论: (cosx)(n)=[sin(x+2π)](n)=sin(x+2π+2nπ)=sin(x+2(n+1)π)=cos(x+2nπ)(利用诱导公式) 因此: (cosx)(n)=cos(x+2nπ)
这两个公式高度对称,便于记忆。
5. 反三角函数 y=arctanx(了解即可)
通过反函数求导和归纳法可推导其高阶导数,结果形式较为复杂: y(n)=(n−1)!⋅(cosy)n⋅sin(ny+2π) 其中 y=arctanx。此结论主要用于练习求导技巧,无需死记。
高阶导数的运算法则
高阶导数的运算遵循特定的法则,其中乘积法则最为重要。
线性法则
若函数 u(x),v(x) 均有 n 阶导数,c1,c2 为常数,则: (c1u+c2v)(n)=c1u(n)+c2v(n).
莱布尼兹公式(乘积法则)
若函数 u(x),v(x) 均有 n 阶导数,则它们的乘积 u(x)v(x) 的 n 阶导数为: (uv)(n)=k=0∑nCnku(n−k)v(k) 其中 Cnk=k!(n−k)!n! 是组合数,并约定 u(0)=u,v(0)=v。
记忆技巧:莱布尼兹公式与二项式定理 (a+b)n=∑k=0nCnkan−kbk 形式完全一致,只是将幂次 an−k,bk 替换为了导数阶数 u(n−k),v(k)。
综合应用:求 y=arcsinx 在 x=0 处的 n 阶导数
这是一个经典例题,展示了如何结合隐函数求导和递推技巧求解复杂的高阶导数问题。
问题:设 y=arcsinx,求 y(n)(0)。
求解步骤:
建立关系式: 由 y=arcsinx,得 x=siny。对 x 求一阶导: y′=1−x21 整理得: (1−x2)(y′)2=1(式1)
对关系式求导,建立微分方程: 对式1两边关于 x 求导: ⇒⇒dxd[(1−x2)(y′)2]=0(1−x2)⋅2y′y′′+(−2x)⋅(y′)2=0(1−x2)y′′−xy′=0(式2)
利用递推关系: 对式2两边同时求 n−2 阶导数(n≥2),并利用莱布尼兹公式。然后代入 x=0。由于 x=0,所有含有因子 x 的项在求导并代入后均为零。经过详细推导(过程略),可得到简洁的递推公式: y(n)(0)=(n−2)2⋅y(n−2)(0),n≥2
确定初值并求解:
- 零阶导:y(0)=arcsin0=0
- 一阶导:y′(0)=1−x21x=0=1
根据递推公式,相邻两阶导数相关联。因此,需要分奇偶性讨论:
- 当 n 为偶数 (n=2m):递推链最终会链接到 y(0)=0,故 y(2m)(0)=0。
- 当 n 为奇数 (n=2m+1,m≥0):递推链最终会链接到 y′(0)=1。 y(2m+1)(0)=(2m−1)2⋅y(2m−1)(0)=(2m−1)2⋅(2m−3)2⋅y(2m−3)(0) ⋮=[(2m−1)(2m−3)⋯3⋅1]2⋅y′(0)=[(2m−1)!!]2⋅1 其中 (2m−1)!!=(2m−1)(2m−3)⋯3⋅1 称为双阶乘。它有一个等价的表达式:(2m−1)!!=2mm!(2m)!。
最终结论: y(n)(0)=⎩⎨⎧0,22n−1(2n−1)!(n−1)!2,n为偶数,n为奇数. 或用双阶乘简洁表示为:y(n)(0)={0,[(n−2)!!]2,n偶n奇,其中约定 (−1)!!=1。
📝 动手练一练
求函数 f(x)=x2e3x 的三阶导数。 提示:可令 u(x)=x2, v(x)=e3x,应用莱布尼兹公式。
参考答案: 令 u=x2, v=e3x。则 u′=2x, u′′=2, u′′′=0;v(k)=3ke3x。 由莱布尼兹公式: (uv)′′′=C30u′′′v+C31u′′v′+C32u′v′′+C33uv′′′=0⋅e3x+3⋅2⋅(3e3x)+3⋅(2x)⋅(9e3x)+1⋅(x2)⋅(27e3x)=e3x(18+54x+27x2).
验证 sinx 的四阶导数公式 (sinx)(4)=sinx。 提示:使用本节推导的通用公式 (sinx)(n)=sin(x+2nπ)。
参考答案: 根据公式,取 n=4: (sinx)(4)=sin(x+24π)=sin(x+2π)=sinx. 验证通过。
本章小结
本节我们深入探讨了高阶导数的核心内容:
- 概念:高阶导数是导数概念的逐次应用,描述了函数变化率的变化率等更深层次的信息。
- 计算:通过数学归纳法,我们系统推导了指数、幂、对数、三角等基本初等函数的 n 阶导数公式,这是进行复杂求导运算的基石。
- 运算:高阶导数满足线性运算法则,而乘积运算需使用形式酷似二项式定理的莱布尼兹公式。
- 应用:通过 arcsinx 在零点处高阶导数的求解,我们学习了如何利用隐函数求导建立微分方程,进而通过递推关系求解特定点高阶导数的综合技巧。
行动清单
- 记忆核心公式:熟记 eax、xα、ln(1+x)、sinx、cosx 的 n 阶导数公式及莱布尼兹公式。
- 练习归纳推导:任选一个基本函数公式,尝试独立用数学归纳法完成其证明过程。
- 代码验证:使用下面的 Python 代码验证几个简单函数的高阶导数,加深对符号计算的理解。
import sympy as sp
# 定义符号变量
x = sp.symbols('x')
n = sp.symbols('n', integer=True, positive=True)
# 1. 验证指数函数 e^(2x) 的 n 阶导数
f1 = sp.exp(2*x)
# 注意:符号阶数必须用元组形式 (x, n);sp.diff(f1, x, n) 会把 n 当成新的求导变量
derivative_n_f1 = sp.diff(f1, (x, n)) # n 阶导数(符号表示,sympy 不会自动求值通项)
# 打印前几项验证
print("e^(2x) 的前4阶导数:")
for i in range(1, 5):
print(f" 第{i}阶: {sp.diff(f1, x, i)}")
print(f" n 阶导数(sympy 保留未求值形式,不自动推导通项): {derivative_n_f1}\n")
# 2. 验证幂函数 x^5 的高阶导数(高于5阶应为0)
f2 = x**5
print("x^5 的高阶导数:")
for i in range(1, 8):
deriv = sp.diff(f2, x, i)
print(f" 第{i}阶: {deriv}")
if i > 5 and deriv != 0:
print(" 警告:高于5阶的导数应恒为0!")
print()
# 3. 使用莱布尼兹公式验证 (x^2 * sin(x)) 的三阶导数
f3 = x**2 * sp.sin(x)
# 手动应用莱布尼兹公式计算
u = x**2
v = sp.sin(x)
# 计算u和v的各阶导数(到3阶)
u_derivs = [sp.diff(u, x, i) for i in range(4)] # u, u', u'', u'''
v_derivs = [sp.diff(v, x, i) for i in range(4)] # v, v', v'', v'''
# 莱布尼兹公式求和
leibniz_result = 0
for k in range(4): # k从0到3
leibniz_result += sp.binomial(3, k) * u_derivs[3-k] * v_derivs[k]
print("使用莱布尼兹公式计算 (x^2 * sin(x))''':")
print(f" 莱布尼兹公式结果: {leibniz_result}")
print(f" 直接求导结果: {sp.diff(f3, x, 3)}")
print(f" 两者是否相等? {sp.simplify(leibniz_result - sp.diff(f3, x, 3)) == 0}")
— 小象教研组