Skip to content

1.2 导数与微分

导数描述函数的变化率,是梯度下降、牛顿法、期权希腊值的数学基础。


一、导数的定义

1.1 几何意义

函数 f(x)f(x)x0x_0 处的导数 f(x0)f'(x_0) 就是该点 切线的斜率

斜率描述变化有多快——正值表示上升、负值表示下降、绝对值越大变化越剧烈。

1.2 极限定义

f(x0)=limh0f(x0+h)f(x0)hf'(x_0) = \lim_{h \to 0} \frac{f(x_0 + h) - f(x_0)}{h}

自变量变化一个极小的量 hh,函数值变化了多少——两者之比在 h0h \to 0 时的极限。

另一种等价写法(更常用):令 x=x0+hx = x_0 + h,则 h=xx0h = x - x_0,当 h0h \to 0xx0x \to x_0

f(x0)=limxx0f(x)f(x0)xx0f'(x_0) = \lim_{x \to x_0} \frac{f(x) - f(x_0)}{x - x_0}

1.3 从定义出发推导

例 1:求 f(x)=x2f(x) = x^2 的导数 f(x)f'(x)(通式)。

直接用定义:

f(x)=limh0(x+h)2x2h=limh0x2+2xh+h2x2h=limh02xh+h2h=limh0(2x+h)=2x\begin{aligned} f'(x) &= \lim_{h \to 0} \frac{(x + h)^2 - x^2}{h} \\ &= \lim_{h \to 0} \frac{x^2 + 2xh + h^2 - x^2}{h} \\ &= \lim_{h \to 0} \frac{2xh + h^2}{h} \\ &= \lim_{h \to 0} (2x + h) = 2x \end{aligned}

所以 x2x^2 的导数是 2x2x,在任何点 xx 处都成立。例如在 x=3x = 3 处,f(3)=6f'(3) = 6

例 2:求 f(x)=1xf(x) = \dfrac{1}{x} 的导数。

f(x)=limh01x+h1xh=limh0x(x+h)x(x+h)h=limh0hhx(x+h)=limh01x(x+h)=1x2\begin{aligned} f'(x) &= \lim_{h \to 0} \frac{\frac{1}{x+h} - \frac{1}{x}}{h} = \lim_{h \to 0} \frac{\frac{x - (x+h)}{x(x+h)}}{h} \\ &= \lim_{h \to 0} \frac{-h}{h \cdot x(x+h)} = \lim_{h \to 0} \frac{-1}{x(x+h)} = -\frac{1}{x^2} \end{aligned}

1.4 可导与连续的关系

  • 可导 \Rightarrow 连续:如果导数存在,函数一定连续
  • 连续 \nRightarrow 可导:连续不一定可导(例如 f(x)=xf(x) = |x|x=0x=0 处连续但不可导——左右导数分别是 1-111

二、求导法则

2.1 基本公式

关于 ln\ln(自然对数)

lnx\ln x 表示以 eee2.71828e \approx 2.71828)为底的对数,即 lnx=logex\ln x = \log_e x,读作"自然对数"。它与常用对数 log10x\log_{10} x 的关系是:lnx2.3026×log10x\ln x \approx 2.3026 \times \log_{10} xln\ln 在微积分中比 log10\log_{10} 更常用,因为 ddxlnx=1x\frac{d}{dx}\ln x = \frac{1}{x} 形式最简洁。

函数导数
cc(常数)00ddx(5)=0\dfrac{d}{dx}(5) = 0
xnx^nnxn1n x^{n-1}ddx(x3)=3x2\dfrac{d}{dx}(x^3) = 3x^2
sinx\sin xcosx\cos x
cosx\cos xsinx-\sin x
exe^xexe^x自身导数不变
lnx\ln x1x\dfrac{1}{x}
logax\log_a x1xlna\dfrac{1}{x \ln a}
axa^xaxlnaa^x \ln addx(2x)=2xln2\dfrac{d}{dx}(2^x) = 2^x \ln 2

2.2 四则运算法则

法则公式
和差(f±g)=f±g(f \pm g)' = f' \pm g'
常数倍(cf)=cf(cf)' = cf'
乘积(fg)=fg+fg(fg)' = f'g + fg'
(fg)=fgfgg2\left(\dfrac{f}{g}\right)' = \dfrac{f'g - fg'}{g^2}

乘积法则例:求 (x2sinx)(x^2 \sin x)'

(x2sinx)=(x2)sinx+x2(sinx)=2xsinx+x2cosx(x^2 \sin x)' = (x^2)'\sin x + x^2 (\sin x)' = 2x \sin x + x^2 \cos x

商法则例:求 (xex)\left(\dfrac{x}{e^x}\right)'

(xex)=(1)(ex)(x)(ex)(ex)2=exxexe2x=1xex\left(\frac{x}{e^x}\right)' = \frac{(1)(e^x) - (x)(e^x)}{(e^x)^2} = \frac{e^x - xe^x}{e^{2x}} = \frac{1 - x}{e^x}

2.3 链式法则(最重要)

复合函数的导数 = 外层导数 ×\times 内层导数

(f(g(x)))=f(g(x))g(x)(f(g(x)))' = f'(g(x)) \cdot g'(x)

例 1:求 sin(3x2+1)\sin(3x^2 + 1) 的导数

  • 外层:sin(u)\sin(u),导数 cos(u)\cos(u)
  • 内层:u=3x2+1u = 3x^2 + 1,导数 6x6x
  • 结果:cos(3x2+1)6x\cos(3x^2 + 1) \cdot 6x

例 2:求 ex2e^{x^2} 的导数

  • 外层:eue^u,导数 eue^u
  • 内层:u=x2u = x^2,导数 2x2x
  • 结果:ex22xe^{x^2} \cdot 2x

例 3(三层嵌套):求 sin(ex2)\sin(e^{x^2}) 的导数

  • 最外层:sin(u)\sin(u)cos(u)\cos(u)
  • 中层:u=evu = e^veve^v
  • 内层:v=x2v = x^22x2x
  • 结果:cos(ex2)ex22x\cos(e^{x^2}) \cdot e^{x^2} \cdot 2x

TIP

链式法则是神经网络反向传播的数学本质——误差从输出层逐层"链式"传回输入层,每层乘以该层的局部梯度。

2.4 隐函数求导

yy 通过方程 F(x,y)=0F(x, y) = 0 隐含定义,则两边同时对 xx 求导,把 yy 看成 y(x)y(x)

:求圆 x2+y2=25x^2 + y^2 = 25(3,4)(3, 4) 处的切线斜率

两边对 xx 求导:

2x+2yy=0y=xy2x + 2y \cdot y' = 0 \quad \Rightarrow \quad y' = -\frac{x}{y}

(3,4)(3, 4) 处:y=34y' = -\dfrac{3}{4}


三、高阶导数

f(x)f''(x) 是导数的导数,描述 变化率的变化率

阶数符号含义
一阶ff'变化的方向和快慢
二阶ff''变化率的增减(函数的凸凹性)
三阶ff'''f(3)f^{(3)}变化率的变化率的变化率

f(x)=x33x2+2x5f(x) = x^3 - 3x^2 + 2x - 5

f(x)=3x26x+2f(x)=6x6f(x)=6\begin{aligned} f'(x) &= 3x^2 - 6x + 2 \\ f''(x) &= 6x - 6 \\ f'''(x) &= 6 \end{aligned}

二阶导的正负决定函数凹凸性:f(x)>0f''(x) > 0 时函数是凸的(向上弯曲),f(x)<0f''(x) < 0 时是凹的(向下弯曲)。

量化应用:期权中 Delta 是一阶敏感度,Gamma 是二阶(Delta 的变化率)。Gamma 越大,说明 Delta 越不稳定,对冲需要更频繁地调整。


四、泰勒展开

用多项式逼近任意光滑函数。其中 n!n!阶乘n!=n×(n1)××1n! = n \times (n-1) \times \cdots \times 1,例如 3!=3×2×1=63! = 3 \times 2 \times 1 = 6)用于控制每项的分母权重。

f(x)=f(a)+f(a)(xa)+f(a)2!(xa)2+f(a)3!(xa)3+f(x) = f(a) + f'(a)(x-a) + \frac{f''(a)}{2!}(x-a)^2 + \frac{f'''(a)}{3!}(x-a)^3 + \cdots

一阶近似(线性逼近):f(x)f(a)+f(a)(xa)f(x) \approx f(a) + f'(a)(x-a)

二阶近似(二次逼近):f(x)f(a)+f(a)(xa)+f(a)2(xa)2f(x) \approx f(a) + f'(a)(x-a) + \dfrac{f''(a)}{2}(x-a)^2

exe^xx=0x = 0 处的泰勒展开

ex=1+x+x22!+x33!+x44!+e^x = 1 + x + \frac{x^2}{2!} + \frac{x^3}{3!} + \frac{x^4}{4!} + \cdots

取前两项估算 e0.1e^{0.1}1+0.1=1.11 + 0.1 = 1.1(真实值 1.10517\approx 1.10517,误差仅 0.5%0.5\%

取前三项:1+0.1+0.012=1.1051 + 0.1 + \frac{0.01}{2} = 1.105(误差 0.015%0.015\%


五、偏导数与梯度

5.1 偏导数

多元函数 f(x1,x2,,xn)f(x_1, x_2, \dots, x_n) 对其中一个变量的导数,其他变量视为常数:

fxi=limh0f(x1,,xi+h,,xn)f(x1,,xn)h\frac{\partial f}{\partial x_i} = \lim_{h \to 0} \frac{f(x_1, \dots, x_i + h, \dots, x_n) - f(x_1, \dots, x_n)}{h}

f(x,y)=x2y+3y2f(x, y) = x^2 y + 3y^2

fx=2xy,fy=x2+6y\frac{\partial f}{\partial x} = 2xy,\quad \frac{\partial f}{\partial y} = x^2 + 6y

5.2 梯度向量

f=(fx1,fx2,,fxn)\nabla f = \left( \frac{\partial f}{\partial x_1}, \frac{\partial f}{\partial x_2}, \dots, \frac{\partial f}{\partial x_n} \right)

几何意义:梯度方向是函数上升最快的方向。梯度下降就是用 负梯度方向 更新参数来找最小值。

5.3 全微分

df=fx1dx1+fx2dx2++fxndxndf = \frac{\partial f}{\partial x_1} dx_1 + \frac{\partial f}{\partial x_2} dx_2 + \cdots + \frac{\partial f}{\partial x_n} dx_n

全微分描述了当所有自变量同时微小变化时,函数值的总变化量。

量化应用:期权定价中 Delta 衡量价格对标的价格的偏导,Rho 衡量对利率的偏导。期权的全微分(价格变化公式)就是:

dP=ΔdS+12Γ(dS)2+Θdt+ρdrdP = \Delta \cdot dS + \frac{1}{2}\Gamma \cdot (dS)^2 + \Theta \cdot dt + \rho \cdot dr


六、Python 实践

符号求导

python
import sympy as sp

x = sp.Symbol('x')
f = x**3 + 2*x**2 - 5*x + 1
f_prime = sp.diff(f, x)
print(f"f'(x) = {f_prime}")  # 3*x^2 + 4*x - 5

# 链式法则验证
expr = sp.sin(3*x**2 + 1)
print(sp.diff(expr, x))  # 6*x*cos(3*x^2 + 1)

# 高阶导数
f2 = x**4 + 2*x**3
print(f"f''(x) = {sp.diff(f2, x, 2)}")  # 12*x^2 + 12*x

数值求导

python
import numpy as np

def numerical_derivative(f, x, h=1e-6):
    """中心差分法——精度比单边差分高一阶"""
    return (f(x + h) - f(x - h)) / (2 * h)

f = lambda x: x**2
print(f"f'(3) ≈ {numerical_derivative(f, 3):.6f}")  # 6.000000

# 验证 sin(x) 的导数确实是 cos(x)
g = lambda x: np.sin(x)
for x_test in [0, 0.5, 1.0]:
    approx = numerical_derivative(g, x_test)
    exact = np.cos(x_test)
    print(f"sin'({x_test}) ≈ {approx:.6f}, cos({x_test}) = {exact:.6f}")

梯度计算

python
def gradient(f, x, h=1e-6):
    """数值梯度——对向量 x 逐元素求偏导"""
    grad = np.zeros_like(x)
    for i in range(len(x)):
        x_plus = x.copy()
        x_minus = x.copy()
        x_plus[i] += h
        x_minus[i] -= h
        grad[i] = (f(x_plus) - f(x_minus)) / (2 * h)
    return grad

# 测试:f(x, y) = x^2 + 3y^2
f = lambda v: v[0]**2 + 3 * v[1]**2
x0 = np.array([2.0, 3.0])
grad = gradient(f, x0)
print(f"∇f(2, 3) ≈ ({grad[0]:.4f}, {grad[1]:.4f})")  # (4.0, 18.0)
print(f"exact        (4.0, 18.0)")

# 验证梯度方向是上升最快方向
import numpy.linalg as LA
direction = grad / LA.norm(grad)
print(f"梯度方向(单位向量): ({direction[0]:.4f}, {direction[1]:.4f})")

七、量化 & ML 应用

概念应用
一阶导梯度下降、期权 Δ\Delta(价格对标的价格敏感度)
二阶导期权 Γ\Gamma(Delta 变化率)、牛顿法优化
偏导数多因子模型的因子暴露度、利率敏感度 P/r\partial P / \partial r
梯度神经网络反向传播、Markowitz 有效前沿优化
泰勒展开期权 Θ\Theta(时间衰减)近似、VaR 的 Delta-Normal 法
链式法则多层网络的梯度传播(每个神经元都应用链式法则)

小结

概念要点
导数定义f(x)=limh0f(x+h)f(x)hf'(x) = \lim_{h\to 0} \frac{f(x+h)-f(x)}{h}
求导法则和差积商 + 链式法则
链式法则复合函数求导的灵魂,也是反向传播的本质
高阶导二阶导决定凹凸性,Gamma = 期权凸性
泰勒展开用多项式逼近任意光滑函数
偏导与梯度多元导数,指向最速上升方向

下一步1.3 积分学——导数的逆运算,也是概率密度归一化和期望计算的基础。

Built with VitePress