汎関数と変分法

最初に大まかなイメージを示す。

汎関数とは「関数の関数」のことであり、汎関数の値はそれが引数としてとる関数により変化する。すなわち、変数\(x\)の関数である\(y(x)\)の値は変数\(x\)に依存するのと同様に、関数\(y\)の汎関数である\(I[y]\)の値は関数\(y\)に依存する。

変分法とは汎関数\(I[y]\)を最大(極大)または最小(極小)とする関数\(y_0\)を求めるための手法であり、その原理は関数\(f(x)\)が最大(極大)または最小(極小)となる点において\(f'(x)=0\)となることを利用する手法に類似する。

汎関数の定義

まず、関数の集合のことを関数族という。そのうえで、汎関数は以下のように定義される。

\({\bf I}\)を関数族とし、おのおのの関数\(y \in {\bf I}\)に1つの数値\(I[y]\)が対応しているとき、この対応を与える\(I\)を汎関数という。

なお、微分学で考える関数と区別するため、\(I\)の括弧には\([\) \(]\)を用いる。

汎関数の非常に単純な例としては、定積分

$$I[y]=\int_a^b y(x)dx$$

が挙げられる。また、\(y\)を変数\(x\)の関数、\(y’\)をその導関数とし、\(F\)は\(x,y,y’\)の与えられた関数とすると、

$$I[y]=\int_a^b F(x,y(x),y'(x))dx \tag{1}$$

も汎関数となる。このように、汎関数はしばしば関数と導関数を含む定積分として表される。

以下では次のことを前提として議論を進める。

  • \(F(x,y,y’)\)は\({\bf R}^3\)における開集合で3回連続微分可能
  • \({\bf I}\)に属する関数は有界な閉区間で連続微分可能
  • \({\bf I}\)に属する関数のグラフは\(F\)の定義域の内部に含まれる

変分の定義とその性質

変分の定義

\((1)\)式を変形しながら変分の定義を導く。

\(\eta\)を区間\([a,b]\)で連続微分可能な任意の関数、\(\epsilon\)を定数とする。\(\epsilon\)が十分に小さいならば\(y+\epsilon\eta \in {\bf I}\)となるため、

$$I[y+\epsilon\eta]=\int_a^b F(x,y+\epsilon\eta,y’+\epsilon\eta’)dx$$

が定義できる。これは\(y,\eta\)を固定すると\(\epsilon\)の関数として見ることができるため、

$$\Phi(\epsilon)=I[y+\epsilon\eta]$$

とおくと、

$$\Phi'(\epsilon)=\int_a^b[F_y(x,y+\epsilon\eta,y’\epsilon\eta’)\eta+F_{y’}(x,y+\epsilon\eta,y’\epsilon\eta’)\eta’]dx$$

が導ける。ここで、\(F_y,F_{y’}\)は連続であり、\(\Phi'(\epsilon)\)は\(\epsilon\)の関数として\(\epsilon\)の近傍で連続であることから、マクローリンの定理より、2次以上の項を\(o(\epsilon)\)とおいて、

$$\Phi(\epsilon)=\Phi(0)+\Phi'(0)\epsilon+o(\epsilon)\tag{2}$$

と表される。

\(\epsilon\)は微小量であるため、これを変数\(\lambda\)の微分と考え、\(d\lambda\)とおく。すると、\((2)\)式の右辺第2項\(\Phi'(0)d\lambda\)は\(\Phi(\lambda)\)の\(\lambda=0\)における微分である。この\(d\lambda\)に対応する\(\eta d\lambda(=\epsilon\eta)\)を変関数\(y\)の変分といい、\(\delta y\)で表す。また、\((2)\)式の第2項(すなわち、1次の項)を汎関数\(I[y]\)の\(y\)における一次変分といい、\(\delta I[y]\)で表す。すなわち、

$$\delta I[y]=\int_a^b[F_y(x,y,y’)\delta y+F_{y’}(x,y,y’)\delta y’]dx \tag{3}$$

となる。また、上記の議論を導関数についても適用すると

$$\delta y’=\eta’d\lambda=(\eta d\lambda)’=(\delta y)’$$

が示される。

変分の性質

変分\(\delta I[y]\)は\(y\)の変分\(\delta y\)にも依存するため、一次変分\(\delta I[y]\)自身も\(y,\delta y\)の汎関数である。これを\(I'[y,\delta y]\)で表すと、

$$\delta I[y]=I'[y,\delta y]$$

となる。ここで\(y\)を固定すると\(I'[y,\delta y]\)は\(\delta y\)の汎関数として線形である。すなわち、\(I’\)は\({\bf C}^1[a,b]\)において定義され、任意の\(\delta y_1,\delta y_2 \in {\bf C}^1[a,b]\)と任意の定数\(c_1,c_2\)に対して

$$I'[y,c_1\delta y_1+c_2\delta y_2]=c_1I'[y,\delta y_1]+c_2I'[y,\delta y_2]$$

を満たす。これは\((3)\)式からすぐに確かめられる。

最大(極大)・最小(極小)との関係

変分学の主な興味の対象は、与えられた汎関数を最大(極大)または最小(極小)にする関数を求めることにある。数学や物理学の重要問題の多くは多変数関数を含むため、その解を求めるために変分法が利用される例は少なくない。(例えば、下記参照)

エントロピーの最大化による正規分布の導出

汎関数が、関数\(y^*(x)\)において局所的に最大(極大)値または最小(極小)値をとる時、\(y^*(x)\)を極値関数と呼ぶ。また、汎関数の一次変分を0にする関数\(y_0(x)\)を停留関数といい、このときの\(I\)の値を停留値と呼ぶ。\(y\)が停留関数であることは、\(y\)が極値関数であるための必要条件である。

したがって、\((1)\)式のような汎関数の形で与えられる問題の最大(極大)値または最小(極小)値を求める際には、一次変分\(\delta I[y]\)を導出して

$$\delta I[y]=0$$

とおいて停留関数・停留値を求める。この手法は、一変数関数\(f(x)\)の値を最大にする\(x\)を求めるために\(f'(x)=0\)とすることに似ている。

神経科学を研究している博士学生。Python, Rust, C/C++, C#, Julia, Common Lisp, Unityを活用して、世界の様々な現象をシミュレート・分析しています。理系分野だけでなく、政治学や社会学も、もちろん分析対象です。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です