MathLabs

解析学

偏微分と勾配

多変数関数の各座標方向に沿った変化率で、まとめると勾配ベクトルになる。

直観曲面上の二つの傾きを同時に捉える

標高が二変数関数 z=f(x,y)z = f(x,y) で与えられる丘の斜面に立っていると想像しよう。ここで xx は東、yy は北を表す。一変数の曲線とは異なり、足元の傾きは一つだけではない。真東へ踏み出せばある変化率で高さが変わり、真北へ踏み出せば別の変化率で変わり、斜めに踏み出せば両者が混ざり合う。yy を固定して xx だけを動かすことは、丘を東西方向の鉛直平面で切り取ることに相当し、問題を通常の一変数の微分へと帰着させる。

座標断面と接線の傾きを示す対話型3D曲面プロット。
対話型3D曲面 z=f(x,y)z = f(x,y): 固定した yy に沿って切ると傾き ∂f∂x\frac{\partial f}{\partial x} の曲線が現れ、固定した xx に沿って切ると ∂f∂y\frac{\partial f}{\partial y} が得られる。

大学厳密な定義:偏微分、接平面、勾配ベクトル

定義: 偏微分と勾配ベクトル

開集合 UU 上で定義された関数 f:U⊆Rn→Rf : U \subseteq \mathbb{R}^n \to \mathbb{R} を考える。点 a∈Ua \in U における xix_i に関する ff の偏微分 ∂f∂xi(a)\frac{\partial f}{\partial x_i}(a) または fxi(a)f_{x_i}(a) は、他のすべての座標 xjx_j (j≠ij \ne i) を固定したときの極限である。nn 個すべての偏微分を一つのベクトルにまとめたものが勾配 ∇f(a)=(∂f∂x1(a),…,∂f∂xn(a))\nabla f(a) = \left(\frac{\partial f}{\partial x_1}(a), \dots, \frac{\partial f}{\partial x_n}(a)\right) である。

∂f∂xi(a)=lim⁡h→0f(a1,…,ai+h,…,an)−f(a1,…,an)h\frac{\partial f}{\partial x_i}(a) = \lim_{h \to 0} \frac{f(a_1, \dots, a_i + h, \dots, a_n) - f(a_1, \dots, a_n)}{h}

点 (x0,y0)(x_0,y_0) で偏微分が存在するだけでは、全微分可能性よりも弱い。関数 f(x,y)f(x,y) が (x0,y0)(x_0,y_0) で全微分可能であるとは、増分 Δf=f(x0+h,y0+k)−f(x0,y0)\Delta f = f(x_0+h, y_0+k) - f(x_0,y_0) が (h,k)→(0,0)(h,k) \to (0,0) のとき fx(x0,y0)h+fy(x0,y0)k+o(h2+k2)f_x(x_0,y_0)h + f_y(x_0,y_0)k + o\left(\sqrt{h^2+k^2}\right) と表せることをいう。ff が全微分可能であれば、グラフ z=f(x,y)z = f(x,y) は (x0,y0)(x_0,y_0) で定まった接平面をもち、∥u∥=1\|\mathbf{u}\| = 1 を満たす任意の単位ベクトル u=(u1,u2)\mathbf{u} = (u_1, u_2) に沿った方向微分は内積 Duf=∇f⋅uD_{\mathbf{u}}f = \nabla f \cdot \mathbf{u} で与えられる。

z=f(x0,y0)+∂f∂x(x0,y0)(x−x0)+∂f∂y(x0,y0)(y−y0),Duf(x0,y0)=∇f(x0,y0)⋅uz = f(x_0,y_0) + \frac{\partial f}{\partial x}(x_0,y_0)(x - x_0) + \frac{\partial f}{\partial y}(x_0,y_0)(y - y_0), \qquad D_{\mathbf{u}}f(x_0,y_0) = \nabla f(x_0,y_0) \cdot \mathbf{u}
多変数微分作用素と二階の量のまとめ
対象公式幾何学的・物理的意味
偏微分∂f∂xi\frac{\partial f}{\partial x_i}座標軸 xix_i に沿った断面の傾き。
勾配ベクトル∇f=(fx1,…,fxn)\nabla f = (f_{x_1}, \dots, f_{x_n})等位面に直交し最急上昇方向を指す。ノルム ∥∇f∥\|\nabla f\| は最大変化率。
方向微分Duf=∇f⋅uD_{\mathbf{u}}f = \nabla f \cdot \mathbf{u}単位速度ベクトル u\mathbf{u} で進むときの瞬間変化率。
ヘッセ行列と判別式D=fxxfyy−fxy2D = f_{xx}f_{yy} - f_{xy}^2局所的な曲率を測り、臨界点を極値または鞍点に分類する。

大学基本定理:最急上昇方向、シュワルツの対称性、ヘッセ判定法

ff が点 aa で微分可能かつ ∇f(a)≠0\nabla f(a) \ne \mathbf{0} であるとする。このとき任意の単位ベクトル u\mathbf{u} (∥u∥=1\|\mathbf{u}\| = 1) に対して方向微分は Duf(a)=∇f(a)⋅u=∥∇f(a)∥cos⁡θD_{\mathbf{u}}f(a) = \nabla f(a) \cdot \mathbf{u} = \|\nabla f(a)\| \cos\theta を満たす。ただし θ\theta は ∇f(a)\nabla f(a) と u\mathbf{u} のなす角である。したがって Duf(a)D_{\mathbf{u}}f(a) は u=∇f(a)∥∇f(a)∥\mathbf{u} = \frac{\nabla f(a)}{\|\nabla f(a)\|} のとき最大値 ∥∇f(a)∥\|\nabla f(a)\| をとり、逆向きのとき最小値 −∥∇f(a)∥-\|\nabla f(a)\| をとる。

なぜ正しいのか?

内積は勾配を選んだ進行方向へ射影する。勾配の向きと完全に一致して進むときにのみその大きさ全体を享受でき、等高線に沿って垂直に進めば変化率はゼロになる。

証明

一変数関数 g(t)=f(a+tu)g(t) = f(a + t\mathbf{u}) を定義する。方向微分の定義により Duf(a)=g′(0)D_{\mathbf{u}}f(a) = g'(0) である。ff は点 aa で全微分可能であるから、t→0t \to 0 のとき f(a+tu)−f(a)=∇f(a)⋅(tu)+o(∣t∣)f(a + t\mathbf{u}) - f(a) = \nabla f(a) \cdot (t\mathbf{u}) + o(|t|) が成り立つ。両辺を tt で割って t→0t \to 0 の極限をとると Duf(a)=∇f(a)⋅uD_{\mathbf{u}}f(a) = \nabla f(a) \cdot \mathbf{u} が得られる。

ユークリッド内積の幾何学的公式と単位長条件 ∥u∥=1\|\mathbf{u}\| = 1 より、∇f(a)⋅u=∥∇f(a)∥ ∥u∥cos⁡θ=∥∇f(a)∥cos⁡θ\nabla f(a) \cdot \mathbf{u} = \|\nabla f(a)\|\,\|\mathbf{u}\|\cos\theta = \|\nabla f(a)\|\cos\theta となる。−1≤cos⁡θ≤1-1 \le \cos\theta \le 1 であるから、最大値 ∥∇f(a)∥\|\nabla f(a)\| は θ=0\theta = 0 すなわち u=∇f(a)∥∇f(a)∥\mathbf{u} = \frac{\nabla f(a)}{\|\nabla f(a)\|} のとき一意に達成され、最小値 −∥∇f(a)∥-\|\nabla f(a)\| は θ=π\theta = \pi のとき達成される。

f(x,y)f(x,y) が (x0,y0)(x_0,y_0) の近傍で連続な二階偏導関数をもつならば、∂2f∂x∂y(x0,y0)=∂2f∂y∂x(x0,y0)\frac{\partial^2 f}{\partial x\partial y}(x_0,y_0) = \frac{\partial^2 f}{\partial y\partial x}(x_0,y_0) が成り立つ。さらに ∇f(x0,y0)=0\nabla f(x_0,y_0) = \mathbf{0} とし D=fxx(x0,y0)fyy(x0,y0)−fxy(x0,y0)2D = f_{xx}(x_0,y_0)f_{yy}(x_0,y_0) - f_{xy}(x_0,y_0)^2 とおくと、D>0D > 0 かつ fxx>0f_{xx} > 0 なら (x0,y0)(x_0,y_0) は狭義の極小点、D>0D > 0 かつ fxx<0f_{xx} < 0 なら狭義の極大点、D<0D < 0 なら鞍点である。

なぜ正しいのか?

混合偏微分の対称性によってヘッセ行列が対称行列となり、その二次形式を平方完成することで、水平な接平面の周りで曲面が上向きのお椀型か、下向きのドーム型か、あるいは鞍のようにねじれているかが判別できる。

証明

0でない小さな h,kh, k に対し、二階差分 Δ(h,k)=f(x0+h,y0+k)−f(x0+h,y0)−f(x0,y0+k)+f(x0,y0)\Delta(h,k) = f(x_0+h,y_0+k) - f(x_0+h,y_0) - f(x_0,y_0+k) + f(x_0,y_0) を考える。一変数の平均値の定理をまず [x0,x0+h][x_0, x_0+h] 上の g(x)=f(x,y0+k)−f(x,y0)g(x) = f(x,y_0+k) - f(x,y_0) に適用し、次に yy に沿って fxf_x に適用すると Δ(h,k)=hk fyx(c1,d1)\Delta(h,k) = hk\,f_{yx}(c_1, d_1) が得られ、逆順で適用すると (x0,y0)(x_0,y_0) に収束する中間点に対して Δ(h,k)=hk fxy(c2,d2)\Delta(h,k) = hk\,f_{xy}(c_2, d_2) が得られる。両者を等置して連続性のもとで (h,k)→(0,0)(h,k) \to (0,0) とすれば ∂2f∂x∂y(x0,y0)=∂2f∂y∂x(x0,y0)\frac{\partial^2 f}{\partial x\partial y}(x_0,y_0) = \frac{\partial^2 f}{\partial y\partial x}(x_0,y_0) が示される。

∇f(x0,y0)=0\nabla f(x_0,y_0) = \mathbf{0} となる臨界点では、テイラーの公式より f(x0+h,y0+k)−f(x0,y0)=12Q(h,k)+o(h2+k2)f(x_0+h,y_0+k) - f(x_0,y_0) = \frac{1}{2}Q(h,k) + o(h^2+k^2) となる。ただし Q(h,k)=fxxh2+2fxyhk+fyyk2Q(h,k) = f_{xx}h^2 + 2f_{xy}hk + f_{yy}k^2 である。fxx≠0f_{xx} \ne 0 のとき平方完成により D=fxxfyy−fxy2D = f_{xx}f_{yy} - f_{xy}^2 を用いて Q(h,k)=1fxx[(fxxh+fxyk)2+Dk2]Q(h,k) = \frac{1}{f_{xx}}\left[(f_{xx}h + f_{xy}k)^2 + Dk^2\right] と書ける。D>0D > 0 ならば角括弧内の和はすべての (h,k)≠(0,0)(h,k) \ne (0,0) に対して正となるため、Q(h,k)Q(h,k) の符号は fxxf_{xx} の符号と一致する(fxx>0f_{xx} > 0 で極小、fxx<0f_{xx} < 0 で極大)。D<0D < 0 ならば Q(h,k)Q(h,k) は原点を通る異なる直線上で正負両方の値をとり、鞍点となる。

大学実世界での応用と具体例

偏微分と勾配は現代の科学と工学を支えている。物理学では、フーリエの熱伝導法則により熱流束は温度勾配の逆向き −∇T-\nabla T に比例する。機械学習では、ニューラルネットワークの学習において損失関数 L(θ)L(\theta) を最小化するため −∇L(θ)-\nabla L(\theta) の方向へ反復的にパラメータを更新する(勾配降下法)。また経済学や力学では、ヘッセ判定法によって安定平衡(ポテンシャルエネルギーの極小)と不安定な鞍点とを見分ける。

例: 温度場の方向微分と最急上昇方向

金属板の座標 (x,y)(x,y) (単位:メートル)における温度が T(x,y)=x2+3xy+y3T(x,y) = x^2 + 3xy + y^3 (単位:摂氏度)で与えられている。点 (1,2)(1,2) における勾配 ∇T(1,2)\nabla T(1,2)、ベクトル v=(3,4)\mathbf{v} = (3,4) の方向への方向微分、および点 (1,2)(1,2) における温度の最大増加率を求めよ。

解答

まず、一方の変数を定数とみなして偏導関数を計算すると、Tx(x,y)=2x+3yT_x(x,y) = 2x + 3y および Ty(x,y)=3x+3y2T_y(x,y) = 3x + 3y^2 となる。点 (1,2)(1,2) を代入すると Tx(1,2)=2(1)+3(2)=8T_x(1,2) = 2(1) + 3(2) = 8、Ty(1,2)=3(1)+3(2)2=15T_y(1,2) = 3(1) + 3(2)^2 = 15 であるから、勾配ベクトルは ∇T(1,2)=(8,15)\nabla T(1,2) = (8, 15) である。

次に、∥v∥=32+42=5\|\mathbf{v}\| = \sqrt{3^2+4^2} = 5 より v=(3,4)\mathbf{v} = (3,4) を正規化して単位方向ベクトル u=v∥v∥=(35,45)\mathbf{u} = \frac{\mathbf{v}}{\|\mathbf{v}\|} = \left(\frac{3}{5}, \frac{4}{5}\right) を得る。方向微分は DuT(1,2)=∇T(1,2)⋅u=8⋅35+15⋅45=845=16.8D_{\mathbf{u}}T(1,2) = \nabla T(1,2) \cdot \mathbf{u} = 8 \cdot \frac{3}{5} + 15 \cdot \frac{4}{5} = \frac{84}{5} = 16.8 となる。点 (1,2)(1,2) における最大増加率は ∇T(1,2)\nabla T(1,2) の方向に生じ、その大きさは ∥∇T(1,2)∥=82+152=289=17\|\nabla T(1,2)\| = \sqrt{8^2 + 15^2} = \sqrt{289} = 17 (摂氏度/メートル)である。

例: ヘッセ行列式による臨界点の分類

二階偏導関数によるヘッセ判定法を用いて、関数 f(x,y)=x3+y3−3xyf(x,y) = x^3 + y^3 - 3xy のすべての臨界点を求め分類せよ。

解答

一階偏導関数をともにゼロとおくと、fx(x,y)=3x2−3y=0f_x(x,y) = 3x^2 - 3y = 0 および fy(x,y)=3y2−3x=0f_y(x,y) = 3y^2 - 3x = 0 となる。第1式より y=x2y = x^2 であり、これを第2式に代入すると 3(x2)2−3x=3x(x3−1)=03(x^2)^2 - 3x = 3x(x^3 - 1) = 0 となり、実数解 x=0x = 0 と x=1x = 1 を得る。よって臨界点は (0,0)(0,0) と (1,1)(1,1) の2点である。

二階偏導関数を計算すると fxx=6xf_{xx} = 6x、fyy=6yf_{yy} = 6y、fxy=−3f_{xy} = -3 であり、ヘッセ判別式は D(x,y)=fxxfyy−fxy2=36xy−9D(x,y) = f_{xx}f_{yy} - f_{xy}^2 = 36xy - 9 となる。点 (0,0)(0,0) では D(0,0)=−9<0D(0,0) = -9 < 0 であるから、(0,0)(0,0) は鞍点である。点 (1,1)(1,1) では D(1,1)=36−9=27>0D(1,1) = 36 - 9 = 27 > 0 かつ fxx(1,1)=6>0f_{xx}(1,1) = 6 > 0 であるから、(1,1)(1,1) は狭義の極小点であり、極小値は f(1,1)=−1f(1,1) = -1 である。

関数 f(x,y)=x3y2−4x+5yf(x,y) = x^3 y^2 - 4x + 5y に対して、勾配ベクトル ∇f(1,2)\nabla f(1, 2) はどれか。

∇f(x0,y0)=(6,−8)\nabla f(x_0, y_0) = (6, -8) のとき、すべての単位ベクトル u\mathbf{u} にわたる方向微分 Duf(x0,y0)D_{\mathbf{u}}f(x_0, y_0) の最大値はいくらか。

機械学習において、勾配降下法は微分可能な損失関数 L(θ)L(\theta) を最小化するようにパラメータ θ\theta を更新する。LL が局所的に最も急激に減少する方向へ θ\theta を動かす更新式はどれか。

滑らかな関数 f(x,y)f(x,y) の臨界点 (x0,y0)(x_0, y_0) において fxx(x0,y0)=−4f_{xx}(x_0,y_0) = -4、fyy(x0,y0)=−3f_{yy}(x_0,y_0) = -3、fxy(x0,y0)=2f_{xy}(x_0,y_0) = 2 であるとする。(x0,y0)(x_0, y_0) はどのように分類されるか。

参考文献

  1. Jerrold E. Marsden, Anthony J. Tromba (2012). Vector Calculus
  2. James Stewart (2015). Calculus: Early Transcendentals
  3. Augustin-Louis Cauchy (1847). Méthode générale pour la résolution des systèmes d'équations simultanées