WIIS

関数の最適化

多変数関数の最大化問題の解法

目次

関連知識

Mailで保存
Xで共有

多変数関数の最大化問題

多変数関数\(f:\mathbb{R} ^{n}\supset X\rightarrow \mathbb{R} \)の定義域上の点\(a\in X\)が最大点であることは、変数\(x\)が定義域\(X\)上の点をとり得る状況において、その中でも点\(a\in X\)において\(f\left( x\right) \)の値が最大化されること、すなわち、\begin{equation*}\exists a\in X,\ \forall x\in X:f\left( a\right) \geq f\left( x\right)
\end{equation*}が成り立つことを意味します。関数\(f\)の最大点を特定する問題を最大化問題(maximization problem)と呼び、これを、

$$\begin{array}{cl}
\max & f\left( x\right) \\
s.t. & x\in X
\end{array}$$で表記します。以下では最大化問題の解法を解説します。

関数\(f:\mathbb{R} ^{n}\supset X\rightarrow \mathbb{R} \)の定義域上の点\(a\in X\)が極大点であることとは、変数\(x\)がとり得る値の範囲を点\(a\)を中心とする何らかの近傍に制限した場合には点\(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*}が成り立つことを意味します。ただし、\(N_{\varepsilon }\left( a\right) \)は点\(a\)を中心とする半径\(\varepsilon \)の近傍であり、\begin{equation*}N_{\varepsilon }\left( a\right) =\left\{ x\in \mathbb{R} ^{n}\ |\ d\left( x,a\right) <\varepsilon \right\}
\end{equation*}です。\(d:\mathbb{R} ^{n}\times \mathbb{R} ^{n}\rightarrow \mathbb{R} \)はユークリッド距離関数です。

関数\(f\)の定義域上の点\(a\)が最大点である場合、その点\(a\)は極大点でもあります。つまり、極大点だけが最大点の候補となり得るため、すべての極大点を特定した上で、その中でも\(f\left( x\right) \)の値を最大化するものを特定すれば、それは最大点になります。したがって、最大化問題を解く準備として極大点をすべて特定する必要があります。そこで以下では、極大点を特定する方法を解説した上で、それを踏まえた上で最大点を特定する方法について解説します。

 

局所最大化のための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\)において偏微分可能であるということです。以下が具体例です。

例(極大点における勾配ベクトル)
関数\(f:\mathbb{R} ^{2}\rightarrow \mathbb{R} \)はそれぞれの\(\left( x,y\right) \in \mathbb{R} ^{2}\)に対して、\begin{equation*}f\left( x,y\right) =-x^{2}-y^{2}
\end{equation*}を定めるものとします。\(f\)のグラフは以下の通りです(図中の曲面)。

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

点\(\left( 0,0\right) \)は極大点であるため、変数\(\left( x,y\right) \)がとり得る値の範囲を点\(\left( 0,0\right) \)の周辺に限定したとき、\(f\left( x,y\right) \)の値は点\(\left( 0,0\right) \)において最大化されます。したがって、\(f\)のグラフの点\(\left( 0,0\right) \)における接平面は水平になるはずです(図中のメッシュ面)。\(f\)は点\(\left( 0,0\right) \)において偏微分可能であり、接平面の方程式は、\begin{eqnarray*}z &=&f\left( 0,0\right) +\nabla f\left( 0,0\right) \cdot \left(
x-0,y-0\right) \\
&=&f\left( 0,0\right) +\nabla f\left( 0,0\right) \cdot \left( x,y\right)
\end{eqnarray*}となります。一方、点\(\left( 0,0,f\left( 0,0\right) \right) \)を通る水平な平面の方程式は、\begin{equation*}z=f\left( 0,0\right)
\end{equation*}です。これらは等しいため、\begin{equation*}
\nabla f\left( 0,0\right) \cdot \left( x,y\right) =0
\end{equation*}すなわち、\begin{equation*}
\nabla f\left( 0,0\right) =\left( 0,0\right)
\end{equation*}という関係が成り立つことが予想されます。後に厳密に証明しますが、これは正しい予想です。

例(極大点における勾配ベクトル)
関数\(f:\mathbb{R} ^{2}\rightarrow \mathbb{R} \)はそれぞれの\(\left( x,y\right) \in \mathbb{R} ^{2}\)に対して、\begin{equation*}f\left( x,y\right) =1
\end{equation*}を定めるものとします。\(f\)のグラフは以下の通りです(図中の曲面)。

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

任意の点\(\left( a,b\right) \in \mathbb{R} ^{2}\)は極大点であるため、変数\(\left( x,y\right) \)がとり得る値の範囲を点\(\left( a,b\right) \)の周辺に限定したとき、\(f\left( x,y\right) \)の値は点\(\left(a,b\right) \)において最大化されます。したがって、\(f\)のグラフの点\(\left(a,b\right) \)における接平面は水平になるはずです(図中のメッシュ面)。\(f\)は点\(\left( a,b\right) \)において偏微分可能であり、接平面の方程式は、\begin{equation*}z=f\left( a,b\right) +\nabla f\left( a,b\right) \cdot \left( x-a,y-b\right)
\end{equation*}となります。一方、点\(\left( a,b,f\left( a,b\right) \right) \)を通る水平な平面の方程式は、\begin{equation*}z=f\left( a,b\right)
\end{equation*}です。これらは等しいため、\begin{equation*}
\nabla f\left( a,b\right) \cdot \left( x-a,y-b\right)
\end{equation*}すなわち、\begin{equation*}
\nabla f\left( a,b\right) =\left( 0,0\right)
\end{equation*}という関係が成り立つことが予想されます。後に厳密に証明しますが、これは正しい予想です。

多変数関数\(f\)が定義域上の点\(a\)において偏微分可能であり、なおかつそこでの勾配ベクトルがゼロベクトルである場合、すなわち\(\nabla f\left( a\right) =0\)が成り立つ場合には、そのような点\(a\)を関数\(f\)の停留点(stationary point)と呼びます。関数\(f\)の定義域上の内点\(a\)が極大点である場合には、その点\(a\)は\(f\)の停留点となります。これを局所最大化のための1階の必要条件(first order necessary condition for local maximizer)と呼びます。

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

証明

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

上の命題の逆は成立するとは限りません。つまり、関数\(f\)の定義域上の内点が局所最大化のための1階の必要条件を満たす場合、すなわち内点が停留点である場合、その点は極大点であるとは限りません。以下の例より明らかです。

例(停留点は極大点であるとは限らない)
関数\(f:\mathbb{R} ^{2}\rightarrow \mathbb{R} \)はそれぞれの\(\left( x,y\right) \in \mathbb{R} ^{2}\)に対して、\begin{equation*}f\left( x,y\right) =xy
\end{equation*}を定めるものとします。\(f\)のグラフは以下の通りです。

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

点\(\left( 0,0\right) \)は\(f\)の定義域\(\mathbb{R} ^{2}\)の内点であるとともに、\(f\)は点\(\left( 0,0\right) \)において偏微分可能です。点\(\left( 0,0\right) \)における勾配ベクトルは、\begin{eqnarray*}\nabla f\left( 0,0\right) &=&\left. \left( y,x\right) \right\vert _{\left(
x,y\right) =\left( 0,0\right) }\quad \because f\text{の定義} \\
&=&\left( 0,0\right)
\end{eqnarray*}となるため点\(\left( 0,0\right) \)は\(f\)の停留点です。一方、点\(\left( 0,0\right) \)は\(f\)の極大点ではありません。実際、\begin{equation*}f\left( 0,0\right) =0
\end{equation*}である一方で、点\(\left(0,0\right) \)の周辺の点\(\left( x,y\right) \)を任意に選んだとき、\(x\)と\(y\)が同符号ならば、\begin{equation*}f\left( x,y\right) >0=f\left( 0,0\right)
\end{equation*}が成り立ち、\(x\)と\(y\)が異符号ならば、\begin{equation*}f\left( x,y\right) <0=f\left( 0,0\right)
\end{equation*}となるからです。

 

局所最大化のための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}\)級であるということです。

\(C^{2}\)級であることは偏微分可能性を含意するため、局所最大化のための1階の必要条件より、この極大点\(a\)は停留点であることが保証されます。つまり、\begin{equation*}\nabla f\left( a\right) =0
\end{equation*}が成り立つということです。では、点\(a\)が極大点であることに由来する追加的な必要条件は存在するでしょうか。\(n=1\)の場合、すなわち\(f\)が1変数関数である場合には、\(f\)が定義域の内点\(a\)を中心とする近傍において\(C^{2}\)級であるとともに点\(a\)が極大点であるならば、\begin{equation}f^{\prime \prime }\left( a\right) \leq 0 \quad \cdots (1)
\end{equation}が成り立ちます。\(n\geq 2\)の場合、すなわち\(f\)が多変数関数である場合には、\(f\)が定義域の内点\(a\)を中心とする近傍において\(C^{2}\)級であるとともに点\(a\)が極大点であるならば、点\(a\)における\(f\)のヘッセ行列\(H_{f}\left( a\right) \)が半負定値になります。すなわち、\begin{equation}\forall h\in \mathbb{R} ^{n}\backslash \left\{ 0\right\} :h^{t}H_{f}\left( a\right) h\leq 0 \quad \cdots (2)
\end{equation}が成り立ちます。ただし、\begin{equation*}
H_{f}\left( a\right) =\begin{pmatrix}
f_{x_{1}x_{1}}^{\prime \prime }\left( a\right) & f_{x_{1}x_{2}}^{\prime
\prime }\left( a\right) & \cdots & f_{x_{1}x_{n}}^{\prime \prime }\left(
a\right) \\
f_{x_{2}x_{1}}^{\prime \prime }\left( a\right) & f_{x_{2}x_{2}}^{\prime
\prime }\left( a\right) & \cdots & f_{x_{2}x_{n}}^{\prime \prime }\left(
a\right) \\
\vdots & \vdots & \ddots & \vdots \\
f_{x_{n}x_{1}}^{\prime \prime }\left( a\right) & f_{x_{n}x_{2}}^{\prime
\prime }\left( a\right) & \cdots & f_{x_{n}x_{n}}^{\prime \prime }\left(
a\right)
\end{pmatrix}\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) \)の一般化になっています。

結論をまとめると、多変数関数\(f\)の定義域上の内点\(a\)が極大点であり、なおかつその点\(a\)の周辺の任意の点において\(f\)が\(C^{2}\)級である場合には、\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^{t}H_{f}\left( a\right) h\leq 0
\end{eqnarray*}がともに成り立ちます。これを局所最大化のための2階の必要条件(second order necessary condition for local maximizer)と呼びます。証明ではテイラーの定理を利用します。

命題(局所最大化のための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^{t}H_{f}\left( a\right) h\leq 0
\end{eqnarray*}がともに成り立つ。

証明

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

多変数関数\(f\)が\(C^{2}\)級である場合、そのヘッセ行列\(H_{f}\left( a\right) \)は対称行列になります。対称行列に関しては、それが半負定値であることと、その第\(k\)次の首座小行列の行列式の値に\(\left( -1\right) ^{k}\)をかけて得られる値が非負であることは必要十分であるため、先の命題中の条件\begin{equation*}\forall h\in \mathbb{R} ^{n}\backslash \left\{ 0\right\} :h^{t}H_{f}\left( a\right) h\leq 0
\end{equation*}は、以下の条件\begin{equation*}
\forall k\in \left\{ 1,\cdots ,n\right\} :\left( -1\right) ^{k}\det \left(
A_{k}\left( a\right) \right) \geq 0
\end{equation*}と必要十分です。ただし、\(A_{k}\left( a\right) \)はヘッセ行列\(H_{f}\left( a\right) \)の\(k\)次首座小行列式であり、具体的には、\begin{equation*}A_{k}\left( a\right) =\begin{pmatrix}
f_{x_{1}x_{1}}^{\prime \prime }\left( a\right) & f_{x_{1}x_{2}}^{\prime
\prime }\left( a\right) & \cdots & f_{x_{1}x_{k}}^{\prime \prime }\left(
a\right) \\
f_{x_{2}x_{1}}^{\prime \prime }\left( a\right) & f_{x_{2}x_{2}}^{\prime
\prime }\left( a\right) & \cdots & f_{x_{2}x_{k}}^{\prime \prime }\left(
a\right) \\
\vdots & \vdots & \ddots & \vdots \\
f_{x_{k}x_{1}}^{\prime \prime }\left( a\right) & f_{x_{k}x_{2}}^{\prime
\prime }\left( a\right) & \cdots & f_{x_{k}x_{k}}^{\prime \prime }\left(
a\right)
\end{pmatrix}\end{equation*}です。

例(局所最大化のための2階の必要条件)
関数\(f:\mathbb{R} ^{2}\rightarrow \mathbb{R} \)はそれぞれの\(\left( x,y\right) \in \mathbb{R} ^{2}\)に対して、\begin{equation*}f\left( x,y\right) =-x^{2}-y^{2}
\end{equation*}を定めるものとします。\(f\)は多変数の多項式関数であるため\(C^{2}\)級であり、点\(\left( x,y\right) \in \mathbb{R} ^{2}\)における勾配ベクトルは、\begin{equation*}\nabla f\left( x,y\right) =\left( \frac{\partial f\left( x,y\right) }{\partial x},\frac{\partial f\left( x,y\right) }{\partial y}\right) =\left(
-2x,-2y\right)
\end{equation*}であるため、点\(\left( 0,0\right) \)は最大化のための1階の必要条件を満たします。点\(\left( 0,0\right) \)におけるヘッセ行列は、\begin{equation*}H_{f}\left( 0,0\right) =\begin{pmatrix}
f_{xx}^{\prime \prime }\left( 0,0\right) & f_{xy}^{\prime \prime }\left(
0,0\right) \\
f_{yx}^{\prime \prime }\left( 0,0\right) & f_{yy}^{\prime \prime }\left(
0,0\right)
\end{pmatrix}=\begin{pmatrix}
-2 & 0 \\
0 & -2\end{pmatrix}\end{equation*}であり、首座小行列式の値は、\begin{eqnarray*}
-\det \left( A_{1}\left( 0,0\right) \right) &=&-\det \left( -2\right)
=2\geq 0 \\
\det \left( A_{2}\left( 0,0\right) \right) &=&\det
\begin{pmatrix}
-2 & 0 \\
0 & -2\end{pmatrix}=4\geq 0
\end{eqnarray*}を満たすため、点\(\left(0,0\right) \)は最大化のための2階の必要条件を満たします。

 

局所最大化のための2階の十分条件

関数の定義域の内点が極大点であるための必要条件が明らかになりました。関数が極大点であるような内点において偏微分可能である場合には局所最大化のための必要条件が成り立つため、関数が偏微分可能な内点の中から極大点を探す際には、局所最大化のための必要条件を満たす内点だけが候補になります。ただ、局所最大化のための必要条件を満たす内点の中には極大点ではないものが存在する可能性があります。では、関数の定義域の内点が極大点であるための十分条件を特定することはできるのでしょうか。以下の命題がこの問いに対する答えを与えます。これを局所最大化のための2階の十分条件(second order sufficient condition for local maximizer)と呼びます。証明ではテイラーの定理を利用します。

命題(局所最大化のための2階の必要条件)
関数\(f:\mathbb{R} ^{n}\supset X\rightarrow \mathbb{R} \)の定義域の内点\(a\in X^{i}\)を任意に選んだとき、\(f\)が点\(a\)を中心とする近傍において\(C^{2}\)級であるとともに、以下の条件\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^{t}H_{f}\left( a\right) h<0
\end{eqnarray*}がともに成り立つならば、点\(a\)は\(f\)の極大点である。
証明

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

多変数関数\(f\)が\(C^{2}\)級である場合、そのヘッセ行列\(H_{f}\left( a\right) \)は対称行列になります。対称行列に関しては、それが負定値であることと、その第\(k\)次の首座小行列の行列式の値に\(\left( -1\right) ^{k}\)をかけて得られる値が正であることは必要十分であるため、先の命題中の条件\begin{equation*}\forall h\in \mathbb{R} ^{n}\backslash \left\{ 0\right\} :h^{t}H_{f}\left( a\right) h<0
\end{equation*}は、以下の条件\begin{equation*}
\forall k\in \left\{ 1,\cdots ,n\right\} :\left( -1\right) ^{k}\det \left(
A_{k}\left( a\right) \right) >0
\end{equation*}と必要十分です。ただし、\(A_{k}\left( a\right) \)はヘッセ行列\(H_{f}\left( a\right) \)の\(k\)次首座小行列式であり、具体的には、\begin{equation*}A_{k}\left( a\right) =\begin{pmatrix}
f_{x_{1}x_{1}}^{\prime \prime }\left( a\right) & f_{x_{1}x_{2}}^{\prime
\prime }\left( a\right) & \cdots & f_{x_{1}x_{k}}^{\prime \prime }\left(
a\right) \\
f_{x_{2}x_{1}}^{\prime \prime }\left( a\right) & f_{x_{2}x_{2}}^{\prime
\prime }\left( a\right) & \cdots & f_{x_{2}x_{k}}^{\prime \prime }\left(
a\right) \\
\vdots & \vdots & \ddots & \vdots \\
f_{x_{k}x_{1}}^{\prime \prime }\left( a\right) & f_{x_{k}x_{2}}^{\prime
\prime }\left( a\right) & \cdots & f_{x_{k}x_{k}}^{\prime \prime }\left(
a\right)
\end{pmatrix}\end{equation*}です。

例(局所最大化のための2階の十分条件)
関数\(f:\mathbb{R} ^{2}\rightarrow \mathbb{R} \)はそれぞれの\(\left( x,y\right) \in \mathbb{R} ^{2}\)に対して、\begin{equation*}f\left( x,y\right) =-x^{2}-y^{2}
\end{equation*}を定めるものとします。\(f\)は多変数の多項式関数であるため\(C^{2}\)級であり、点\(\left( x,y\right) \in \mathbb{R} ^{2}\)における勾配ベクトルは、\begin{equation*}\nabla f\left( x,y\right) =\left( \frac{\partial f\left( x,y\right) }{\partial x},\frac{\partial f\left( x,y\right) }{\partial y}\right) =\left(
-2x,-2y\right)
\end{equation*}であるため、点\(\left( 0,0\right) \)は1階の条件を満たします。点\(\left( 0,0\right) \)におけるヘッセ行列は、\begin{equation*}H_{f}\left( 0,0\right) =\begin{pmatrix}
f_{xx}^{\prime \prime }\left( 0,0\right) & f_{xy}^{\prime \prime }\left(
0,0\right) \\
f_{yx}^{\prime \prime }\left( 0,0\right) & f_{yy}^{\prime \prime }\left(
0,0\right)
\end{pmatrix}=\begin{pmatrix}
-2 & 0 \\
0 & -2\end{pmatrix}\end{equation*}であり、首座小行列式の値は、\begin{eqnarray*}
-\det \left( A_{1}\left( 0,0\right) \right) &=&-\det \left( -2\right) =2>0
\\
\det \left( A_{2}\left( 0,0\right) \right) &=&\det
\begin{pmatrix}
-2 & 0 \\
0 & -2\end{pmatrix}=4>0
\end{eqnarray*}を満たすため、点\(\left(0,0\right) \)は最大化のための2階の十分条件を満たします。

 

最大化問題の解法

関数\(f\)の最大点は極大点でもあるため、極大点をすべて特定した上で、その中でも\(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) =\ln \left( x\right) +\ln \left( y\right)
\end{equation*}を定めるものとします。\(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 }\ln \left( x\right)
+\lim_{y\rightarrow \infty }\ln \left( y\right) \quad \because f\text{の定義} \\
&=&\left( +\infty \right) +\left( +\infty \right) \\
&=&+\infty
\end{eqnarray*}となるため、\(f\)は最大点を持ちません。

関数の最大点が存在することが確認できたら、極大点を特定する作業へ移ります。なぜなら、極大点だけが最大点の候補だからです。局所最大化のための十分条件を満たす内点は極大点ですが、局所最大化のための十分条件を満たさない一方で必要条件を満たす内点もまた極大点になり得ます。したがって、結局、局所最大化のための必要条件を満たす内点をすべて特定し、それらを最大点の候補とする必要があります。

局所最大化のための必要条件ないし十分条件は、関数が偏微分可能(または\(C^{2}\)級)な内点を対象とした条件であり、関数が偏微分可能ではない内点については何も言っていません。以下の例が示唆するように、関数が偏微分可能ではない内点もまた極大点となり得るため、そのようなすべての点も最大点の候補に加える必要があります。

例(関数が極大点において偏微分可能ではない場合)
関数\(f:\mathbb{R} ^{2}\rightarrow \mathbb{R} \)はそれぞれの\(\left( x,y\right) \in \mathbb{R} ^{2}\)に対して、\begin{equation*}f\left( x,y\right) =-x^{2}-y^{2}-\left\vert x\right\vert -\left\vert
y\right\vert
\end{equation*}を定めるものとします。点\(\left( 0,0\right) \)は\(f\)の定義域の内点であるとともに極大点でもありますが、\(f\)は点\(\left(0,0\right) \)において偏微分可能ではありません(演習問題)。したがって、点\(\left( 0,0\right) \)は局所最大化のための必要条件を満たしません。

これまでは関数の定義域の内点のみを対象とした議論を行ってきましたが、以下の例が示唆するように、関数の定義域の境界点が極大点になることもあります。したがって、関数の定義域が境界点を要素をとして持つ場合、そのようなすべての点も最大点の候補に加える必要があります。

例(境界点であるような極大点)
関数\(f:\mathbb{R} ^{2}\supset \left[ 0,1\right] \times \left[ 0,1\right] \rightarrow \mathbb{R} \)はそれぞれの\(\left( x,y\right) \in \left[ 0,1\right] \times \left[ 0,1\right] \)に対して、\begin{equation*}f\left( x,y\right) =x^{2}y-xy^{2}
\end{equation*}を定めるものとします。この関数\(f\)の定義域\(\left[ 0,1\right] \times \left[ 0,1\right] \)の内点には極大点は存在しない一方で、定義域の境界点である点\(\left( 1,\frac{1}{2}\right) \)は\(f\)の極大点です(演習問題)。

以上を踏まえると、関数の最大点を求めるためには以下の手順にしたがう必要があります。

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

特に、関数\(f\)の定義域\(X\)が\(\mathbb{R} \)上の開集合であるとともに、\(f\)が\(X\)上の任意の点において偏微分可能である場合には、関数\(f\)が偏微分可能ではない点や、関数\(f\)の定義域\(X\)に含まれる境界点は存在しないことが保証されるため、最大点を特定するためには以下の手順にしたがえばよいということになります。

  1. 関数\(f\)の最大点が存在することを確認する。
  2. 関数\(f\)の定義域\(X\)の点の中から、局所最大化のための必要条件を満たす点をすべて特定する。特に、その中でも局所最大化のための十分条件を満たす内点は極大点であることが確定する。
  3. 以上の点の中でも\(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^{2}-y^{2}+2x+4y+1
\end{equation*}を定めるものとします。最大点は存在しますか。存在する場合には具体的に求めてください。

解答を見る

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

問題(関数の最大点)
関数\(f:\mathbb{R} ^{2}\rightarrow \mathbb{R} \)はそれぞれの\(\left( x,y\right) \in \mathbb{R} ^{2}\)に対して、\begin{equation*}f\left( x,y\right) =x^{2}-2xy-y^{2}+10x-6y
\end{equation*}を定めるものとします。最大点は存在しますか。存在する場合には具体的に求めてください。

解答を見る

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

問題(関数の最大点)
関数\(f:\mathbb{R} ^{2}\rightarrow \mathbb{R} \)はそれぞれの\(\left( x,y\right) \in \mathbb{R} ^{2}\)に対して、\begin{equation*}f\left( x,y\right) =-x^{3}+xy-2y^{2}
\end{equation*}を定めるものとします。最大点は存在しますか。存在する場合には具体的に求めてください。

解答を見る

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

問題(関数の最大点)
関数\(f:\mathbb{R} ^{2}\supset \left[ -1,2\right] \times \left[ -1,2\right] \rightarrow \mathbb{R} \)はそれぞれの\(\left( x,y\right) \in \left[ -1,2\right] \times \left[ -1,2\right] \)に対して、\begin{equation*}f\left( x,y\right) =x^{3}+y^{3}-x-y
\end{equation*}を定めるものとします。最大点は存在しますか。存在する場合には具体的に求めてください。

解答を見る

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

問題(関数の最大点)
関数\(f:\mathbb{R} ^{2}\rightarrow \mathbb{R} \)はそれぞれの\(\left( x,y\right) \in \mathbb{R} ^{2}\)に対して、\begin{equation*}f\left( x,y\right) =e^{-\left( x^{2}+y^{2}\right) }
\end{equation*}を定めるものとします。最大点は存在しますか。存在する場合には具体的に求めてください。

解答を見る

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

関連知識

Mailで保存
Xで共有

質問とコメント

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

会員登録

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

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

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

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

関数の最適化