ラグランジュの未定乗数法を直感的に非常に分かりやすく描いてあるサイト様を発見。
ラグランジュの未定乗数法の解説と直感的な証明
せっかくなので、実際に等高線プロット使って図示してみた。
図で考えているのは、
のような、何かポテンシャル的な場がで与えられていて、軌道の上でを最大もしくは最小にするは何でしょう?という問題。
数学の問題っぽく言えば、束縛条件の下でを最大(最小)にするを求める問題。
文章を読むと、最大最小化するが主役な感じがするが、図を見るとわかる様に、(当たり前だが)の軌道の中の点で良さそうなのを探す方がイメージに近い。
ちなみに、二次元の今の問題において得られる最大(最小)の座標群がなぜ零次元(つまり点)なのかというと、の時点でとは独立ではなく、既に一次元の問題になっているところが味噌である。そこにを介して条件式が加わると、零次元になるというわけである。三次元でやると得られる座標群は線(つまり軌道・一次元)になる。
単純に変数それぞれに対して微分するから、方程式が未定乗数を含めた変数の数だけ出てきて、最終的に値がカッチリ決まるというもの。未定乗数の微分ではがそのまま出てくる。
この意味で、主役はなんとなくのような気がしてならない。
図を見れば明らかに
最大:
最小:
であるが、ラグランジュの未定乗数法を使うと、
]
ここから、
(2018年10月26日 訂正)
三つ目のは元々の束縛条件まんまなので、当たり前は当たり前。
をその三つ目に入れれば、が求まって、図から類推した答えと合っている。
は最初の式を満たさない(発散する)ので、棄却出来る。
以下、ソースの中身。
import numpy as np import matplotlib.pyplot as pet N = 100 x = y = np.linspace( -5, 5, N ) X, Y = np.meshgrid( x, y ) F = ( X - 3 )**2 + Y**2 G = X**2 + Y**2 - 4 plt.text( 0, 0, 'g(x,y)=0' ) plt.text( -2.5, 3.5, 'f(x,y)', color='#0068b7') plt.contour( X, Y, G, [0] ) plt.gray() plt.pcolor( X, Y, F ) plt.cool() plt.gca().set_aspect( 'equal', adjustable='box' ) plt.show()
以下のサイト様にお世話になりました。
等高線プロット
matplotlibカラープロット - 週末はいつも晴れ