こんにちはコーヤです。
このページでは特定の条件下での極値の候補を求めるラグランジュの未定乗数法を勉強します。
ラグランジュの未定乗数法の概要
2変数関数$f(x,y)$の極値を求める計算はヘッセシアンで行いました。
ラグランジュの未定乗数法は$g(x,y)=0$の条件下で$f(x,y)$の極値の候補を求める計算方法です。
$g(x,y)=0$は図の赤線のように、$xy$平面上の関数です。
これを$z$軸と平行に動かした時に$f(x,y)$と交差する曲線(図の点線)の極値の候補を求めます。
ラグランジュの未定乗数法の公式
ラグランジュ定数$\lambda$を用いてラグランジュ関数$L$を以下のように定義します。
$$
L(x,y,\lambda)
=
f(x,y)-\lambda g(x,y)
$$
このとき
$$
L_x=L_y=L_{\lambda}=0
\tag{1}
$$
$$
g=g_x=g_y=0
\tag{2}
$$
のどちらかを満たす点が極値の候補になります。
ラグランジュの未定乗数法の具体例
それでは公式を使って$y=-1$の条件下で$z=-x^2-y^2+8$の極値の候補を求めてみましょう。
問題文より$f(x,y)$と$g(x,y)=0$に相当する関数は
$$
\begin{align}
f(x,y) &= -x^2-y^2+8
\\\\
g(x,y) &= y+1
\end{align}
$$
です。
$f(x,y)$と$g(x,y)$は以下のようなグラフになります。
ラグランジュ関数$L$は
$$
L(x,y,\lambda)
=
-x^2-y^2+8-\lambda(y+1)
$$
です。
次に計算に必要な偏導関数を計算します。
$$
\begin{align}
L_x(x,y,\lambda) &= -2x
\\\\
L_y(x,y,\lambda) &= -2y-\lambda
\\\\
L_{\lambda}(x,y,\lambda) &= -y-1
\\\\
g_x(x,y,\lambda) &= 0
\\\\
g_y(x,y,\lambda) &= 1
\end{align}
$$
まず式(1)の条件を満たす点を求めます。
$$
L_x=L_y=L_{\lambda}=0
\tag{1}
$$
この条件を3本の式で表して
$$
\begin{align}
0 &= -2x
\\\\
0 &= -2y-\lambda
\\\\
0 &= -y-1
\end{align}
$$
この連立方程式を解いて
$$
(x,y,\lambda)=(0,-1,2)
$$
となります。したがって極値の候補となる点は
$$
(x,y)=(0,-1)
$$
です。($\lambda$の値は極値の候補とは無関係です。)
次に式(2)の条件を満たす点を求めます。
$$
g=g_x=g_y=0
\tag{2}
$$
この条件を満たせば良いですが、偏導関数は
$$
g_y = 1
$$
なので条件を満たせません。したがって式(2)の条件では極値の候補なしです。
以上の結果より、極値の候補は$(x,y)=(0,-1)$だけとなります。このとき$f(0,-1)=7$です。
グラフで確認すると、$(x,y,z)=(0,-1,7)$は$f(x,y)$と$g(x,y)$が交差する線上の極値(の候補)を表しています。
公式の導出
式(1)と式(2)が何を意味しているのかを考えます。
まず式(1)は
$$
L_{\lambda}=0
\tag{1-1}
$$
$$
\left\{
\begin{array}{l}
L_x=0
\\\\
L_y=0
\end{array}
\right.
\tag{1-2}
$$
の2つに分解できます。
式(1-1)について、ラグランジュ関数を$\lambda$で偏微分すると
$$
\begin{align}
0
&=
L_{\lambda}
\\\\&=
\displaystyle\frac{\partial}{\partial \lambda}
\left\{
f(x,y)-\lambda g(x,y)
\right\}
\\\\&=
-g(x,y)
\end{align}
$$
となります。これは問題文で与えられる条件$g(x,y)=0$の書き方を変更しただけです。
式(1-2)について、ラグランジュ関数を$x,y$で偏微分して
$$
\begin{align}
L_x &= f_x-\lambda g_x
\\\\
L_y &= f_y-\lambda g_y
\end{align}
$$
これを式(1-2)に代入して
$$
\left\{
\begin{array}{l}
f_x-\lambda g_x=0
\\\\
f_y-\lambda g_y=0
\end{array}
\right.
$$
移項して
$$
\left\{
\begin{array}{l}
f_x=\lambda g_x
\\\\
f_y=\lambda g_y
\end{array}
\right.
$$
となります。この連立方程式をベクトルで書いて
$$
\begin{pmatrix}
f_x \\ f_y
\end{pmatrix}
=
\lambda
\begin{pmatrix}
g_x \\ g_y
\end{pmatrix}
$$
となります。
勾配ベクトルを用いると
$$
\nabla f = \lambda \nabla g
$$
と書けます。
この式は$\nabla f$と$\nabla g$が平行であることを表しています。
勾配ベクトルをご存知ない方は$\nabla f$はテキトーなベクトル$\boldsymbol{f}$だと思って以下のように読み替えてください。
$$
\nabla f = \lambda \nabla g
~~~
\rightarrow
~~~
\boldsymbol{f} = \lambda \boldsymbol{g}
$$
$\nabla f$と$\nabla g$が平行とはどういう意味か、例題の$z=-x^2-y^2+8$をグラフで見ながら考えます。
今、条件である$y=-1$と$z=-x^2-y^2+8$は以下のようなグラフになります。
$z=5$の高さの平面を追加したのが以下の図です。
この空間を真上から見て$xy$平面上に等高線を書くと以下のようになります。
$z=5$から高さを徐々に上げていき、極値っぽい点と同じ高さになる$z=7$のタイミングでは以下のようなグラフになります。
左側の立体図では極値っぽい点が$z=7$の平面上にあります。
右側の平面図では$z=7$の等高線と$g(x,y)=0$が接しています。
接するということは接線ベクトルが平行になります。つまり勾配ベクトルも平行になります。(接線ベクトルと勾配ベクトルは直交するため。)
以上をまとめると、極値っぽい点では$\nabla f$と$\nabla g$が平行になっており、その条件を式変形して
$$
\left\{
\begin{array}{l}
L_x=0
\\\\
L_y=0
\end{array}
\right.
\tag{1-2}
$$
このように表現しています。
次に式(2)について
$$
g=0
\tag{2-1}
$$
$$
g_x=g_y=0
\tag{2-2}
$$
の2つに分解できます。
式(2-1)は問題文で与えられた条件そのままです。
式(2-2)は
$$
\nabla g=0
$$
のときを表しています。勾配ベクトルが0の場合です。
式(1)は$g(x,y)=0$の接線ベクトルと直交する勾配ベクトルを利用して計算しましたが、そもそも接線が引けないような関数は式(1)では計算できません。
接線が引けない場合を極値の候補に入れるために式(2-2)があります。
複数条件の場合
条件が増えてもラグランジュ関数の作り方は変わりません。
$g(x,y,z)=0$と$h(x,y,z)=0$の条件下で$f(x,y,z)$の極値の候補を求めるときは
$$
L(x,y,z,\lambda)
=
f(x,y,z)-\lambda g(x,y,z)-\mu h(x,y,z)
$$
として
$$
L_x=L_y=L_z=L_{\lambda}=0
$$
$$
g=g_x=g_y=g_z=0
$$
$$
h=h_x=h_y=h_z=0
$$
のどれかを満たす点が極値の候補になります。
極値の候補しか求まらない理由
ラグランジュの未定乗数法はあくまで極値の候補しか求まりません。
公式の導出に記載したとおり、極値の十分条件ではなく必要条件から計算しているからです。
よくある使用方法
極値の候補が求まって嬉しい場面はほとんどありません。最大最小を求めたい場面が大多数です。
条件である$g(x,y)=0$が
- 無限に発散する部分がない
- 閉曲線である(始点と終点がつながっている)
- 連続な関数である
この3つの条件を満たしているとき、ラグランジュの未定乗数法で求められた極値の候補の中に最大最小となる点が必ずあります。
$g(x,y)=0$が円なり楕円なりのときはラグランジュの未定乗数法で最大最小が求められるということです。
まとめ
$g(x,y)=0$の条件下で$f(x,y)$の極値の候補を求めるとき、ラグランジュ定数$\lambda$を用いてラグランジュ関数$L$を以下のように定義します。
$$
L(x,y,\lambda)
=
f(x,y)-\lambda g(x,y)
$$
このとき以下2式のどちらかを満たす点が極値の候補になります。
$$
L_x=L_y=L_{\lambda}=0
\tag{1}
$$
$$
g=g_x=g_y=0
\tag{2}
$$
コメント欄