多変数関数の極値判定

注意

この記事では、分かりやすさのために一部厳密性を犠牲にしている部分があります。

厳密でない部分が来た場合には脚注等でなぜ厳密でないかを書きます。

定理

{f:\mathbb{R}^2\to\mathbb{R}}という{C^2}級関数がある。

これが{(a,b)\in\mathbb{R}^2}極値を持つ条件は

 

まず{\frac{\partial f}{\partial x}(a,b)=0,\frac{\partial f}{\partial y}(a,b)=0}であること

{D=\frac{\partial^2f}{\partial x^2}\frac{\partial^2f}{\partial y^2}-\left(\frac{\partial^2f}{\partial x\partial y}\right)^2}としたとき、

{D\lt 0}ならば極値ではない

{D\gt 0}ならば{\frac{\partial^2f}{\partial x^2}\gt 0}のときに極小値であり、{\frac{\partial^2f}{\partial x^2}\lt 0}のときに極大値である。

(注:{D\gt 0}ならば{\frac{\partial^2 f}{\partial x^2}}となるようなことはない。)

{D=0}の場合は個別に考える 

覚えにくい!

ところで、この定理を覚えにくいと感じる人は多いだろうと見ている。何故ならば条件も複雑な上に証明を見てもパッとしないからである。この記事を読んでいる人の多くは大学1年生だと思うが、定期試験の直前でこの定理の主張を暗記するという人も少なくないだろう。ここでは、この定理のイメージを説明することで覚えにくさを解消していきたいと思う。

記号の定義

$$H_f(x,y)=\begin{pmatrix}\frac{\partial^2 f}{\partial x^2}(x,y)&\frac{\partial^2 f}{\partial x\partial y}(x,y)\\\frac{\partial^2 f}{\partial y\partial x}(x,y)&\frac{\partial^2 f}{\partial y^2}(x,y)\end{pmatrix}$$

と定める。これをヘッセ行列という。

お行儀のいい関数の場合、ヘッセ行列は対称行列となる。この対称行列という性質は固有値の議論をする際に便利なので重要な性質である。*1

また、

$$\nabla f(x,y)=\left(\frac{\partial f}{\partial x}(x,y),\frac{\partial f}{\partial y}(x,y)\right)\in\mathbb{R}^2$$

この三角のやつをナブラといい、{\nabla f}{f}の勾配ベクトルという。また、{\nabla f}{\mathrm{grad} f}と書くこともある。gradとはgradientの略である。

この定理は、ヘッセ行列の固有値についての議論に落とし込むとシンプルになる。

ちなみに大学一年生ならば、微分積分学と並行してやっている線形代数学で固有値についてやるはずである。一見複雑に見えるこの定理も、線形代数学の言葉を使って表現することで分かりやすくなる。

また、以降では偏微分の略記をする。

$$\frac{\partial f}{\partial x}=f_x,\frac{\partial f}{\partial y}=f_y$$

$$H_f=\begin{pmatrix}f_{xx}&f_{xy}\\f_{yx}&f_{yy}\end{pmatrix}$$

定理(言い換え) 

{f:\mathbb{R}^2\to\mathbb{R}}という{C^2}級関数がある。

これが{(a,b)\in\mathbb{R}^2}極値を持つ条件は

・前提として {\mathrm{grad}f(a,b)=0}であること

{H_f(a,b)}固有値が全部正ならば{f}{(a,b)}で極小値

{H_f(a,b)}固有値が全部負ならば{f}{(a,b)}で極大値

{H_f(a,b)}固有値に正のものと負のものが混じっているならば{f}{(a,b)}極値ではない

{H_f(a,b)}固有値に0があるならば{f}{(a,b)}極値かどうかは分からない(個別に判定)

定理の同値性

固有値は固有方程式の解である。よって{H_f(a,b)}固有値{\lambda}は以下の方程式の解となる。

$$\det (H_f(a,b)-\lambda I_2)=0$$

ただし{I_2}は2×2の単位行列である。

$$\Leftrightarrow \det \begin{pmatrix}f_{xx}-\lambda&f_{xy}\\f_{yx}&f_{yy}-\lambda\end{pmatrix}(a,b)=0$$

$$\Leftrightarrow \lambda^2-\left(f_{xx}+f_{yy}\right)\lambda+f_{xx}f_{yy}-(f_{xy})^2=0$$

これは{\lambda}についての2次方程式となるが、判別式を考えると

$$D=\left(f_{xx}-f_{yy}\right)^2+\left(f_{xy}\right)^2\geq 0$$

となるため、固有値複素数になることを心配する必要はない。

 

結局どうやって言い換えているかというと解と係数の関係である。

{H_f(a,b)}固有値{\alpha,\beta}をおくとこの式は{\lambda^2-(\alpha+\beta)\lambda+\alpha\beta=\lambda^2-a\lambda+b=0}と書ける。

{\alpha,\beta \gt 0}{\alpha\beta\gt 0,\alpha+\beta\gt 0}と言い換えられるため、{b\gt 0,a\gt 0}となる。

よって{D\gt 0}であって{f_{xx}+f_{yy}\gt 0}となるが、これは{D\gt 0}かつ{f_{xx}\gt 0}と同値である。

何故ならば、{D\gt 0}から{f_{xx}f_{yy}\gt 0}となるため、{f_{xx}}{f_{yy}}は符号が同じとなるからである。

 極大値の場合も同じように言い換えれて{D\gt 0}かつ{f_{xx}\lt 0}となる。

また、{D\lt 0}ならば固有値の積が負になるため、固有値の符号が異なるのである。

定理の利点

 これは2変数関数に限らず、一般の{n}変数関数に拡張することができる。

拡張すると以下のようになる。

{x=(x_1,\ldots,x_n)\in\mathbb{R}^n}において、{C^2}級関数{f:\mathbb{R}^n\to\mathbb{R}}極値判定を考える。

ここで、

$$\nabla f=\left(\frac{\partial f}{\partial x_1},\ldots,\frac{\partial f}{\partial x_n}\right)=(f_{x_1},\ldots,f_{x_n})$$

であり、

$$H_f=\begin{pmatrix}\frac{\partial^2 f}{\partial x_1^2}&\cdots&\frac{\partial^2f}{\partial x_1\partial x_n}\\\vdots&\ddots&\vdots\\\frac{\partial^2f}{\partial x_n\partial x_1}&\cdots&\frac{\partial^2f}{\partial x_n^2}\end{pmatrix}=\begin{pmatrix}f_{x_1x_1}&\cdots&f_{x_1x_n}\\\vdots&\ddots&\vdots\\f_{x_nx_1}&\cdots&f_{x_nx_n}\end{pmatrix}$$ 

 と定めたとき、

{\nabla f(a)=0}となるような{a\in\mathbb{R}^n}に対して、{H_f(a)}固有値を考えれば良い。

固有値が全て正ならば極小値であり、固有値が全て負ならば極大値であり、固有値に正と負が混じっていれば極値ではない。また固有値に0があればどうなるかは不明である。

また、ヘッセ行列は対称行列であるため*2固有値は実数となるため、複素数固有値を持つことを考える必要はない。

定理のイメージ

以下、カジュアルな証明を書いてみる。

 {f(x)}テイラー展開で2次まで近似してみる。ここで{x\in\mathbb{R}^n}は十分0と近いものとする。すると

$$f(a+x)\approx f(a)+x\cdot \nabla f(a)+\frac{1}{2}{x}^{\top}H_f(a)x$$

となる。

ここで、厳密にはテイラー展開で近似したときの誤差がどれくらいの大きさなのかを気にする必要がある。ここではあえて{\approx}という近似という意味を持つ値で書いているが、実質=と同じような使い方をしている。実際{x}を十分0に小さくなるように値を取ると誤差が他の項と比べて無視できるほど小さくなるため、{a}と十分近い近傍の範囲内での議論に影響が出ることはない。

ここで{\top}は転置であり、{\cdot}(ドット)は{\mathbb{R}^n}上の内積である。

ここで、{H_f(a)}対称行列であるため、直交対角化ができる。

{P}という直交行列と{\Lambda}という対角行列を用いて、

$$H_f(a)=P\Lambda P^{-1}=P\Lambda P^{\top}$$

と書ける。(ここで、直交行列は{P^{-1}=P^{\top}}という性質を満たしていることに注意)

ここで、{P^{\top}x=y}となるように{y\in\mathbb{R}^n}を定義する。{x=a}のときに{y=a}となることに注意。また、{P}が直交行列であることから、{||x||=||y||}が成立することに注意。

すると、

$$f(a+Py)\approx f(a)+(Py)\cdot \nabla f(a)+\frac{1}{2}{y}^{\top}\Lambda y$$

となる。

極値判定する際には、前提として{\nabla f(a)=0}となるような{a}についてだけ考える。このような前提を満たしている{a}について

$$f(a+Py)\approx f(a)+\frac{1}{2}{y}^{\top}\Lambda y$$ 

となる。ここで、

$$\Lambda=\begin{pmatrix}\lambda_1&\cdots&0\\\vdots&\ddots&\vdots\\0&\cdots&\lambda_n\end{pmatrix},y=\begin{pmatrix}y_1\\\vdots\\y_n\end{pmatrix}$$

とすると、

$$f(a+Py)\approx f(a)+\frac{1}{2}\sum_{k=1}^{n}\lambda_k y_k^2$$

となる。

 また、{\Lambda}の各成分は、{H_f(a)}固有値となっていることに注意する。

もし{\lambda_k\gt 0(k=1,\ldots,n)}ならば、

$$f(a+Py)\geq f(a)$$

となるため、{a}{f}は極小値となる。

逆に{\lambda_k\lt 0(k=1,\ldots,n)}ならば、

$$f(a+Py)\leq f(a)$$

となるため、{a}{f}は極大値となる。

 一方で{\lambda_i\gt 0}かつ{\lambda_j\lt 0}のような{i,j}があるならば、

{y=y_i e_i}{y=y_je_j}という基本ベクトルで書いた場合、({e_i}とは{i}番目の成分が1でそれ以外の成分は0となるような{\mathbb{R}^n}の元である。{e_j}についても同様)

$$f(a+P(y_i e_i))\approx f(a)+\frac{1}{2}\lambda_i y_i^2\gt f(a)$$

かつ

$$f(a+P(y_je_j))\approx f(a)+\frac{1}{2}\lambda_j y_j^2\lt f(a)$$

 となり、{e_i}方向だけで見れば極小となっていて、{e_j}方向だけで見れば極大となっている。このように方向によって極大か極小かが変わるため、このときでは{f}{a}においては極値ではない。ちなみに、このときの状況において{f}は点{a}鞍点(あんてん)であるという。

 最後に、固有値{\lambda_i=0}となるような{i}が混じっている場合、

$$f(a+P(y_i e_i))\approx f(a)+\frac{1}{2}\lambda_i y_i^2\approx f(a)$$

 となる。これだけではどうなっているかはわからない。具体的には、二次までの近似だけでは答えが出せないため、それ以上の近似をする必要がある。

関連記事

 

shakayami-math.hatenablog.com

 

固有値が全て正」は「正定値行列」と言い換えることができる。

固有値が全て負」は「負定値行列」と言い換えることができる。

*1:ここでは、{f}{C^2}級であることを仮定しているため、2回偏導関数が連続であり、偏微分の順序交換を適用することができる。

*2:C^2級であることから。前述の注釈と同じ