検索
Close this search box.

凸関数・凹関数

偏微分を用いた多変数の凸関数・凹関数の判定

Mailで保存
Xで共有

偏微分を用いた多変数の凸関数の判定

凸集合上に定義された多変数関数\(f:\mathbb{R} ^{n}\supset X\rightarrow \mathbb{R} \)が凸関数であることは、\begin{equation*}\forall \boldsymbol{x},\boldsymbol{y}\in X,\ \forall \lambda \in \left[ 0,1\right] :\lambda f\left( \boldsymbol{x}\right) +\left( 1-\lambda \right)
f\left( \boldsymbol{y}\right) \geq f\left( \lambda \boldsymbol{x}+\left(
1-\lambda \right) \boldsymbol{y}\right)
\end{equation*}が成り立つこととして定義されますが、以上の定義にもとづいて関数が凸であることを示す作業は煩雑になりがちです。多変数関数が偏微分可能である場合、それが凸関数であることを比較的容易に判定できます。順番に解説します。

凸集合上に定義された関数\(f:\mathbb{R} ^{n}\supset X\rightarrow \mathbb{R} \)が凸関数であるものとします。\(f\)の定義域である凸集合上の2つの点\(\boldsymbol{x},\boldsymbol{y}\in X\)を任意に選んだ上で、これらの点を端点とする閉じた線分\begin{equation*}\left[ \boldsymbol{x},\boldsymbol{y}\right] =\left\{ \lambda \boldsymbol{x}+\left( 1-\lambda \right) \boldsymbol{y}\in X\ |\ \lambda \in \left[ 0,1\right] \right\}
\end{equation*}をとります。その上で、それぞれの\(\lambda \in \left[0,1\right] \)に対して、\begin{equation*}f_{\boldsymbol{x},\boldsymbol{y}}\left( \lambda \right) =f\left( \lambda
\boldsymbol{x}+\left( 1-\lambda \right) \boldsymbol{y}\right)
\end{equation*}を値として定める1変数関数\begin{equation*}
f_{\boldsymbol{x},\boldsymbol{y}}:\mathbb{R} \supset \left[ 0,1\right] \rightarrow \mathbb{R} \end{equation*}を定義します。多変数関数\(f\)が凸関数であることは、任意の\(\boldsymbol{x},\boldsymbol{y}\in X\)に対して上のように定義される1変数関数\(f_{\boldsymbol{x},\boldsymbol{y}}\)がいずれも凸関数であることと必要十分です。

命題(凸関数の特徴づけ)
非空の凸集合上に定義された多変数関数\(f:\mathbb{R} ^{n}\supset X\rightarrow \mathbb{R} \)が与えられたとき、点\(\boldsymbol{x},\boldsymbol{y}\in X\)を任意に選んだ上で、それぞれの\(\lambda \in \left[ 0,1\right] \)に対して、\begin{equation*}f_{\boldsymbol{x},\boldsymbol{y}}\left( \lambda \right) =f\left( \lambda
\boldsymbol{x}+\left( 1-\lambda \right) \boldsymbol{y}\right)
\end{equation*}を定める1変数関数\(f_{\boldsymbol{x},\boldsymbol{y}}:\mathbb{R} \supset \left[ 0,1\right] \rightarrow \mathbb{R} \)を定義する。任意の\(\boldsymbol{x},\boldsymbol{y}\in X\)について\(f_{\boldsymbol{x},\boldsymbol{y}}\)が凸関数であることは、\(f\)が凸関数であるための必要十分条件である。
証明

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

多変数関数\(f:\mathbb{R} ^{n}\supset X\rightarrow \mathbb{R} \)が以下の3つの性質を満たすものとします。

1つ目の性質は、\(f\)の定義域\(X\)が非空の凸集合であるとともに\(\mathbb{R} ^{n}\)上の開集合であるということです。

2つ目の性質は、\(f\)が\(C^{1}\)級であるということです。つまり、\(f\)は定義域上の任意の点\(\boldsymbol{x}\in X\)において任意の変数\(x_{k}\) \(\left( k=1,\cdots ,n\right) \)に関して偏微分可能であるとともに、偏導関数\(f_{x_{k}}:\mathbb{R} ^{n}\supset X\rightarrow \mathbb{R} \)が連続です。

3つ目の性質は、\(f\)が凸関数であるということです。

\(n=2\)である場合、凸関数\(f\)のグラフはお椀型の曲面(もしくは平面部分を持つ)であるため、グラフ上の点を任意に選んだとき、そこでの接平面全体が\(f\)のグラフの下方に位置するはずです。つまり、\(f\)の定義域上の点\(\boldsymbol{x}\in X\)を任意に選んだとき、この点における\(f\)のグラフの接平面の方程式は、\begin{equation*}z=\nabla f\left( \boldsymbol{x}\right) \cdot \left( \boldsymbol{y}-\boldsymbol{x}\right) +f\left( \boldsymbol{x}\right)
\end{equation*}で与えられますが、\(f\)が凸関数である場合には、この接平面全体が\(f\)のグラフの下方にあること、すなわち、任意の\(\boldsymbol{y}\in X\)について、\begin{equation*}f\left( \boldsymbol{y}\right) \geq \nabla f\left( \boldsymbol{x}\right)
\cdot \left( \boldsymbol{y}-\boldsymbol{x}\right) +f\left( \boldsymbol{x}\right)
\end{equation*}が成り立つはずです。これは正しい主張です。しかも、逆の議論もまた成立します。証明では先に示した命題を利用します。

命題(連続微分可能な多変数の凸関数)
非空の凸な開集合上に定義された関数\(f:\mathbb{R} ^{n}\supset X\rightarrow \mathbb{R} \)が\(C^{1}\)級であるものとする。このとき、\begin{equation*}\forall \boldsymbol{x},\boldsymbol{y}\in X:f\left( \boldsymbol{y}\right)
\geq \nabla f\left( \boldsymbol{x}\right) \cdot \left( \boldsymbol{y}-\boldsymbol{x}\right) +f\left( \boldsymbol{x}\right)
\end{equation*}が成り立つことは、\(f\)が凸関数であるための必要十分条件である。
証明

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

以上の命題を踏まえると、多変数関数\(f\)が\(C^{2}\)級である場合には、\(f\)が凸関数であることを以下のように特徴づけられます。

命題(2階連続微分可能な多変数の凸関数)
非空の凸な開集合上に定義された関数\(f:\mathbb{R} ^{n}\supset X\rightarrow \mathbb{R} \)が\(C^{2}\)級であるものとする。このとき、任意の点\(\boldsymbol{x}\in X\)における\(f\)のヘッセ行列\(H_{f}\left( \boldsymbol{x}\right) \)が半正定値であることは、すなわち、\begin{equation*}\forall \boldsymbol{x}\in X,\ \forall h\in \mathbb{R} ^{n}\backslash \left\{ \boldsymbol{0}\right\} :h^{t}H_{f}\left( \boldsymbol{x}\right) h\geq 0
\end{equation*}が成り立つことは、\(f\)が凸関数であるための必要十分条件である。ただし、\begin{equation*}H_{f}\left( \boldsymbol{x}\right) =\begin{pmatrix}
f_{x_{1}x_{1}}^{\prime \prime }\left( \boldsymbol{x}\right) & \cdots &
f_{x_{1}x_{n}}^{\prime \prime }\left( \boldsymbol{x}\right) \\
\vdots & \ddots & \vdots \\
f_{x_{n}x_{1}}^{\prime \prime }\left( \boldsymbol{x}\right) & \cdots &
f_{x_{n}x_{n}}^{\prime \prime }\left( \boldsymbol{x}\right)
\end{pmatrix}=\begin{pmatrix}
\frac{\partial ^{2}f\left( \boldsymbol{x}\right) }{\partial x_{1}\partial
x_{1}} & \cdots & \frac{\partial ^{2}f\left( \boldsymbol{x}\right) }{\partial x_{n}\partial x_{1}} \\
\vdots & \ddots & \vdots \\
\frac{\partial ^{2}f\left( \boldsymbol{x}\right) }{\partial x_{1}\partial
x_{n}} & \cdots & \frac{\partial ^{2}f\left( \boldsymbol{x}\right) }{\partial x_{n}\partial x_{n}}\end{pmatrix}\end{equation*}である。

証明

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

多変数関数\(f\)が\(C^{2}\)級である場合、そのヘッセ行列\(H_{f}\left( \boldsymbol{x}\right) \)は対称行列になります。対称行列\(H_{f}\left( \boldsymbol{x}\right) \)に関しては以下の関係\begin{eqnarray*}H_{f}\left( \boldsymbol{x}\right) \text{は半正定値} &\Leftrightarrow &H_{f}\left( \boldsymbol{x}\right) \text{の固有値がすべて非負} \\
&\Leftrightarrow &H_{f}\left( \boldsymbol{x}\right) \text{のすべての主座小行列式が非負}
\end{eqnarray*}が成り立つため、固有値や主座小行列式の符号を観察することによって\(H_{f}\left( \boldsymbol{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}
\end{equation*}を定めるものとします。\(f\)の定義域\(\mathbb{R} ^{2}\)は非空の凸な開集合です。\(f\)は多変数の多項式関数であるため\(C^{2}\)級であり、点\(\left( x,y\right) \in \mathbb{R} ^{2}\)におけるヘッセ行列は、\begin{equation*}H_{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}
2 & 0 \\
0 & 2\end{pmatrix}\end{equation*}です。\(H_{f}\left( x,y\right) \)の1次の主座小行列式は、\begin{eqnarray*}\left\vert A_{1}\right\vert &=&\left\vert 2\right\vert =2\geq 0 \\
\left\vert A_{2}\right\vert &=&\left\vert 2\right\vert =2\geq 0
\end{eqnarray*}を満たし、2次の主座小行列式は、\begin{equation*}
\left\vert A_{1,2}\right\vert =\begin{vmatrix}
2 & 0 \\
0 & 2\end{vmatrix}=4\geq 0
\end{equation*}を満たすため\(H_{f}\left( x,y\right) \)は半正定値です。任意の点\(\left( x,y\right) \in \mathbb{R} ^{2}\)について同様であるため、先の命題より\(f\)は凸関数です。
例(多変数の凸関数)
関数\(f:\mathbb{R} ^{2}\rightarrow \mathbb{R} \)はそれぞれの\(\left( x,y\right) \in \mathbb{R} ^{2}\)に対して、\begin{equation*}f\left( x,y\right) =x+y
\end{equation*}を定めるものとします。\(f\)の定義域\(\mathbb{R} ^{2}\)は非空の凸な開集合です。\(f\)は多変数の多項式関数であるため\(C^{2}\)級であり、点\(\left( x,y\right) \in \mathbb{R} ^{2}\)におけるヘッセ行列は、\begin{equation*}H_{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}
0 & 0 \\
0 & 0\end{pmatrix}\end{equation*}です。\(H_{f}\left( x,y\right) \)の1次の主座小行列式は、\begin{eqnarray*}\left\vert A_{1}\right\vert &=&\left\vert 0\right\vert =0 \\
\left\vert A_{2}\right\vert &=&\left\vert 0\right\vert =0
\end{eqnarray*}を満たし、2次の主座小行列式は、\begin{equation*}
\left\vert A_{1,2}\right\vert =\begin{vmatrix}
0 & 0 \\
0 & 0\end{vmatrix}=0
\end{equation*}を満たすため\(H_{f}\left( x,y\right) \)は半正定値です。任意の点\(\left( x,y\right) \in \mathbb{R} ^{2}\)について同様であるため、先の命題より\(f\)は凸関数です。
例(多変数の凸関数)
関数\(f:\mathbb{R} ^{3}\rightarrow \mathbb{R} \)はそれぞれの\(\left( x,y,z\right) \in \mathbb{R} ^{3}\)に対して、\begin{equation*}f\left( x,y,z\right) =x^{2}+2y^{2}+3z^{2}+2xy+2xz
\end{equation*}を定めるものとします。\(f\)の定義域\(\mathbb{R} ^{3}\)は非空の凸な開集合です。\(f\)は多変数の多項式関数であるため\(C^{2}\)級であり、勾配ベクトル場\(\nabla f:\mathbb{R} ^{3}\rightarrow \mathbb{R} ^{3}\)はそれぞれの\(\left( x,y,z\right)\in \mathbb{R} ^{3}\)に対して、\begin{eqnarray*}\nabla f\left( x,y,z\right) &=&\left( \frac{\partial f\left( x,y,z\right) }{\partial x},\frac{\partial f\left( x,y,z\right) }{\partial y},\frac{\partial
f\left( x,y,z\right) }{\partial z}\right) \\
&=&\left( 2x+2y+2z,4y+2x,6z+2x\right)
\end{eqnarray*}を定め、ヘッセ行列関数\(H_{f}:\mathbb{R} ^{3}\rightarrow M_{3,3}\left( \mathbb{R} \right) \)はそれぞれの点\(\left(x,y,z\right) \in \mathbb{R} ^{3}\)に対して、\begin{eqnarray*}H_{f}\left( x,y,z\right) &=&\begin{pmatrix}
f_{xx}^{\prime \prime }\left( x,y,z\right) & f_{xy}^{\prime \prime }\left(
x,y,z\right) & f_{xz}^{\prime \prime }\left( x,y,z\right) \\
f_{yx}^{\prime \prime }\left( x,y,z\right) & f_{yy}^{\prime \prime }\left(
x,y,z\right) & f_{yz}^{\prime \prime }\left( x,y,z\right) \\
f_{zx}^{\prime \prime }\left( x,y,z\right) & f_{zy}^{\prime \prime }\left(
x,y,z\right) & f_{zz}^{\prime \prime }\left( x,y,z\right)
\end{pmatrix}
\\
&=&\begin{pmatrix}
2 & 2 & 2 \\
2 & 4 & 0 \\
2 & 0 & 6\end{pmatrix}\end{eqnarray*}を定めます。\(H_{f}\left( x,y,z\right) \)の1次の主座小行列式は、\begin{eqnarray*}\left\vert A_{1}\right\vert &=&\left\vert 2\right\vert =2\geq 0 \\
\left\vert A_{2}\right\vert &=&\left\vert 4\right\vert =4\geq 0 \\
\left\vert A_{3}\right\vert &=&\left\vert 6\right\vert =6\geq 0
\end{eqnarray*}を満たし、2次の主座小行列式は、\begin{eqnarray*}
\left\vert A_{1,2}\right\vert &=&\begin{vmatrix}
2 & 2 \\
2 & 4\end{vmatrix}=4\geq 0 \\
\left\vert A_{2,3}\right\vert &=&\begin{vmatrix}
4 & 0 \\
0 & 6\end{vmatrix}=24\geq 0 \\
\left\vert A_{1,3}\right\vert &=&\begin{vmatrix}
2 & 2 \\
2 & 6\end{vmatrix}=8\geq 0
\end{eqnarray*}を満たし、3次の主座小行列式は、\begin{equation*}
\left\vert A_{1,2,3}\right\vert =\begin{vmatrix}
2 & 2 & 2 \\
2 & 4 & 0 \\
2 & 0 & 6\end{vmatrix}=8\geq 0
\end{equation*}を満たすため\(H_{f}\left( x,y,z\right) \)は半正定値です。任意の点\(\left( x,y,z\right) \in \mathbb{R} ^{3}\)について同様であるため、先の命題より\(f\)は凸関数です。

先の命題は与えられた関数が凸であるための必要十分条件を与えているため、関数が凸ではないことを示す際にも有用です。具体的には、非空の凸な開集合上に定義された関数\(f:\mathbb{R} ^{n}\supset X\rightarrow \mathbb{R} \)が\(C^{2}\)級である一方で、少なくとも1つの点\(\boldsymbol{x}\in X\)について、ヘッセ行列\(H_{f}\left( \boldsymbol{x}\right) \)の少なくとも1つの主座小行列式の値が負である場合、\(f\)は凸関数ではありません。

例(多変数の非凸関数)
関数\(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\)の定義域\(\mathbb{R} ^{2}\)は非空の凸な開集合です。点\(\left( x,y\right) \in \mathbb{R} ^{2}\)におけるヘッセ行列は、\begin{equation*}H_{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}
0 & 1 \\
1 & 0\end{pmatrix}\end{equation*}ですが、\begin{equation*}
\left\vert A_{1,2}\right\vert =\begin{vmatrix}
0 & 1 \\
1 & 0\end{vmatrix}=-1<0
\end{equation*}が成り立つため、先の命題より\(f\)は凸関数ではありません。

 

偏微分を用いた多変数の凹関数の判定

凸集合上に定義された多変数関数\(f:\mathbb{R} ^{n}\supset X\rightarrow \mathbb{R} \)が凹関数であることは、\begin{equation*}\forall \boldsymbol{x},\boldsymbol{y}\in X,\ \forall \lambda \in \left[ 0,1\right] :\lambda f\left( \boldsymbol{x}\right) +\left( 1-\lambda \right)
f\left( \boldsymbol{y}\right) \leq f\left( \lambda \boldsymbol{x}+\left(
1-\lambda \right) \boldsymbol{y}\right)
\end{equation*}が成り立つこととして定義されます。凸関数に関する先の議論において不等号の向きを逆にすればそのまま凹関数に関する議論になります。したがって、偏微分可能な関数が凹関数であることを以下のような形で特徴づけられます。

命題(凹関数の特徴づけ)
非空の凸集合上に定義された多変数関数\(f:\mathbb{R} ^{n}\supset X\rightarrow \mathbb{R} \)が与えられたとき、点\(\boldsymbol{x},\boldsymbol{y}\in X\)を任意に選んだ上で、それぞれの\(\lambda \in \left[ 0,1\right] \)に対して、\begin{equation*}f_{\boldsymbol{x},\boldsymbol{y}}\left( \lambda \right) =f\left( \lambda
\boldsymbol{x}+\left( 1-\lambda \right) \boldsymbol{y}\right)
\end{equation*}を定める1変数関数\(f_{\boldsymbol{x},\boldsymbol{y}}:\mathbb{R} \supset \left[ 0,1\right] \rightarrow \mathbb{R} \)を定義する。任意の\(\boldsymbol{x},\boldsymbol{y}\in X\)について\(f_{\boldsymbol{x},\boldsymbol{y}}\)が凹関数であることは、\(f\)が凹関数であるための必要十分条件である。

多変数関数\(f:\mathbb{R} ^{n}\supset X\rightarrow \mathbb{R} \)が以下の3つの性質を満たすものとします。

1つ目の性質は、\(f\)の定義域\(X\)が非空の凸集合であるとともに\(\mathbb{R} ^{n}\)上の開集合であるということです。

2つ目の性質は、\(f\)が\(C^{1}\)級であるということです。つまり、\(f\)は定義域上の任意の点\(\boldsymbol{x}\in X\)において任意の変数\(x_{k}\) \(\left( k=1,\cdots ,n\right) \)に関して偏微分可能であるとともに、偏導関数\(f_{x_{k}}:\mathbb{R} ^{n}\supset X\rightarrow \mathbb{R} \)が連続です。

3つ目の性質は、\(f\)が凹関数であるということです。

以上の条件のもと、先の命題より以下が導かれます。

命題(連続微分可能な多変数の凹関数)
非空の凸な開集合上に定義された関数\(f:\mathbb{R} ^{n}\supset X\rightarrow \mathbb{R} \)が\(C^{1}\)級であるものとする。このとき、\begin{equation*}\forall \boldsymbol{x},\boldsymbol{y}\in X:f\left( \boldsymbol{y}\right)
\leq \nabla f\left( \boldsymbol{x}\right) \cdot \left( \boldsymbol{y}-\boldsymbol{x}\right) +f\left( \boldsymbol{x}\right)
\end{equation*}が成り立つことは、\(f\)が凹関数であるための必要十分条件である。

以上の命題を踏まえると、多変数関数\(f\)が\(C^{2}\)級である場合には、\(f\)が凹関数であることを以下のように特徴づけられます。

命題(2階連続微分可能な多変数の凹関数)
非空の凸な開集合上に定義された関数\(f:\mathbb{R} ^{n}\supset X\rightarrow \mathbb{R} \)が\(C^{2}\)級であるものとする。このとき、任意の点\(\boldsymbol{x}\in X\)における\(f\)のヘッセ行列\(H_{f}\left( \boldsymbol{x}\right) \)が半負定値であることは、すなわち、\begin{equation*}\forall \boldsymbol{x}\in X,\ \forall \boldsymbol{h}\in \mathbb{R} ^{n}\backslash \left\{ \boldsymbol{0}\right\} :\boldsymbol{h}^{t}H_{f}\left(
\boldsymbol{x}\right) \boldsymbol{h}\leq 0
\end{equation*}が成り立つことは、\(f\)が凹関数であるための必要十分条件である。ただし、\begin{equation*}H_{f}\left( \boldsymbol{x}\right) =\begin{pmatrix}
f_{x_{1}x_{1}}^{\prime \prime }\left( \boldsymbol{x}\right) & \cdots &
f_{x_{1}x_{n}}^{\prime \prime }\left( \boldsymbol{x}\right) \\
\vdots & \ddots & \vdots \\
f_{x_{n}x_{1}}^{\prime \prime }\left( \boldsymbol{x}\right) & \cdots &
f_{x_{n}x_{n}}^{\prime \prime }\left( \boldsymbol{x}\right)
\end{pmatrix}=\begin{pmatrix}
\frac{\partial ^{2}f\left( \boldsymbol{x}\right) }{\partial x_{1}\partial
x_{1}} & \cdots & \frac{\partial ^{2}f\left( \boldsymbol{x}\right) }{\partial x_{n}\partial x_{1}} \\
\vdots & \ddots & \vdots \\
\frac{\partial ^{2}f\left( \boldsymbol{x}\right) }{\partial x_{1}\partial
x_{n}} & \cdots & \frac{\partial ^{2}f\left( \boldsymbol{x}\right) }{\partial x_{n}\partial x_{n}}\end{pmatrix}\end{equation*}である。

多変数関数\(f\)が\(C^{2}\)級である場合、そのヘッセ行列\(H_{f}\left( \boldsymbol{x}\right) \)は対称行列になります。対称行列\(H_{f}\left( \boldsymbol{x}\right) \)に関しては以下の関係\begin{eqnarray*}H_{f}\left( \boldsymbol{x}\right) \text{は半負定値} &\Leftrightarrow &H_{f}\left( \boldsymbol{x}\right) \text{の固有値がすべて非正} \\
&\Leftrightarrow &\left\{
\begin{array}{l}
H_{f}\left( \boldsymbol{x}\right) \text{のすべての奇数次の主座小行列式が非正}\wedge \\
H_{f}\left( \boldsymbol{x}\right) \text{のすべての偶数次の主座小行列式が非負}\end{array}\right.
\end{eqnarray*}が成り立つため、固有値や主座小行列式の符号を観察することによって\(H_{f}\left( \boldsymbol{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}
\end{equation*}を定めるものとします。\(f\)の定義域\(\mathbb{R} ^{2}\)は凸集合です。\(f\)は多変数の多項式関数であるため\(C^{2}\)級であり、点\(\left( x,y\right) \in \mathbb{R} ^{2}\)におけるヘッセ行列は、\begin{equation*}H_{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}
-2 & 0 \\
0 & -2\end{pmatrix}\end{equation*}です。\(H_{f}\left( x,y\right) \)の1次の主座小行列式については、\begin{eqnarray*}\left\vert A_{1}\right\vert &=&\left\vert -2\right\vert =-2\leq 0 \\
\left\vert A_{2}\right\vert &=&\left\vert -2\right\vert =-2\leq 0
\end{eqnarray*}が成り立ち、2次の主座小行列式については、\begin{equation*}
\left\vert A_{1,2}\right\vert =\begin{vmatrix}
-2 & 0 \\
0 & -2\end{vmatrix}=4\geq 0
\end{equation*}が成り立つため\(H_{f}\left(x,y\right) \)は半負定値です。任意の点\(\left( x,y\right) \in \mathbb{R} ^{2}\)について同様であるため、先の命題より\(f\)は凹関数です。
例(多変数の凹関数)
関数\(f:\mathbb{R} ^{2}\rightarrow \mathbb{R} \)はそれぞれの\(\left( x,y\right) \in \mathbb{R} ^{2}\)に対して、\begin{equation*}f\left( x,y\right) =x+y
\end{equation*}を定めるものとします。\(f\)の定義域\(\mathbb{R} ^{2}\)は凸集合です。\(f\)は多変数の多項式関数であるため\(C^{2}\)級であり、点\(\left( x,y\right) \in \mathbb{R} ^{2}\)におけるヘッセ行列は、\begin{equation*}H_{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}
0 & 0 \\
0 & 0\end{pmatrix}\end{equation*}です。\(H_{f}\left( x,y\right) \)の1次の主座小行列式については、\begin{eqnarray*}\left\vert A_{1}\right\vert &=&\left\vert 0\right\vert =0 \\
\left\vert A_{2}\right\vert &=&\left\vert 0\right\vert =0
\end{eqnarray*}が成り立ち、2次の主座小行列式については、\begin{equation*}
\left\vert A_{1,2}\right\vert =\begin{vmatrix}
0 & 0 \\
0 & 0\end{vmatrix}=0
\end{equation*}が成り立つため\(H_{f}\left(x,y\right) \)は半負定値です。任意の点\(\left( x,y\right) \in \mathbb{R} ^{2}\)について同様であるため、先の命題より\(f\)は凹関数です。
例(多変数の凹関数)
関数\(f:\mathbb{R} ^{3}\rightarrow \mathbb{R} \)はそれぞれの\(\left( x,y,z\right) \in \mathbb{R} ^{3}\)に対して、\begin{equation*}f\left( x,y,z\right) =-x^{2}-2y^{2}-3z^{2}-2xy-2xz
\end{equation*}を定めるものとします。\(f\)の定義域\(\mathbb{R} ^{3}\)は非空の凸な開集合です。\(f\)は多変数の多項式関数であるため\(C^{2}\)級であり、勾配ベクトル場\(\nabla f:\mathbb{R} ^{3}\rightarrow \mathbb{R} ^{3}\)はそれぞれの\(\left( x,y,z\right)\in \mathbb{R} ^{3}\)に対して、\begin{eqnarray*}\nabla f\left( x,y,z\right) &=&\left( \frac{\partial f\left( x,y,z\right) }{\partial x},\frac{\partial f\left( x,y,z\right) }{\partial y},\frac{\partial
f\left( x,y,z\right) }{\partial z}\right) \\
&=&\left( -2x-2y-2z,-4y-2x,-6z-2x\right)
\end{eqnarray*}を定め、ヘッセ行列関数\(H_{f}:\mathbb{R} ^{3}\rightarrow M_{3,3}\left( \mathbb{R} \right) \)はそれぞれの点\(\left(x,y,z\right) \in \mathbb{R} ^{3}\)に対して、\begin{eqnarray*}H_{f}\left( x,y,z\right) &=&\begin{pmatrix}
f_{xx}^{\prime \prime }\left( x,y,z\right) & f_{xy}^{\prime \prime }\left(
x,y,z\right) & f_{xz}^{\prime \prime }\left( x,y,z\right) \\
f_{yx}^{\prime \prime }\left( x,y,z\right) & f_{yy}^{\prime \prime }\left(
x,y,z\right) & f_{yz}^{\prime \prime }\left( x,y,z\right) \\
f_{zx}^{\prime \prime }\left( x,y,z\right) & f_{zy}^{\prime \prime }\left(
x,y,z\right) & f_{zz}^{\prime \prime }\left( x,y,z\right)
\end{pmatrix}
\\
&=&\begin{pmatrix}
-2 & -2 & -2 \\
-2 & -4 & 0 \\
-2 & 0 & -6\end{pmatrix}\end{eqnarray*}を定めます。\(H_{f}\left( x,y,z\right) \)の1次の主座小行列式については、\begin{eqnarray*}\left\vert A_{1}\right\vert &=&\left\vert -2\right\vert =-2\leq 0 \\
\left\vert A_{2}\right\vert &=&\left\vert -4\right\vert =-4\leq 0 \\
\left\vert A_{3}\right\vert &=&\left\vert -6\right\vert =-6\leq 0
\end{eqnarray*}が成り立ち、2次の主座小行列式については、\begin{eqnarray*}
\left\vert A_{1,2}\right\vert &=&\begin{vmatrix}
-2 & -2 \\
-2 & -4\end{vmatrix}=4\geq 0 \\
\left\vert A_{2,3}\right\vert &=&\begin{vmatrix}
-4 & 0 \\
0 & -6\end{vmatrix}=24\geq 0 \\
\left\vert A_{1,3}\right\vert &=&\begin{vmatrix}
-2 & -2 \\
-2 & -6\end{vmatrix}=8\geq 0
\end{eqnarray*}が成り立ち、3次の主座小行列式については、\begin{equation*}
\left\vert A_{1,2,3}\right\vert =\begin{vmatrix}
-2 & -2 & -2 \\
-2 & -4 & 0 \\
-2 & 0 & -6\end{vmatrix}=-8\leq 0
\end{equation*}が成り立つため\(H_{f}\left(x,y,z\right) \)は半負定値です。任意の点\(\left( x,y,z\right) \in \mathbb{R} ^{3}\)について同様であるため、先の命題より\(f\)は凹関数です。

先の命題は与えられた関数が凹であるための必要十分条件を与えているため、関数が凹ではないことを示す際にも有用です。具体的には、非空の凸な開集合上に定義された関数\(f:\mathbb{R} ^{n}\supset X\rightarrow \mathbb{R} \)が\(C^{2}\)級である一方で、少なくとも1つの点\(\boldsymbol{x}\in X\)について、ヘッセ行列\(H_{f}\left( \boldsymbol{x}\right) \)の少なくとも1つの奇数次の主座小行列式の値が正であるか、少なくとも1つの偶数次の主座小行列式の値が負である場合、\(f\)は凹関数ではありません。

例(多変数の非凹関数)
関数\(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\)の定義域\(\mathbb{R} ^{2}\)は非空の凸な開集合です。点\(\left( x,y\right) \in \mathbb{R} ^{2}\)におけるヘッセ行列は、\begin{equation*}H_{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}
0 & 1 \\
1 & 0\end{pmatrix}\end{equation*}ですが、2次の主座小行列式について、\begin{equation*}
\left\vert A_{1,2}\right\vert =\begin{vmatrix}
0 & 1 \\
1 & 0\end{vmatrix}=-1<0
\end{equation*}が成り立つため、先の命題より\(f\)は凹関数ではありません。

 

演習問題

問題(座標関数)
関数\(f:\mathbb{R} ^{2}\rightarrow \mathbb{R} \)はそれぞれの\(\left( x,y\right) \in \mathbb{R} ^{2}\)に対して、\begin{equation*}f\left( x,y\right) =x
\end{equation*}を定めるものとします。\(f\)は凸関数、凹関数、どちらでもない、のどれでしょうか。
解答を見る

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

問題(アフィン関数)
関数\(f:\mathbb{R} ^{n}\rightarrow \mathbb{R} \)がそれぞれの\(\boldsymbol{x}\in \mathbb{R} ^{n}\)に対して定める値が、点\(\boldsymbol{a}\in \mathbb{R} ^{n}\)および実数\(b\in \mathbb{R} \)を用いて、\begin{eqnarray*}f\left( \boldsymbol{x}\right) &=&\boldsymbol{a}\cdot \boldsymbol{x}+b \\
&=&a_{1}x_{1}+\cdots +a_{n}x_{n}+b
\end{eqnarray*}と表されるものとします。\(f\)は凸関数、凹関数、どちらでもない、のどれでしょうか。
解答を見る

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

問題(多変数の凸関数・凹関数)
関数\(f:\mathbb{R} ^{2}\rightarrow \mathbb{R} \)はそれぞれの\(\left( x,y\right) \in \mathbb{R} ^{2}\)に対して、\begin{equation*}f\left( x,y\right) =x+y-e^{x}-e^{x+y}
\end{equation*}を定めるものとします。\(f\)は凸関数、凹関数、どちらでもない、のどれでしょうか。
解答を見る

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

問題(多変数の凸関数・凹関数)
関数\(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\)は凸関数、凹関数、どちらでもない、のどれでしょうか。
解答を見る

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

問題(多変数の凸関数・凹関数)
関数\(f:\mathbb{R} ^{3}\rightarrow \mathbb{R} \)はそれぞれの\(\left( x,y,z\right) \in \mathbb{R} ^{3}\)に対して、\begin{equation*}f\left( x,y,z\right) =x^{2}+y^{2}+3z^{2}-xy+2xz+yz
\end{equation*}を定めるものとします。\(f\)は凸関数、凹関数、どちらでもない、のどれでしょうか。
解答を見る

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

関連知識

Mailで保存
Xで共有

質問とコメント

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

会員登録

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

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

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

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

凸関数・凹関数