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

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

目次

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

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

関数\(f:\mathbb{R} \supset X\rightarrow \mathbb{R} \)が与えられたとき、定義域上の点\(a\in X\)が極大点(局所的最大点)であることとは、\begin{equation*}\exists \varepsilon >0,\ \forall x\in N_{\varepsilon }\left( a\right) \cap
X:f\left( a\right) \geq f\left( x\right)
\end{equation*}すなわち、\begin{equation*}
\exists \varepsilon >0,\ \forall x\in \left( a-\varepsilon ,a+\varepsilon
\right) \cap X:f\left( a\right) \geq f\left( x\right)
\end{equation*}が成り立つことを意味します。また、\(f\)が極大点\(a\)に対して定める値\(f\left( a\right) \)を\(f\)の極大値(局所的最大値)と呼びます。

関数\(f:\mathbb{R} \supset X\rightarrow \mathbb{R} \)が与えられたとき、定義域上の点\(a\in X\)が極小点(局所的最小点)であることとは、\begin{equation*}\exists \varepsilon >0,\ \forall x\in N_{\varepsilon }\left( a\right) \cap
X:f\left( a\right) \leq f\left( x\right)
\end{equation*}すなわち、\begin{equation*}
\exists \varepsilon >0,\ \forall x\in \left( a-\varepsilon ,a+\varepsilon
\right) \cap X:f\left( a\right) \leq f\left( x\right)
\end{equation*}が成り立つことを意味します。また、\(f\)が極小点\(a\)に対して定める値\(f\left( a\right) \)を\(f\)の極小値(局所的極小値)と呼びます。

一般に、関数\(f\)は極大点や極小点を持つとは限りませんが、仮に極大点や極小点を持つ場合、それはどのような条件を満たすのでしょうか。以下では関数の定義域上の点が極大点や極小点であるための必要条件を特定します。

関数\(f:\mathbb{R} \supset X\rightarrow \mathbb{R} \)の定義域上の点\(a\in X\)が\(f\)の極大点であるものとします。さらに、この点\(a\)は以下の2つの条件を満たすものとします。1つ目の条件は、点\(a\)が\(f\)の定義域\(X\)の内点であるということです。この場合、\(f\)は点\(a\)を含め周辺の任意の点において定義されていることが保証されます。2つ目の条件は、\(f\)が点\(a\)において微分可能であるということです。以上の2つの条件を満たす点\(a\)を以下に図示しました。

図:極大点における微分係数
図:極大点における微分係数

点\(a\)は極大点であるため、\(x\)がとり得る値の範囲を点\(a\)の周辺に限定したとき、\(f\left( x\right) \)の値は点\(a\)において最大化されます。したがって、\(f\)のグラフの点\(a\)における接線は水平になるはずです。仮定より関数\(f\)は点\(a\)において微分可能ですが、微分係数\(f^{\prime }\left( a\right) \)が\(f\)のグラフの点\(a\)における接線の傾きに等しいことを踏まえると、先の理由により、極大点\(a\)では、\begin{equation*}f^{\prime }\left( a\right) =0
\end{equation*}という関係が成り立つことが予想されます。後に厳密に証明しますが、これは正しい予想です。ちなみに、点\(b\)もまた先の2つの条件を満たす\(f\)の極大点であるため、同様の理由により、\begin{equation*}f^{\prime }\left( b\right) =0
\end{equation*}が成り立つことが予想されます。

図:極大点における微分係数
図:極大点における微分係数

上の図中の点\(a\)もまた先の2つの条件を満たす\(f\)の極大点です。ただ、先の例とは異なり、\(f\)のグラフは点\(a\)の周辺において水平です。とは言え、この場合にも\(f\)のグラフの点\(a\)における接線を引くことができ、それは水平になるため、先と同様の理由により、この場合にも、\begin{equation*}f^{\prime }\left( a\right) =0
\end{equation*}という関係が成り立つことが予想されます。

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

命題(内点が極大点や極小点であるための1階の必要条件)
関数\(f:\mathbb{R} \supset X\rightarrow \mathbb{R} \)の定義域の内点\(a\in X^{i}\)を任意に選んだとき、\(f\)は点\(a\)において微分可能であるとともに、点\(a\)は\(f\)の極大点もしくは極小点であるならば、\begin{equation*}f^{\prime }\left( a\right) =0
\end{equation*}が成り立つ。

証明

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

関数\(f\)が定義域上の点\(a\)において微分可能であり、なおかつそこでの微分係数がゼロである場合、すなわち\(f^{\prime }\left( a\right) =0\)が成り立つ場合には、そのような点\(a\)を\(f\)の停留点(stationary point)と呼びます。上の命題は、関数\(f\)の定義域上の内点\(a\)が極大点や極小点である場合には、その点\(a\)は\(f\)の停留点であるという主張です。これを局所最適化のための1階の必要条件(first order necessary condition for local optimality)と呼びます。

上の命題の逆は成立するとは限りません。つまり、関数\(f\)の定義域上の内点\(a\)が停留点である場合、その点\(a\)は\(f\)の極大点や極大点であるとは限りません。以下の例より明らかです。

例(停留点は極大点や極小点であるとは限らない)
関数\(f:\mathbb{R} \rightarrow \mathbb{R} \)はそれぞれの\(x\in \mathbb{R} \)に対して、\begin{equation*}f\left( x\right) =x^{3}
\end{equation*}を定めるものとします。点\(0\)は\(f\)の定義域\(\mathbb{R} \)の内点であるとともに、\(f\)は点\(0\)において微分可能です。しかも、点\(0\)における微分係数は、\begin{eqnarray*}f^{\prime }\left( 0\right) &=&\left. \left( x^{3}\right) ^{\prime
}\right\vert _{x=0}\quad \because f\text{の定義} \\
&=&\left. 3x^{2}\right\vert _{x=0} \\
&=&0
\end{eqnarray*}となるため点\(0\)は\(f\)の停留点です。一方、点\(0\)は\(f\)の極大点や極小点ではありません(下図)。

図:極大点や極小点ではない停留点
図:極大点や極小点ではない停留点

 

関数が微分可能ではない点も極大点や極小点になり得る

局所最適化のための1階の必要条件は、関数が微分可能な内点が極大値や極小値であるための必要条件を与えており、関数が微分可能ではない内点については何も語っていません。ただ、以下の例から明らかであるように、関数が微分可能ではない内点が極大点や極小点である状況は起こり得ます。

例(関数が極大点や極小点において微分可能ではない場合)
関数\(f:\mathbb{R} \supset X\rightarrow \mathbb{R} \)のグラフが下図で与えられているものとします。

図:停留点ではない極大点
図:停留点ではない極大点

点\(a\)は\(f\)の定義域の内点であるとともに極大点でもありますが、\(f\)は点\(a\)において微分可能ではありません。したがって、点\(a\)は局所最適化のための1階の必要条件を満たしません。点\(b\)も同様です。

以上の例より、関数が微分可能ではない内点が極大点や極小点になり得ることが明らかになりました。このような極大点や極小点は局所最適化のための1階の必要条件を満たしません。したがって、関数の極大点や極小点となり得る点の候補を特定する際には、局所最適化のための1階の必要条件を満たす内点に加え、関数が微分可能ではない内点も候補に加える必要があります。

 

関数の定義域の境界点も極大点や極小点になり得る

局所最適化のための1階の必要条件は、関数が微分可能な内点が極大値や極小値であるための必要条件を与えており、内点ではない点、すなわち境界点については何も語っていません。ただ、以下の例から明らかであるように、関数の定義域の境界点が極大点や極小点になる状況は起こり得ます。

例(境界点であるような極大点や極小点)
関数\(f:\mathbb{R} \supset \left[ a,b\right] \rightarrow \mathbb{R} \)のグラフが下図で与えられているものとします。

図:関数の極大点・極小点
図:関数の極大点・極小点

点\(a\)は\(f\)の極小点であり、点\(b\)は\(f\)の極大点です。しかし、これらの点\(a,b\)は\(f\)の定義域\(\left[ a,b\right] \)の内点ではないため境界点です。したがって、点\(a,b\)は局所最適化のための1階の必要条件を満たすとは限りません。点\(a\)における右側微分係数は\(0\)ではなく、点\(b\)における左側微分係数も\(0\)ではないため、点\(a,b\)は1階の必要条件を満たしません。

したがって、関数の極大点や極小点となり得る点の候補を特定する際には、局所最適化のための1階の必要条件を満たす内点と、関数が微分可能ではない内点に加え、すべての境界点を候補に加える必要があります。ただし、以上の条件を満たす内点は極大点や極小点にならない可能性がある一方で、境界点は極大点または極小点になることが確定しています。

 

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

関数\(f:\mathbb{R} \supset X\rightarrow \mathbb{R} \)が与えられたとき、定義域上の点\(a\in X\)が最大点(大域的最大点)であることとは、\begin{equation*}\exists a\in X,\ \forall x\in X:f\left( a\right) \geq f\left( x\right)
\end{equation*}が成り立つことを意味します。また、\(f\)が最大点\(a\)に対して定める値\(f\left( a\right) \)を\(f\)の最大値(大域的最大値)と呼び、これを、\begin{equation*}\max_{x\in X}f\left( x\right)
\end{equation*}で表記します。また、\(f\)の最大点からなる集合を、\begin{equation*}\mathrm{argmax}_{x\in X}f\left( x\right)
\end{equation*}で表記します。

関数\(f:\mathbb{R} \supset X\rightarrow \mathbb{R} \)が与えられたとき、定義域上の点\(a\in X\)が最小値(大域的最小点)であることとは、\begin{equation*}\exists a\in X,\ \forall x\in X:f\left( a\right) \leq f\left( x\right)
\end{equation*}が成り立つことを意味します。また、\(f\)が最小点\(a\)に対して定める値\(f\left( a\right) \)を\(f\)の最小値(大域的最小値)と呼び、これを、\begin{equation*}\min_{x\in X}f\left( x\right)
\end{equation*}で表記します。また、\(f\)の最大点からなる集合を、\begin{equation*}\mathrm{argamin}_{x\in X}f\left( x\right)
\end{equation*}で表記します。

一般に、関数\(f\)は最大点や最小点を持つとは限りませんが、仮に最大点や最小点を持つ場合、それはどのような条件を満たすのでしょうか。以下では関数の定義域上の点が最大点や最小点であるための必要条件を特定します。

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

最小点についても同様の議論が成り立ちます。したがって以下の命題を得ます。

命題(内点が最大点や最小点であるための1階の必要条件)
関数\(f:\mathbb{R} \supset X\rightarrow \mathbb{R} \)の定義域の内点\(a\in X^{i}\)を任意に選んだとき、\(f\)は点\(a\)において微分可能であるとともに、点\(a\)は\(f\)の最大点もしくは最小点であるならば、\begin{equation*}f^{\prime }\left( a\right) =0
\end{equation*}が成り立つ。すなわち、点\(a\)は停留点である。

 

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

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

繰り返しになりますが、関数の極大点や極小点となり得る点の候補を特定する際には、停留点であるような内点と、関数が微分可能ではない内点に加え、すべての境界点を候補に加える必要があります。以上を踏まえると、関数の最大点や最小点を特定するためには以下の手順にしたがえばよいということになります。

  1. 関数の最大点や最小点が存在することを確認する。その際、最大値・最小値の定理などを利用する。
  2. 関数の定義域の内点の中でも、停留点をすべて特定する。
  3. 関数の定義域の内点の中でも、関数が微分可能ではない点をすべて特定する。
  4. 関数の定義域に含まれる境界点をすべて特定する。
  5. 以上のすべての点の中でも、\(f\left( x\right) \)の値を最大化する点が最大点であり、\(f\left( x\right) \)の最小化する点が最小点である。
例(関数の最大値・最小値)
関数\(f:\mathbb{R} \supset \left[ -1,2\right] \rightarrow \mathbb{R} \)はそれぞれの\(x\in \left[ -1,2\right] \)に対して、\begin{equation*}f\left( x\right) =x^{3}-x
\end{equation*}を定めるものとします。

図:関数のグラフ
図:関数のグラフ

\(f\)は多項式関数であるため連続です。つまり、\(f\)は有界閉区間上に定義された連続関数であるため、最大値・最小値の定理より定義域\(\left[ -1,2\right] \)上に最大点や最小点が存在することが保証されます。\(f\)は多項式関数であるため微分可能であり、導関数\(f^{\prime }:\mathbb{R} \supset \left[ -1,2\right] \rightarrow \mathbb{R} \)はそれぞれの\(x\in \left[ -1,2\right] \)に対して、\begin{equation*}f^{\prime }\left( x\right) =3x^{2}-1
\end{equation*}を定めます。停留点であるような内点を特定するために、\begin{equation*}
f^{\prime }\left( x\right) =0
\end{equation*}すなわち、\begin{equation*}
3x^{2}-1=0
\end{equation*}を解くと、\begin{equation}
x=\pm \sqrt{\frac{1}{3}} \quad \cdots (1)
\end{equation}を得ます。これらはともに\(f\)の定義域\(\left[ -1,2\right] \)の内点です。また、\(f\)の定義域の境界点は、\begin{equation}x=-1,2 \quad \cdots (2)
\end{equation}です。\(f\)が微分可能ではない点は存在しません。したがって、\(\left( 1\right) ,\left( 2\right) \)のみが最大点および最小点の候補となります。具体的には、\begin{eqnarray*}f\left( \sqrt{\frac{1}{3}}\right) &=&\left( \sqrt{\frac{1}{3}}\right) ^{3}-\sqrt{\frac{1}{3}}=\frac{1}{3}\sqrt{\frac{1}{3}}-\sqrt{\frac{1}{3}}=-\frac{2}{3}\sqrt{\frac{1}{3}} \\
f\left( -\sqrt{\frac{1}{3}}\right) &=&\left( -\sqrt{\frac{1}{3}}\right)
^{3}-\left( -\sqrt{\frac{1}{3}}\right) =-\frac{1}{3}\sqrt{\frac{1}{3}}+\sqrt{\frac{1}{3}}=\frac{2}{3}\sqrt{\frac{1}{3}} \\
f\left( -1\right) &=&\left( -1\right) ^{3}-\left( -1\right) =0 \\
f\left( 2\right) &=&2^{3}-2=6
\end{eqnarray*}であるため、最大点および最大値は、\begin{eqnarray*}
\mathrm{argmax}_{x\in \left[ -1,2\right] }f\left( x\right) &=&\left\{
2\right\} \\
\max_{x\in \left[ -1,2\right] }f\left( x\right) &=&6
\end{eqnarray*}であり、最小点および最小値は、\begin{eqnarray*}
\mathrm{argmin}_{x\in \left[ -1,2\right] }f\left( x\right) &=&\left\{
\sqrt{\frac{1}{3}}\right\} \\
\min_{x\in \left[ -1,2\right] }f\left( x\right) &=&-\frac{2}{3}\sqrt{\frac{1}{3}}
\end{eqnarray*}です。

例(関数の最大値・最小値)
関数\(f:\mathbb{R} \supset \left( -1,1\right) \rightarrow \mathbb{R} \)はそれぞれの\(x\in \left( -1,1\right) \)に対して、\begin{equation*}f\left( x\right) =\frac{1}{1-x^{2}}
\end{equation*}を定めるものとします。

図:関数のグラフ
図:関数のグラフ

\(f\)は有理関数であるため連続です。しかし、定義域\(\left( -1,1\right) \)は有界な閉区間ではないため最大値・最小値の定理を適用できません。\(f\)は点\(-1,1\)において定義されていないため定義域\(\left( -1,1\right) \)上に最大点を持ちません。\(f\)は有理関数であるため微分可能であり、導関数\(f^{\prime }:\mathbb{R} \supset \left( -1,1\right) \rightarrow \mathbb{R} \)はそれぞれの\(x\in \left( -1,1\right) \)に対して、\begin{equation*}f^{\prime }\left( x\right) =\frac{\left( 1\right) ^{\prime }\left(
1-x^{2}\right) -1\left( 1-x^{2}\right) ^{\prime }}{\left( 1-x^{2}\right) ^{2}}=\frac{2x}{\left( 1-x^{2}\right) ^{2}}
\end{equation*}を定めます。停留点であるような内点を特定するために、\begin{equation*}
f^{\prime }\left( x\right) =0
\end{equation*}すなわち、\begin{equation*}
\frac{2x}{\left( 1-x^{2}\right) ^{2}}=0
\end{equation*}を解くと、\begin{equation}
x=0 \quad \cdots (1)
\end{equation}を得ます。これは\(f\)の定義域\(\left( -1,1\right) \)の内点です。\(f\)の定義域\(\left( -1,1\right) \)は開集合であるため境界点を持ちません。また、\(f\)が微分可能ではない点は存在しません。したがって、\(\left( 1\right) \)のみが最小点の候補であり、\begin{equation*}f\left( 0\right) =\frac{1}{1-0^{2}}=1
\end{equation*}となります。したがって、\(f\)の最小点および最小値は、\begin{eqnarray*}\mathrm{argmin}_{x\in \left( -1,1\right) }f\left( x\right) &=&\left\{
0\right\} \\
\min_{x\in \left( -1,1\right) }f\left( x\right) &=&1
\end{eqnarray*}です。

例(関数の最大値・最小値)
関数\(f:\mathbb{R} \rightarrow \mathbb{R} \)はそれぞれの\(x\in \mathbb{R} \)に対して、\begin{equation*}f\left( x\right) =x^{3}-12x
\end{equation*}を定めるものとします。

図:関数のグラフ
図:関数のグラフ

\(f\)は多項式関数であるため連続です。しかし、定義域\(\mathbb{R} \)は有界な閉区間ではないため最大値・最小値の定理を適用できません。\begin{eqnarray*}\lim_{x\rightarrow \infty }f\left( x\right) &=&\lim_{x\rightarrow \infty
}\left( x^{3}-12x\right) \quad \because f\text{の定義} \\
&=&\lim_{x\rightarrow \infty }\left[ x^{3}\left( 1-\frac{12}{x^{2}}\right) \right] \\
&=&\left( +\infty \right) \cdot 1 \\
&=&+\infty
\end{eqnarray*}かつ、\begin{eqnarray*}
\lim_{x\rightarrow -\infty }f\left( x\right) &=&\lim_{x\rightarrow -\infty
}\left( x^{3}-12x\right) \quad \because f\text{の定義} \\
&=&\lim_{x\rightarrow -\infty }\left[ x^{3}\left( 1-\frac{12}{x^{2}}\right) \right] \\
&=&\left( -\infty \right) \cdot 1 \\
&=&-\infty
\end{eqnarray*}となるため、\(f\)は\(\mathbb{R} \)上に最大点や最小点を持ちません。

 

演習問題

問題(最適化のための1階の必要条件)
関数\(f:\mathbb{R} \supset \left[ 0,2\right] \rightarrow \mathbb{R} \)はそれぞれの\(x\in \left[ 0,2\right] \)に対して、\begin{equation*}f\left( x\right) =e^{x}-ex
\end{equation*}を定めるものとします。\(f\)の\(\left[ 0,2\right] \)における最大点と最小点は存在しますか。存在する場合には具体的に求めてください。
解答を見る

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

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

質問とコメント

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

RELATED KNOWLEDGE

関連知識

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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