WIIS

凸関数・凹関数

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

目次

Twitter
Mailで保存

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

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

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

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

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

多変数関数\(f:\mathbb{R} ^{n}\supset X\rightarrow \mathbb{R} \)が以下の3つの性質を満たすものとします。1つ目の性質は、\(f\)の定義域\(X\)が非空の凸集合であるとともに\(\mathbb{R} ^{n}\)上の開集合であるということです。2つ目の性質は、\(f\)が\(C^{1}\)級であるということです。つまり、\(f\)は定義域上の任意の点\(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\)の定義域上の点\(x\in X\)を任意に選んだとき、この点における\(f\)のグラフの接平面の方程式は、\begin{equation*}z=\nabla f\left( x\right) \cdot \left( y-x\right) +f\left( x\right)
\end{equation*}で与えられますが、\(f\)が凸関数である場合には、この接平面全体が\(f\)のグラフの下方にあること、すなわち、任意の\(y\in X\)について、\begin{equation*}f\left( y\right) \geq \nabla f\left( x\right) \cdot \left( y-x\right)
+f\left( x\right)
\end{equation*}が成り立つはずです。これは正しい主張です。しかも、逆の議論もまた成立します。証明では先に示した命題を利用します。

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

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

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

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

証明

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

多変数関数\(f\)が\(C^{2}\)級である場合、そのヘッセ行列\(H_{f}\left( x\right) \)は対称行列になります。対称行列に関しては、それが半正定値であることと、その任意の首座小行列の行列式の値が非負であることは必要十分であるため、先の命題を以下のように言い換えることができます。

命題(2階連続微分可能な多変数の凸関数)
非空の凸な開集合上に定義された関数\(f:\mathbb{R} ^{n}\supset X\rightarrow \mathbb{R} \)が\(C^{2}\)級であるものとする。このとき、\begin{equation*}\forall x\in X,\ \forall k\in \left\{ 1,\cdots ,n\right\} :\det \left(
A_{k}\left( x\right) \right) \geq 0
\end{equation*}が成り立つことは、\(f\)が凸関数であるための必要十分条件である。ただし、\(A_{k}\left( x\right) \)は\(f\)の点\(x\)におけるヘッセ行列\begin{equation*}H_{f}\left( x\right) =\begin{pmatrix}
f_{x_{1}x_{1}}^{\prime \prime }\left( x\right) & f_{x_{1}x_{2}}^{\prime
\prime }\left( x\right) & \cdots & f_{x_{1}x_{n}}^{\prime \prime }\left(
x\right) \\
f_{x_{2}x_{1}}^{\prime \prime }\left( x\right) & f_{x_{2}x_{2}}^{\prime
\prime }\left( x\right) & \cdots & f_{x_{2}x_{n}}^{\prime \prime }\left(
x\right) \\
\vdots & \vdots & \ddots & \vdots \\
f_{x_{n}x_{1}}^{\prime \prime }\left( x\right) & f_{x_{n}x_{2}}^{\prime
\prime }\left( x\right) & \cdots & f_{x_{n}x_{n}}^{\prime \prime }\left(
x\right)
\end{pmatrix}\end{equation*}の\(k\)次首座小行列式であり、具体的には、\begin{equation*}A_{k}\left( x\right) =\begin{pmatrix}
f_{x_{1}x_{1}}^{\prime \prime }\left( x\right) & f_{x_{1}x_{2}}^{\prime
\prime }\left( x\right) & \cdots & f_{x_{1}x_{k}}^{\prime \prime }\left(
x\right) \\
f_{x_{2}x_{1}}^{\prime \prime }\left( x\right) & f_{x_{2}x_{2}}^{\prime
\prime }\left( x\right) & \cdots & f_{x_{2}x_{k}}^{\prime \prime }\left(
x\right) \\
\vdots & \vdots & \ddots & \vdots \\
f_{x_{k}x_{1}}^{\prime \prime }\left( x\right) & f_{x_{k}x_{2}}^{\prime
\prime }\left( x\right) & \cdots & f_{x_{k}x_{k}}^{\prime \prime }\left(
x\right)
\end{pmatrix}\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}+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^{\prime \prime }_{xx}\left( x,y\right) & f^{\prime \prime }_{xy}\left( x,y\right) \\
f^{\prime \prime }_{yx}\left( x,y\right) & f^{\prime \prime }_{yy}\left( x,y\right)
\end{pmatrix}=\begin{pmatrix}
2 & 0 \\
0 & 2\end{pmatrix}\end{equation*}です。首座小行列式の値は、\begin{eqnarray*}
\det \left( A_{1}\left( x,y\right) \right) &=&\det \left( 2\right) =2\geq 0
\\
\det \left( A_{2}\left( x,y\right) \right) &=&\det
\begin{pmatrix}
2 & 0 \\
0 & 2\end{pmatrix}=4\geq 0
\end{eqnarray*}を満たすため、\(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*}を定めます。首座小行列式の値は、\begin{eqnarray*}
\det \left( A_{1}\left( x,y,z\right) \right) &=&\det \left( 2\right) =2\geq
0 \\
\det \left( A_{2}\left( x,y,z\right) \right) &=&\det
\begin{pmatrix}
2 & 2 \\
2 & 4\end{pmatrix}=4\geq 0 \\
\det \left( A_{3}\left( x,y,z\right) \right) &=&\det
\begin{pmatrix}
2 & 2 & 2 \\
2 & 4 & 0 \\
2 & 0 & 6\end{pmatrix}=8\geq 0
\end{eqnarray*}を満たすため、\(f\)は凸関数です。

先の命題は与えられた関数が凸であるための必要十分条件を与えているため、関数が凸ではないことを示す際にも有用です。具体的には、非空の凸な開集合上に定義された関数\(f:\mathbb{R} ^{n}\supset X\rightarrow \mathbb{R} \)が\(C^{2}\)級である一方で、\begin{equation*}\exists x\in X,\ \exists k\in \left\{ 1,\cdots ,n\right\} :\det \left(
A_{k}\left( x\right) \right) <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) =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^{\prime \prime }_{xx}\left( x,y\right) & f^{\prime \prime }_{xy}\left( x,y\right) \\
f^{\prime \prime }_{yx}\left( x,y\right) & f^{\prime \prime }_{yy}\left( x,y\right)
\end{pmatrix}=\begin{pmatrix}
0 & 1 \\
1 & 0\end{pmatrix}\end{equation*}ですが、\begin{equation*}
\det \left( A_{2}\left( x,y\right) \right) =\det
\begin{pmatrix}
0 & 1 \\
1 & 0\end{pmatrix}=-1<0
\end{equation*}が成り立つため、\(f\)は凸関数ではありません。

 

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

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

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

多変数関数\(f:\mathbb{R} ^{n}\supset X\rightarrow \mathbb{R} \)が以下の3つの性質を満たすものとします。1つ目の性質は、\(f\)の定義域\(X\)が非空の凸集合であるとともに\(\mathbb{R} ^{n}\)上の開集合であるということです。2つ目の性質は、\(f\)が\(C^{1}\)級であるということです。つまり、\(f\)は定義域上の任意の点\(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 x,y\in X:f\left( y\right) \leq \nabla f\left( x\right) \cdot \left(
y-x\right) +f\left( x\right)
\end{equation*}が成り立つことは、\(f\)が凹関数であるための必要十分条件である。

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

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

多変数関数\(f\)が\(C^{2}\)級である場合、そのヘッセ行列\(H_{f}\left( x\right) \)は対称行列になります。対称行列に関しては、それが半負定値であることと、その第\(k\)次の首座小行列の行列式の値に\(\left( -1\right) ^{k}\)をかけて得られる値が非負であることは必要十分であるため、先の命題を以下のように言い換えることができます。

命題(2階連続微分可能な多変数の凹関数)
非空の凸な開集合上に定義された関数\(f:\mathbb{R} ^{n}\supset X\rightarrow \mathbb{R} \)が\(C^{2}\)級であるものとする。このとき、\begin{equation*}\forall x\in X,\ \forall k\in \left\{ 1,\cdots ,n\right\} :\left( -1\right)
^{k}\det \left( A_{k}\left( x\right) \right) \geq 0
\end{equation*}が成り立つことは、\(f\)が凹関数であるための必要十分条件である。ただし、\(A_{k}\left( x\right) \)は\(f\)の点\(x\)におけるヘッセ行列\begin{equation*}H_{f}\left( x\right) =\begin{pmatrix}
f_{x_{1}x_{1}}^{\prime \prime }\left( x\right) & f_{x_{1}x_{2}}^{\prime
\prime }\left( x\right) & \cdots & f_{x_{1}x_{n}}^{\prime \prime }\left(
x\right) \\
f_{x_{2}x_{1}}^{\prime \prime }\left( x\right) & f_{x_{2}x_{2}}^{\prime
\prime }\left( x\right) & \cdots & f_{x_{2}x_{n}}^{\prime \prime }\left(
x\right) \\
\vdots & \vdots & \ddots & \vdots \\
f_{x_{n}x_{1}}^{\prime \prime }\left( x\right) & f_{x_{n}x_{2}}^{\prime
\prime }\left( x\right) & \cdots & f_{x_{n}x_{n}}^{\prime \prime }\left(
x\right)
\end{pmatrix}\end{equation*}の\(k\)次首座小行列式であり、具体的には、\begin{equation*}A_{k}\left( x\right) =\begin{pmatrix}
f_{x_{1}x_{1}}^{\prime \prime }\left( x\right) & f_{x_{1}x_{2}}^{\prime
\prime }\left( x\right) & \cdots & f_{x_{1}x_{k}}^{\prime \prime }\left(
x\right) \\
f_{x_{2}x_{1}}^{\prime \prime }\left( x\right) & f_{x_{2}x_{2}}^{\prime
\prime }\left( x\right) & \cdots & f_{x_{2}x_{k}}^{\prime \prime }\left(
x\right) \\
\vdots & \vdots & \ddots & \vdots \\
f_{x_{k}x_{1}}^{\prime \prime }\left( x\right) & f_{x_{k}x_{2}}^{\prime
\prime }\left( x\right) & \cdots & f_{x_{k}x_{k}}^{\prime \prime }\left(
x\right)
\end{pmatrix}\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}-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^{\prime \prime }_{xx}\left( x,y\right) & f^{\prime \prime }_{xy}\left( x,y\right) \\
f^{\prime \prime }_{yx}\left( x,y\right) & f^{\prime \prime }_{yy}\left( x,y\right)
\end{pmatrix}=\begin{pmatrix}
-2 & 0 \\
0 & -2\end{pmatrix}\end{equation*}です。首座小行列式の値について、\begin{eqnarray*}
-\det \left( A_{1}\left( x,y\right) \right) &=&-\det \left( -2\right)
=2\geq 0 \\
\det \left( A_{2}\left( x,y\right) \right) &=&\det
\begin{pmatrix}
-2 & 0 \\
0 & -2\end{pmatrix}=4\geq 0
\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
\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^{\prime \prime }_{xx}\left( x,y\right) & f^{\prime \prime }_{xy}\left( x,y\right) \\
f^{\prime \prime }_{yx}\left( x,y\right) & f^{\prime \prime }_{yy}\left( x,y\right)
\end{pmatrix}=\begin{pmatrix}
0 & 0 \\
0 & 0\end{pmatrix}\end{equation*}です。首座小行列式の値について、\begin{eqnarray*}
-\det \left( A_{1}\left( x,y\right) \right) &=&\det \left( 0\right) =0 \\
\det \left( A_{2}\left( x,y\right) \right) &=&\det
\begin{pmatrix}
0 & 0 \\
0 & 0\end{pmatrix}=0
\end{eqnarray*}が成り立つため、\(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*}を定めます。首座小行列式の値は、\begin{eqnarray*}
-\det \left( A_{1}\left( x,y,z\right) \right) &=&-\det \left( -2\right)
=2\geq 0 \\
\det \left( A_{2}\left( x,y,z\right) \right) &=&\det
\begin{pmatrix}
-2 & -2 \\
-2 & -4\end{pmatrix}=4\geq 0 \\
-\det \left( A_{3}\left( x,y,z\right) \right) &=&\det
\begin{pmatrix}
-2 & -2 & -2 \\
-2 & -4 & 0 \\
-2 & 0 & -6\end{pmatrix}=8\geq 0
\end{eqnarray*}を満たすため、\(f\)は凹関数です。

先の命題は与えられた関数が凹であるための必要十分条件を与えているため、関数が凹ではないことを示す際にも有用です。具体的には、非空の凸な開集合上に定義された関数\(f:\mathbb{R} ^{n}\supset X\rightarrow \mathbb{R} \)が\(C^{2}\)級である一方で、\begin{equation*}\forall x\in X,\ \forall k\in \left\{ 1,\cdots ,n\right\} :\left( -1\right)
^{k}\det \left( A_{k}\left( x\right) \right) <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) =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^{\prime \prime }_{xx}\left( x,y\right) & f^{\prime \prime }_{xy}\left( x,y\right) \\
f^{\prime \prime }_{yx}\left( x,y\right) & f^{\prime \prime }_{yy}\left( x,y\right)
\end{pmatrix}=\begin{pmatrix}
0 & 1 \\
1 & 0\end{pmatrix}\end{equation*}ですが、\begin{equation*}
\det \left( A_{2}\left( x,y\right) \right) =\det
\begin{pmatrix}
0 & 1 \\
1 & 0\end{pmatrix}=-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} \)がそれぞれの\(x\in \mathbb{R} ^{n}\)に対して定める値が、点\(a\in \mathbb{R} ^{n}\)および実数\(b\in \mathbb{R} \)を用いて、\begin{eqnarray*}f\left( x\right) &=&a\cdot 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\)は凸関数、凹関数、どちらでもない、のどれでしょうか。
解答を見る

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

Twitter
Mailで保存

質問とコメント

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

関連知識

1変数の凸関数・凹関数

定義域が区間であるとともに、そのグラフが直線もしくは谷型の曲線になるような関数を凸関数と呼び、グラフが直線もしくは山型の曲線になるような関数を凹関数と呼びます。

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

微分可能な関数が凸関数であることは、導関数が単調増加関数であることと必要十分です。また、微分可能な関数が凹関数であることは、導関数が単調減少関数であることと必要十分です。

1変数の狭義凸関数・狭義凹関数

定義域が区間であるとともに、そのグラフが谷型の曲線になるような関数を狭義凸関数と呼び、グラフが山型の曲線になるような関数を狭義凹関数と呼びます。

勾配ベクトル(グラディエント)

多変数関数が定義域上の点においてすべての変数に関して偏微分可能である場合、その点におけるそれぞれの変数に関する偏微分係数を成分とするベクトルが存在します。これを勾配ベクトル(グラディエント)と呼びます。

多変数関数の積の偏微分

偏微分可能な関数どうしの積として定義される関数もまた偏微分可能であり、その偏導関数や勾配ベクトル場は積の法則と呼ばれる規則から得られます。

多変数関数の商の偏微分

偏微分可能な関数どうしの商として定義される関数もまた偏微分可能であり、その偏導関数や勾配ベクトル場は商の法則と呼ばれる規則から得られます。

ヘッセ行列

多変数関数が任意の2つの変数の組み合わせに関して2階偏微分可能である場合には、2階偏微分係数を成分として持つ正方行列が定義可能です。これをヘッセ行列と呼びます。

多変数関数の方向微分と偏微分の関係

多変数関数が任意の方向へ方向微分可能である場合、その関数は任意の変数について偏微分可能ですが、その逆は成り立つとは限りません。一定の条件のもとでは、方向微分係数は勾配ベクトルと方向ベクトルの内積として定まります。

多変数の凸関数・凹関数

定義域がユークリッド空間上の凸集合であるとともに、そのグラフが平面もしくは下に凸であるような関数を凸関数と呼びます。また、グラフが平面もしくは上に凸であるよう関数を凹関数と呼びます。

凸関数・凹関数