0.変分法の使われどころ
大抵のひとが初めて変分法に出会うのは解析力学を学ぶときではないだろうか?解析力学では、だいたい最初に変分法というのをやることが多いだろうが、そこでよくわからなくてつまづくひとも多いだろう。
でも実は変分法というのは、解析力学のためだけに存在しているわけではない。変分法のそもそもの役割は、微分方程式を解くことにあるのだ。そのあたりを頭の片隅においてから勉強すると少し見通しが良くなるかも知れない。(もちろん他の問題にも有用だが。)
1.汎関数
変分法というからには、変分という何かがあるはずだ。
しかし新しい言葉だからといって身構える必要は無い。変分とは微分の発展みたいな計算で、微分が理解できているなら大丈夫。でも逆に言えば、微分が理解できていないなら、変分なんか勉強してもしょうがないってことだ。理解っていうのは計算ができるという意味じゃないのは注意しておく。
変分で主役になるのは、関数の関数だ。関数の関数には名前がついていて、汎関数
という。理解を助けるために、汎関数の例をあげてみる。例えば、ある関数\(f(x)\)について、
\[
I[f]=\left\{\begin{align}
&n~~~\text{if}~~~f(x)=x^n \\
&0~~~\text{otherwise}
\end{align}\right.
\]
なんていうのは汎関数だ。関数\(f(x)\)の形によって、I[f]が変化しているから。でも、変分法で出てくるのはこんな汎関数ではない。主役は下のような形だ。
\[I[f]=\int_{x_1}^{x_2} F\left(x,f(x),f'(x)\right) dx\tag{1}\]
なんか難しい式が出てきた、と思うかもしれない。\(F\left(x,f(x),f'(x)\right)\)というのが気持ち悪い。でも例えば、簡単な例として、
\[F\left(x,f(x),f'(x)\right)=x+f(x)+f'(x)\]
とすれば、
\[I[f]=\int_{x_1}^{x_2} \left(x+f(x)+f'(x)\right) dx\]
のようになるわけだ。こうすれば、Iがfの形によって変化する関数だということがわかりやすい。ちなみに、fの1階微分を入れているのは、あとで計算していけばわかると思うが、こうすることで2階の微分方程式が解けるようになるからだ。運動方程式やシュレディンガー方程式は2階の方程式だから、とりあえずはこれを考える。
2.変分
汎関数の変化を考えることを変分
という。ちょうど、関数の変化を考えることを微分といったのと同じだ。
そこで、微分をどういう風に計算したか思い出そう。1変数の微分なら、
\[f'(x)=\lim_{t\to 0} \frac{f(x+t)-f(x)}{t}\tag{2}\]
というふうに計算できた。じゃあ多変数ではどうだったか。多変数では偏微分のイメージが強いかも知れない。
1変数のときは方向という概念が無いから、微分という計算をするのも(2)式のように単純だ。でも多変数では常に方向を意識しないといけない。だから1変数では、
\[\frac{xを微小変化させたときのfの変化}{微小変化の変化量}\]
で微分を考えたが、多変数では
\[\frac{\b{x}をある方向に微小変化させたときのfの変化}{微小変化の変化量}\]
が微分に一番近いものだろう。そこで、ある方向\(\b{n}~~(|\b{n}|=1)\)への変化\(f'^{(\b{n})}\)をみたいときには、
\[f'^{(\b{n})}(\b{x})=\lim_{t\to 0} \frac{f(\b{x}+t\b{n})-f(\b{x})}{t}\tag{3}\]
とすればよい。nを単位ベクトルにしたのは、分母をtだけにしたかったからだ。単位ベクトルでないのを使いたければ、分母を\(t|\b{n}|\)にすればいい。そんなことする必要ないと思うけど。
と、そろそろ変分について考えよう。
やることは普通の関数の微分と同じだ。\(I[f]\)の変化を見たい時には、
\[\frac{fを微小変化させたときのIの変化}{微小変化の変化量}\]
を考えればいいのだろう。しかし、その変化量というのをどうやって定義するのかが面倒くさい。なにしろ、関数\(f\)を変化させるには適当な関数\(\varphi\)を足すからだ。ベクトルならベクトルの大きさというのが自然に(普通のユークリッド空間)なら定義できたからうまくいったのだが、関数の大きさといわれると何がなんだかわからなくなる。
そこで、すこし方針を変えよう。実は、多変数の微分(3)式を別のやり方で計算する方法がある。以下のようにするのだ。
\[f'^{(\b{v})}(\b{x})=\left.\frac{d}{dt}f(\b{x}+t\b{v})\right|_{t=0}\tag{4}\]
やっていることはほとんど同じである。微分のところを極限でしっかり書いてみれば、
\[f'^{(\b{v})}(\b{x})=\left.\lim_{s\to 0}\frac{f(\b{x}+(t+s)\b{v})-f(\b{x}+t\b{v})}{s}\right|_{t=0}\tag{5}\]
というふうになる。(3)式と見比べればほとんど同じ計算をしていることがわかるだろう。じゃあ(4)式のように計算する利点はなにか。それは、式の中に「微小変化の変化量」というのが出てこないところにある。だから、計算をするときに変化させた大きさというのを考えないで済むのだ。
これを使うと、\(f\)を\(\varphi\)の方向に変化させた時のIの変化は
\[I'^{(\varphi)}[f]=\left.\frac{d}{dt}I[f+t\varphi]\right|_{t=0}\tag{6}\]
のようにかけるだろう。この(6)式をIの変分
と呼ぶ。
3.汎関数の停留点とオイラー・ラグランジュ方程式
変分
というと汎関数の微分に相当する計算ができるようになったということは、色々なことが普通の関数とのアナロジーでできるようになったということだ。試しにやってみよう。普通の関数fが、
\[f(x+t)=f(x)+f'(x)t+...\tag{7}\]
というふうに展開できることに習って、
\[I[f+t\phi]=I[f]+I'^{(\varphi)}[f]t+...\tag{8}\]
のようにできるだろう。
また、普通の関数が極値をとるときには、
\[f'(x)=0\]
が必ず成り立っていた。ということは、汎関数が極値をとるときには、
\[I'^{(\varphi)}[f]=0\tag{9}\]
が成り立っているはずだ。しかも、これは任意の\(\varphi\)という変化の方向に対して成り立っていないといけないだろうと予想できる。もしそうでなかったらある方向に対しては極値でないということになるから。
さて、最初のほうで書いたように、
\[I[f]=\int_{x_1}^{x_2} F\left(x,f(x),f'(x)\right) dx\tag{1}\]
が変分法で主役になる汎関数である。そこで、この汎関数の極値を与える可能性のある関数\(u(x)\)を求めてみよう。つまり、
\[I'^{(\varphi)}[u]=\left.\frac{d}{dt}I[u+t\varphi]\right|_{t=0}=0\tag{10}\]
を計算するのだ。ただし、\(\varphi(x_1)=\varphi(x_2)=0\)として、関数の端の値は変化させないとする。(物理で変分法を使うときは、だいたい端の点は境界条件として固定されていることが多い。例えば弦の振動なんかがそうだ。)
\begin{align}
\frac{d}{dt}I[u+t\varphi]&=\frac{d}{dt}\int_{x_1}^{x_2} F(x,u+t\varphi,u'+t\varphi') dx\\
&=\frac{d}{dt}\int_{x_1}^{x_2} \left(F(x,u,u')+t\varphi\left.\frac{\partial F}{\partial f}\right|_{f=u}+t\varphi'\left.\frac{\partial F}{\partial f'}\right|_{f'=u'}\right) dx\\
&=\int_{x_1}^{x_2} \left(\varphi\left.\frac{\partial F}{\partial f}\right|_{f=u}+\varphi'\left.\frac{\partial F}{\partial f'}\right|_{f'=u'}\right) dx\\
&=\int_{x_1}^{x_2} \varphi\left.\frac{\partial F}{\partial f}\right|_{f=u} dx+\int_{x_1}^{x_2}\varphi'\left.\frac{\partial F}{\partial f'}\right|_{f'=u'} dx\\
&=\int_{x_1}^{x_2} \varphi\left.\frac{\partial F}{\partial f}\right|_{f=u} dx+\left[\varphi\left.\frac{\partial F}{\partial f'}\right|_{f'=u'}\right]_{x_1}^{x_2}-\int_{x_1}^{x_2}\varphi\left.\frac{d}{dx}\frac{\partial F}{\partial f'}\right|_{f'=u'} dx~~(部分積分)\\
&=\int_{x_1}^{x_2} \left(\varphi\left.\frac{\partial F}{\partial f}\right|_{f=u}-\varphi\left.\frac{d}{dx}\frac{\partial F}{\partial f'}\right|_{f'=u'}\right) dx\\
&=\int_{x_1}^{x_2} \left(\left.\frac{\partial F}{\partial f}\right|_{f=u}-\left.\frac{d}{dx}\frac{\partial F}{\partial f'}\right|_{f'=u'}\right)\varphi dx\tag{11}
\end{align}
というふうに計算していける。ここまでくれば後はわかる。汎関数が極値を取る可能性があるのは、(11)式が任意の\(\varphi\)について0であるときだ。よって、
\[\frac{\partial F}{\partial u}-\frac{d}{dx}\frac{\partial F}{\partial u'}=0\tag{12}\]
というオイラー・ラグランジュ方程式
を得る。この微分方程式を解けば、汎関数が極値を取る可能性がある関数\(u\)が求まるわけだ。逆に言えば、(12)式の形をした微分方程式は、(1)式で定義された汎関数の極値を求めると、そのときの値が方程式の解になっているということだ。
このように、変分問題と微分方程式は表裏一体の関係にある。