曲線の下を足し合わせる:面積と動く系
積分は曲線の下の面積です。integrate.quad(f, a, b) は、自分で書いた関数について ∫abf(x)dx を計算し、値と誤差の見積もりを返します。適応型で、関数が速く変わるところをより細かく調べます。関数ではなく点での値しかないときは、細い短冊を足し合わせます。台形則 np.trapezoid は隣り合う点を直線で結び、台形の面積を足します。シンプソン則 integrate.simpson は小さな放物線を使い、滑らかな曲線ではずっと正確です。コールの支払い max(S−K,0) のように折れ目のある関数は quad が想定する滑らかさを壊すので、points=[K] で折れ目の位置を教えます。
2つ目の道具は動く系のためのものです。常微分方程式(ODE)は何かがどれだけ速く変わるかを表し、たとえば短期金利が長期水準 θ へ速さ κ で引き寄せられる dtdr=κ(θ−r) がその例です。integrate.solve_ivp(f, [0, T], [r0]) は時間を追って解きます。最も簡単な手計算の方法はオイラー法の1歩 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 のオイラー法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%、1年のコールでは、支払いに正規分布の密度を掛けたものを折れ目に
points を付けて
quad すると
7.9656、つまりブラック・ショールズ価格になります。実データでは、2026年10月9日の米国債10年利回り
5.24% を連続複利とみなすと
D(10)=e−0.524=0.592 です。
- 関数か点か:関数が書けるなら
quad、値しかないなら台形則かシンプソン則。 - 折れ目は quad に教える:max(S−K,0) のような支払いは、確かな答えのために
points=[K] が必要。 - 積分で値付けする:フォワード曲線の下の面積は割引係数を、支払い×密度は期待値を与える。
ラボ:採点される内容
- 台形則の面積10点
- オイラー法の1歩10点
- 厳密解15点
- 割引係数15点
- 適切な積分器15点
- 積分でコールを価格付けする10点
- なぜ折れ目を quad に教えるか25点