WIIS

関数の最適化

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

目次

関連知識

Mailで保存
Xで共有

関数の極大点と極大値

関数\(f:\mathbb{R} \supset X\rightarrow \mathbb{R} \)が与えられたとき、\(f\left( x\right) \)の値を最大化するような点\(a\)が\(f\)の定義域\(X\)上に存在する場合には、すなわち、\begin{equation*}\exists a\in X,\ \forall x\in X:f\left( a\right) \geq f\left( x\right)
\end{equation*}が成り立つ場合には、このような点\(a\)を\(f\)の最大点と呼び、\(f\)が最大点\(a\)に対して定める値\(f\left( a\right) \)を\(f\)の最大値と呼びます。つまり、関数\(f\)の最大点とは、変数\(x\)が定義域\(X\)上のすべての値を取り得ることを認めた場合に、\(f\left( x\right) \)の値を最大化するような\(X\)上の点\(x\)に相当します。

一方、変数\(x\)がとり得る値を\(X\)の部分集合に制限した上で、その限定された範囲の中で\(f\left( x\right) \)の値を最大化するような最大点\(x\)を考えることもできます。

関数\(f\)の定義域上の点\(a\in X\)が与えられたとき、変数\(x\)がとり得る値の範囲を点\(a\)の周辺に限定し、その範囲内において\(f\left( x\right) \)の値が点\(a\)のもとで最大化されるのであれば、点\(a\)は\(f\)の局所的な最大点であると言えます。そのような場合、点\(a\)は関数\(f\)の極大点(maximal point)であると言います。まずは具体例を提示した上で、後に概念を正確に定義します。

例(関数の極大点)
有界な閉区間上に定義された関数\(f:\mathbb{R} \supset \left[ a,b\right] \rightarrow \mathbb{R} \)のグラフが下図で与えられています。

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

点\(c\)は関数\(f\)の最大点ではありません。しかし、変数\(x\)がとり得る範囲を点\(c\)を中心とする開区間\begin{equation*}\left( c-\varepsilon ,c+\varepsilon \right)
\end{equation*}に制限した場合、半径\(\varepsilon >0\)として十分小さい値を採用すれば、上の開区間において\(f\left( x\right) \)の値は点\(c\)のもとで最大化されると言えます。つまり、点\(c\)は関数\(f\)の極大点です。点\(e\)もまた関数\(f\)の最大点ではありませんが、点\(c\)が\(f\)の極大点であることと同様の理由により、点\(e\)もまた\(f\)の極大点です。点\(c,e\)とは異なり、点\(b\)は関数\(f\)の最大点です。同時に、点\(b\)は極大点でもあります。なぜなら、変数\(x\)がとり得る範囲を点\(b\)を端点とする半閉区間\begin{equation*}(b-\varepsilon ,b] \end{equation*}に制限した場合、上の半閉区間において\(f\left( x\right) \)の値は点\(b\)のもとで最大化されると言えるからです。

以上の例を踏まえた上で、関数の極大点を正確に定義します。関数\(f:\mathbb{R} \supset X\rightarrow \mathbb{R} \)および定義域上の点\(a\in X\)が与えられたとき、点\(a\)が中心で半径が\(\varepsilon >0\)であるような有界開区間\begin{equation*}N_{\varepsilon }\left( a\right) =\left( a-\varepsilon ,a+\varepsilon \right)
\end{equation*}をとります。さらに、これと関数\(f\)の定義域\(X\)の共通部分\begin{equation*}N_{\varepsilon }\left( a\right) \cap X
\end{equation*}をとります(理由は後述します)。\(a\in X\)かつ\(a\in N_{\varepsilon }\left( a\right) \)および共通部分の定義より\(a\in N_{\varepsilon }\left( a\right) \cap X\)であることに注意してください。十分小さい半径\(\varepsilon \)を選んだ上で、変数\(x\)がとり得る範囲を\(N_{\varepsilon }\left( a\right) \cap X\)に制限したとき、\(f\left( x\right) \)の値が\(a \)のもとで最大化されるのであれば、すなわち、\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*}が成り立つ場合には、このような点\(a\)を\(f\)の極大点(maximal point)や局所的最大点(local maximum point)もしくは相対的最大点(relative maximum point)などと呼びます。また、\(f\)の極大点\(a\)が存在する場合、\(f\)が点\(a \)に対して定める値\(f\left(a\right) \)を\(f\)の極大値(maximal value)や局所的最大値(local maximum value)もしくは相対的最大値(relativemaximum value)などと呼びます。

関数の極大点の定義において、変数\(x\)がとり得る値の範囲として有界開区間\(N_{\varepsilon }\left(a\right) \)を採用するのではなく、それと関数\(f\)の定義域\(X\)の共通部分である\begin{equation*}N_{\varepsilon }\left( a\right) \cap X
\end{equation*}を採用するのはなぜでしょうか。その理由を理解するために、点\(a\in X\)が関数\(f\)の極大点であることの定義として、\begin{equation}\exists \varepsilon >0,\ \forall x\in N_{\varepsilon }\left( a\right)
:f\left( a\right) \geq f\left( x\right) \quad \cdots (1)
\end{equation}を採用した場合に何が起こるかを確認します。問題としている点\(a\)が区間上に定義された関数の定義域の端点である場合(先の例の点\(b\)のように)には、そもそも点\(a\)を中心とする開近傍\(N_{\varepsilon }\left( a\right) \)のすべての点において\(f\)が定義されていることにならないため、\(\left( 1\right) \)は意味をなさなくなってします。一方、点\(a\in X\)が関数\(f\)の極大点であることの定義として、\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*}を採用すれば、関数\(f\)が\(N_{\varepsilon }\left( a\right) \cap X\)上のすべての点において定義されていることが保証されるため、点\(a\)が局所的な最大点であることを検討できます。

 

関数の最大値と極大値の関係

先の例から明らかであるように、関数の最大点は極大点でもあります。したがって、関数の最大値は極大値でもあります。

命題(関数の最大点は極大点)
関数\(f:\mathbb{R} \supset X\rightarrow \mathbb{R} \)が与えられたとき、点\(a\in X\)が\(X\)における\(f\)の最大点であるならば、点\(a\)は\(f\)の極大点でもある。
証明

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

先の例から明らかであるように、上の命題の逆は成立しません。つまり、関数の極大点は最大点であるとは限りません。したがって、関数の極大値は最大値であるとは限りません。

関数の最大点は存在しないものの、極大点は存在するような状況は起こり得ます。つまり、関数の最大値は存在しないものの、極大値が存在するような状況は起こり得るということです。以下の例より明らかです。

例(最大点が存在せず極大点が存在する場合)
有界な半閉区間上に定義された関数\(f:\mathbb{R} \supset \lbrack a,b)\rightarrow \mathbb{R} \)のグラフが下図で与えられています。

図:最大点は存在しないが極大点は存在するケース
図:最大点は存在しないが極大点は存在するケース

この関数\(f\)は定義域\([a,b)\)上で最大点を持たないため最大値は存在しません。\(f\)が点\(b\)において定義されていないからです。一方、点\(c,e\)はいずれも\(f\)の極大点であるため、\(f\left( c\right) \)および\(f\left( c\right) \)は極大値です。ちなみに、点\(a,d,f\)はいずれも\(f\)の最大点や極大点ではありません。

 

関数の極小点と極小値

関数\(f:\mathbb{R} \supset X\rightarrow \mathbb{R} \)が与えられたとき、\(f\left( x\right) \)の値を最小化するような点\(a\)が\(f\)の定義域\(X\)上に存在する場合には、すなわち、\begin{equation*}\exists a\in X,\ \forall x\in X:f\left( a\right) \leq f\left( x\right)
\end{equation*}が成り立つ場合には、このような点\(a\)を\(f\)の最小点と呼び、\(f\)が最小点\(a\)に対して定める値\(f\left( a\right) \)を\(f\)の最小値と呼びます。つまり、関数\(f\)の最小点とは、変数\(x\)が定義域\(X\)上のすべての値を取り得ることを認めた場合に、\(f\left( x\right) \)の値を最小化するような\(X\)上の点\(x\)に相当します。

一方、変数\(x\)がとり得る値を\(X\)の部分集合に制限した上で、その限定された範囲の中で\(f\left( x\right) \)の値を最小化するような最小点\(x\)を考えることもできます。

関数\(f\)の定義域上の点\(a\in X\)が与えられたとき、変数\(x\)がとり得る値の範囲を点\(a\)の周辺に限定し、その範囲内において\(f\left( x\right) \)の値が点\(a\)のもとで最小化されるのであれば、点\(a\)は\(f\)の局所的な最小点であると言えます。そのような場合、点\(a\)は関数\(f\)の極小点(minimal point)であると言います。まずは具体例を提示した上で、後に概念を正確に定義します。

例(関数の極小点)
有界な閉区間上に定義された関数\(f:\mathbb{R} \supset \left[ a,b\right] \rightarrow \mathbb{R} \)のグラフが下図で与えられています。

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

点\(d\)は関数\(f\)の最小点ではありません。しかし、変数\(x\)がとり得る範囲を点\(d\)を中心とする開区間\begin{equation*}\left( d-\varepsilon ,d+\varepsilon \right)
\end{equation*}に制限した場合、半径\(\varepsilon >0\)として十分小さい値を採用すれば、上の開区間において\(f\left( x\right) \)の値は点\(d\)のもとで最小化されると言えます。つまり、点\(d\)は関数\(f\)の極小点です。点\(f\)もまた関数\(f\)の最小点ではありませんが、点\(d\)が\(f\)の極小点であることと同様の理由により、点\(f\)もまた\(f\)の極小点です。点\(d,f\)とは異なり、点\(a\)は関数\(f\)の最小点です。同時に、点\(a\)は極小点でもあります。なぜなら、変数\(x\)がとり得る範囲を点\(a\)を端点とする半閉区間\begin{equation*}\lbrack a,b+\varepsilon )
\end{equation*}に制限した場合、上の半閉区間において\(f\left( x\right) \)の値は点\(a\)のもとで最小化されると言えるからです。

以上の例を踏まえた上で、関数の極小点を正確に定義します。関数\(f:\mathbb{R} \supset X\rightarrow \mathbb{R} \)および定義域上の点\(a\in X\)が与えられたとき、点\(a\)が中心で半径が\(\varepsilon >0\)であるような有界開区間\begin{equation*}N_{\varepsilon }\left( a\right) =\left( a-\varepsilon ,a+\varepsilon \right)
\end{equation*}をとります。さらに、これと関数\(f\)の定義域\(X\)の共通部分\begin{equation*}N_{\varepsilon }\left( a\right) \cap X
\end{equation*}をとります(理由は後述します)。\(a\in X\)かつ\(a\in N_{\varepsilon }\left( a\right) \)および共通部分の定義より\(a\in N_{\varepsilon }\left( a\right) \cap X\)であることに注意してください。十分小さい半径\(\varepsilon \)を選んだ上で、変数\(x\)がとり得る範囲を\(N_{\varepsilon }\left( a\right) \cap X\)に制限したとき、\(f\left( x\right) \)の値が\(a \)のもとで最小化されるのであれば、すなわち、\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*}が成り立つ場合には、このような点\(a\)を\(f\)の極小点(minimal point)や局所的最小点(local minimum point)もしくは相対的最小点(relative minimum point)などと呼びます。また、\(f\)の極小点\(a\)が存在する場合、\(f\)が点\(a \)に対して定める値\(f\left(a\right) \)を\(f\)の極小値(minimal value)や局所的最小値(local minimum value)もしくは相対的最小値(relativeminimum value)などと呼びます。

関数の極小点の定義において、変数\(x\)がとり得る値の範囲として有界開区間\(N_{\varepsilon }\left(a\right) \)を採用するのではなく、それと関数\(f\)の定義域\(X\)の共通部分である\begin{equation*}N_{\varepsilon }\left( a\right) \cap X
\end{equation*}を採用するのはなぜでしょうか。その理由を理解するために、点\(a\in X\)が関数\(f\)の極小点であることの定義として、\begin{equation}\exists \varepsilon >0,\ \forall x\in N_{\varepsilon }\left( a\right)
:f\left( a\right) \leq f\left( x\right) \quad \cdots (1)
\end{equation}を採用した場合に何が起こるかを確認します。問題としている点\(a\)が区間上に定義された関数の定義域の端点である場合(先の例の点\(a\)のように)には、そもそも点\(a\)を中心とする開近傍\(N_{\varepsilon }\left( a\right) \)のすべての点において\(f\)が定義されていることにならないため、\(\left( 1\right) \)は意味をなさなくなってします。一方、点\(a\in X\)が関数\(f\)の極大点であることの定義として、\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*}を採用すれば、関数\(f\)が\(N_{\varepsilon }\left( a\right) \cap X\)上のすべての点において定義されていることが保証されるため、点\(a\)が局所的な最小点であることを検討できます。

 

関数の最小値と極小値の関係

先の例から明らかであるように、関数の最小点は極小点でもあります。したがって、関数の最小値は極小値でもあります。

命題(関数の最小点は極小点)
関数\(f:\mathbb{R} \supset X\rightarrow \mathbb{R} \)が与えられたとき、点\(a\in X\)が\(X\)における\(f\)の最小点であるならば、点\(a\)は\(f\)の極小点でもある。
証明

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

先の例から明らかであるように、上の命題の逆は成立しません。つまり、関数の極小点は最小点であるとは限りません。したがって、関数の極小値は最小値であるとは限りません。

関数の最小点は存在しないものの、極小点が存在するような状況は起こり得ます。つまり、関数の最小値は存在しないものの、極小値が存在するような状況は起こり得るということです。以下の例より明らかです。

例(最小点が存在せず極小点が存在する場合)
有界な半閉区間上に定義された関数\(f:\mathbb{R} \supset (a,b]\rightarrow \mathbb{R} \)のグラフが下図で与えられています。

図:最小点は存在しないが極小点は存在するケース
図:最小点は存在しないが極小点は存在するケース

この関数\(f\)は定義域\((a,b]\)上で最小点を持たないため最小値は存在しません。\(f\)が点\(a\)において定義されていないからです。一方、点\(d,f\)はいずれも\(f\)の極小点であるため、\(f\left( d\right) \)および\(f\left( f\right) \)は極小値です。ちなみに、点\(c,e,b\)はいずれも\(f\)の最小点や極小点ではありません。

 

関数が極大値や極小値をとるための条件

関数が最大点や最小点を持たない場合においても、極大点や極小点が存在する状況は起こり得ることが明らかになりました。同時に、関数が最大点や最小点を持つ場合、それは必ず極大点や極小点であることが保証されます。したがって、関数の最大点や最小点を探す際には、その候補としてまずは極大点や極小点を特定するアプローチが有効です。微分可能な関数を対象とした場合、定義域の点が極大点や極小点であるための条件が知られています。以降ではそのような条件について学びます。

 

演習問題

問題(関数の極大値・極小値)
関数\(f:\mathbb{R} \supset \left[ 0,1\right] \rightarrow \mathbb{R} \)はそれぞれの\(x\in \left[ 0,1\right] \)に対して、\begin{equation*}f\left( x\right) =2x
\end{equation*}を定めるものとします。この関数\(f\)の\(\left[ 0,1\right]\)における極大点と極小点をそれぞれ求めてください。
解答を見る

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

関連知識

Mailで保存
Xで共有

質問とコメント

プレミアム会員専用コンテンツです

会員登録

有料のプレミアム会員であれば、質問やコメントの投稿と閲覧、プレミアムコンテンツ(命題の証明や演習問題とその解答)へのアクセスなどが可能になります。

ワイズのユーザーは年齢・性別・学歴・社会的立場などとは関係なく「学ぶ人」として対等であり、お互いを人格として尊重することが求められます。ユーザーが快適かつ安心して「学ぶ」ことに集中できる環境を整備するため、広告やスパム投稿、他のユーザーを貶めたり威圧する発言、学んでいる内容とは関係のない不毛な議論などはブロックすることになっています。詳細はガイドラインをご覧ください。

誤字脱字、リンク切れ、内容の誤りを発見した場合にはコメントに投稿するのではなく、以下のフォームからご連絡をお願い致します。

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

関数の最適化