変分法:2点間の最短距離

Dr. SSS 2019/06/14 - 14:10:09 古典力学
はじめに

物理学において非常に重要な役割を果たす変分法を,単純かつ具体的な例を通して説明する。Lagrange力学やHamilton力学を学ぶ際に

  • 変分て何?微分とどう違う?
  • 汎関数て何?関数とどう違う?
  • 曲線(軌道)の座標とその傾き(速度)を独立変数とみなすとはどういう意味?

といったことに困っている人たちの疑問解消にもなるよう努めた(個人的にはだが,ここで強調していることを丁寧に説明してくれているテキストには出会ったことがない)。


keywords: 数学, Lagrange力学, 変分法, 解析力学, 最小作用の原理, 変分原理

内容

曲線の全長

平面内の固定された二点を,最も短い長さで結ぶ曲線は何か,という問題を考える。平面に直交座標を敷いて,それぞれの座標を$x$と$y$とすれば,平面内の線素は

\begin{align} ds=\sqrt{ dx^2+dy^2} \end{align}

と表されるため,始点$A$から終点$B$まで積分することで,始点と終点を結ぶ曲線の全長は

\begin{align} \label {S path} S= \int_{A}^{B} ds = \int_{x_A}^{x_B} \sqrt{ 1+ \left( \frac{dy}{dx} \right)^2} dx \end{align}

となる。この被積分関数を,$x$と$y$および$y'=dy/dx$の関数として一般的な形

\begin{align} F(x,y,y') \end{align}

で表せば,(\ref{S path})は

\begin{align} \label {S act} S[y]= \int_{x_A}^{x_B} F(x,y,y') dx \end{align}

と書ける。$y$と$y'$を独立変数とできる理由は最後に説明する。


汎関数と変分法

関数$y=f(x)$というのは,$x$の値に$y$の値を対応させる規則のことであるが,この固定された二点を結ぶ曲線の長さを表す$S$は,関数$y=f(x)$の形によって値が決まる。このような関数は,汎関数(functional)と呼ばれ,通常の関数と区別するため,(\ref{S act})のように,表記に丸括弧ではなく角括弧が用いられたりする。つまり,二点間を最短で結ぶ曲線を見つける問題というのは,汎関数(\ref{S act})を最小にする関数$f(x)$の形を決めることだということになる。以下,変分法といったテクニックを用いて,この問題を解く手順を説明するが,あくまで最短距離の問題は理解のための具体例であり,基本的な議論は一般の場合にも成り立つ。


図1

汎関数$S$の値は,$f$がパラメータ$x$に対して具体的にどんな値を取るかということではなく,$f$がどんな形をしているかによって決まる。 ある関数$f(x)$が$x_0$で停留値を取るとき,すなわち$(df/dx)_{x=x_0}=0$となるとき,その付近任意で無限小な関数$\delta x$を加え,$x$の値を$x_0+\delta x$と変化させても

\begin{align} f(x_0+\delta x)=f(x_0)+\frac{df(x_0)}{dx}\delta x+O(\delta x^2) \end{align}

より,$\delta x$の一次の範囲で$f$は変化しない。そのため,汎関数$S$を最小にする$f$の形をわずかに変更させても$S$の値は変化しないはずである。言い換えると,今考えている問題の場合,$y \to y+\delta y$としたときの$S[y+\delta y]$と元の$S[y]$の差

\begin{align} \label {del S} \delta S = \int_{x_A}^{x_B} F(x,y+\delta y,y' + \delta y') dx -\int_{x_A}^{x_B} F(x,y,y') dx \end{align}

が$0$になる関数$f$を見つければよいということである。改めて,ここで$\delta x$や$\delta y$などは,単に関数を平行移動しているのではなく,適当な関数を加えて関数の形自体を変化させているということには注意してほしい。例えば$f(x)=x^2$という簡単な二次曲線であった場合,無限小のパラメータ$\epsilon$を用いて$\epsilon x^3$といった関数を作って加え,$f(x)=x^2+ \epsilon x^3$などとしてしまってもいい。この微小な関数を変分(variation)といい,変分を用いて(汎)関数の極値や停留値を見出す分野を変分法という。

ここで多くの人が疑問に思うのが,なぜ$y$とその導関数$y'$を関数$F$の独立変数として選択しておきながら,変分$\delta y$を加えたときに$y'$まで変化させるのか,ということである。これについては,最後の節で説明する。




Euler方程式

さて,(\ref{del S})の被積分関数の差は,微小量の一次までで

\begin{align} F(x,y+\delta y,y' + \delta y') -F(x,y,y')=\frac{\pd F(x,y,y')}{\pd y}\delta y +\frac{\pd F(x,y,y')}{\pd y'}\delta y' \end{align}

であるから(\ref{del S})は

\begin{align} \delta S = \int_{x_A}^{x_B} \left[ \frac{\pd F(x,y,y')}{\pd y}\delta y +\frac{\pd F(x,y,y')}{\pd y'}\delta y' \right] dx \end{align}

と変形できる。そして

\begin{align} \delta y'=(y+\delta y)'-y' =\frac{d}{dx} \delta y \end{align}

を用いて,括弧内二項目を部分積分することで

\begin{align} \label {S part int} \delta S = \int_{x_A}^{x_B} dx \left[ \frac{\pd F(x,y,y')}{\pd y} - \frac{d}{dx} \frac{\pd F(x,y,y')}{\pd y'} \right]\delta y + \left[ \frac{\pd F(x,y,y')}{\pd y'}\delta y \right]_{x_A}^{x_B} \end{align}

となり,最後の項は,両端を固定しているという条件,すなわち$\delta y(x_A)=\delta y(x_B)=0$より消える。そして変分$\delta y$が任意であったことから,(\ref{S part int})がゼロであるためには

\begin{align} \label {eul eq} \frac{\pd F(x,y,y')}{\pd y} - \frac{d}{dx} \frac{\pd F(x,y,y')}{\pd y'} =0 \end{align}

が成り立つ必要があることがわかる。この式をEuler方程式と呼ぶ。

今考えている例では

\begin{align} \frac{\pd F}{\pd y} =0, \ \ \frac{\pd F}{\pd y'} = \frac{y'}{\sqrt{1+y'^2}} \end{align}

であるから,Euler方程式(\ref{eul eq})は

\begin{align} \frac{d}{dx} \frac{y'}{\sqrt{1+y'^2}}=0 \to \frac{d y'}{dx}=0 \end{align}

となり,解は定数$a$,$b$を用いて

\begin{align} y=ax+b \end{align}

と表せることがわかる。つまり,平面内の二点を繋ぐ最も短い曲線は直線でることが確かめられる。$a$,$b$は中学だか高校でやらされるように,始点と終点を通るように選択される。


微分と変分

改めて,微分と変分の違いについてもう少し詳しく考えてみる。関数$y=f(x)$というのは,パラメータ$x$に値$y$を対応させる規則であったが,このとき$y$と傾き$y'=dy/dx$は独立な変数としてみなせるということを明確にしよう。

傾き$y'$というのは,パラメータ$x$がわずかに異なる$y$の値の差から決まる量であるが,これは,ある特定のパラメータ$x$の値に対して$y$の値がどうだということとは直接に関係がない。 例えば,ある関数$y$をそのまま平行移動すると,$y$の値は変化するが,対応するパラメータ$x$に関して$y'$の値は変化しない。この意味で,$y'$はパラメータ$x$の関数であって,$y$の関数ではない。

このことをわかりやすくするために,仮に,$y'(y,x)$と変数を取ったとしよう。これを,$y$で微分すると確かに

\begin{align} \left( \frac{\pd y'}{\pd y} \right)_x=0 \end{align}

となることが,図2からもわかるだろう。


図2:平行移動をして$y$の値は変わっても,$y'$の値は変わらない。また,$x$を固定して$y'$を$y$について微分することは,同じパラメータ$x$の値における元の関数と平行移動した関数の傾きとの差を取ることに対応するから,$0$になる。

一方で,変分$\delta y$というのは,任意の関数$g(x)$と微小パラメータ$\epsilon$を使って$\delta y=\epsilon g(x)$と書けるものであるから,関数$f(x)$の形自体を変えてしまう。そのため,曲線の形が変わり,その傾きも変化する。これが,$y$と$y'$がそれぞれ関数$F$の独立変数として選択されるが,変分の際には$y$の変化だけでなく,$y'$が$y$の微分であることが明示的に利用され,$y'$の変化も考慮される理由である。

図3:変分は,単なる平行移動とは異なり,関数形そのものを変えてしまうから,一般に,関数の導関数も変化する。

ちなみに,これの特殊なケースとして$\epsilon g(x)=a$という定数$a$を付加するだけのケース,すなわち平行移動を考えることができる。その場合,確かに

\begin{align} \frac{d}{dx}(y+\delta y)=\frac{d}{dx}(y+a) =y' \end{align}

となり,改めて,傾きは変化しないことが確認できる。


まとめ

重要な部分を改めて述べる: $y$の値を変化させたら,$y'$も変化しそうなものだが,それは曲線$y$に沿って移動したときの話であり,その移動を制御するのが,パラメータ$x$なのである。 そして,ある点の近傍の$y$の値はそのままに,その点の$y$の値だけを変化させても$y'$の値は変化するが,それはつまり関数の形を変えているということであり,微分ではなく変分を行っていることになる。そしてその場合,確かに$y'$の値は変化するのである。

ここでの議論をLagrange力学における最小作用の原理に適用するなら,パラメータ$x$を時間$t$に,関数$y=f(x)$を軌道$q(t)$に,傾き$y'(x)$を速度$\dot{q}(t)$に,そして関数$F(y,y',t)$をLagrangian $L(q,\dot{q},t)$置き換えてやればいい。


参考文献


自然科学に関する質問やノート作りは『AfterSchool』で。