【図解で理解】ラグランジュ乗数法とは?制約付き最適化の基本から実例まで解説!
関数の最大・最小を求めたいけれど、「制約条件」がある場合、通常の微分では解けません。
そんなときに登場するのが**ラグランジュ乗数法(Lagrange Multiplier Method)**です✨
本記事では、数学が苦手な人でも直感的に理解できるように、図・数式・実例を交えながら丁寧に解説していきます📘
ラグランジュ乗数法とは?
ラグランジュ乗数法は、制約条件付きの最適化問題を解くための手法です。
例えば次のような問題:
関数 f(x,y)f(x, y) を最大化(または最小化)したい。ただし、
条件 g(x,y)=0g(x, y) = 0 を満たす必要がある。
このように制約条件があるとき、ラグランジュ乗数法を使えば連立方程式として整理して解けるようになります。
ラグランジュ関数の構成式
ラグランジュ関数 L\mathcal{L} は以下のように定義します:
L(x,y,λ)=f(x,y)−λ⋅g(x,y)\mathcal{L}(x, y, \lambda) = f(x, y) - \lambda \cdot g(x, y)
ここで、
-
f(x,y)f(x, y):目的関数(最大・最小にしたい関数)
-
g(x,y)=0g(x, y) = 0:制約条件
-
λ\lambda:ラグランジュ乗数(未知の定数)
解く手順(2変数・1制約の例)
Step 1:ラグランジュ関数を作る
例:
f(x,y)=xy,g(x,y)=x+y−10f(x, y) = xy,\quad g(x, y) = x + y - 10 L(x,y,λ)=xy−λ(x+y−10)\mathcal{L}(x, y, \lambda) = xy - \lambda(x + y - 10)
Step 2:偏微分して連立方程式を作る
∂L∂x=y−λ=0⇒λ=y\frac{\partial \mathcal{L}}{\partial x} = y - \lambda = 0 \quad \Rightarrow \quad \lambda = y ∂L∂y=x−λ=0⇒λ=x\frac{\partial \mathcal{L}}{\partial y} = x - \lambda = 0 \quad \Rightarrow \quad \lambda = x ∂L∂λ=−(x+y−10)=0⇒x+y=10\frac{\partial \mathcal{L}}{\partial \lambda} = -(x + y - 10) = 0 \quad \Rightarrow \quad x + y = 10
Step 3:連立方程式を解く
上記から、
x=y,x+y=10⇒x=5,y=5x = y,\quad x + y = 10 \Rightarrow x = 5, y = 5
最適値は f(5,5)=25f(5, 5) = 25
幾何学的な意味💡
ラグランジュ乗数法では、目的関数の等高線と制約条件の曲線が接している点(つまり勾配が平行な点)を探しています。
このとき、目的関数と制約関数の**勾配ベクトルが平行(∇f = λ∇g)**であるため、それを数式で表しているのがラグランジュ関数です。
よくある誤解と注意点 ⚠️
❌ すべての制約条件に対してラグランジュ乗数法が使えるわけではない
→ 微分可能で連続な制約に限ります。
❌ λの値そのものに意味はないことが多い
→ λは中間変数。最終的な最適値の導出が目的です。
複数制約がある場合(拡張版)
制約条件が複数ある場合は、乗数も複数導入します。
L(x,y,λ1,λ2)=f(x,y)−λ1g1(x,y)−λ2g2(x,y)\mathcal{L}(x, y, \lambda_1, \lambda_2) = f(x, y) - \lambda_1 g_1(x, y) - \lambda_2 g_2(x, y)
このとき、偏微分はすべての変数と乗数に対して行います。
実用例📊
✅ 経済学:費用の制約の下で利益最大化
✅ 物理学:エネルギー保存条件のもとで運動解析
✅ 機械学習:正則化条件を付けた最適化問題(SVMなど)
まとめ📝
-
ラグランジュ乗数法は制約条件付き最適化のための強力な手法
-
目的関数と制約関数の勾配が平行になる点を探すことで解を導出
-
連立微分方程式を解くだけなので、機械的に解ける
図解やベクトルの視点を取り入れると、より直感的に理解できます🔍✨
「ラグランジュ乗数法の幾何学的解釈」や「Pythonでの自動最適化」の記事もご希望があればすぐにご用意できます📘お気軽にどうぞ!