ラグランジュの未定乗数法

ラグランジュの未定乗数法（ラグランジュのみていじょうすうほう、英: 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} が成り立つ。 n 次元空間の点 x = (x1, …, 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}})} が停留点をとることである。ただし、{∇g1, …, ∇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次元の場合を考えよう。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 の極値を求めればいいことになる。 次の類似した２つの問題を考える 問題Ａ x ∈ R n {\displaystyle x\in \mathbb {R} ^{n}} が束縛条件 g ( x ) = 0 {\displaystyle g(x)=0} を満たす条件下で、 f ( x ) {\displaystyle f(x)} を極大にする点を求めよ。 問題Ｂ λ {\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)} を極大にする点を求めよ。 問題Ａは、束縛条件が存在するため「各変数で偏微分して、偏微分係数がゼロになる点を求める」という解法が使えないのに対し、問題Ｂには束縛条件がないので、「各変数で偏微分して、偏微分係数がゼロになる点を求める」という解法が使える。ラグランジュの未定乗数法は、問題Ａと問題Ｂが、実質的に同じであることを言うものである。 問題Ｂ→問題Ａ X ∈ R n {\displaystyle X\in \mathbb {R} ^{n}} をある λ {\displaystyle \lambda } についての問題Ｂの極大点とし、加えて X {\displaystyle X} が g ( X ) = 0 {\displaystyle g(X)=0} を満たせば、 X {\displaystyle X} は問題Ａの解である。 なぜなら、 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} は問題Ａの極大点でもある。 問題Ａ→問題Ｂ X ∈ R n {\displaystyle X\in \mathbb {R} ^{n}} を問題Ａの極大点とする。 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} が問題Ａの極大点であれば、 ∇ 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 } について問題Ｂを考えると、 ∇ 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} は問題Ｂの極大点でもある。 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 となる方向が平行であることから導かれる。 物理学の問題を解くとき、ラグランジュの未定乗数は単なる方便ではなく、ある物理量を表すことが多い。 流体力学において、非圧縮性流れのナビエ-ストークス方程式を解く場合、圧力は速度ベクトル場が連続の式という束縛条件を満たすための未定乗数として求められる。 情報理論的エントロピーが最大となる離散的確率分布を見出すことを考えよう。このときエントロピーは確率を変数とする関数で、 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}}} が分かる。すなわち、すべての事象が等確率の一様分布がエントロピー最大の分布である：つまり他のどんな確率分布の場合よりも、確率変数が実際に観測されたときに得られる情報量の期待値が大きいということである。 制約条件を予算制約線、函数を効用関数、極値を最適消費点と置き換えることでミクロ経済学における最適消費点を求める事に利用される。この際、ラグランジュの未定乗数は、貨幣の限界効用として解釈することができる。 統計力学においては、統計集団があるエネルギー状態をとる確率を導出するために未定乗数法が用いられる。 作用積分が 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} により表される。ここで δ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)} に置き換えることで拘束を考慮した運動方程式が得られる。 ^ 三宅敏恒 (1992). 入門微分積分. 培風館. p. 104. ISBN 4-563-00221-6  ^ 清水昭比古「学力低下時代の教え方 第4回 ラグランジの未定係数法」『日本機械学会誌』第112巻第1093号、一般社団法人日本機械学会、2009年12月、987-992頁。  ^ Joel H. Ferziger; Milovan Perić 著、小林敏雄、谷口伸行、坪倉誠 訳『コンピュータによる流体力学』シュプリンガー・フェアラーク東京、2003年、195-197頁。ISBN 4-431-70842-1。  ^ 北国宗太郎 (2019年11月4日). “ラグランジュ未定乗数法でミクロ経済学の効用最大化問題を解く”. どさんこ北国の経済教室. 2022年5月20日閲覧。 ^ 井田大輔『現代解析力学入門』朝倉書店、2020年、43-47頁。ISBN 978-4-254-13132-1。  カルーシュ・クーン・タッカー条件（KKT条件）- ラグランジュの未定乗数法の一般化 極値 最適化問題 ジョゼフ＝ルイ・ラグランジュ 縁つきヘッセ行列 - 条件つき極値の十分条件を記述するのに用いられる 『ラグランジュの未定乗数法と例題』 - 高校数学の美しい物語 ラグランジュの未定乗数法の解説と直感的な証明 ラグランジュの未定乗数法とは？ - Qiita ラグランジェの未定乗数法 - 物理のかぎしっぽ ラグランジュの未定乗数法について (PDF) - 京都大学 ラグランジュの未定乗数法 (PDF) - 名古屋大学 Gluss, David; Weisstein, Eric W. "Lagrange Multiplier". mathworld.wolfram.com (英語).