第98回 有限差分法で PDE を解く ― 陽解法、陰解法、Crank-Nicolson

位置: 第10部 第98回 / 前提: 第66回、第68回 / 数学編: M27、M28、M31 / この回でできるようになること: 陽解法・陰解法・Crank-Nicolson でオプション価格を計算し、安定条件を確かめることができる
0. 物語 ― 安定条件を破ると解が暴れる
オプションの値段を計算するとき、方程式を格子に載せて数値的に解く方法があります。格子を粗くすれば計算は速く終わります。では、どこまで粗くしても大丈夫でしょうか。
ある人が、株価100円、行使価格100円のコールオプションを計算しようとしました。空間方向を100分割、時間方向を206分割すると、答えは約10.45円になりました。正しい値とほぼ一致しています。
「時間の分割をもう少し減らしても大丈夫だろう」。そう考えて、時間方向を104分割に減らしました。計算量がほぼ半分になるのですから、悪くない判断に思えます。
ところが、出てきた答えは10の29乗を超える、でたらめに巨大な数でした。10.45円が11円や12円にずれるのではなく、完全に壊れたのです。
原因は、この計算法(陽解法と呼ばれます)に「安定条件」があるからです。時間の刻みがある上限を超えると、小さな誤差が1ステップごとに倍々に膨らみます。104分割では、誤差は毎ステップ約2倍に増え、104ステップ後には最初の誤差の10の31乗倍になっています。少し粗くしたのではなく、壊れる領域に足を踏み入れていたのです。
一方で、陰解法やクランク・ニコルソン法と呼ばれる方法なら、刻みをどれだけ粗くしても解は発散しません。その代わり、精度の出方が手法ごとに異なります。
この回では、3つの計算法それぞれについて、いつ安定でいつ壊れるのか、精度は何によって決まるのかを、誤差の増幅率の計算で明らかにします。
1. 動機 ― 方程式を数値で直接解く
この回を読み終えると、陽解法・陰解法・Crank-Nicolson でオプション価格を計算し、安定条件を確かめることができます。
ブラック・ショールズ方程式は偏微分方程式(PDE)です。第68回で閉じた解を得ましたが、あれはペイオフがコールやプットという単純な形のときに限った話でした。バリア付き、早期行使付き、ペイオフが複雑な場合には閉じた式がありません。
そこで PDE を格子(グリッド)に載せ、微分を差分に置き換えて数値的に解きます。これが有限差分法です。時間方向の進め方で「陽解法」「陰解法」「Crank-Nicolson 法」の3手法に分かれます。
手法の選び方を間違えると、解が発散して使い物にならなくなります。今回は、どの手法がどの条件で安定か、精度は何次かを定理として述べ、増幅率の計算で証明します。
この記事で証明すること
- THM-FD-1 陽解法は、時間刻みが空間刻みの二乗に比例する上限を超えると不安定になり、誤差が指数的に増大します。
- THM-FD-2 陰解法は時間刻みによらず安定ですが、精度は時間刻みの一次にとどまります。
- THM-FD-3 Crank-Nicolson 法は無条件安定で、時間と空間の両方について二次の精度を持ちます。ただし滑らかでない終端条件では振動が出ることがあります。
2. 設定と仮定 ― 格子を切って微分を差分にする
以下の仮定で計算を進めます。
- 対数価格
に変換したブラック・ショールズ方程式を解く - 境界条件は十分遠くに置く(標準偏差の4倍以上)
- 格子は等間隔
- 比較対象として閉じた式(BS 公式)を使う
対数価格への変換
ブラック・ショールズ方程式を
です。ここで
残存時間への読み替え
格子と差分近似
空間方向を
二階微分と一階微分を中心差分で近似します。
中心差分はテイラー展開で確かめると、どちらも
ここで次の無次元パラメータを導入します。
3つの手法
陽解法(Explicit) は、時間微分を前進差分で近似し、空間微分を現在の時刻
既知の値から直接次のステップが計算できるので、連立方程式を解く必要がありません。
陰解法(Implicit) は、空間微分を次の時刻
各ステップで三重対角の連立方程式を解く必要がありますが、トーマス法で
Crank-Nicolson 法 は、陽解法と陰解法の平均を取ります。空間微分を時刻
左辺は陰解法と同じ三重対角構造なので、やはりトーマス法で解けます。
境界条件
コールオプションでは、空間の左端(
以上で、PDE を格子上の代数的な漸化式に帰着させました。
3. 主張 ― 安定性と精度は手法で決まる
定理 THM-FD-1(陽解法の安定条件) 陽解法は、時間刻み
が すなわち
を満たすとき安定である。この上限を超えると不安定になり、誤差が指数的に増大する。
定理 THM-FD-2(陰解法の無条件安定) 陰解法は
の値によらず安定である。ただし精度は時間方向について (一次)、空間方向について (二次)である。
定理 THM-FD-3(Crank-Nicolson の精度) Crank-Nicolson 法は
の値によらず安定(無条件安定)であり、精度は時間方向 、空間方向 である。ただし終端条件が滑らかでないとき(コールの折れ線ペイオフなど)、解のギリシャ文字に振動が生じうる。
3手法の特徴をまとめると、陽解法は実装が簡単だが安定条件が厳しく、陰解法は無条件安定だが精度が一次にとどまり、Crank-Nicolson は無条件安定かつ二次精度で実用上の標準です。
証明を読む(読まなくても記事は完結します)
4. 証明 ― 誤差の増幅率を調べる
この節は読まなくても記事は完結します。
この証明を追いたい人は、数学編 第27回「境界条件と終端条件」、数学編 第28回「変数変換で熱方程式に帰着する」、数学編 第31回「差分近似と誤差の次数」へ。
安定性と精度は、フーリエモードの増幅率(amplification factor)を調べることで証明します。式 (2.2) の
で議論します。
THM-FD-1 の証明
格子上の誤差を
式 (2.6) の簡略版(
が得られます。全体を
となります。安定であるための条件は
が得られます。
精度について。安定条件
THM-FD-2 の証明(要点)
陰解法では、フーリエモードを式 (2.7) の簡略版に代入すると
が得られます。
となり、
精度については、時間微分の前進差分が
THM-FD-3 の証明(要点)
Crank-Nicolson 法は、陽解法と陰解法を重み
となります。分子と分母はどちらも実数で、分母は常に正です。分子の絶対値が分母を超えないことを確認します。
精度については、Crank-Nicolson は時間方向の中心差分(台形則)を使っているため
ただし、終端条件に不連続な微分(コールペイオフの折れ線など)がある場合、初期の数ステップで高波数成分が正確に減衰されず、ギリシャ文字(特にデルタやガンマ)に振動が現れます。これは陽解法や陰解法の平均であることが原因で、陰解法だけを使えば高波数成分は強く減衰されます。対処法は後述します。 ∎
3つの手法の増幅率を比べると、陽解法だけが
5. 反例 ― 刻みが大きいと発散する
反例 CEX-FD-1: 安定条件を破ると解が発散する
THM-FD-1 の安定条件
パラメータは
です。
- 安定な場合:
とすると で です。ATM コール価格は となり、BS 公式の とほぼ一致します。 - 不安定な場合:
とすると で です。解は発散し、格子上の値の絶対値は という巨大な値に達します。
安定条件を
安定条件は「少し超えたら少し悪くなる」ではなく、「超えたら壊れる」という性質のものです。
反例 CEX-FD-2: Crank-Nicolson のデルタに振動が出る
Crank-Nicolson は無条件安定ですが、コールの折れ線ペイオフのように微分が不連続な終端条件では、デルタ(
| CN のデルタ | BS のデルタ | 誤差 | |
|---|---|---|---|
| 98.41 | 0.6046 | 0.6064 | |
| 98.81 | 0.6149 | 0.6141 | |
| 99.20 | 0.6336 | 0.6217 | |
| 99.60 | 0.6117 | 0.6293 | |
| 100.00 | 0.6367 | 0.6368 | |
| 100.40 | 0.6619 | 0.6443 | |
| 100.80 | 0.6402 | 0.6517 | |
| 101.21 | 0.6583 | 0.6591 | |
| 101.61 | 0.6682 | 0.6664 |
ATM の前後で誤差が
対処法: Rannacher スタートアップ
最初の数ステップ(ここでは4ステップ)だけ陰解法を使い、残りを Crank-Nicolson で進めます。陰解法はペイオフの折れ線を滑らかにする効果があります。
Rannacher スタートアップを適用すると、
反例 CEX-FD-3: 境界を近くに置くと価格がずれる
有限差分法では計算領域に境界を設ける必要があります。境界が原資産価格に近すぎると、境界条件の影響で価格が系統的にずれます。
Crank-Nicolson 法で
| 境界 | 下限 |
上限 |
価格 | 誤差 |
|---|---|---|---|---|
| 74.08 | 134.99 | 10.4358 | ||
| 44.93 | 222.55 | 10.4491 |
狭い境界では誤差が
実務では
6. 数値例 ― 3つの手法で誤差を比べる
パラメータは
同一格子での比較
空間分割
| 手法 | 時間分割 |
価格 | 誤差 |
|---|---|---|---|
| 陽解法 | 800 | 10.4505 | |
| 陰解法 | 200 | 10.4439 | |
| Crank-Nicolson | 200 | 10.4491 |
陽解法は安定条件を満たすために
格子を細かくしたときの収束
Crank-Nicolson について、
| 誤差 | 収束次数 | ||
|---|---|---|---|
| 50 | 50 | 0.0231 | ― |
| 100 | 100 | 0.0058 | 2.01 |
| 200 | 200 | 0.0014 | 2.00 |
| 400 | 400 | 0.0004 | 2.00 |
Crank-Nicolson が実務の標準である理由は、この二次収束にあります。陰解法では
7. 次回へ ― モデルを市場に合わせる
有限差分法は PDE を数値で解く汎用的な道具です。今回は格子の構成、3手法の安定性と精度、そして刻みや境界の選び方が結果を左右することを見ました。
次回の第99回では、モデルのパラメータを市場データに合わせるキャリブレーションを扱います。ここまで所与としてきた
よくある質問
モンテカルロとどちらが良いのですか
次元が低いなら有限差分のほうが速く正確です。次元が高いとモンテカルロが有利になります。
安定とはどういう意味ですか
計算を進めても誤差が勝手に増えないことです。不安定だと小さな誤差が爆発します。
Crank-Nicolson が標準なのはなぜですか
安定で精度も高いからです。振動には対処法があります。
参考文献
- Wilmott P.、Howison S. and Dewynne J.、The Mathematics of Financial Derivatives、Cambridge University Press、1995年
- Tavella D. and Randall C.、Pricing Financial Instruments ― The Finite Difference Method、Wiley、2000年
数値例は compute.py により計算済み。BS 公式を比較対象として誤差を検証している。

