ラグランジュの未定乗数法の解説と直感的な証明
ラグランジュの未定乗数法の解説と直感的な証明

ラグランジュの未定乗数法の解説と直感的な証明

ラグランジュの未定乗数法の解説と直感的な証明 L ( x , y ) = f ( x , y ) − λ g ( x , y ) L(x,y)=f(x,y)-\lambda g(x,y) L ( x , y ) = f ( x , y ) − λ g ( x , y ) ∂ L ∂ x = ∂ L ∂ y = ∂ L ∂ λ = 0 \frac =\frac =\frac =0 ∂

L ( x , y ) = f ( x , y ) − λ g ( x , y ) L(x,y)=f(x,y)-\lambda g(x,y) L ( x , y ) = f ( x , y ) − λ g ( x , y ) ∂ L ∂ x = ∂ L ∂ y = ∂ L ∂ λ = 0 \frac=\frac=\frac=0 ∂ x ∂ L ​ = ∂ y ∂ L ​ = ∂ λ ∂ L ​ = 0

は一見複雑な見た目をしており特に L ( x , y ) L(x,y) L ( x , y ) が何を意味しているのかが分かりにくいと思います。 この文書ではラグランジュの未定乗数法の式が何を意味していて、なぜこれによって束縛条件 g ( x , y ) = 0 g(x,y)=0 g ( x , y ) = 0 の元での f ( x , y ) f(x,y) f ( x , y ) の最大値(あるいは最小値)を求めることができるのかを直感的に分かりやすいように説明します。

( x , y ) (x,y) ( x , y ) が束縛条件 g ( x , y ) = 0 g(x,y)=0 g ( x , y ) = 0 をみたす条件下で、ある関数 f ( x , y ) f(x, y) f ( x , y ) を最大化(最小化)することを考える。 変数 λ \lambda λ を導入して関数 L ( x , y , λ ) L(x,y,\lambda) L ( x , y , λ ) を次のように定義する。

L ( x , y , λ ) = f ( x , y ) − λ g ( x , y ) L(x,y,\lambda)=f(x,y)-g(x,y) L ( x , y , λ ) = f ( x , y ) − λ g ( x , y )

λ \lambda λ のことをラグランジュ乗数(Lagrange multiplier)、 L ( x , y , λ ) L(x,y,\lambda) L ( x , y , λ ) をラグランジュ関数(Lagrange function)と呼ぶ。 ある ( x 0 , y 0 ) (x_0, y_0) ( x 0 ​ , y 0 ​ ) が束縛条件 g ( x , y ) = 0 g(x,y)=0 g ( x , y ) = 0 を満たし f ( x , y ) f(x, y) f ( x , y ) を最大化または最小化するならば、ある λ 0 \lambda_0 λ 0 ​ が存在し、 ( x 0 , y 0 , λ 0 ) (x_0,y_0,\lambda_0) ( x 0 ​ , y 0 ​ , λ 0 ​ ) において

n n n 個の変数 x 1 , x 2 , … , x n x_1,x_2,\ldots,x_n x 1 ​ , x 2 ​ , … , x n ​ が 束縛条件 g ( x 1 , x 2 , … , x n ) = 0 g(x_1,x_2,\ldots,x_n)=0 g ( x 1 ​ , x 2 ​ , … , x n ​ ) = 0 をみたしている場合に、 関数 f ( x 1 , x 2 , … , x n ) f(x_1,x_2,\ldots,x_n) f ( x 1 ​ , x 2 ​ , … , x n ​ ) を最大化する ( x 1 , x 2 , … , x n ) (x_1,x_2,\ldots,x_n) ( x 1 ​ , x 2 ​ , … , x n ​ ) を求めたい。

L ( x 0 , x 1 , … , x n , λ ) = f ( x 1 , x 2 , … , x n ) − λ g ( x 1 , x 2 , … , x n ) L(x_0,x_1,\ldots,x_n,\lambda)=f(x_1,x_2,\ldots,x_n)-\lambda g(x_1,x_2,\ldots,x_n) L ( x 0 ​ , x 1 ​ , … , x n ​ , λ ) = f ( x 1 ​ , x 2 ​ , … , x n ​ ) − λ g ( x 1 ​ , x 2 ​ , … , x n ​ )

で定義される L L L 対して、 f f f が束縛条件 g = 0 g=0 g = 0 の元で最大化される時

∂ L ∂ x 0 = ∂ L ∂ x 1 = … = ∂ L ∂ x n = ∂ L ∂ λ = 0 \frac=\frac=\ldots=\frac=\frac=0 ∂ x 0 ​ ∂ L ​ = ∂ x 1 ​ ∂ L ​ = … = ∂ x n ​ ∂ L ​ = ∂ λ ∂ L ​ = 0

まず初めに ∂ L ∂ λ = 0 \frac=0 ∂ λ ∂ L ​ = 0 の部分ですが、これは単に g ( x , y ) = 0 g(x,y)=0 g ( x , y ) = 0 を難しく書きなおしたものに過ぎません。

∂ L ∂ λ = ∂ ( f ( x , y ) − λ g ( x , y ) ) ∂ λ = ∂ f ( x , y ) ∂ λ − ∂ ( λ g ( x , y ) ) ∂ λ = − g ( x , y ) = 0 \frac=\frac=\frac-\frac=-g(x,y)=0 ∂ λ ∂ L ​ = ∂ λ ∂ ( f ( x , y ) − λ g ( x , y ) ) ​ = ∂ λ ∂ f ( x , y ) ​ − ∂ λ ∂ ( λ g ( x , y ) ) ​ = − g ( x , y ) = 0

∂ L ∂ λ = 0 \frac=0 ∂ λ ∂ L ​ = 0 は束縛条件 g ( x , y ) = 0 g(x,y)=0 g ( x , y ) = 0 を別の方法で表現したものに過ぎないので、 ( x , y ) (x,y) ( x , y ) を解析的に求める上では特に役にはたちません。

です。この部分は λ \lambda λ の場合と異なり x x x , y y y をまとめて解釈すると分かりやすいです。 L L L を展開して、変形すると

∂ f ( x , y ) ∂ x − λ ∂ g ( x , y ) ∂ x = 0 \frac-\lambda \frac=0 ∂ x ∂ f ( x , y ) ​ − λ ∂ x ∂ g ( x , y ) ​ = 0 ∂ f ( x , y ) ∂ y − λ ∂ g ( x , y ) ∂ y = 0 \frac-\lambda \frac=0 ∂ y ∂ f ( x , y ) ​ − λ ∂ y ∂ g ( x , y ) ​ = 0

− λ -\lambda − λ の項をそれぞれ右辺に持っていけば、

∂ f ( x , y ) ∂ x = λ ∂ g ( x , y ) ∂ x \frac=\lambda \frac ∂ x ∂ f ( x , y ) ​ = λ ∂ x ∂ g ( x , y ) ​ ∂ f ( x , y ) ∂ y = λ ∂ g ( x , y ) ∂ y \frac=\lambda \frac ∂ y ∂ f ( x , y ) ​ = λ ∂ y ∂ g ( x , y ) ​

f ( x , y ) f(x,y) f ( x , y ) は f f f として省略して書きつつ、ベクトルで2つの式をまとめると

( ∂ f ∂ x ∂ f ∂ y ) = λ ( ∂ g ∂ x ∂ g ∂ y ) \left( \begin \frac \\ \frac \end \right) =\lambda \left( \begin \frac \\ \frac \end \right) ( ∂ x ∂ f ​ ∂ y ∂ f ​ ​ ) = λ ( ∂ x ∂ g ​ ∂ y ∂ g ​ ​ )

これはどういう意味でしょうか? 2つのベクトル a ⃗ \vec a

がある実数 k k k に対して a ⃗ = k b ⃗ \vec=k\vec a

が成り立っているというのは、2つのベクトル a ⃗ \vec a

はベクトル ( ∂ f ∂ x ∂ f ∂ y ) \left( \begin \frac \\ \frac \end \right) ( ∂ x ∂ f ​ ∂ y ∂ f ​ ​ ) とベクトル ( ∂ g ∂ x ∂ g ∂ y ) \left( \begin \frac \\ \frac \end \right) ( ∂ x ∂ g ​ ∂ y ∂ g ​ ​ ) は平行であるということを意味しているのです。

つまりラグランジュ未定乗数法は f ( x , y ) f(x,y) f ( x , y ) を最大化する点 ( x , y ) (x,y) ( x , y ) において、 f ( x , y ) f(x,y) f ( x , y ) , g ( x , y ) g(x,y) g ( x , y ) を偏微分して得られるベクトル ( ∂ f ∂ x ∂ f ∂ y ) \left( \begin \frac \\ \frac \end \right) ( ∂ x ∂ f ​ ∂ y ∂ f ​ ​ ) , ( ∂ g ∂ x ∂ g ∂ y ) \left( \begin \frac \\ \frac \end \right) ( ∂ x ∂ g ​ ∂ y ∂ g ​ ​ ) は平行になるといういうことを難解に表現したものに過ぎません。後は偏微分で得られるベクトル ( ∂ f ∂ x ∂ f ∂ y ) \left( \begin \frac \\ \frac \end \right) ( ∂ x ∂ f ​ ∂ y ∂ f ​ ​ ) が何を意味しているかを理解すればラグランジュの未定乗数法が何を意味していて何故それを使って f ( x , y ) f(x,y) f ( x , y ) を最大化する ( x , y ) (x, y) ( x , y ) を求めることができるのかが理解できます。

( ∂ f ∂ x ∂ f ∂ y ) \left( \begin \frac \\ \frac \end \right) ( ∂ x ∂ f ​ ∂ y ∂ f ​ ​ ) のことを専門用語で勾配 (Gradient)と呼び、 ∇ f \nabla f ∇ f と表記します。 つまりラグランジュの未定乗数法は、 f ( x , y ) f(x,y) f ( x , y ) を最大化する点において f ( x , y ) f(x,y) f ( x , y ) , g ( x , y ) g(x,y) g ( x , y ) のそれぞれの勾配 ∇ f \nabla f ∇ f , ∇ g \nabla g ∇ g が平行になるということを意味しています。 では勾配 ∇ f \nabla f ∇ f , ∇ g \nabla g ∇ g はどのようなベクトルなのでしょうか。

ある一定値 c c c に対して f ( x , y ) = c f(x,y)=c f ( x , y ) = c をみたす ( x , y ) (x,y) ( x , y ) について考えます。 この ( x , y ) (x,y) ( x , y ) は ( x , y ) (x,y) ( x , y ) 平面上の曲線となり、 f f f を山の高さだと思うと関数 f ( x , y ) f(x,y) f ( x , y ) の等高線に相当するものになります。

曲線 f ( x , y ) = c f(x,y)=c f ( x , y ) = c 上のある点 ( x , y ) (x,y) ( x , y ) から、 ( x , y ) (x,y) ( x , y ) を微小に ( Δ x , Δ y ) (\Delta x,\Delta y) ( Δ x , Δ y ) だけ変化させたることを考えます。 ( x , y ) (x,y) ( x , y ) を微小に変化させた場合の f f f の変化は偏微分に比例するので

f ( x + Δ x , y + Δ y ) ≃ f ( x , y ) + ∂ f ∂ x Δ x + ∂ f ∂ y Δ y = c + ∂ f ∂ x Δ x + ∂ f ∂ y Δ y f(x+\Delta x,y+\Delta y)\simeq f(x,y)+\frac\Delta x+\frac\Delta y=c+\frac\Delta x+\frac\Delta y f ( x + Δ x , y + Δ y ) ≃ f ( x , y ) + ∂ x ∂ f ​ Δ x + ∂ y ∂ f ​ Δ y = c + ∂ x ∂ f ​ Δ x + ∂ y ∂ f ​ Δ y

いま ( Δ x , Δ y ) (\Delta x,\Delta y) ( Δ x , Δ y ) が曲線 f ( x , y ) = c f(x,y)=c f ( x , y ) = c の接線方向のベクトルだとすると、 ( Δ x , Δ y ) (\Delta x,\Delta y) ( Δ x , Δ y ) だけ移動した点 ( x + Δ x , y + Δ y ) (x+\Delta x,y+\Delta y) ( x + Δ x , y + Δ y ) も曲線上の点になるので f ( x + Δ x , y + Δ y ) = c f(x+\Delta x,y+\Delta y)=c f ( x + Δ x , y + Δ y ) = c 。そのため

f ( x + Δ x , y + Δ y ) = c + ∂ f ∂ x Δ x + ∂ f ∂ y Δ y = c f(x+\Delta x,y+\Delta y)=c+\frac\Delta x+\frac\Delta y=c f ( x + Δ x , y + Δ y ) = c + ∂ x ∂ f ​ Δ x + ∂ y ∂ f ​ Δ y = c

となります。両辺から c c c を引いて

∂ f ∂ x Δ x + ∂ f ∂ y Δ y = 0 \frac\Delta x+\frac\Delta y=0 ∂ x ∂ f ​ Δ x + ∂ y ∂ f ​ Δ y = 0

( ∂ f ∂ x ∂ f ∂ y ) ⋅ ( Δ x Δ y ) = ∇ f ⋅ ( Δ x Δ y ) = 0 \left( \begin \frac \\ \frac \end \right) \cdot \left( \begin \Delta x \\ \Delta y \end \right) = \nabla f \cdot \left( \begin \Delta x \\ \Delta y \end \right)=0 ( ∂ x ∂ f ​ ∂ y ∂ f ​ ​ ) ⋅ ( Δ x Δ y ​ ) = ∇ f ⋅ ( Δ x Δ y ​ ) = 0

(ゼロではない) 2つのベクトルの内積が0になるのは、2つのベクトルが直交する時です。 そして ( Δ x Δ y ) \left( \begin \Delta x \\ \Delta y \end \right) ( Δ x Δ y ​ ) は曲線 f ( x , y ) = c f(x,y)=c f ( x , y ) = c の接線方向の微小なベクトルです。その接線方向のベクトルと直交する勾配 ∇ f \nabla f ∇ f は、すなわち、 f ( x , y ) = c f(x,y)=c f ( x , y ) = c の法線ベクトルに他なりません。

そしてラグランジュ未定乗数法の ∂ L ∂ x = ∂ L ∂ y = 0 ⇔ ∃ ∇ f = λ ∇ g \frac=\frac=0\Leftrightarrow\exists\nabla f=\lambda \nabla g ∂ x ∂ L ​ = ∂ y ∂ L ​ = 0 ⇔ ∃ ∇ f = λ ∇ g は f f f の等高線 f ( x , y ) = c f(x,y)=c f ( x , y ) = c と束縛条件の曲線 g ( x , y ) = 0 g(x,y)=0 g ( x , y ) = 0 のそれぞれの法線ベクトルが平行であることを意味しています。 つまりは2つの曲線が接しているということです。

なぜ f ( x , y ) = c f(x,y)=c f ( x , y ) = c , g ( x , y ) = 0 g(x,y)=0 g ( x , y ) = 0 が接する必要があるか

以上より、ラグランジュの未定乗数法が述べていることは言い換えれば、束縛条件 g ( x , y ) g(x,y) g ( x , y ) の元で f ( x , y ) f(x,y) f ( x , y ) が最大値(あるいは最小値)となる点 ( x , y ) (x,y) ( x , y ) において曲線 g ( x , y ) = 0 g(x,y)=0 g ( x , y ) = 0 と f ( x , y ) = c f(x,y)=c f ( x , y ) = c ( c c c は点 ( x , y ) (x,y) ( x , y ) における f ( x , y ) f(x,y) f ( x , y ) の値)が接するということです。

これは逆に考えて(対偶を考えて)、 g ( x , y ) = 0 g(x,y)=0 g ( x , y ) = 0 と f ( x , y ) = c f(x,y)=c f ( x , y ) = c が点 ( x , y ) (x,y) ( x , y ) において交差しているならばその点で f ( x , y ) f(x,y) f ( x , y ) は最大・最小にはならないと考えれば、直感的に理解できます。

の ∂ L ∂ λ = 0 \frac=0 ∂ λ ∂ L ​ = 0 の部分は単に束縛条件 g ( x , y ) = 0 g(x,y)=0 g ( x , y ) = 0 を言い換えたものです。 ∂ L ∂ x = ∂ L ∂ y = 0 \frac=\frac=0 ∂ x ∂ L ​ = ∂ y ∂ L ​ = 0 の部分は f f f , g g g の勾配(gradient) ∇ f \nabla f ∇ f , ∇ g \nabla g ∇ g が平行であることと意味しています。 勾配 ∇ f \nabla f ∇ f は f ( x , y ) f(x,y) f ( x , y ) の等高線の法線ベクトルであるので、 ∇ f \nabla f ∇ f , ∇ g \nabla g ∇ g が平行であるというのは要するに f ( x , y ) f(x,y) f ( x , y ) の等高線と g ( x , y ) g(x,y) g ( x , y ) の等高線が接していることと同義です。