変分問題




参考:http://www2.kaiyodai.ac.jp/~yoshi-s/Lectures/Optimization/2013/lecture_6.pdf



  • 関数$y(x)$を変数とする関数である汎関数$F(y)$の最大・最小化する関数を考えるのが変分問題
  • このとき$x$は定義域内の任意の値を考えている
  • 例えば関数$y(x)$が表す曲線の$x=0$から$x=1$までの長さは

\displaystyle F(y) = \int_{0}^1 \sqrt{1+y'(x)^2}dx
であり、$y$が決まればひとつに決まるので$y$の関数である(=どんな曲線になるかに依存する)。これを最大・最小にする$y$を考えるのが変分問題である。


変分問題の一般形

汎関数$F(y)$と関数の集合Cを用いて
最小化 $F(y)$,  制約 $y \in C$


このときの最小解とは、

大域的最小解

関数$\overline{y}(x) \in C$がすべての関数$y(x) \in C$に対して
$F(y) \geq F(\overline{y})$

局所的最小解

関数$\overline{y}(x) \in C$が$\overline{y}(x)$に「近い」すべての関数$y(x) \in C$に対して
$F(y) \geq F(\overline{y})$

ここで、関数$\overline{y}(x)$に「近い」関数とは、おおざっぱにいうと$\overline{y}(x)$にグラフが近い関数のこと。例えば、関数$v(x)$と十分に小さい数$\epsilon$を用いて、$\overline{y}(x)+\epsilon v(x)$。これは制約があっても、$v(x)$も制約を満たすようにとれば同様に考えることができる。

 数学的にはこの関数の「近さ」はノルムとして表され、問題によって適切なものが選ばれる。例えば、関数$y(x), \overline{y}(x)$に対して、
\displaystyle || y-\overline{y}||_0 \equiv \max_{a \leq x \leq b}|y(x)-\overline{y}(x)|
を考えると、これが上界を持つ場合、任意の$x$の関数値の絶対値差$|y(x)-\overline{y}(x)|$に対して上界を与えることができるという意味で、ノルムの小ささと関数の「近さ」を関連付けることができる。ほかにも、\displaystyle || y-\overline{y}||_1 \equiv \max_{a \leq x \leq b}|y(x)-\overline{y}(x)|+\max_{a \leq x \leq b}|y'(x)-\overline{y}'(x)|をとると、関数の「近さ」を測るのに微分の近さも測るものである。より詳細は関数解析()で扱う。


汎関数微分:方向微分

通常の関数の微分と同様に汎関数微分として、「関数を少し変化させたときに汎関数値が変化する割合(瞬間変化率)」のようなもので定義したい。

この少し変化させるというのを、「近い」関数への変化と考え、$y(x)$に対して、$y(x)+\epsilon v(x)$を考える。この時の汎関数値の変化を考える。また変化率としては$\epsilon$の変化量のみを考えるようにする。すると、$\frac{F(y+\epsilon v)-F(y)}{\epsilon}$を平均変化率、そして$\lim_{\epsilon\to 0}\frac{F(y+\epsilon v)-F(y)}{\epsilon}$を瞬間変化率と考えることができる。これを汎関数$F(y)$についての$y$における$v$に対する方向微分と呼ぶ。

定義:方向微分

汎関数$F$と関数$y(x), v(x)$に対して、
\displaystyle F(y)(v) \equiv \lim_{\epsilon\to 0}\frac{F(y+\epsilon v)-F(y)}{\epsilon}

汎関数\displaystyle F(y) = \int_{0}^1y(x)^2 dx
$y(x)=x^2$, $v(x)=x^3$とする。
$y(x)+\epsilon v(x) = x^2+\epsilon x^3$なので、
\displaystyle
\begin{aligned}
F(y+\epsilon v) - F(y) &= \int_{0}^1 (x^2+\epsilon x^3)^2 dx - \int_{0}^1 (x^2)^2 dx \\
&= \int_{0}^1 (x^4+2\epsilon x^5+\epsilon^2x^6-x^4)dx \\
&= 2\epsilon \int_{0}^1 x^5 dx +\epsilon^2 \int_0^1 x^6 dx \\
&= \frac{1}{3}\epsilon + \frac{1}{7}\epsilon ^2
\end{aligned}
よって、
$F(y)(v)=\lim_{\epsilon\to 0} \frac{1}{3}\epsilon + \frac{1}{7}\epsilon ^2 = \frac{1}{3}$

方向微分の公式

一般の$y(x), v(x)$についても定義にしたがって、考えることができるが以下の公式を使うとより簡易に求まる。
多変数関数$f(x,y(x),y'(x))$を$f[y(x)]$と表記することにすると、汎関数\displaystyle F(y) = \int_{a}^b f(x,y(x),y'(x))dxに対して方向微分$DF(y)(v)$は
\displaystyle DF(y)(v) = \int_{a}^b \{f_y[y(x)]v(x) + f_z[y(x)]v'(x) \}dxとなる。
ここで、$f_y$は$f(x,y(x),y'(x))$の第二変数、$f_z$は$f(x,y(x),y'(x))$の第三変数に関する偏微分を表す。

汎関数が$F(y)=\int_{0}^1 y(x)^2 dx$のとき、被積分関数は$f(x,y,z)=y^2$となる。$f_y=2y, f_z =0$より
$DF(y)(v) = \int_{0}^1 2y(x)v(x)dx$となる。
汎関数が$F(y)=\int_{0}^1 {y(x)+1/2y'(x)^2} dx$のとき、被積分関数は$f(x,y,z)=y(x)+1/2z^2$となる。$f_y=1, f_z=z$より
$DF(y)(v) = \int_{0}^1 {v(x)+zv'(x)}dx = \int_{0}^1 {v(x)+y'(x)v'(x)}dx$となる。


汎関数の凸性

 今、汎関数微分として方向微分を定義できたので、凸関数同様(https://karate-odori.hatenablog.com/entry/2019/10/23/211413)、汎関数についても凸汎関数を定義する。

汎関数

Fを汎関数とするとき、任意の関数$y(x),v(x)$について、
$F(y+v) \geq F(y) + DF(y)(v)$
が成り立つとき、$F(y)$を凸汎関数という。
また、これがある集合C内の関数$y(x)$と$y(x)+v(x) \in C$なる$v(x)$に対してのみ成り立つ場合はFはC上で凸であるという。

汎関数の条件・判定法は簡単。

汎関数の条件

汎関数$F$を、
\displaystyle F(y) = \int_{a}^{b} f[y(x)]dx = \int_{a}^{b} f(x,y(x),y'(x))dx
とすると、任意の$x \in [a,b]$に対して被積分関数$f(x,y,z)$が第二、第三変数に関して凸ならば汎関数も凸になる。
(もちろん被積分関数$f(x,y,z)$が凸関数ならば第二、第三変数に関して凸であるので、この場合でも成立)

$F(y) = \int_a^b \{x+y(x)^2+y'(x)^2\}dx$なら、被積分関数$f(x,y,z)=x+y^2+z^2$は凸関数なので、Fは凸汎関数である
$F(y) = \int_a^b \{-x^2+y(x)^2+y'(x)^2\}dx$なら、被積分関数$f(x,y,z)=-x^2+y^2+z^2$は$(x,y,z)$に関して凸関数ではないが、
$x$を定数とみなすと第二、第三変数に関しては凸である。よって、Fは凸汎関数である


汎関数の大域最適解の十分条件、局所最適解の必要条件

最小化$F(y) \equiv \int_{a}^b f(x,y(x),y'(x))dx$
制約$y(a) = A, y(b)=B$
目的汎関数Fが凸汎関数であるとする。関数$\overline{y}(x)$が
$\left\{
\begin{array}{l}
\frac{d}{dx}f_z[y(x)] = f_y[y(x)] \\
y(a)=A, \ y(b) = B
\end{array}
\right.$
の解ならば、$\overline{y}(x)$はこの問題の大域最小解である。

これは方向微分が0になることから導かれる。
これは汎関数が凸汎関数でない場合には、局所最適解の必要条件となる。