変分法    Calculus of variation

 関数のスカラー関数を汎関数 (Functional ) と呼んでいますが、この極大と極小を与えられた拘束条件のもとで求める問題は、物理学などで古くから研究されてきました。 変分法は、このような問題を統一的に解く数学的手法です。 いきなり関数空間を考えるのは直感的理解が困難なので、まずは変数(ベクトル空間)のスカラー関数について、変分法の原理を直感的に説明します。 汎関数への拡張は、その原理をそのまま関数空間にもち込むことになりますが、関数空間の数学的体系は専門書を読んでください。 

次のような例題を解いてみましょう。


 

誰もが考える方法は、

から、

のような形を求め、これを

に代入して、変数 に関して極値を求めることです。 しかし、このような方法にこだわると、式(2)の陽形式が複雑なってしまったり、また、変数の数や拘束条件の数が多くなったとき、大変複雑になってしまいます。 そこで、この例題をもっと幾何学的に考えてみましょう。 そうすれば、問題が高次元になっても、見通しよく拡張することができます。 たとえば、

として、この問題の様子を図解してみます。 曲面 は下図のようになります。 

img1.gif

そして、上の曲面を

で切り取ってみましょう。 すると問題は次のように言うことができます。

 上から見ると円形をした島があり、この崖のふちに沿って道がある。
この道の最高点と最低点の緯度と経度を求めよ。
 

img2.gif

は地点の高度を表しているので、極小点では、道に沿って一歩進んでも、一歩引き返しても、高度は上がります。 極大点ではその逆です。 ということは、

 極小点または極大点では、道に沿った接線と曲面 の等高線の接線が同じ

になっていなければなりません。 もし、両方の接線が交叉していると、そこは極小あるいは極大になっていません。 逆に言えば、上のことが成り立つ地点は極大または極小(厳密に言えば、鞍点も含む。 これらを総称して停留点と呼ぶ)になっています。 「接線が同じ」という数学的表現は次のようになります。 まず、 の変分は

 

img3.gif

ですが、接線方向の変分は になっていなければならないので、

が等高線の接線(あるいは法線)を与えています。 ちなみに、

が接線の勾配を表しています。 一方、拘束条件の接線は、

を満たします( 式(6)と(8)の は同じであることに注意)。 地点 で接線(8)と接線(6)の勾配が一致していることは、

であり、ちょっと書き換えて、

です。 式(10)の値を とおくと、

が得られ、式(11)と拘束条件(1)を連立させれば、停留点を求めることができます。 このことは、 も変数に含めて、

の極値を求めることと同等です。 以上が、ラグランジェ (Joseph Louis Lagrange, 1736-1813) の未定乗数法です。 では、式(12)を用いて、冒頭の例題を解いてみましょう。 極値が満たす式は次の3つです。

のとき、極値は 、および、 で実現します。  のときは、連立方程式

の解で極値をとり、 のときの式(16)と(17)は下のオレンジ色のカーブであり、4つの交点で、円の接線と の等高線の接線が同じになっていることが読み取れます。

img4.gif

次に、この方法を3次元に拡張し、拘束条件を二つにしてみます。


それぞれの拘束条件は点 が曲面に拘束されているので、二つの拘束条件を同時に満たす点は曲線上に拘束されています。 したがって、

 停留点では、 の等密度曲面の接面に
, を同時に満たす曲線の接線が含まれる

ということになります。 このことは、 の等密度曲面の接面

が、二つの接面、

に従属していることを意味しているので、

が成り立っていなければなりません。 したがって、 を変数に加えて、

の極値を求める問題に帰着します。 多次元の一般原理は、この考察をストレートに拡張すれば得られます。

汎関数の場合、解が連続関数として求まるならば、ラグランジェの未定乗数法を適用することができます。 たとえば、よく遭遇する下記のような問題を想定してみます。


コンピューターによる直接的な数値計算法は、 軸をサンプリングして、多次元のラグランジェの未定乗数法を適用して得られます。 最初に変分法を考え出したオイラー ( Leonhard Euler  1707-1783) もこのような道筋で考えました。 実際、サンプリング間隔を十分細かくしたとき、少し隔たった区間では、変分が独立なので、次のような状況に帰着します。 汎関数

において、関数 がランダムな摂動 を受けるとします。 もし汎関数が極値にあれば、汎関数は で極値をとることが必要です。

img1.gif

したがって、

を代入し、

が任意の に対して成り立つような関数を求めれば、それが極値(または鞍点)を与えます。