WIIS

教材一覧
教材一覧
教材検索
OPTIMIZATION OF FUNCTIONS

多変数関数の最適化のための2階の必要条件

目次

Share on twitter
Twitterで共有
Share on email
メールで共有

多変数関数の定義域の内点が極大点や極小点であるための2階の必要条件

多変数関数\(f:\mathbb{R} ^{n}\supset X\rightarrow \mathbb{R} \)が定義域の内点\(a\in X^{i}\)において微分可能であるとともに、点\(a\)が\(f\)の極大点もしくは極小点である場合には、この点は停留点であること、すなわち、\begin{equation*}\nabla f\left( a\right) =0
\end{equation*}が成り立つことを示しました。以上の条件を局所最適化のための1階の必要条件と呼びます。ただ、1階の必要条件は極大点と極小点がともに満たす条件であるため、1階の必要条件を通じて極大点の候補だけを特定したり、逆に、極小点の候補だけを特定することはできません。では、極大点に固有の必要条件や、極小点に固有の必要条件は存在するのでしょうか。順番に解説します。

関数\(f:\mathbb{R} ^{n}\supset X\rightarrow \mathbb{R} \)の定義域上の点\(a\in X\)が\(f\)の極大点であるものとします。さらに、この点\(a\)は以下の2つの条件を満たすものとします。1つ目の条件は、点\(a\)が\(f\)の定義域\(X\)の内点であるということです。この場合、\(f\)は点\(a\)を含め周辺の任意の点において定義されていることが保証されます。2つ目の条件は、\(f\)が点\(a\)を中心とする近傍において\(C^{2}\)級であるということです。\(C^{2}\)級であることは偏微分可能性を含意するため、局所最適化のための1階の必要条件より、この極大点\(a\)は停留点であることが保証されます。つまり、\begin{equation*}\nabla f\left( a\right) =0
\end{equation*}が成り立つということです。では、点\(a\)が極大点であることに由来する追加的な必要条件は存在するでしょうか。\(n=1\)の場合、すなわち\(f\)が1変数関数である場合には、\(f\)が定義域の内点\(a\)において2階微分可能であるとともに点\(a\)が極大点である場合には、\begin{equation}f^{\prime \prime }\left( a\right) \leq 0 \quad \cdots (1)
\end{equation}が成り立ちます。つまり、点\(a\)における\(f\)の2階偏微分係数が非正になるということです。これを2階の必要条件と呼びました。多変数関数における2階の必要条件は、点\(a\)における\(f\)のヘッセ行列\(\nabla ^{2}f\left( a\right) \)が半負定値になること、すなわち、\begin{equation}\forall h\in \mathbb{R} ^{n}\backslash \left\{ 0\right\} :h\cdot \nabla ^{2}f\left( a\right) h\leq 0
\quad \cdots (2)
\end{equation}が成り立つこととして表現されます。実際、\(n=1\)の場合、\(\left( 2\right) \)は、\begin{equation*}\forall h\in \mathbb{R} \backslash \left\{ 0\right\} :f^{\prime \prime }\left( a\right) \cdot
h^{2}\leq 0
\end{equation*}となりますが、これは\(\left( 1\right) \)と必要十分であるため、\(\left( 2\right) \)は\(\left(1\right) \)の一般化になっています。\(\left( 2\right) \)の証明ではテイラーの定理を利用します。

命題(内点が極大点であるための2階の必要条件)
関数\(f:\mathbb{R} ^{n}\supset X\rightarrow \mathbb{R} \)の定義域の内点\(a\in X^{i}\)を任意に選んだとき、\(f\)は点\(a\)を中心とする近傍において\(C^{2}\)級であるとともに、点\(a\)が\(f\)の極大点であるならば、\begin{eqnarray*}&&\left( a\right) \ \nabla f\left( a\right) =0 \\
&&\left( b\right) \ \forall h\in \mathbb{R} ^{n}\backslash \left\{ 0\right\} :h\cdot \nabla ^{2}f\left( a\right) h\leq 0
\end{eqnarray*}がともに成り立つ。

証明

プレミアム会員専用コンテンツです
ログイン】【会員登録

極小点に関しても同様の議論が成立します。

命題(内点が極小点であるための2階の必要条件)
関数\(f:\mathbb{R} ^{n}\supset X\rightarrow \mathbb{R} \)の定義域の内点\(a\in X^{i}\)を任意に選んだとき、\(f\)は点\(a\)を中心とする近傍において\(C^{2}\)級であるとともに、点\(a\)が\(f\)の極小点であるならば、\begin{eqnarray*}&&\left( a\right) \ f^{\prime }\left( a\right) =0 \\
&&\left( b\right) \ \forall h\in \mathbb{R} ^{n}\backslash \left\{ 0\right\} :h\cdot \nabla ^{2}f\left( a\right) h\geq 0
\end{eqnarray*}がともに成り立つ。

 

関数の定義域の内点が最大点や最小点であるための2階の必要条件

関数\(f:\mathbb{R} ^{n}\supset X\rightarrow \mathbb{R} \)の定義域上の点\(a\in X\)が\(f\)の最大点であるものとします。さらに、この点\(a\)は以下の2つの条件を満たすものとします。1つ目の条件は、点\(a\)が\(f\)の定義域\(X\)の内点であるということです。この場合、\(f\)は点\(a\)を含め周辺の任意の点において定義されていることが保証されます。2つ目の条件は、\(f\)が点\(a\)を中心とする近傍において\(C^{2}\)級であるということです。一般に、最大点は極大点でもあるため、この内点\(a\)は極大点であるための2階の必要条件を満たします。したがって以下の命題を得ます。

命題(内点が最大点であるための2階の必要条件)
関数\(f:\mathbb{R} ^{n}\supset X\rightarrow \mathbb{R} \)の定義域の内点\(a\in X^{i}\)を任意に選んだとき、\(f\)は点\(a\)を中心とする近傍において\(C^{2}\)級であるとともに、点\(a\)が\(f\)の最大点であるならば、\begin{eqnarray*}&&\left( a\right) \ f^{\prime }\left( a\right) =0 \\
&&\left( b\right) \ \forall h\in \mathbb{R} ^{n}\backslash \left\{ 0\right\} :h\cdot \nabla ^{2}f\left( a\right) h\leq 0
\end{eqnarray*}がともに成り立つ。

最小点についても同様の議論が成立します。

命題(内点が最小点であるための2階の必要条件)
関数\(f:\mathbb{R} ^{n}\supset X\rightarrow \mathbb{R} \)の定義域の内点\(a\in X^{i}\)を任意に選んだとき、\(f\)は点\(a\)を中心とする近傍において\(C^{2}\)級であるとともに、点\(a\)が\(f\)の最小点であるならば、\begin{eqnarray*}&&\left( a\right) \ f^{\prime }\left( a\right) =0 \\
&&\left( b\right) \ \forall h\in \mathbb{R} ^{n}\backslash \left\{ 0\right\} :h\cdot \nabla ^{2}f\left( a\right) h\geq 0
\end{eqnarray*}がともに成り立つ。

 

関数の最大点や最小点を特定する方法

関数\(f\)の最大点は極大点でもあるため、極大点をすべて特定した上で、その中で\(f\left(x\right) \)の値を最大化するような点を特定すれば、それは必然的に最大点になります。

関数の極大点と極小点となり得る点の候補を特定する際には、局所最適化のための1階および2階の必要条件を満たす内点と、関数が偏微分可能ではない内点に加え、すべての境界点を候補に加える必要があります。したがって、関数の最大点を特定するためには以下の手順にしたがえばよいということになります。

  1. 関数の最大点が存在することを確認する。その際、最大値・最小値の定理などを利用する。
  2. 関数の定義域の内点の中でも、極大点であるための1階および2階の必要条件を満たす点をすべて特定する。
  3. 関数の定義域の内点の中でも、関数が偏微分可能ではない点をすべて特定する。
  4. 関数の定義域に含まれる境界点をすべて特定する。
  5. 以上のすべての点の中でも、\(f\left( x\right) \)の値を最大化する点が最大点である。

同様に考えると、関数の最小点を特定するためには以下の手順にしたがえばよいということになります。

  1. 関数の最小点が存在することを確認する。その際、最大値・最小値の定理などを利用する。
  2. 関数の定義域の内点の中でも、極小点であるための1階および2階の必要条件を満たす点をすべて特定する。
  3. 関数の定義域の内点の中でも、関数が偏微分可能ではない点をすべて特定する。
  4. 関数の定義域に含まれる境界点をすべて特定する。
  5. 以上のすべての点の中でも、\(f\left( x\right) \)の値を最小化する点が最小点である。
例(関数の最大値・最小値)
関数\(f:\mathbb{R} _{++}^{2}\rightarrow \mathbb{R} \)はそれぞれの\(\left( x,y\right) \in \mathbb{R} _{++}^{2}\)に対して、\begin{equation*}f\left( x,y\right) =x\ln \left( x\right) +y\ln \left( y\right)
\end{equation*}を定めるものとします。\(f\)のグラフは以下の通りです。

図:関数の最大値・最小値
図:関数の最大値・最小値

\(f\)は連続関数ですが、定義域\(\mathbb{R} _{++}^{2}\)はコンパクト集合ではないため最大値・最小値の定理を適用できません。\begin{eqnarray*}\lim_{\left( x,y\right) \rightarrow \left( \infty ,\infty \right) }f\left(
x,y\right) &=&\lim_{x\rightarrow \infty }\left[ x\ln \left( x\right) \right] +\lim_{y\rightarrow \infty }\left[ y\ln \left( y\right) \right] \quad
\because f\text{の定義} \\
&=&\left( +\infty \right) \cdot \left( +\infty \right) +\left( +\infty
\right) \cdot \left( +\infty \right) \\
&=&+\infty
\end{eqnarray*}となるため、\(f\)は\(\mathbb{R} _{++}^{2}\)上に最大点を持ちません。一方、\(f\)は下に凸であるため最小点を持ちます。\(f\)は\(C^{2}\)級であり、勾配ベクトル場は、\begin{eqnarray*}\nabla f\left( x,y\right) &=&\left( f_{x}^{\prime }\left( x,y\right)
,f_{y}^{\prime }\left( x,y\right) \right) \\
&=&\left( \ln \left( x\right) +1,\ln \left( y\right) +1\right)
\end{eqnarray*}であり、ヘッセ行列は、\begin{eqnarray*}
\nabla ^{2}f\left( x,y\right) &=&\begin{pmatrix}
f_{xx}^{\prime \prime }\left( x,y\right) & f_{xy}^{\prime \prime }\left(
x,y\right) \\
f_{yx}^{\prime \prime }\left( x,y\right) & f_{yy}^{\prime \prime }\left(
x,y\right)
\end{pmatrix}
\\
&=&\begin{pmatrix}
\frac{1}{x} & 0 \\
0 & \frac{1}{y}\end{pmatrix}\end{eqnarray*}です。停留点であるような内点を特定するために、\begin{equation*}
\nabla f\left( x,y\right) =\left( 0,0\right)
\end{equation*}すなわち、\begin{equation*}
\left( \ln \left( x\right) +1,\ln \left( y\right) +1\right) =\left(
0,0\right)
\end{equation*}を解くと、\begin{equation}
\left( x,y\right) =\left( e^{-1},e^{-1}\right) \quad \cdots (1)
\end{equation}を得ます。これは\(f\)の定義域\(\mathbb{R} _{++}\)の内点です。さらに、\(\left( h_{1},h_{2}\right) \in \mathbb{R} ^{2}\backslash \left\{ \left( 0,0\right) \right\} \)を任意に選んだとき、\begin{eqnarray*}\left( h_{1},h_{2}\right) \cdot \nabla ^{2}f\left( e^{-1},e^{-1}\right)
\left(
\begin{array}{c}
h_{1} \\
h_{2}\end{array}\right) &=&\left( h_{1},h_{2}\right) \cdot
\begin{pmatrix}
\frac{1}{e^{-1}} & 0 \\
0 & \frac{1}{e^{-1}}\end{pmatrix}\left(
\begin{array}{c}
h_{1} \\
h_{2}\end{array}\right) \\
&=&\left( h_{1},h_{2}\right) \cdot \left( \frac{h_{1}}{e^{-1}},\frac{h_{2}}{e^{-1}}\right) \\
&=&\frac{h_{1}^{2}}{e^{-1}}+\frac{h_{2}^{2}}{e^{-1}} \\
&=&\frac{h_{1}^{2}+h_{2}^{2}}{e^{-1}} \\
&>&0\quad \because \left( h_{1},h_{2}\right) \not=\left( 0,0\right)
\end{eqnarray*}となるため、\(\left( 1\right) \)は極小点であるための2階の必要条件を満たします。\(f\)の定義域\(\mathbb{R} _{++}\)は開集合であるため境界点は存在しません。\(f\)が偏微分可能ではない点は存在しません。したがって、\(\left( 1\right) \)のみが最小点の候補であり、\begin{eqnarray*}f\left( e^{-1},e^{-1}\right) &=&e^{-1}\ln \left( e^{-1}\right) +e^{-1}\ln
\left( e^{-1}\right) \\
&=&-2e^{-1}
\end{eqnarray*}となります。以上より、\(f\)の最小点および最小値は、\begin{eqnarray*}\mathrm{argmin}_{\left( x,y\right) }f\left( x,y\right) &=&\left\{
\left( e^{-1},e^{-1}\right) \right\} \\
\mathrm{min}_{\left( x,y\right) }f\left( x,y\right) &=&-2e^{-1}
\end{eqnarray*}です。

例(関数の最大値・最小値)
関数\(f:\mathbb{R} ^{2}\supset X\rightarrow \mathbb{R} \)はそれぞれの\(\left( x,y\right) \in X\)に対して、\begin{equation*}f\left( x,y\right) =\left( 1-x\right) \left( 1-y\right) \left( x+y-1\right)
\end{equation*}を定めるものとします。ただし、\(X\)の定義域は、\begin{equation*}X=\left\{ \left( x,y\right) \in \mathbb{R} ^{2}\ |\ 0\leq x\leq 1\wedge 0\leq y\leq 1\wedge x+y\geq 1\right\}
\end{equation*}です。\(f\)はコンパクト集合\(X\)上に定義された連続関数であるため、最大値・最小値の定理より、\(f\)は\(X\)上に最大点と最小点を持ちます。\(f\)の定義域の任意の内点\(\left( x,y\right) \in X^{i}\)において、\begin{equation*}f\left( x,y\right) >0
\end{equation*}が成り立つ一方で、任意の境界点\(\left( x,y\right) \in X^{f}\)において、\begin{equation*}f\left( x,y\right) =0
\end{equation*}が成り立つため、任意の境界点が\(f\)の最小点です。\(f\)は\(C^{2}\)級であり、勾配ベクトル場は、\begin{eqnarray*}\nabla f\left( x,y\right) &=&\left( f_{x}^{\prime }\left( x,y\right)
,f_{y}^{\prime }\left( x,y\right) \right) \\
&=&\left( \left( y-1\right) \left( 2x+y-2\right) ,\left( x-1\right) \left(
x+2y-2\right) \right)
\end{eqnarray*}です。停留点であるような内点を特定するために、\begin{equation*}
\nabla f\left( x,y\right) =\left( 0,0\right)
\end{equation*}すなわち、\begin{equation*}
\left( \left( y-1\right) \left( 2x+y-2\right) ,\left( x-1\right) \left(
x+2y-2\right) \right) =\left( 0,0\right)
\end{equation*}を解くと、\begin{equation*}
\left( x,y\right) =\left( \frac{2}{3},\frac{2}{3}\right)
\end{equation*}を得ますが、\begin{eqnarray*}
f\left( \frac{2}{3},\frac{2}{3}\right) &=&\left( 1-\frac{2}{3}\right)
\left( 1-\frac{2}{3}\right) \left( \frac{2}{3}+\frac{2}{3}-1\right) \\
&=&\frac{1}{27}
\end{eqnarray*}となります。また、\(f\)が偏微分可能ではない点は存在しません。したがって、\(f\)の最小点および最小値は、\begin{eqnarray*}\mathrm{argmax}_{\left( x,y\right) }f\left( x,y\right) &=&\left\{
\left( \frac{2}{3},\frac{2}{3}\right) \right\} \\
\mathrm{max}_{\left( x,y\right) }f\left( x,y\right) &=&\frac{1}{27}
\end{eqnarray*}であり、\(f\)の最小点および最小値は、\begin{eqnarray*}\mathrm{argmin}_{\left( x,y\right) }f\left( x,y\right) &=&X^{f} \\
\mathrm{min}_{\left( x,y\right) }f\left( x,y\right) &=&0
\end{eqnarray*}です。

Share on twitter
Twitterで共有
Share on email
メールで共有
DISCUSSION

質問とコメント

プレミアム会員専用コンテンツです
ログイン】【会員登録

RELATED KNOWLEDGE

関連知識

最大値・最小値
1変数関数の大域的最適解

関数の値を最大化するような点が定義域上に存在する場合、そのような点を最大点や大域的最大点と呼びます。また、関数が最大点に対して定める値を最大値や大域的最大値と呼びます。

最大値・最小値
1変数関数の局所最適解

関数の値を最大化するような点が定義域上に存在しない場合でも、変数がとり得る値を限定することにより、その範囲内において関数の値を最大化するような点が存在する状況は起こり得ます。そのような点を極大点や局所的最大点と呼びます。また、関数が極大点に対して定める値を極大値や大域的最大値と呼びます。

1階の必要条件
1変数関数の最適化のための1階の必要条件

関数が定義域において局所最適解(極大点・極小点)を持つための1階の必要条件を明らかにするとともに、関数の大域的最適解(最小点・最大点)を具体的に求める方法について解説します。

2階の必要条件
1変数凸関数・凹関数の無制約最適化

1変数の凸関数を目的関数とする制約条件のない最小化問題や、1変数の凹関数を目的関数とする制約条件のない最大化問題を解く方法を解説します。

最大・最小
実数集合の最大値・最小値

実数集合 R の空でない部分集合 A について、そのある要素 a が A の任意の実数以上ならば、a を A の最大値と呼びます。また、a が A の任意の実数以下ならば、a を A の最小値と呼びます。

最大値・最小値
多変数関数の大域的最適解

多変数関数の値を最大化するような点が定義域上に存在する場合、そのような点を最大点や大域的最大点と呼びます。また、多変数関数が最大点に対して定める値を最大値や大域的最大値と呼びます。

最大値・最小値
多変数関数の局所最適解

多変数関数の値を最大化するような点が定義域上に存在しない場合でも、変数がとり得る値を限定することにより、その範囲内において関数の値を最大化するような点が存在する状況は起こり得ます。そのような点を極大点や局所的最大点と呼びます。また、関数が極大点に対して定める値を極大値や大域的最大値と呼びます。

1階の必要条件
多変数関数の最適化のための1階の必要条件

多変数関数が定義域において局所最適解(極大点・極小点)を持つための1階の必要条件を明らかにするとともに、関数の大域的最適解(最小点・最大点)を具体的に求める方法について解説します。

凸関数・凹関数
多変数凸関数・凹関数の無制約最適化

多変数の凸関数を目的関数とする制約条件のない最小化問題や、多変数の凹関数を目的関数とする制約条件のない最大化問題を解く方法を解説します。

最大値・最小値
順序部分集合の最大元・最小元

非空な順序部分集合のある要素が、他の任意の要素以上である場合、それを最大元と呼びます。また、非空な順序部分集合のある要素が、他の任意の要素以下である場合、それを最小元と呼びます。

極大値・極小値
順序部分集合の極大元・極小元

非空な順序部分集合のある要素よりも大きい要素がその集合の中に存在しない場合、その要素を極大元と呼びます。また、非空な順序部分集合のある要素よりも小さい要素がその集合の中に存在しない場合、その要素を極小元と呼びます。