位置: 数学編 第3回 / 前提: M2 / 数学編: なし / この回でできるようになること: 多変数関数の変化を、全微分と二次の展開で見積もることができる
目次
0. 物語 ― 偏微分はあるのに全微分できない関数
「この関数、横方向の傾きも縦方向の傾きも求まりますよね。だったら全体の傾きもわかるんじゃないですか」
数学の授業のあと、学生が先生に質問しました。変数が2つある関数で、一方を止めてもう一方だけ動かす微分――偏微分――はどちらの方向でも計算できている。ならば2つの方向を合わせれば、どんな方向から近づいても使える近似が得られるはずだ、と。
先生は1つの関数を黒板に書きました。原点以外では2つの変数の積を、2つの変数の二乗の和で割ったもの。原点では値を0と決めます。
「横軸に沿って原点に近づくと、関数の値はずっと0です。縦軸に沿っても0です。だから横方向の傾きも縦方向の傾きも0になります。ここまではいいですね」
学生はうなずきます。
「では、斜め45度に近づけてみてください」
学生が計算すると、値は0.5になりました。逆向きの斜め45度では負の0.5、別の角度では0.4です。近づく方向を変えるだけで値がばらばらになります。原点に近づいたときの値が1つに定まらないので、この関数は原点で連続ですらありません。
先生は続けます。「横と縦の2方向で傾きがわかっても、斜め方向の振る舞いは何も保証されません。すべての方向で使える近似、つまり全微分ができるかどうかは、偏微分が存在するだけでは決まらないのです」
では、何があれば全微分できるのでしょうか。答えは「偏微分が連続であること」です。偏微分が連続なら、横と縦の情報をつなぎ合わせてあらゆる方向の近似が保証されます。さらに、二階の偏微分が連続なら、曲がり具合まで取り込んだ二次の近似も使えるようになります。この回では、その保証を3つの定理として証明します。
1. 動機 ― 変数が2つあると微分はどうなるか
この回を読み終えると、多変数関数の変化を、全微分と二次の展開で見積もることができます。
1変数の微分は「接線の傾き」でした。変数が2つに増えると、接線は接平面になります。接平面を使った近似が全微分であり、さらに曲がり具合まで取り込んだのが二次のテイラー展開です。
金融では、オプション価格は原資産価格 S と時間 t の少なくとも2変数に依存します。S だけを動かした微分がデルタ、S の二階微分が Γ です。これらを同時に扱い、近似の精度を保証する道具がこの記事の主題です。本編第59回で登場する連鎖律の修正版を理解するには、ここでの準備が欠かせません。
この節のまとめ: 変数が増えると微分は「方向ごとの傾き」と「すべてをまとめた接平面」の二層になります。
この記事で証明すること
- THM-M3-1 偏導関数が存在して連続であれば、関数は全微分可能です。微小変化は偏導関数の線形結合で近似されます。
- THM-M3-2 二階の偏導関数が連続であれば、微分の順序を入れ替えても結果は変わりません。
- THM-M3-3 二階連続微分可能な関数の二次までのテイラー展開は、勾配による一次の項とヘッセ行列による二次形式で書けます。
2. 設定と仮定 ― 偏導関数とヘッセ行列
2変数関数 f(x,y) を考えます。以下の記号を使います。
- 偏導関数: y を固定して x だけで微分したものを fx(x,y) と書きます。同様に fy(x,y) を定義します。
- 勾配: 偏導関数を縦に並べたベクトルです。
- 全微分可能: 点 (a,b) で全微分可能とは、次の意味です。
f(a+h,b+k)=f(a,b)+fx(a,b)h+fy(a,b)k+R(h,k)
ここで R(h,k)/h2+k2→0((h,k)→(0,0))が成り立つことです。誤差 R が (h,k) の大きさより速く 0 に近づく、というのが全微分可能の定義です。
偏導関数が存在することと全微分可能であることは同じではありません。偏導関数は各軸方向だけの変化率ですが、全微分可能はあらゆる方向に対して線形近似が成り立つことを要求します。
この節のまとめ: 勾配は一次の情報、ヘッセ行列は二次の情報をまとめたものです。
3. 主張 ― 微小変化は勾配と二次形式で書ける
3つの定理を正確に述べます。
定理 THM-M3-1(全微分の存在条件)
f(x,y) の偏導関数 fx,fy が点 (a,b) の近傍で存在し、(a,b) で連続であるとする。このとき f は (a,b) で全微分可能であり、
f(a+h,b+k)=f(a,b)+fx(a,b)h+fy(a,b)k+R(h,k)(1)が成り立つ。ここで R(h,k)/h2+k2→0((h,k)→(0,0))である。
定理 THM-M3-2(偏微分の順序交換)
f(x,y) の二階偏導関数 fxy,fyx が点 (a,b) の近傍で存在し、(a,b) で連続であるとする。このとき
である。
定理 THM-M3-3(二次の多変数テイラー展開)
f(x,y) が点 (a,b) の近傍で二階連続微分可能であるとする。このとき
f(a+h,b+k)=f(a,b)+fxh+fyk+21(fxxh2+2fxyhk+fyyk2)+R2(h,k)(3)である。ここで偏導関数は全て (a,b) での値であり、R2(h,k)/(h2+k2)→0((h,k)→(0,0))である。二次の項はヘッセ行列 Hf を用いて
と書ける。
この節のまとめ: 3つの定理は、偏導関数の連続性を仮定することで、全微分可能性・順序交換・テイラー展開を保証します。
証明を読む(読まなくても記事は完結します)
4. 証明 ― 1変数のテイラーの定理に帰着させる
この節は読まなくても記事は完結します。
この証明を追いたい人は、数学編 第2回「テイラー展開」へ。
THM-M3-1 の証明
変化量を分解します。f(a+h,b+k)−f(a,b) を「まず x だけ動かし、次に y を動かす」と2段階に分けます。
f(a+h,b+k)−f(a,b)=[f(a+h,b+k)−f(a,b+k)]+[f(a,b+k)−f(a,b)](1.1)
第2項の処理。 g(y)=f(a,y) とおくと、g′(y)=fy(a,y) です。1変数の平均値の定理により
f(a,b+k)−f(a,b)=fy(a,b+θ2k)k
を満たす θ2∈(0,1) が存在します。fy は (a,b) で連続ですから、(h,k)→(0,0) のとき fy(a,b+θ2k)→fy(a,b) です。したがって
f(a,b+k)−f(a,b)=fy(a,b)k+ε2(k)k
と書けます。ここで ε2(k)→0(k→0)です。
第1項の処理。 φ(x)=f(x,b+k) とおくと、φ′(x)=fx(x,b+k) です。同様に平均値の定理を適用して
f(a+h,b+k)−f(a,b+k)=fx(a+θ1h,b+k)h
を満たす θ1∈(0,1) が存在します。fx は (a,b) で連続なので
が (h,k)→(0,0) で成り立ちます。よって
f(a+h,b+k)−f(a,b+k)=fx(a,b)h+ε1(h,k)h
と書けます。ここで ε1(h,k)→0((h,k)→(0,0))です。
(1.1) を合わせます。
f(a+h,b+k)−f(a,b)=fx(a,b)h+fy(a,b)k+ε1h+ε2k
誤差 R(h,k)=ε1h+ε2k について
が成り立ちます。ここで ∣h∣/h2+k2≤1 と ∣k∣/h2+k2≤1 を使いました。これで (1) が示されました。 ∎
THM-M3-2 の証明
次の二重差分を考えます。
Φ=f(a+h,b+k)−f(a+h,b)−f(a,b+k)+f(a,b)(2.1)
Φ を2通りの順序で計算します。
x を先に固定する方法。 F(x)=f(x,b+k)−f(x,b) とおくと Φ=F(a+h)−F(a) です。1変数の平均値の定理で、F′(x)=fx(x,b+k)−fx(x,b) より
を満たす α∈(0,1) が存在します。F′ の定義から
Φ=[fx(a+αh,b+k)−fx(a+αh,b)]h
ここで G(y)=fx(a+αh,y) に平均値の定理を適用して
を満たす β∈(0,1) が存在します。
y を先に固定する方法。 同じ Φ を P(y)=f(a+h,y)−f(a,y) とおいて処理すると
を満たす γ,δ∈(0,1) が存在します。
(2.2) と (2.3) を比べます。 hk=0 で割ると
fxy(a+αh,b+βk)=fyx(a+γh,b+δk)
h→0,k→0 とします。仮定より fxy と fyx はともに (a,b) で連続ですから、左辺は fxy(a,b) に、右辺は fyx(a,b) に収束します。したがって
が得られました。 ∎
THM-M3-3 の証明
1変数のテイラーの定理に帰着させます。ϕ(t)=f(a+th,b+tk) とおきます。ϕ は t だけの関数で、ϕ(0)=f(a,b)、ϕ(1)=f(a+h,b+k) です。
ϕ の導関数を連鎖律で求めます。 f の偏導関数を (a+th,b+tk) で評価して
ϕ′′(t)=fxxh2+2fxyhk+fyyk2(3.2)
ここで (3.2) の交差項が 2fxyhk となるのは、THM-M3-2 により fxy=fyx だからです。fxyhk+fyxhk=2fxyhk とまとまります。
1変数のテイラーの定理を適用します。 t=0 のまわりで
ϕ(1)=ϕ(0)+ϕ′(0)+21ϕ′′(0)+R2
ここで R2 は二次の剰余項です。ϕ′′ が連続なので
を満たす θ∈(0,1) が存在します。f の二階偏導関数が連続であることから、(h,k)→(0,0) のとき ϕ′′(θ)→ϕ′′(0) となり、R2/(h2+k2)→0 が成り立ちます。
元の変数に戻します。 ϕ(1)=f(a+h,b+k)、ϕ(0)=f(a,b)、(3.1) と (3.2) を t=0 で評価して代入すると (3) が得られます。
二次の項を行列で書くと
21(hk)(fxxfxyfxyfyy)(hk)
となります。これがヘッセ行列による二次形式です。 ∎
5. 反例 ― 偏導関数があっても全微分できない
反例 CEX-M3-1: 偏導関数が存在するのに全微分できない
次の関数を考えます。
f(x,y)=⎩⎨⎧x2+y2xy0(x,y)=(0,0)(x,y)=(0,0)
偏導関数は存在します。 x 軸上では f(x,0)=0 ですから fx(0,0)=0 です。同様に y 軸上では f(0,y)=0 なので fy(0,0)=0 です。
しかし連続ではありません。 原点への近づき方を変えると値が変わります。
| 経路 |
f の値 |
| y=0(x 軸) |
0.0 |
| x=0(y 軸) |
0.0 |
| y=x |
0.5 |
| y=−x |
−0.5 |
| y=2x |
0.4 |
方向によって極限値が 0.0、0.5、−0.5、0.4 と異なるため、原点での極限が存在しません。つまり f は原点で連続でないのです。
全微分できないことの確認。 もし全微分可能ならば、fx(0,0)=0、fy(0,0)=0 より、全微分は 0⋅h+0⋅k=0 を与えます。すなわち f(h,k)/h2+k2→0 でなければなりません。ところが y=x に沿って近づくと f(h,h)=0.5 であり、f(h,h)/2h2=0.5/(2∣h∣)→∞ です。全微分の条件を満たしません。
THM-M3-1 の仮定「偏導関数が連続」が欠かせないことがわかります。この関数では偏導関数は存在しますが、f 自体が原点で連続でなく、偏導関数も連続でないため、全微分可能になりません。
反例 CEX-M3-2: 偏微分の順序が入れ替わらない
次の関数を考えます。
f(x,y)=⎩⎨⎧x2+y2xy(x2−y2)0(x,y)=(0,0)(x,y)=(0,0)
原点での偏導関数を定義に従って計算します。
fx(0,y) を求めます。y=0 のとき
fx(0,y)=h→0limhf(h,y)−f(0,y)=h→0limh2+y2y(h2−y2)=−y
fx(0,0)=0 です。したがって
fxy(0,0)=k→0limkfx(0,k)−fx(0,0)=k→0limk−k=−1
同様に fy(x,0)=x(x=0)、fy(0,0)=0 より
fyx(0,0)=h→0limhfy(h,0)−fy(0,0)=h→0limhh=1
結果は fxy(0,0)=−1、fyx(0,0)=1 です。差は 2.0 であり、順序を入れ替えると値が変わります。
THM-M3-2 の仮定「二階偏導関数が連続」がここで壊れています。この関数の fxy は原点で連続でないため、順序交換が保証されません。
反例 CEX-M3-3: 交差項を無視すると近似が壊れる
f(x,y)=xy を点 (1,1) のまわりで展開します。fx=y=1、fy=x=1、fxx=0、fxy=1、fyy=0 です。二次のテイラー展開の二次の項は fxyhk=hk だけです。
| (h,k) |
真の値 |
交差項あり |
交差項なし |
誤差 |
| (0.5,0.5) |
2.25 |
2.25 |
2.0 |
0.25 |
| (0.3,0.3) |
1.69 |
1.69 |
1.6 |
0.09 |
| (0.1,0.1) |
1.21 |
1.21 |
1.2 |
0.01 |
交差項を含めた展開は f=xy が二次多項式なので厳密に一致します(誤差 0)。一方、交差項を落とすと h=k=0.5 のとき誤差が 0.25 に達します。真の値 2.25 に対して 11% もの相対誤差です。2つの変数が同時に動く状況では交差項を無視できません。
この節のまとめ: 偏導関数の連続性が欠けると全微分も順序交換も崩壊し、交差項を落とすと近似精度が著しく劣化します。
6. 数値例 ― 2変数関数で近似の精度を測る
f(x,y)=exy2 を点 (0,1) で計算します。
関数値と偏導関数。
fx=exy2、fy=2exy より、(0,1) で fx=1.0、fy=2.0 です。
ヘッセ行列。
Hf(0,1)=(1.02.02.02.0)
fxx=exy2=1.0、fxy=2exy=2.0、fyy=2ex=2.0 です。THM-M3-2 の通り、fxy=fyx=2.0 です。
二次展開の精度。 (h,k)=(δ,δ) として、δ を小さくしていきます。
| δ |
距離 |
真の値 |
二次近似 |
誤差 |
誤差/距離3 |
| 0.1 |
0.1414 |
1.3373 |
1.335 |
2.26×10−3 |
0.798 |
| 0.01 |
0.01414 |
1.03035 |
1.03035 |
2.18×10−6 |
0.769 |
| 0.001 |
0.001414 |
1.003004 |
1.003004 |
2.17×10−9 |
0.766 |
| 0.0001 |
0.0001414 |
1.000300 |
1.000300 |
2.17×10−12 |
0.766 |
誤差を距離の3乗で割った値がおよそ 0.77 付近に収束しています。これは剰余項 R2 が O(∥(h,k)∥3) であること、つまり二次展開の誤差は距離の3乗で縮むことを数値的に確認しています。THM-M3-3 の剰余項の評価が実際に機能していることが見て取れます。
この節のまとめ: exy2 の例で、勾配・ヘッセ行列の値と二次展開の精度を確認しました。誤差は距離の3乗に比例して縮みます。
7. 次回へ ― 連鎖律を徹底的に
今回は、偏微分・全微分・テイラー展開の3つを揃えました。これらは多変数の関数を局所的に扱うための基本道具です。
次回 M4 では連鎖律を徹底的に扱います。合成関数の微分法則を多変数に拡張し、変数を経由する依存関係を正確に追跡します。本編第59回で扱う連鎖律の修正版は、通常の連鎖律に二次の項を補正したものです。今回のテイラー展開がその土台になります。
この節のまとめ: 次回は連鎖律を多変数に拡張し、今回のテイラー展開を土台にして本編への橋渡しを行います。
よくある質問
偏微分と全微分はどう違うのですか
偏微分は1つの方向だけの変化、全微分はすべての方向の変化をまとめて表すものです。
ヘッセ行列は何に使いますか
二次の変化を表します。最適化では極小か極大かの判定に、金融ではガンマなどに現れます。
交差項とは何ですか
2つの変数が同時に動いたときに現れる項です。無視すると連動の効果が抜けます。
参考文献
- 杉浦光夫、解析入門I、東京大学出版会、1980年
- Apostol T. M.、Mathematical Analysis、第2版、Addison-Wesley、1974年
数値例は compute.py により浮動小数点演算で検算済み。指数関数を含むため厳密な有理数演算は使用していない。