1.2 导数与微分
导数描述函数的变化率,是梯度下降、牛顿法、期权希腊值的数学基础。
一、导数的定义
1.1 几何意义
函数 在 处的导数 就是该点 切线的斜率。
斜率描述变化有多快——正值表示上升、负值表示下降、绝对值越大变化越剧烈。
1.2 极限定义
自变量变化一个极小的量 ,函数值变化了多少——两者之比在 时的极限。
另一种等价写法(更常用):令 ,则 ,当 时 :
1.3 从定义出发推导
例 1:求 的导数 (通式)。
直接用定义:
所以 的导数是 ,在任何点 处都成立。例如在 处,。
例 2:求 的导数。
1.4 可导与连续的关系
- 可导 连续:如果导数存在,函数一定连续
- 连续 可导:连续不一定可导(例如 在 处连续但不可导——左右导数分别是 和 )
二、求导法则
2.1 基本公式
关于 (自然对数)
表示以 ()为底的对数,即 ,读作"自然对数"。它与常用对数 的关系是:。 在微积分中比 更常用,因为 形式最简洁。
| 函数 | 导数 | 例 |
|---|---|---|
| (常数) | ||
| — | ||
| — | ||
| 自身导数不变 | ||
| — | ||
| — | ||
2.2 四则运算法则
| 法则 | 公式 |
|---|---|
| 和差 | |
| 常数倍 | |
| 乘积 | |
| 商 |
乘积法则例:求
商法则例:求
2.3 链式法则(最重要)
复合函数的导数 = 外层导数 内层导数
例 1:求 的导数
- 外层:,导数
- 内层:,导数
- 结果:
例 2:求 的导数
- 外层:,导数
- 内层:,导数
- 结果:
例 3(三层嵌套):求 的导数
- 最外层: →
- 中层: →
- 内层: →
- 结果:
TIP
链式法则是神经网络反向传播的数学本质——误差从输出层逐层"链式"传回输入层,每层乘以该层的局部梯度。
2.4 隐函数求导
若 通过方程 隐含定义,则两边同时对 求导,把 看成 。
例:求圆 上 处的切线斜率
两边对 求导:
在 处:
三、高阶导数
是导数的导数,描述 变化率的变化率。
| 阶数 | 符号 | 含义 |
|---|---|---|
| 一阶 | 变化的方向和快慢 | |
| 二阶 | 变化率的增减(函数的凸凹性) | |
| 三阶 | 或 | 变化率的变化率的变化率 |
例:
二阶导的正负决定函数凹凸性: 时函数是凸的(向上弯曲), 时是凹的(向下弯曲)。
量化应用:期权中 Delta 是一阶敏感度,Gamma 是二阶(Delta 的变化率)。Gamma 越大,说明 Delta 越不稳定,对冲需要更频繁地调整。
四、泰勒展开
用多项式逼近任意光滑函数。其中 (阶乘,,例如 )用于控制每项的分母权重。
一阶近似(线性逼近):
二阶近似(二次逼近):
例: 在 处的泰勒展开
取前两项估算 :(真实值 ,误差仅 )
取前三项:(误差 )
五、偏导数与梯度
5.1 偏导数
多元函数 对其中一个变量的导数,其他变量视为常数:
例:
5.2 梯度向量
几何意义:梯度方向是函数上升最快的方向。梯度下降就是用 负梯度方向 更新参数来找最小值。
5.3 全微分
全微分描述了当所有自变量同时微小变化时,函数值的总变化量。
量化应用:期权定价中 Delta 衡量价格对标的价格的偏导,Rho 衡量对利率的偏导。期权的全微分(价格变化公式)就是:
六、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数值求导
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}")梯度计算
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 变化率)、牛顿法优化 |
| 偏导数 | 多因子模型的因子暴露度、利率敏感度 |
| 梯度 | 神经网络反向传播、Markowitz 有效前沿优化 |
| 泰勒展开 | 期权 (时间衰减)近似、VaR 的 Delta-Normal 法 |
| 链式法则 | 多层网络的梯度传播(每个神经元都应用链式法则) |
小结
| 概念 | 要点 |
|---|---|
| 导数定义 | |
| 求导法则 | 和差积商 + 链式法则 |
| 链式法则 | 复合函数求导的灵魂,也是反向传播的本质 |
| 高阶导 | 二阶导决定凹凸性,Gamma = 期权凸性 |
| 泰勒展开 | 用多项式逼近任意光滑函数 |
| 偏导与梯度 | 多元导数,指向最速上升方向 |
下一步:1.3 积分学——导数的逆运算,也是概率密度归一化和期望计算的基础。