アプリ版:「スタンプのみでお礼する」機能のリリースについて

ラグランジュの未定乗数法について
その概要と具体的な計算例を教えてください。

A 回答 (2件)

stomachman さんが一般論を書かれていますので,


めちゃくちゃ易しい例題を蛇足につけましょう.

例題
x + y = a          (1)
の条件の下で
f(x,y) = (x^2 + y^2)/2    (2)
の極値を求めよ.

(1)から y = a - x として(2)に代入すれば,
x の2次関数ですから x = a/2 で極値をとるのはただちにわかります.

ラグランジュ未定係数法でやるなら,stomachman さんの式にしたがって,
f の代わりに
g(x,y,λ) = (x^2 + y^2)/2 + λ(x+y-a)
を考えます.λと掛け算になっている x + y - a が(1)の変形です.
(1)から,λ(x+y-a) = 0 ですから,f の極値も g の極値も同じことです.
2変数関数の極値だと言うんだから, 偏微分して
∂g/∂x = x + λ = 0    (3)
∂g/∂y = y + λ = 0    (4)
で,(1)(3)(4)を連立方程式として解けば,
簡単に x = y = a/2 が得られます.
直接解いたのと同じ結果ですね.

え? 直接解く方が簡単?
そりゃ,(1)から簡単に変数1個消去できたからで,
(1)が面倒な式だったり,変数が沢山,条件式も沢山,だったら
簡単には行きませんよ.

もっと深刻なのは,原理的に消去困難な場合もあることです.
stomachman さんが書かれているように,等周問題が有名な例です.
xy 平面上の閉曲線 f(x,y) = 0 があって,
条件として1周の長さを指定する.
囲む面積が最大になるのはどんな f(x,y) か?
答が円なのは直感的にわかりますが,
ちゃんと示すのはそれなりに大変です.
どんな関数か,と聞いているんだから,変分法の問題です.
細かいことは別にして,囲む面積なんだから
【f(x,y) から面積を求める積分】      (5)
を一番小さくなるようにする.
条件は
【f(x,y) から周長を求める積分】= 一定   (6)
ですね.
(6)から,何か「消去」できますか?
f(x,y) はわかっていない(これから求めようとしている)のですから,
(6)の積分だってわかりません.
つまり,お手上げ.

こういうときがラグランジュ未定係数法の出番です.
    • good
    • 3

条件付きで極値を求める問題(極値問題)、


すなわち、n個の変数に関するm個の条件式C:
C[j](x[1],x[2],....,x[n])=0 (j=1,2,...,m)
という条件下で(m<n)、目的関数f(x[1],x[2],....,x[n])の極値(極大か極小)を求める問題を解くには、
λ[j]を(j=1,2,...,m)任意の定数(ラグランジュ未定係数・ラグランジュ未定乗数)とし、
F(x[1],x[2],....,x[n]) = f(x[1],x[2],....,x[n]) + λ[1]C[1]+ ....+ λ[m]C[m]
とするとき、
∂F/∂x[i] = 0 (i=1,2,...,n)かつC[j]=0(j=1,2,...,m)
という連立方程式を解けばよい。

というやり方。変分法でしばしば使いますので、計算例は変分法の教科書を見ると良いです。特に有名なのは等周問題でしょう。

この問題を普通に考えると、
 m個の変数x[m+1], .....,x[n]は条件式によって決まってしまうから、fは実質的にはn-m個の変数を持つ関数
f#(x[1],x[2],....,x[n-m])f(x[1],x[2],....,x[n-m], y[1],......y[m])
と考えることが出来ます。ここで、y[k]はCの条件を解いたもの。すなわち、x[1],x[2],....,x[n-m]を決めたときに上記の条件を満たすようなx[n-m+k]を与える関数: y[k] (x[1],x[2],....,x[n-m]) = x[n-m+k] であると考える訳です。
 そしてf#が極値を取るx[j](j=1,2,....,n-m)を求めればよい。つまり
∂f#/∂x[j]=0 (j=1,2,....,n-m)
ところが、具体的にy[k](k=1,2,....,m)を求めることができない(或いは難しい。もの凄く複雑だ)。あーこまった。煮詰まっちゃった。ということになりますね。

つまり、y[k]を陽に求めなくても、陰関数のまま扱えるのが利点です。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!