2

変分法について

462
0

変分法とは

変分法とは、汎函数の最大・最小を考えるために用いられるもので、普通の(?)函数の最大・最小を考えるために用いられる微分法に似たものです。汎函数は「函数の函数」とでも言うべきもので、通常の函数がスカラーを引数にとりスカラーを返すのに対し、汎函数は函数を引数にとりスカラーを返します。ここでは特に以下のような積分で表されるものを扱います。
I[f(x)]=abF(x,f,dfdx)dx
なお、変分法は主に物理で用いられるため、ここでは微分可能性や微分と積分の順序交換などの細かい議論は省きます。

変分問題の解き方

微分法における最大・最小問題の解法のポイントは、y=f(x)について、yの変化が小さくなるようなx、即ち停留点を見つけることにありました。
dydx|x=a=0  x=aの付近でyの変化が十分に小さい  x=aが停留点となる
これが基本的な流れです。これと同様に汎函数でも最大・最小を議論したいのですが、dIdfなどというものを考えるのは難しいです。そのため、少し違う方法でアプローチします。まず、「微分」とは本来微小変化、即ち以下のように表される量を意味します(1変数函数における全微分と考えてもよいです)。

微分の定義

df=f(x+dx)f(x)

これと同様に、汎函数においても汎函数の微小変化として変分を考えます。ただ、函数の変化の仕方は色々あって扱いづらいため、函数の微小変化として「何らかの函数の微小スカラー倍」を使うことを考えます。

変分の定義

dδI[f(x)](t)=I[f(x)+δ(x)dt]I[f(x)]

これを用いて、汎函数Iδ方向のガトー微分(方向微分の一般化)を次のように定義します。

汎函数のガトー微分

DδI[f(x)]=limdt0dδI[f(x)](t)dt

汎函数のガトー微分が定義できたので、停留函数を見つけることができます。
任意のδについてDδI[f(x)]|f=f0=0  f=f0の付近でIの変化が十分に小さい  f=f0が停留函数となる
なお、後々のため、δ(x)は汎函数の定積分の端点a,bにおいて0であるものとします。

Euler-Lagrange方程式

それでは、汎函数
I[f(x)]=abF(x,f,dfdx)dx
の停留函数を求めましょう。境界条件δ(a)=δ(b)=0を満たすような函数δ方向のガトー微分が0になればよいので、
DδI[f(x)]=limdt0I[f(x)+δ(x)dt]I[f]dt=ddtabF(x,f,dfdx)dx=abddtF(x,f,dfdx)dx=ab(Ffft+Ffft)dx=ab(Ffδ(x)+Ffδ(x))dx=abFfδ(x)dx+[Ffδ(x)]ababddxFfδ(x)dx=ab(FfddxFf)δ(x)dx
これが境界条件を満たす任意の函数δに対して0になることから、次の定理が成り立ちます。

Euler-Lagrange方程式

f0(x)が汎函数I[f(x)]=abF(x,f,dfdx)dxの停留函数となるf=f0FfddxFf=0
また、この微分方程式をEuler-Lagrange方程式と呼ぶ。

凸汎函数

変分問題においては、凸汎函数と呼ばれる種類の汎函数が重要な性質を持ちます。

凸汎函数の定義

任意の函数f,gについて以下の不等式が成り立つとき、汎函数I凸汎函数であるという。
I[f(x)+g(x)]I[f(x)]+DgI[f(x)]

また、Iが凸汎函数であるとき、Iは凹汎函数と呼ばれます。
さて、函数f(x)が汎函数Iの停留函数であると分かっているとき、任意の函数gに対してDgI[f(x)]=0が成り立ちます。更にIが凸汎函数であるとき、定義より次の不等式が成り立ちます。
I[f(x)+g(x)]I[f(x)]
これより、f(x)は汎函数Iを最小化する函数であると分かります。

汎函数を最小化する充分条件

汎函数Iが凸であるとき、
f(x)Iの停留函数f(x)Iを最小化する

しかし、定義通りに汎函数の凸性を判定しようとすると困難なので、2変数凸函数の性質を利用して判定します。

2変数凸函数

一般の正整数nについて、n変数凸函数とは次の性質を持つ函数fのことを言います。

n次元凸函数の定義

任意のn次元ベクトルx,y0<t<1なる実数tについて、
f(tx+(1t)y)tf(x)+(1t)f(y)
が成り立つとき、f凸函数という。

式のままだとイメージが沸きづらいと思うので、グラフ的に説明します。まず、1変数の場合はx2+2xcoshxなどが凸函数となります。つまり、1変数の凸函数とはいわゆる「下に凸な」函数のことです。同様に2変数凸函数fでも、3次元座標空間内にz=f(x,y)のグラフを描くとz軸の負の方向(下)に出っ張った形になります。例えば2変数函数x2+y2は凸函数です。
このグラフのイメージから、2変数凸函数のグラフ上の任意の点における接平面はグラフよりも下にあることが分かります。曲面C:z=f(x,y)の点(x0,y0)Cに接する平面の方程式は
z=f(x0,y0)+fx(x0,y0)(xx0)+fy(x0,y0)(yy0)
ですから(fx,fyはそれぞれfx,yについての偏導関数)、次の定理が成り立ちます。

f(x,y)が凸函数であるとき、任意のx0,y0について、以下の不等式が任意のx,yで成り立つ。
f(x,y)f(x0,y0)+fx(x0,y0)(xx0)+fy(x0,y0)(yy0)

この性質を使って汎函数の凸性を判定します。

汎函数の凸性の判定

結論から言うと、I[f]の被積分函数F(x,f,dfdx)f,dfdxについての2変数函数G(f,dfdx)と見なしたとき、Gが凸函数になればIは凸汎函数になります。以下、そのことを証明します。
まず、G(s,t)が凸函数であることから、
G(s,t)G(s0,t0)+Gs(s0,t0)(ss0)+Gt(s0,t0)(tt0)
これにs=f(x)+g(x),s0=f(x),t=f(x)g(x),t0=f(x)を代入して
G(f+g,dfdxdgdx)G(f,dfdx)+Gs(f,dfdx)g(x)+Gt(f,dfdx)g(x)=G+Gfg(x)+Gfg(x)
両辺をaxbで積分し、函数Fを用いて書き改めると
abF(x,f+g,d(f+g)dx)dxabF(x,f,dfdx)dx+ab(Ffg(x)+Ffg(x))dx
ここで、
DgI[f(x)]=ab(Ffg(x)+Ffg(x))dx
であったので、
I[f(x)+g(x)]I[f(x)]+DgI[f(x)]
これが任意のf,gで成り立つことから、Iが凸汎函数であることが示されました。

凸汎函数の充分条件

F(x,y,z)y,zについての凸函数
汎函数abF(x,f,dfdx)dxは凸

これで(一部の)汎函数の最小化問題が解けるようになったので、実際に簡単な例題を解いてみましょう。

例題

問題

xy-座標平面上で光が原点から点(2,2)に進む。以下の2つの場合についてその経路を求めよ。
(1) 座標平面全体が真空(屈折率1)である
(2) x座標がxの部分が屈折率1+xの透明な物質で満たされている

フェルマーの原理より、光は到達時間が最小になるような経路を通ります。故に、光路を曲線y=f(x) (0<x<2)として、それぞれの場合において到達時間を計算し、それを最小化するfを求めます。なお、真空中の光速はcとし、始点および終点の条件からf(0)=0,f(2)=2が成り立つことに注意します。
 
(1) 解答
曲線y=f(x) (0<x<2)の長さは021+(dfdx)2dx
で表されるので、到達時間をT[f]とすれば
T[f]=1c021+(dfdx)2dx
となります。y=1+x2は凸函数であるので、グラフを考えれば1+(dfdx)2f,dfdxについての凸函数であると分かります。即ち、T[f]も凸です。ですから、停留函数を見つければこれが求める函数になります。
この汎函数のEuler-Lagrange方程式は
1cddxf1+f2=0
まず、xで微分して0になるのは定数函数のみなので、任意定数C0(±1)を用いて
f1+f2=C0
と書けます。これよりfが求まりますが、fは実数であってほしいので1<C0<1とします。
f(x)=±C011C02
C0が開区間(1,1)全体を動くとき右辺は実数全体を動くので、これを新たにC1とおきます。よってfは、任意定数C1,C2を用いて
f(x)=C1x+C2
と書けます。ここで、境界条件f(0)=0,f(2)=2からC1=1,C2=0となり、求める函数はf(x)=xになります。
こちらはかなり自明な結果になりました。
 
(2) 解答
屈折率nの物質中での光速はcnであるので、到達時間T[f]
T[f]=1c02(1+x)1+(dfdx)2dx
と表せます。1+xf,fに依らないので、(1)と同様にTは凸汎函数であることが分かり、停留函数によって最小化されることになります。そして、(1)と同様のEuler-Lagrange方程式により
(1+x)f1+f2=C0
が成り立つことが分かります(C0は任意定数)。これを整理して、
f(x)=±C01(x+1)2C02dx=±C01sinh2tC0sinhtdt(x+1=C0cosht)=±C02t+C2(0x0sinht)=C1cosh1(x+1)+C2
ただし、C1=±C02,C2は任意定数です。ここで、境界条件から
{C1cosh11+C2=C2=0C1cosh13+C2=2(C1,C2)=(2cosh13,0)f(x)=2cosh13cosh1(x+1)
屈折率の条件を付け加えるだけで、逆双曲線函数が出てきました。

例題2

fdfdxの両方が含まれるものもやっておきます。

問題

境界条件f(1)=f(1)=1を満たす函数fに対して、汎函数
I[f]=11(f(x)2+f(x)2)dx
の最小値をとるときのfを求めよ。

 
解答
グラフを考えればf(x)2+f(x)2f,dfdxについての凸函数であると分かります。即ち、I[f]も凸です。ですから、停留函数を見つければこれが求める函数になります。
Euler-Lagrange方程式を立てると
2f(x)ddx2f(x)=0f(x)=f(x)
これを解いて
f(x)=C1ex+C2ex
ただし、C1,C2は任意定数。ここで、境界条件から
{C1e+C2e1=1C1e1+C2e=1C1=C2=ee2+1
よって、f(x)=2ee2+1coshxとなります。

あとがき

最後まで読んでいただきありがとうございます。最速降下曲線やカテナリーは物理力の欠如により解説できなかったので、気が向いたら勉強して書きます。

投稿日:20201120
OptHub AI Competition

この記事を高評価した人

高評価したユーザはいません

この記事に送られたバッジ

バッジはありません。
バッチを贈って投稿者を応援しよう

バッチを贈ると投稿者に現金やAmazonのギフトカードが還元されます。

投稿者

コメント

他の人のコメント

コメントはありません。
読み込み中...
読み込み中
  1. 変分法とは
  2. 変分問題の解き方
  3. Euler-Lagrange方程式
  4. 凸汎函数
  5. 2変数凸函数
  6. 汎函数の凸性の判定
  7. 例題
  8. 例題2
  9. あとがき