多変数関数の極値判定とヘッセ行列

ヘッセ行列について解説します。ヘッセ行列を使うと,多変数関数が極値を取るための必要条件,極大点・極小点であるための十分条件がわかります。

準備1:ヘッセ行列とは

まずはヘッセ行列(二階の偏導関数を並べた行列)について説明します。以下,この記事で関数 ffC2C^2 級(二階連続微分可能)とします。

ヘッセ行列の定義

nn 変数関数 f(x1,x2,,xn)f(x_1,x_2,\cdots, x_n) に対して,
ijij 成分が 2fxixj\dfrac{\partial^2 f}{\partial x_i\partial x_j} であるような n×nn\times n 行列をヘッセ行列と言う。

例題

f(x,y)=x3+2xy+y2xf(x,y)=x^3+2xy+y^2-x のヘッセ行列を求めよ。

解答

ffxx で偏微分すると,fx=3x2+2y1f_x=3x^2+2y-1

yy で偏微分すると,fy=2x+2yf_y=2x+2y

これらを用いて二階の偏導関数を求める:

fxx=6x,fxy=fyx=2,fyy=2f_{xx}=6x,\:f_{xy}=f_{yx}=2,\:f_{yy}=2

よってヘッセ行列は (6x222)\begin{pmatrix}6x&2\\2&2\end{pmatrix}

注:ffC2C^2 級のとき偏微分の順序は交換できるのでヘッセ行列は必ず対称行列になります。

なお,ヘッセ行列の行列式のことをヘッシアンと言うことがあります。

準備2:正定値,負定値とは

正定値の定義

n×nn\times n 実対称行列 HH に対して以下の条件は全て同値である。このいずれか(したがって全て)を満たす行列を正定値行列と言う。

  1. 全ての(00 ベクトルではない)nn 次元縦ベクトル xundefined\overrightarrow{x} に対して xundefinedHxundefined\overrightarrow{x}^{\top}H\overrightarrow{x} が正

  2. HH の固有値が全て正

  3. 首座小行列(左上の k×kk \times k 行列 (1kn)(1 \le k \le n))の行列式が全て正。

首座小行列

H-H が正定値のとき HH負定値と言います。

固有値との関係をまとめると次のようになります。

行列の正定値・負定値性と固有値の関係

n×nn \times n 行列 HH について次が成り立つ。

  1. HH が正定値である     \iff HH の固有値が全て正
  2. HH が負定値である     \iff HH の固有値が全て負

固有値の計算は時に難しいです。

行列のサイズが小さいときに正定値かどうかの判定をしたいときは3を使うのが楽です。

極値の定義

極値判定をする前に極値の定義をしっかりと確認しましょう。

定義

二変数関数 f(x,y)f(x,y)(x,y)=(p,q)(x,y) = (p,q) において

  1. 極大である とは,(p,q)(p,q) と十分近い任意の点 (x,y)(x',y') に対して f(x,y)f(p,q)f(x',y') \leq f(p,q) となることを表す。
  2. 極小である とは,(p,q)(p,q) と十分近い任意の点 (x,y)(x',y') に対して f(x,y)f(p,q)f(x',y') \geq f(p,q) となることを表す。
  • 十分近いを数式で表現するときは,十分小さい aa について (xp)2+(yq)2<a(x-p)^2 + (y-q)^2 < axp+yq<a|x-p| + |y-q| < a などと表現すると良いでしょう。

  • 文献によっては,極大の定義 f(x,y)f(p,q)f(x',y') \leq f(p,q) に等号を含めず f(x,y)<f(p,q)f(x',y') < f(p,q) とすることもあります。極小も同様です。

極値判定の定理

一変数関数の場合,以下が成立しました。

1.極値の必要条件f(x)f(x)x=ax=a で極大または極小→ f(a)=0f'(a)=0

2.極小の十分条件f(a)=0f'(a)=0 かつ f(a)>0f''(a) > 0x=ax=a で極小

3.極大の十分条件f(a)=0f'(a)=0 かつ f(a)<0f''(a) < 0x=ax=a で極大

多変数関数の場合も同様な定理が成立します!

  1. 極大または極小→その点で偏導関数の値が全て0

  2. その点で偏導関数の値が全て0かつ ヘッセ行列が正定値極小

  3. その点で偏導関数の値が全て0かつ ヘッセ行列が負定値極大

なお,ヘッセ行列が正定値でも負定値でもないとき力技で極小か極大か,それともどちらでもないかを調べることになります。

正定値でも負定値でもない例

ヘッセ行列が正定値でも負定値でもないときはいろいろなケースがあります。

f(x,y)=x2f(x,y) = x^2

fx=2xf_x = 2xfy=0f_y = 0 です。P(0,0,0)\mathrm{P} (0,0,0) が極大・極小をとる点の候補です。

P\mathrm{P} でのヘッセ行列は (2000)\begin{pmatrix} 2&0\\0&0 \end{pmatrix} です。判定法からは極大・極小はわかりません。

z=f(x,y)z = f(x,y) は下図のようになります。P\mathrm{P} は,赤い曲線方向で見ると定数ですが,(等号を含めた定義では)極小です。

pic1

f(x,y)=x2y2f(x,y) = x^2 - y^2

fx=2xf_x = 2xfy=2yf_y = -2y です。P(0,0,0)\mathrm{P} (0,0,0) が極大・極小をとる点の候補です。

P\mathrm{P} でのヘッセ行列は (2002)\begin{pmatrix} 2&0\\0&-2 \end{pmatrix} です。判定法からは極大・極小はわかりません。

z=f(x,y)z = f(x,y) は下図のようになります。P\mathrm{P} は,青い曲線方向で見ると極小ですが,赤い曲線方向で見ると極大です。よって極大点でも極小点でもありません。

pic2

このように,ある方向から見ると極大であり,別の方向から見ると極小である点鞍点 といいます。

具体例

実際に二変数関数の極値を求めてみます。

例1

例題1

f(x,y)=x3+2xy+y2xf(x,y)=x^3+2xy+y^2-x の極値をできる限り求めよ。

1の解答

まず,極値のための必要条件として偏微分=0を解く:

{fx=3x2+2y1=0fy=2x+2y=0\begin{cases} f_x=3x^2+2y-1=0\\ f_y=2x+2y=0 \end{cases} より (x,y)=(1,1),(13,13)(x,y)=(1,-1),\left( -\dfrac{1}{3},\dfrac{1}{3} \right)

つまり極値の候補は二つ。

  • (1,1)(1,-1) について

ヘッセ行列(冒頭で求めた)は (1,1)(1,-1) では (6222)\begin{pmatrix}6&2\\2&2\end{pmatrix}

これは以下のように正定値であることが分かる:

一つ目の首座小行列式(1111 成分の値)は 6>06 > 0

二つ目の首座小行列式は 6222=8>06\cdot 2-2\cdot 2=8 > 0

よって,(1,1)(1,-1)極小点であり極小値は 1-1

  • (13,13)\left( -\dfrac{1}{3},\dfrac{1}{3} \right) について

ヘッセ行列は (13,13)\left( -\dfrac{1}{3},\dfrac{1}{3} \right) では (2222)\begin{pmatrix}-2&2\\2&2\end{pmatrix}

これは正定値でも負定値でもない。よってこの定理だけでは極値かどうかは分からない。実は,鞍点であることが以下のようにわかる。

平面 x+y=0x+y=0 上で f(x,y)f(x,y)x3x2xx^3 - x^2 - x となる。これは x=13x = -\dfrac{1}{3} で極大値を取る。

一方,平面 xy=23x-y= -\dfrac{2}{3} 上で f(x,y)f(x,y)x3+3x2+53x+49x^3 + 3x^2 + \dfrac{5}{3} x + \dfrac{4}{9} となる。これは x=13x = -\dfrac{1}{3} で極小値を取る。

よって f(x,y)f(x,y)(x,y)=(13,13)(x,y) = \left( -\dfrac{1}{3}, \dfrac{1}{3} \right) で極大にも極小にもならない。

例2

2013年度の京都大学院数学専攻の院試からの抜粋です。計算が骨太です。

例題2

f(x,y)=(3xy+1)ex2y2f(x,y) = (3xy+1) e^{-x^2-y^2} の極値をできる限り求めよ。

2の解答

まず偏微分=0を解く。

fx=3yex2y22x(3xy+1)ex2y2=(3y6x2y2x)ex2y2fy=(3x6xy22y)ex2y2\begin{aligned} f_x &= 3y e^{-x^2-y^2} - 2x(3xy+1) e^{-x^2-y^2}\\ &=(3y-6x^2y-2x) e^{-x^2-y^2}\\ f_y &= (3x-6xy^2-2y) e^{-x^2-y^2} \end{aligned} より {3y6x2y2x=0(1)3x6xy22y=0(2)\begin{cases} 3y-6x^2y-2x = 0 &\cdots (1)\\ 3x-6xy^2-2y = 0 &\cdots (2) \end{cases} を解けばよい。

解を計算すると (x,y)=(0,0),(±16,±16),(±56,56) (x,y) = (0,0) , \left( \pm \dfrac{1}{\sqrt{6}} , \pm \dfrac{1}{\sqrt{6}} \right) , \left( \pm \sqrt{\dfrac{5}{6}} , \mp \sqrt{\dfrac{5}{6}} \right) となる。

2回微分を計算すると fxx=2(6x3y+2x29xy1)ex2y2fxy=(12x2y26x26y2+4xy+3)ex2y2fyy=2(6xy3+2y29xy1)ex2y2\begin{aligned} f_{xx} &= 2(6x^3 y + 2x^2 - 9xy - 1) e^{-x^2-y^2}\\ f_{xy} &= (12x^2 y^2 - 6x^2 - 6y^2 + 4xy + 3) e^{-x^2-y^2}\\ f_{yy} &= 2(6x y^3 + 2y^2 - 9xy - 1) e^{-x^2-y^2} \end{aligned} となる。

各点でのヘッセ行列を計算する。

  • (x,y)=(0,0)(x,y) = (0,0) のとき

ヘッセ行列は (2332)\begin{pmatrix} -2&3\\3&-2 \end{pmatrix} である。固有値は 1,51,-5 である。この状態では極大・極小どちらをとるか分からない。

x=yx=y 平面上で見ると f(x,x)=(3x2+1)e2x2f(x,x) = (3x^2+1) e^{-2x^2} となる。xx で微分すると 2x(6x1)e2x2-2x(6x-1) e^{-2x^2} であるため,x=0x=0 を境に減少から増加に変化する。

x=yx = -y 平面上で見ると f(x,x)=(3x2+1)e2x2f(x,-x) = (-3x^2+1) e^{-2x^2} となる。xx で微分すると 2x(6x5)e2x22x(6x-5) e^{-2x^2} であるため,x=0x=0 を境に増加から減少に変化する。

以上より f(x,y)f(x,y)(0,0)(0,0) 近傍で鞍点になる。

  • (x,y)=(±16,±16)(x,y) = \left( \pm \dfrac{1}{\sqrt{6}} , \pm \dfrac{1}{\sqrt{6}} \right) のとき

ヘッセ行列は (4e132e132e134e13)\begin{pmatrix} -4e^{-\frac{1}{3}}&2e^{-\frac{1}{3}}\\2e^{-\frac{1}{3}}&-4e^{-\frac{1}{3}} \end{pmatrix} である。固有値は 2,6-2,-6 である。

よってこの点で極大値を取る。

極大値は f(±16,±16)=32e13 f \left( \pm \dfrac{1}{\sqrt{6}} , \pm \dfrac{1}{\sqrt{6}} \right) = \dfrac{3}{2} e^{-\frac{1}{3}} となる。

  • (x,y)=(±56,56)(x,y) = \left( \pm \sqrt{\dfrac{5}{6}} , \mp \sqrt{\dfrac{5}{6}} \right) のとき

ヘッセ行列は (4e532e532e534e53)\begin{pmatrix} 4e^{-\frac{5}{3}}&-2e^{-\frac{5}{3}}\\-2e^{-\frac{5}{3}}&4e^{-\frac{5}{3}} \end{pmatrix} である。固有値は 2,62,6 である。

よってこの点で極小値を取る。

極小値は f(±56,56)=32e53 f \left( \pm \sqrt{\dfrac{5}{6}} , \mp \sqrt{\dfrac{5}{6}} \right) = -\dfrac{3}{2} e^{-\frac{5}{3}} となる。

正定値・負定値の補足

質問

(2222)\begin{pmatrix}-2&2\\2&2\end{pmatrix} の首座小行列式はそれぞれ 2-28-8 であるから,この行列は負定値なのでは?

よくあるミスです。

HH が負定値であるとは,H-H が正定値であるという定義でした。

(2222)=(2222)- \begin{pmatrix}-2&2\\2&2\end{pmatrix} = \begin{pmatrix}2&-2\\-2&-2\end{pmatrix} の首座小行列式は,それぞれ 228-8 です。

よってこの行列は正定値でも負定値でもありません。

判別式を用いた説明もときどき見かけますが,二変数関数のときにしか通用しないので私はあまり好きではありません。