Hesse 行列

2 変数関数の最大最小問題

いきなり多変数関数を扱うのは難しいので、 まずは 2 変数関数を考えることにする。 C2 級、 すなわち 2 階連続的微分可能である 2 変数関数 f(x,y) について考える。 この最大点および最小点を求めるには、 まずその候補となる極大点と極小点を求める必要がある。 そして、 点 (x0,y0) が極大点もしくは極小点であるための必要条件は、 f x(x0,y0)= f y(x0,y0)=01 で与えられる。 この式 1 を満たす点 (x0,y0) は、 関数 f(x,y)停留点 (stationary point) もしくは臨界点 (critical point) と呼ばれる。

さて、 ここで問題となるのは、 式 1 が極大点や極小点を与える必要条件にすぎないということである。 すなわち、 停留点が必ずしも極大点や極小点になるわけではないのである。 ここで、 関数 f(x,y) についてより深い考察が必要になる。

関数の近似的な振る舞いを調べるのには、 Taylor 展開が有効である。 そこで、 関数 f(x,y) を点 (x0,y0) のまわりで Taylor 展開してみると、 f(x0+h,y0+k) = f(x0,y0) +h f x(x0,y0)+k f y(x0,y0) + 1 2(h2 2f x2(x0,y0)+2hk 2f xy(x0,y0)+k2 2f y2(x0,y0)( +o(ρ2)2 となる。 ここで ρ:= h2+k2 とした。

以下では式 1 は成り立っているものとする。 このとき、 式 2 は、 f(x0+h,y0+k)f(x0,y0)= 1 2(h2 2f x2(x0,y0)+2hk 2f xy(x0,y0)+k2 2f y2(x0,y0)(+o(ρ2) と書き直せる。 点 (x0,y0) の付近で、 すなわち hk が十分に小さいとき、 この式の右辺が常に正ならば、 f(x0+h,y0+k)>f(x0,y0) が成り立つので、 点 (x0,y0) の周りの点ではどこでも関数の値が大きいことになる。 したがって、 点 (x0,y0) は極小点だと分かる。 逆に、 右辺が常に正ならば、 点 (x0,y0) は極大点であるということになる。

hk が十分に小さいとき、 o(ρ2) は右辺の符号には影響しないほど小さくなれるので、 右辺の符号の鍵を握るのは、 X:=h2 2f x2(x0,y0)+2hk 2f xy(x0,y0)+k2 2f y2(x0,y0)3 の部分である。 ここで、 式の簡略化のために、 A:= 2f x2(x0,y0)B:= 2f xy(x0,y0)C:= 2f y2(x0,y0) とおけば、 式 3 は、 X=Ah2+Bhk+Ck2 と書き表すことができる。

さて、 X の符号を考察する。 λ:=h/k とおいてしまえば、 k2X=Aλ2+2Bλ+C と書ける。 左辺は λ の 2 次式なので、 符号の判別は判別式を用いれば簡単である。 すなわち、 A>0 であれば ACB2>0 のとき常に正であり、 A<0 であれば ACB2>0 のとき常に負になる。

このことから、 A>0 かつ ACB2>0ならば、 X は常に正で、 したがって点 (x0,y0) は極小点になる。 一方、 A<0 かつ ACB2>0 ならば、 X は常に負なので、 点 (x0,y0) が極大点であることが分かる。

ACB2 という形が出てきたが、 これは行列式を用いてわざわざ分かりにくい書き方をすれば、 | A B B C| とも表せる。 A,B,C をもとに戻せば、 | 2f x2(x0,y0) 2f xy(x0,y0) 2f xy(x0,y0) 2f y2(x0,y0)| という、 対称的な形が出てくる。 この行列を Hesse 行列 (—sian matrix) と呼び、 󰒟f(x0,y0) と書く。 変数の値を明示せず、 単に 󰒟f と書くこともある。 また、 Hesse 行列の行列式を Hesse 行列式 (—sian determinant) もしくはヘッシアン (hessian) と呼ぶ。

この Hesse 行列を用いると、 これまで議論してきた極大極小条件を簡潔に記述することができる。 すなわち、 fxx>0 かつ det󰒟f>0 を満たす停留点は極小点であり、 fxx<0 かつ det󰒟f>0 を満たす停留点は極大点である。

一般の Hesse 行列

Hesse 行列式を用いた極大極小の考察は、 そのまま多変数関数へ一般化できる。

C2 級の n 変数関数 f(x1,x2,,xn) の Hesse 行列は、 󰒟f:=( 2f x12 2f x1x2 2f x1xn 2f x2x1 2f x22 2f x2xn 2f xnx1 2f xnx2 2f xn2( で与えられる。 1 階導関数が全て 0 であるという条件のもとで、 det󰒟f>0 ならば、 その点は極値を与えるといえる。

極大点なのか極小点なのかを判別するには、 Hesse 行列の左上部分を取り出した行列 󰒟kf:=( 2f x12 2f x1x2 2f x1xk 2f x2x1 2f x22 2f x2xk 2f xkx1 2f xkx2 2f xk2((1kn) について考察する必要がある。 k=1,2,,n1 の全てに対し det󰒟kf の符号が正ならば、 その点は極小だといえる。 一方、 det󰒟kf の符号が (1)k の符号と一致していれば、 その点は極大だといえる。

Jacobi 行列

多変数から多変数への写像の表記

これまでは、 1 つの変数から 1 つの変数の値を定める関数や、 複数の変数から 1 つの変数の値を定める関数を扱ってきたが、 複数の変数から複数の変数を定める関数 (写像) を考えることもできる。 このような、 複数の変数を定めるような写像について、 微分という概念を考察したい。

簡単のため、 まずは 2 変数から 2 変数への写像を考える。 2 つの変数 (x,y) があり、 これを 2 つの変数 (s,t) に対応させる写像を考える。 この写像を記述するには、 s=f(x,y)t=g(x,y) という、 2 つの 2 変数関数が必要になる。

さて、 これをより簡潔に記したい。 そこで、 行列のように縦に並べ、 さらに関数の引数も縦に並べて、 少し気持ち悪いが、 ( s t(=( f( x y( g( x y(( と書いてみる。 また、 (s,t)(x,y) を縦ベクトル扱いして、 それぞれ sx と書くことにすれば、 s=( f(x) g(x)( と表せる。 そしてさらに、 この式の右辺は関数のベクトルだと考えることもできる。 したがって、 これを f(x) と書くことにしてしまえば、 s=f(x) と、 あたかも 1 変数関数であるかのように表記できてしまう。

これと同じようにして、 3 変数以上の場合も、 ベクトルという概念を介して表記を簡明にすることができる。

写像の微分

さて、 普通の 2 変数関数の微分可能性 (全微分可能性) について、 少し復習する。 2 変数関数 f(x,y) が点 (x0,y0) で微分可能であるというのは、 十分小さな数 h,k に対し、 x0,y0 によってのみ決まる数 fx(x0,y0),fy(x0,y0) が存在して、 f(x0+h,y0+k)=h f x(x0,y0)+k f y(x0,y0)+o(ρ)4 と表せることをいうのであった。 なお、 ρ:= h2+k2 である。

ところで、 前項では、 多変数をベクトルだとみなして表記を簡略化した。 ここでも同じようにして表記を変えてみる。

まず、 上式 4 は、 f( x0+h y0+k(=( f x( x0 y0( f y( x0 y0((( h k(+o| h k| と書ける。 なお、 右辺第 1 項は 1×2 行列と 2×1 行列の積で、 右辺第 2 項の絶対値記号はベクトルの大きさを表すものとする。 ここでさらに、 前項のように (x0,y0)x0 とし、 (h,k)h と書くことにすれば、 f(x0+h)=( f x(x0) f y(x0)(h+o|h|5 と書き表すことができる。

さて、 こう書いてしまえば、 多変数から多変数への写像の微分可能性も容易に定義できる。 例えば、 前項に示した、 2 変数から 2 変数への写像 f(x) を考えれば、 式 5 を参考にして、 f(x0+h)=( f x(x0) f y(x0) g x(x0) g y(x0)(h+o|h| と表せることを、 微分可能性の定義としても良さそうである。 このとき、 右辺第 1 項に現れる行列を、 Jacobi 行列 (—bian matrix) と呼び、 󰒡f(x0) と書く。 単に 󰒡f とだけ書く場合もある。

一般の Jacobi 行列

2 変数に限らず多変数の場合の写像でも、 Jacobi 行列式は同様に定義される。 m 変数から n 変数への写像 f(x)f(x)=( f1(x) f2(x) fn(x)(x=( x1 x2 xn( によって表されるとき、 写像 f(x) の Jacobi 行列は、 󰒡f:=( f1 x1 f1 x2 f1 xm f2 x1 f2 x2 f2 xm fn x1 fn x2 fn xm( で定義される。

さて、 この Jacobi 行列を用いることで、 多変数から多変数への写像に関しても微分可能性を綺麗に定義できるわけである。 すなわち、 写像 f(x) を考えるとき、 微小量 h に対して x0 にのみ関係する行列 󰒡f(x0) が存在し、 f(x0+h)=󰒡f(x0)h+o|h| が成り立つとき、 写像 f(x) は点 x0微分可能 (differentiable) というのである。

多変数のベクトル表記と Jacobi 行列を用いることで、 多変数から多変数への写像の微分や積分も、 通常の関数と同じように表記し扱うことができるようになる。

Jacobi 行列式

Jacobi 行列の行列式を、 Jacobi 行列式 (—bian determinant)ヤコビアン (jacobian) という。 ここでは詳しく述べないが、 Jacobi 行列式は重積分の変数変換の際に用いられる。