ラグランジュの未定乗数法 (ラグランジュのみていじょうすうほう、英 : method of Lagrange multiplier )とは、束縛条件のもとで最適化 を行うための数学 (解析学 )的な方法である。いくつかの変数 に対して、いくつかの関数 の値を固定するという束縛条件のもとで、別のある1つの関数の極値を求めるという問題を考える。各束縛条件に対して定数(未定乗数 、Lagrange multiplier )を用意し、これらを係数とする線形結合 を新しい関数(未定乗数も新たな変数とする)として考えることで、束縛問題を普通の極値 問題として解くことができる方法である。
ラグランジュの未定乗数法は、次のような定理として記述される。
束縛条件 g (x , y ) = 0 の下で、f (x , y ) が最大値となる点 (a , b ) を求める問題、つまり
maximize f ( x , y ) , {\displaystyle f(x,y),} subject to g ( x , y ) = 0 {\displaystyle g(x,y)=0} という問題を考える。ラグランジュ乗数 を λ とし、
F ( x , y , λ ) = f ( x , y ) − λ g ( x , y ) {\displaystyle F(x,y,\lambda )=f(x,y)-\lambda g(x,y)}
とおく。点 (a , b ) で ∂g / ∂x と ∂g / ∂y の少なくとも一方が 0 でないならば、α が存在して点 (a , b , α ) で
∂ F ∂ x = ∂ F ∂ y = ∂ F ∂ λ = 0 {\displaystyle {\frac {\partial F}{\partial x}}={\frac {\partial F}{\partial y}}={\frac {\partial F}{\partial \lambda }}=0} が成り立つ[ 1] 。
n 次元空間の点 x = (x 1 , …, xn ) のある領域 R を定義域とする被評価関数 z = f (x ) が、同じ領域を定義域とする m 次元ベクトル値関数
G ( x ) = ( g 1 ( x 1 , … , x n ) ⋮ g m ( x 1 , … , x n ) ) = 0 ( 1 ) {\displaystyle {\boldsymbol {G}}({\boldsymbol {x}})={\begin{pmatrix}g_{1}(x_{1},\dots ,x_{n})\\\vdots \\g_{m}(x_{1},\dots ,x_{n})\end{pmatrix}}={\boldsymbol {0}}\qquad (1)} の下で、R 内の点 x において極値をとるための必要条件 は、その点における f の勾配 ベクトル
∇ f = t ( ∂ f ∂ x 1 , … , ∂ f ∂ x n ) {\displaystyle \nabla f={}^{t}{\begin{pmatrix}{\dfrac {\partial f}{\partial x_{1}}},\dots ,{\dfrac {\partial f}{\partial x_{n}}}\end{pmatrix}}} が、その点で、m 個の gi それぞれの勾配ベクトルが張る m 次元線型部分空間 に含まれること、すなわち、スカラーの組 λ = (λ 1 , …, λm ) を用いて、
∇ f = ∑ i = 1 m λ i ∇ g i ( 2 ) {\displaystyle \nabla f=\sum _{i=1}^{m}\lambda _{i}\nabla g_{i}\qquad (2)} が成り立つことである。移項して ∇ を取れば、
f ( x ) − ∑ i = 1 m λ i g i ( x ) {\displaystyle f({\boldsymbol {x}})-\sum _{i=1}^{m}\lambda _{i}g_{i}({\boldsymbol {x}})} が停留点 をとることである。ただし、{∇g 1 , …, ∇gm } は一次独立 、すなわち
dim ( ∇ g 1 , … , ∇ g m ) = m {\displaystyle \dim(\nabla g_{1},\dots ,\nabla g_{m})=m} でなければならない。式(1)の m 本と式(2)の n 本の式を連立させて、x と λ の (n + m ) 個の未知数について解けば、f の極値を与える候補点が得られる[ 2] 。
図1:束縛条件 g (x ,y ) = c に対して関数 f (x ,y ) を最大化する場合。 図2:図1の等高線地図。赤い線は束縛条件 g (x , y ) = c を示す。青い線は f (x , y ) の等高線。赤い線が青い等高線に接する点が解。 簡単のため2次元 の場合を考えよう。g (x , y ) = c (ここで c は与えられた定数である)という条件の下、関数 f (x , y ) を最大化するものとしよう。f の値を高さとしたグラフを考えると、高さが d の f の等高線は f (x , y ) = d で与えられる。ここで、任意の曲線に沿って移動する点を考えると、この点が等高線を横切る場合、必ず f (x , y ) は増加、もしくは減少するが、この点が等高線に沿って移動する場合は f (x , y ) は変化しないことが分かる。この条件と通常の極値の条件を合わせて考えれば、曲線上で f (x , y ) が最大をとる点では、f の等高線の接線と曲線の接線が平行となっているか、f の勾配がゼロとなっていることが分かる。ここで g (x , y ) = c の接線は、g の勾配ベクトル ∇x ,y g と直交し、また f の等高線 f (x , y ) = d の接線は f の勾配ベクトル ∇x ,y f と直交することを踏まえると、前述の条件は
∇ x , y f = λ ∇ x , y g {\displaystyle \nabla _{x,y}f=\lambda \nabla _{x,y}g} と書ける。ここで
∇ x , y f = ( ∂ f ∂ x , ∂ f ∂ y ) , ∇ x , y g = ( ∂ g ∂ x , ∂ g ∂ y ) {\displaystyle \nabla _{x,y}f=\left({\frac {\partial f}{\partial x}},{\frac {\partial f}{\partial y}}\right),\qquad \nabla _{x,y}g=\left({\frac {\partial g}{\partial x}},{\frac {\partial g}{\partial y}}\right)} である。定数 λ は f の勾配ベクトルと g の勾配ベクトルが平行ではあるが長さが一般に異なるために必要である。λ = 0 の場合、f (x , y ) の勾配がゼロとなる条件になる。これは g (x , y ) = c の曲線上にちょうど f の最大値があるため、曲線上で f (x ,y ) が最大を取る点と通常の f (x , y ) の最大値が一致する場合である。
前述の式を変形すると
∇ x , y ( f − λ g ) = 0 {\displaystyle \nabla _{x,y}(f-\lambda g)=0} となることから、f − λ g の極値を求めればいいことになる。
次の類似した2つの問題を考える
問題A x ∈ R n {\displaystyle x\in \mathbb {R} ^{n}} が束縛条件 g ( x ) = 0 {\displaystyle g(x)=0} を満たす条件下で、 f ( x ) {\displaystyle f(x)} を極大にする点を求めよ。
問題B λ {\displaystyle \lambda } を定数とし、 x ∈ R n {\displaystyle x\in \mathbb {R} ^{n}} が h ( x ) = f ( x ) − λ g ( x ) {\displaystyle h(x)=f(x)-\lambda g(x)} を極大にする点を求めよ。
問題Aは、束縛条件が存在するため「各変数で偏微分して、偏微分係数がゼロになる点を求める」という解法が使えないのに対し、問題Bには束縛条件がないので、「各変数で偏微分して、偏微分係数がゼロになる点を求める」という解法が使える。ラグランジュの未定乗数法は、問題Aと問題Bが、実質的に同じであることを言うものである。
問題B→問題A X ∈ R n {\displaystyle X\in \mathbb {R} ^{n}} をある λ {\displaystyle \lambda } についての問題Bの極大点とし、加えて X {\displaystyle X} が g ( X ) = 0 {\displaystyle g(X)=0} を満たせば、 X {\displaystyle X} は問題Aの解である。 なぜなら、 X {\displaystyle X} の近傍で g ( x ) = 0 {\displaystyle g(x)=0} となる点 x {\displaystyle x} を考えると、 f ( x ) = f ( x ) − λ g ( x ) ≤ f ( X ) − λ g ( X ) = f ( X ) {\displaystyle f(x)=f(x)-\lambda g(x)\leq f(X)-\lambda g(X)=f(X)} となるため、 X {\displaystyle X} は問題Aの極大点でもある。
問題A→問題B X ∈ R n {\displaystyle X\in \mathbb {R} ^{n}} を問題Aの極大点とする。 c ( t ) ∈ R n {\displaystyle c(t)\in \mathbb {R} ^{n}} 、 t ∈ ( − 1 , 1 ) {\displaystyle t\in (-1,1)} を、 g ( c ( t ) ) = 0 {\displaystyle g(c(t))=0} を満たし X {\displaystyle X} を通る曲線とし、 c ( 0 ) = X {\displaystyle c(0)=X} とする。 F ( t ) = f ( c ( t ) ) {\displaystyle F(t)=f(c(t))} を t {\displaystyle t} の関数と考える。 d F d t = ∑ i = 1 n ∂ f ∂ x i d c i d t = ∇ f ⋅ c ′ ( t ) {\displaystyle {\frac {dF}{dt}}=\sum _{i=1}^{n}{\frac {\partial f}{\partial x_{i}}}{\frac {dc_{i}}{dt}}=\nabla f\cdot c'(t)} ただし、 ∇ f = ( ∂ f / ∂ x 1 , ⋯ , ∂ f / ∂ x n ) {\displaystyle \nabla f=(\partial f/\partial x_{1},\cdots ,\partial f/\partial x_{n})} 、 c ′ ( t ) = ( d c 1 / d t , ⋯ , d c n / d t ) {\displaystyle c'(t)=(dc_{1}/dt,\cdots ,dc_{n}/dt)} 、「 ⋅ {\displaystyle \cdot } 」はベクトルの内積である。 一方、 g ( c ( t ) ) = 0 {\displaystyle g(c(t))=0} の両辺を t {\displaystyle t} で微分すれば、 ∇ g ⋅ c ′ ( t ) = 0 {\displaystyle \nabla g\cdot c'(t)=0} が言える。 g ( c ( t ) ) = 0 {\displaystyle g(c(t))=0} を満たし X {\displaystyle X} を通るどのような曲線でも、 t = 0 {\displaystyle t=0} は、 c ( 0 ) = X {\displaystyle c(0)=X} のため F ( t ) = f ( c ( t ) ) {\displaystyle F(t)=f(c(t))} の極大点であり、 d F / d t ( 0 ) = ∇ f ( X ) ⋅ c ′ ( 0 ) = 0 {\displaystyle dF/dt(0)=\nabla f(X)\cdot c'(0)=0} が言える。ただし c ′ ( 0 ) {\displaystyle c'(0)} は、曲線の X {\displaystyle X} での接線ベクトルである。
X {\displaystyle X} が問題Aの極大点であれば、 ∇ g ( X ) ⋅ v = 0 {\displaystyle \nabla g(X)\cdot v=0} を満たすどのような v ∈ R n {\displaystyle v\in \mathbb {R} ^{n}} についても、 ∇ f ( X ) ⋅ v = 0 {\displaystyle \nabla f(X)\cdot v=0} である。 ∇ g ( X ) ≠ 0 {\displaystyle \nabla g(X)\neq 0} と仮定し、 ∇ f ( X ) {\displaystyle \nabla f(X)} を、 ∇ g ( X ) {\displaystyle \nabla g(X)} に平行な成分 a {\displaystyle a} と、 ∇ g ( X ) {\displaystyle \nabla g(X)} に垂直な成分 b {\displaystyle b} に分解する。( ∇ g ( X ) {\displaystyle \nabla g(X)} 方向の単位ベクトルを e {\displaystyle e} とすると、 a = ( ∇ f ( X ) ⋅ e ) e {\displaystyle a=(\nabla f(X)\cdot e)e} 、 b = ∇ f ( X ) − a {\displaystyle b=\nabla f(X)-a} である。) ∇ f ( X ) = a + b {\displaystyle \nabla f(X)=a+b} ∇ g ( X ) ⋅ b = 0 {\displaystyle \nabla g(X)\cdot b=0} であるため v = b {\displaystyle v=b} として代入すると、 0 = ∇ f ( X ) ⋅ b = a ⋅ b + b ⋅ b = b ⋅ b {\displaystyle 0=\nabla f(X)\cdot b=a\cdot b+b\cdot b=b\cdot b} 、よって b = 0 {\displaystyle b=0} このため、 ∇ f ( X ) {\displaystyle \nabla f(X)} と ∇ g ( X ) {\displaystyle \nabla g(X)} は平行である。
∇ f ( X ) = λ ∇ g ( X ) {\displaystyle \nabla f(X)=\lambda \nabla g(X)} 、(ただし ∇ g ( X ) ≠ 0 {\displaystyle \nabla g(X)\neq 0} を仮定した。) この λ {\displaystyle \lambda } について問題Bを考えると、 ∇ f ( X ) − λ ∇ g ( X ) = 0 {\displaystyle \nabla f(X)-\lambda \nabla g(X)=0} であるため、 ∂ h ∂ x i ( X ) = ∂ f ∂ x i ( X ) − λ ∂ g ∂ x i ( X ) = 0 {\displaystyle {\frac {\partial h}{\partial x_{i}}}(X)={\frac {\partial f}{\partial x_{i}}}(X)-\lambda {\frac {\partial g}{\partial x_{i}}}(X)=0} となり、全ての偏微分係数がゼロとなるため、 X {\displaystyle X} は問題Bの極大点でもある。
2次元問題で、束縛条件が1つの場合には 、以下のように連立方程式を作ってもよい:
∂ f ∂ x + λ ′ ∂ f ∂ y = 0 {\displaystyle {\frac {\partial f}{\partial x}}+\lambda '{\frac {\partial f}{\partial y}}=0} ∂ g ∂ x + λ ′ ∂ g ∂ y = 0 {\displaystyle {\frac {\partial g}{\partial x}}+\lambda '{\frac {\partial g}{\partial y}}=0} g ( x , y ) = 0 {\displaystyle g(x,y)=0} ただしこの場合の λ は、もとの定理の λ とは異なる。
この変則版は、極値となる点で全微分 df = 0 となる方向と、dg = 0 となる方向が平行であることから導かれる。
物理学 の問題を解くとき、ラグランジュの未定乗数は単なる方便ではなく、ある物理量 を表すことが多い。
流体力学 において、非圧縮性流れ のナビエ-ストークス方程式 を解く場合、圧力 は速度ベクトル場が連続の式 という束縛条件を満たすための未定乗数として求められる[ 3] 。 連続の式を満たさない速度場 v * が与えられたとき、ここから連続の式 ∇·v = 0 を満たす速度場 v を求めることは、未定乗数(最終的に圧力場となる)を p として
R := 1 2 ∫ Ω ( v − v ∗ ) 2 d Ω − ∫ Ω p ∇ ⋅ v d Ω {\displaystyle R:={\frac {1}{2}}\int _{\Omega }({\boldsymbol {v}}-{\boldsymbol {v}}^{*})^{2}\mathrm {d} \Omega -\int _{\Omega }p\,\nabla \cdot {\boldsymbol {v}}\,\mathrm {d} \Omega } を最小化する問題に置き換えられる。ここで Ω は速度場が定義されている領域である。
R を最小化する速度場を v + とし、任意の微小変化 v = v + + δv を考えると、発散定理 を使って
δ R = ∫ Ω δ v ⋅ ( v + − v ∗ + ∇ p ) d Ω + ∮ ∂ Ω p δ v ⋅ d S . {\displaystyle \delta R=\int _{\Omega }\delta {\boldsymbol {v}}\cdot ({\boldsymbol {v}}^{+}-{\boldsymbol {v}}^{*}+\nabla p)\mathrm {d} \Omega +\oint _{\partial \Omega }p\delta {\boldsymbol {v}}\cdot \mathrm {d} {\boldsymbol {S}}.} δv の任意性より右辺第1項の括弧の中身が 0 であることと、∇·v + = 0 から
∇ 2 p = ∇ ⋅ v ∗ {\displaystyle \nabla ^{2}p=\nabla \cdot {\boldsymbol {v}}^{*}} というポアソン方程式 が導かれ、これを解いて得られる p を用いて
v + = v ∗ − ∇ p {\displaystyle {\boldsymbol {v}}^{+}={\boldsymbol {v}}^{*}-\nabla p} より速度場が求められる。
情報理論 的エントロピー が最大となる離散的確率分布 を見出すことを考えよう。このときエントロピーは確率 を変数とする関数で、
f ( p 1 , p 2 , … , p n ) = − ∑ k = 1 n p k log 2 p k {\displaystyle f(p_{1},p_{2},\dots ,p_{n})=-\sum _{k=1}^{n}p_{k}\log _{2}p_{k}} となる。もちろんこれらの確率の合計は1に等しく、束縛条件を表す関数は
g ( p 1 , p 2 , … , p n ) = ∑ k = 1 n p k − 1 {\displaystyle g(p_{1},p_{2},\dots ,p_{n})=\sum _{k=1}^{n}p_{k}-1} となる。ラグランジュ乗数を用いてエントロピー最大の点を見つけよう。すべての i (1から n をとる)に対して次の条件が必要である:
∂ ∂ p i ( f + λ g ) = 0. {\displaystyle {\frac {\partial }{\partial p_{i}}}(f+\lambda g)=0.} 従って
∂ ∂ p i ( − ∑ k = 1 n p k log 2 p k + λ ( ∑ k = 1 n p k − 1 ) ) = 0. {\displaystyle {\frac {\partial }{\partial p_{i}}}\left(-\sum _{k=1}^{n}p_{k}\log _{2}p_{k}+\lambda (\sum _{k=1}^{n}p_{k}-1)\right)=0.} これら n 個の方程式 から次の式が得られる:
− ( 1 ln 2 + log 2 p i ) + λ = 0. {\displaystyle -\left({\frac {1}{\ln 2}}+\log _{2}p_{i}\right)+\lambda =0.} これは、すべての pi が等しいということを示している(変数は λ だけだから)。
束縛条件 ∑k pk = 1 を使って、
p i = 1 n {\displaystyle p_{i}={\frac {1}{n}}} が分かる。すなわち、すべての事象が等確率の一様分布 がエントロピー最大の分布である:つまり他のどんな確率分布の場合よりも、確率変数が実際に観測されたときに得られる情報量の期待値 が大きいということである。
制約条件を予算制約線 、函数を効用関数 、極値を最適消費点 と置き換えることでミクロ経済学 における最適消費点を求める事に利用される[ 4] 。この際、ラグランジュの未定乗数は、貨幣の限界効用として解釈することができる。
統計力学 においては、統計集団 があるエネルギー状態 をとる確率を導出するために未定乗数法が用いられる。
この節の
加筆 が望まれています。
(2021年10月 )
作用積分 が S [q ] で与えられる物理系に n 個の拘束条件 ϕa (q , t ) = 0, (a = 1, ..., n ) が課せられているとき、この系の運動方程式は λa を未定乗数とする条件付き変分
δ S δ q + ∑ a = 1 n λ a ∂ ϕ a ∂ q = 0 {\displaystyle {\frac {\delta S}{\delta q}}+\sum _{a=1}^{n}\lambda _{a}{\frac {\partial \phi ^{a}}{\partial q}}=0} により表される[ 5] 。ここで δS /δq は汎関数微分 である。ラグランジュの運動方程式 で表すなら、ラグランジアン を
L ( q , q ˙ , t ) + ∑ a = 1 n λ a ϕ a ( q , t ) {\displaystyle L(q,{\dot {q}},t)+\sum _{a=1}^{n}\lambda _{a}\phi ^{a}(q,t)} に置き換えることで拘束を考慮した運動方程式が得られる。