曲线下求和:面积与动态系统
积分就是曲线下的面积。integrate.quad(f, a, b) 对你写的函数计算 ∫abf(x)dx,并返回数值和误差估计。它是自适应的:在函数变化快的地方取样更密。如果只有各点处的值而没有函数,就把细条加起来。梯形法 np.trapezoid 用直线连接相邻点并把梯形面积相加。辛普森法 integrate.simpson 用小抛物线,对光滑曲线精确得多。带折点的函数,如看涨期权的收益 max(S−K,0),会破坏 quad 期望的光滑性,所以要用 points=[K] 告诉它折点的位置。
第二个工具用于动态系统。常微分方程(ODE)描述某个量变化多快,例如短期利率以速度 κ 被拉向长期水平 θ:dtdr=κ(θ−r)。integrate.solve_ivp(f, [0, T], [r0]) 沿时间推进求解。最简单的手算方法是欧拉步 r新=r+hf(r),它假定在长度为 h 的一步内速度不变。在金融中,积分把远期利率曲线变成贴现因子 D(T)=exp(−∫0Tf(t)dt),也把收益与概率密度变成期望值。
∫abfdx≈h(2f0+f1+⋯+fn−1+2fn),rnew=r+hκ(θ−r),D(T)=e−∫0Tf(t)dt(1) 一块面积、一个利率和一个贴现因子取
∫01x2dx,分成
4 条(
h=0.25)。高度为
0、
0.0625、
0.25、
0.5625、
1,梯形法给出
0.25⋅(0.5⋅0+0.0625+0.25+0.5625+0.5⋅1)=0.34375,略高于精确值
1/3。辛普森法只用
3 个点就恰好得到
0.3333。再设一个利率从
r0=2% 出发,
κ=0.5,
θ=4%。长度
h=1 的一步欧拉给出
r=0.02+0.5⋅0.02=3.0%,而精确解
θ+(r0−θ)e−κ 是
2.787%,
solve_ivp 与之一致。远期利率曲线
f(t)=0.03+0.01t 在
0 到
2 年的面积是
0.08,所以
D(2)=e−0.08=0.9231。对
S=K=100、波动率
20%、期限一年的看涨期权,用
quad 对收益乘以正态密度积分,并在折点处设置
points,得到
7.9656,即布莱克–斯科尔斯价格。在真实数据上,2026 年 10 月 9 日美债 10 年期收益率
5.24%,按连续复利理解,给出
D(10)=e−0.524=0.592。
- 函数还是点:能写出函数就用
quad,只有数值就用梯形法或辛普森法。 - 把折点告诉 quad:像 max(S−K,0) 这样的收益需要
points=[K] 才能得到可靠结果。 - 积分用于定价:远期曲线下的面积给出贴现因子,收益乘以密度给出期望值。
实验:评分内容
- 梯形法面积10 分
- 欧拉步10 分
- 精确解15 分
- 贴现因子15 分
- 合适的积分工具15 分
- 用积分为看涨期权定价10 分
- 为什么要把折点告诉 quad25 分