logo

スカラーフィールドの勾配 📂多変数ベクトル解析

スカラーフィールドの勾配

定義

スカラー場 f:RnRf : \mathbb{R}^{n} \to \mathbb{R}全微分を特にグラジエントgradient, 傾きと呼び、f\nabla fと表記する。

f:=f=[D1fD2fDnf]=[fx1fx2fxn]=fx1x^1+fx2x^2++fxnx^n \begin{align*} \nabla f := f^{\prime} =& \begin{bmatrix} D_{1}f & D_{2}f & \cdots & D_{n}f\end{bmatrix} \\ =& \begin{bmatrix} \dfrac{\partial f}{\partial x_{1}} & \dfrac{\partial f}{\partial x_{2}} & \cdots & \dfrac{\partial f}{\partial x_{n}} \end{bmatrix} \\ =& \dfrac{\partial f}{\partial x_{1}}\hat{x}_{1} + \dfrac{\partial f}{\partial x_{2}}\hat{x}_{2} + \dots + \dfrac{\partial f}{\partial x_{n}}\hat{x}_{n} \end{align*}

説明

グラジエントは、簡単に言えば多変数関数の導関数だ。物理学などでよく使用される3次元スカラー関数のグラジエントは以下の通り。

f=fxx^+fyy^+fzz^=(fx,fy,fz) \nabla f = \dfrac{\partial f}{\partial x}\hat{\mathbf{x}} + \dfrac{\partial f}{\partial y}\hat{\mathbf{y}} + \dfrac{\partial f}{\partial z}\hat{\mathbf{z}} = \left( \dfrac{\partial f}{\partial x}, \dfrac{\partial f}{\partial y}, \dfrac{\partial f}{\partial z} \right)

20190329\_094406.png

注目すべき点は、関数値がスカラーであるスカラー関数の導関数が、関数値がベクトルであるベクトル関数になることである。これは全微分の定義から当然とも言えるが、直感的にも理解することができる。

例として、上の図を考えてみよう。この図は、z(x,y)=x2y2z(x,y) = x^2 - y^2 として定義される関数 z:R2Rz : \mathbb{R}^{2} \to \mathbb{R} を視覚的に示したものである。y=f(x)y = f(x)のような一変数関数とは異なり、変数が2つ以上ある関数の変化率を考える場合、その大きさだけでなく方向も考慮する必要があることがわかる。

この概念を反映した方向微分は、任意の方向への微分を意味する。したがって、多変数関数は無数の方向の微分を持っているが、下の定理からグラジエントは変化率が最も大きい方向を指すことがわかる。

証明

d=1\left\| \mathbf{d} \right\| = 1 となる方向ベクトル d:=(d1,,dn)\mathbf{d} : = ( d_1 , \cdots , d_n ) を定義しよう。多変数関数のテイラーの定理により、

f(x0+hd)=f(x0)+h[f(x0)x1d1++f(x0)xndn]+O(h2) f \left( x_{0} + h \mathbf{d} \right) = f ( \mathbf{x}_{0} ) + h \left[ {{ \partial f ( \mathbf{x}_{0} ) } \over { \partial x_{1} }} d_{1} + \cdots + {{ \partial f ( \mathbf{x}_{0} ) } \over { \partial x_{n} }} d_{n} \right] + O (h^2)

行列の形に変換すると、

f(x0+hd)f(x0)=h[f(x0)x1f(x0)xn][d1dn]+O(h2) f \left( x_{0} + h \mathbf{d} \right) - f ( \mathbf{x}_{0} ) = h \begin{bmatrix} {{ \partial f ( \mathbf{x}_{0} ) } \over { \partial x_{1} }} \\ \vdots \\ {{ \partial f ( \mathbf{x}_{0} ) } \over { \partial x_{n} }} \end{bmatrix} \cdot \begin{bmatrix} d_{1} \\ \vdots \\ d_{n} \end{bmatrix} + O (h^2)

ベクトルの形にすると、

f(x0+hd)f(x0)h=f(x0)d+O(h) {{ f \left( x_{0} + h \mathbf{d} \right) - f ( \mathbf{x}_{0} )} \over {h}} = \nabla f \left( \mathbf{x}_{0} \right) \cdot \mathbf{d} + O (h)

h0h \to 0 の時、

f(x0)d=limh0f(x0+hd)f(x0)h \nabla f \left( \mathbf{x}_{0} \right) \cdot \mathbf{d} = \lim_{h \to 0} {{ f \left( x_{0} + h \mathbf{d} \right) - f ( \mathbf{x}_{0} )} \over {h}}

b\mathbf{b}x0\mathbf{x}_{0} から ff への傾きと同じ方向であるということは、d\mathbf{d}

limh0f(x0+hd)f(x0)h \lim_{h \to 0} {{ f \left( x_{0} + h \mathbf{d} \right) - f ( \mathbf{x}_{0} )} \over {h}}

これを最大化するという意味であり、これを満たす場合は d=f(x0)f(x0)\displaystyle \mathbf{d} = {{\nabla f \left( \mathbf{x}_{0} \right) } \over { \left\| \nabla f \left( \mathbf{x}_{0} \right) \right\| }} のみであり、

f(x0)=f(x0)d \nabla f \left( \mathbf{x}_{0} \right) = \left\| \nabla f \left( \mathbf{x}_{0} \right) \right\| \mathbf{d}

これが x0\mathbf{x}_{0} から ff のグラジエントになる。

参照