Web教材一覧>
数値解析
ラグランジュの未定乗数法
ラグランジュの未定乗数法とは
ラグランジュの未定乗数法(Lagrange multiplier)とは、例えば、
制約関数 g(x,y) = x2 + y2 - 2 = 0 のもとで、目的関数 f(x,y) = xy を最大にする x, y を求めよ
というような問題を解くための方法です。
このような問題では(特に2変数の場合には)、図式解法がよく用いられます。
まず制約関数 g(x,y) = 0 のグラフを描き、次に目的関数 f(x,y) = c としてcをいろいろ変化させたグラフを描きます。
上の場合では、x2 + y2 = 2 のグラフ(赤い円)と xy = c のグラフ(双曲線群)を描きます。
そして、両者が交わる点が制約関数を満足する点であり、
そのうち、接線(微分係数)が一致する点Pが最大(小)値を与えるので、何らかの方法で、点Pの座標を求めます。
ラグランジュの未定乗数法は、その図式解法が妥当であることを証明するとともに、
多変数でも一般的に求解できる方法を与えます。
ラグランジュの未定乗数法の計算方法
理論は後述することにして、計算方法だけを示します。
例1 上例の場合
ラグランジュ乗数 λ を導入して、ラグランジュ関数 L を定義します。
L(λ) = f - λg
上の例では、
L(x,y,λ) = xy - λ*(x2 + y2 - 2)
3つの変数、x, y, λ で偏微分して 0 とします(最大小値を求めるので)
∂L/∂λ = -(x2 + y2 - 2) = 0
∂L/∂x = y - 2λx= 0
∂L/∂y = x - 2λy= 0
この連立方程式の解を求めます。
x = 1, y = 1, λ= 1/2
x = 1, y = -1, λ= -1/2
x = -1, y = 1, λ= -1/2
x = -1, y = -1, λ= 1/2
これだけでは最大か最小かは不明です。 xy に代入することにより
最大値 xy = 1 (x = ±1, y =±1
最小値 xy = -1 (x = ±1, y =∓ 1
が得られます。
例2 例1の逆
定式化
g(x,y) = xy - 1 = 0 放物線を制約式にする
f(x,y) = x2 + y2 円の極値を求める
L(x,y,λ) = x2 + y2 - λ*(xy - 1)
偏微分して 0
∂L/∂λ = -xy + 1 = 0
∂L/∂x = 2x - λy= 0
∂L/∂y = 2y - λx= 0
連立方程式の解と f の値
x = 1, y = 1, λ = 2, x2 + y2 = 2 最小値
x = -1, y = -1, λ = 2, x2 + y2 = 2 最小値
例3 3変数の場合
定式化
g(x,y) = x2 + y2 + z2 - 1 = 0 半径1の球
f(x,y) = x + 2y + 3y 直線
L(x,y,λ) = x + 2y + 3y - λ*(x2 + y2 + z2 - 1)
偏微分して 0
∂L/∂λ = -(x2 + y2 + z2 - 1) = 0 ①
∂L/∂x = 1 - 2λx= 0 ②
∂L/∂y = 2 - 2λy= 0 ③
∂L/∂z = 3 - 2λz= 0 ④
連立方程式の解と f の値
②③④から y = 2x, z = 3x ⑤
①に代入して x2 + (2x)2 + (3x)2 = 1 ∴ x = ±1/√14
⑤、②に代入して x = ±1/√14, y = ±2/√14, z = ±3/√14, λ = ±√14 /2
f に代入して ±6/√14 最大値と最小値
ラグランジュ未定乗数法の考え方
L = f - λg として、変数λを加えることにより、制約式のある f の極値を求めるのではなく、
制約条件を持たない L の極値を求める問題に置き換えるのです。
λの意味、図式解法との関係
L = f - λg から ∂L/∂x = ∂f/∂x - λ*∂g/∂x
∂L/∂x = 0 ならば ∂f/∂x = λ*∂g/∂x
同様に ∂f/∂y = λ*∂g/∂y
行列の形式にすると、 .
┌ ┐ ┌ ┐
│∂f/∂x│ = λ│∂g/∂x│
│∂f/∂y│ │∂g/∂y│
└ ┘ └ ┘
になります。
これは、fのベクトルとgのベクトルが平行で、λは接線長さの倍率であることを示しています。
また、∂L/∂λ = 0 は g(x,y) = 0 となり、f が消えています。
∂L/∂x = 0、∂L/∂y = 0、により、接線長さの倍率λを求めているのです。
これが「図式解法」の妥当性を与えているといえましょう。
また、ラグランジュ未定乗数法はLの極値になる (x,y) を求めているだけです。
それが最大値かどうかなどは f(x,y) を計算する必要があります。
応用
実務的な問題では、制約関数が g(x,y) = 0 (等号関係)ではなく、 g(x,y) ≦ 0(不等号関係)のことが多くあります。
不等号関係が許されるならば、複数の制約関数を与えることができます。
多くの場合、余裕変数を設定するなどの工夫で不等号関係を等号関係として解決できる場合が多くあります。
そのときには、
L = f - λ0g0 - λ1g1
∂L/∂λ0 = 0
∂L/∂λ1 = 0
の形式になります。
数値解析へ