ラグランジュの未定乗数法はどう使う?|直感的な理解と証明

例えば,$f(x,y)=x^2+3xy+y^2+1$の最小値を求めたいとき

\begin{align*} \pd{f}{x}(a,b)=\pd{f}{y}(a,b)=0 \end{align*}

を満たす点$(a,b)$を求めることによって,$f(x,y)$が最小値をとる点の候補が得られます.

しかし,これが「$x+y=1$上での$f(x,y)=x^2+3xy+y^2+1$の最小値を求めたい」といったように,$x$と$y$に制約(この場合には$x+y=1$)がかかると単純に$f$の偏導関数から最小値を求めることができません.

そこで,曲線や直線上といった「制約条件下」での関数の極値を求めるために,[Lagrange(ラグランジュ)の未定乗数法]があります.

この記事では,[Lagrangeの未定乗数法]の直感的な考え方を説明し,具体例から使い方をみます.

Lagrangeの未定乗数法の直感的な理解

1変数関数の場合には,定義域があっても単純な微分で極値点を求めることができるので,[Lagrangeの未定乗数法]は必要ありません.

そのため,[Lagrangeの未定乗数法]が必要となるのは2変数以上の場合です.

偏導関数

例えば,$y$を固定して$x$を増減させるときの$f$の増減を考えるものが$\pd{f}{x}$なので,$\od{f}{x}$は$x$軸に平行な向きの増減を考えています.

Rendered by QuickLaTeX.com

このように,偏導関数は軸に平行な方向の増減を考えることはできますが,軸に平行でない直線や曲線上での増減は単純に$f$の偏導関数を考えるだけでは分かりません.

これにより,制約条件のもとでは単に偏導関数を考えるだけでは都合が悪いわけですね.

極値をとるパターン1

例えば,制約条件$y=x-3$上で2変数関数$f(x,y)=5x^2+5y^2+6xy-2$を考えましょう.

まず,$f(x,y)$の「等高線」は下図のようになります.

Rendered by QuickLaTeX.com

なお,

  • 赤:$f(x,y)=0$
  • 青:$f(x,y)=2$
  • 緑:$f(x,y)=6$
  • 橙:$f(x,y)=14$

である.こうみるとうまく$C$を取れば,等高線$f(x,y)=C$は制約条件$y=x-3$のグラフと接するようにできそうです.

もし等高線$f(x,y)=C_0$と$y=x-3$が点$(a,b)$で接するなら,下図のようになります.

Rendered by QuickLaTeX.com

さて,この等高線$f(x,y)=C_0$は$xy$平面を

  • $f(x,y)>C_0$なる点$(x,y)$の領域
  • $f(x,y)<C_0$なる点$(x,y)$の領域

の2つに分割しています.いまの場合は

  • 等高線$f(x,y)=C_0$の内部の点$(x,y)$は$f(x,y)<C_0$
  • 等高線$f(x,y)=C_0$の外部の点$(x,y)$は$f(x,y)>C_0$

をみたしていますね.

よって,制約条件$y=x-3$上の点$(x,y)$は$f(x,y)\ge C_0$を満たし,$f(a,b)=C_0$だから,制約条件$y=x-3$のもとでの$f(x,y)$の最小値は$C_0$であることが分かります.

このように,制約条件のグラフと$f(x,y)$の「等高線」が接するような点を見つけることができれば,その点は極値となりえます.

さて,制約条件$g(x,y)=0$上の点$(a,b)$での法線ベクトル,$f(x,y)=C$上の点$(a,b)$での法線ベクトルはそれぞれ

\begin{align*} \bmat{\pd{g}{x}(a,b)\\\pd{g}{y}(a,b)},\quad \bmat{\pd{f}{x}(a,b)\\\pd{f}{y}(a,b)} \end{align*}

であり,点$(a,b)$で$g(x,y)=0$のグラフと$f(x,y)=C$のグラフが接するとき,これら2つの法線ベクトルは平行なので,

\begin{align*} \bmat{\pd{f}{x}(a,b)\\\pd{f}{y}(a,b)}=\mu\bmat{\pd{g}{x}(a,b)\\\pd{g}{y}(a,b)} \end{align*}

が成り立ちます

極値をとるパターン2

関数$g$によっては,制約条件$g(x,y)=0$のグラフが「尖る」ことがあります.

このような尖った点では$g(x,y)=0$の接ベクトルを考えることができませんが,もし$g(x,y)=0$のグラフが等高線$f(x,y)=C$にタッチしてすぐに引き返す状況になっていれば極値をとりうるわけです.

いま,$g$が微分可能であるとすれば,尖る可能性があるのは$g$の速度が0になるような場合です.つまり,$g(x,y)=0$上の点$(a,b)$が

\begin{align*} \bmat{\pd{g}{x}(a,b)\\\pd{g}{y}(a,b)}=\bmat{0\\0} \end{align*}

を満たしていれば,$g(x,y)=0$のグラフは点$(a,b)$で尖っている可能性がありますね.

2変数のLagrangeの未定乗数法

以上の考察から以下が成り立ちそうで,実際に成り立つことが証明できます.

[Lagrangeの未定乗数法(2変数の場合)] $U\subset\R^2$を開集合とする.関数$f:U\to \R$と$g:U\to\R$は共に$C^1$級であるとする.$C^1$級関数$g:U\to\R$の零点集合を$S$とする:

\begin{align*} S:=\set{(x,y)\in U}{g(x,y)=0} \end{align*}

このとき,点$(a,b)\in S$が$f:U\to \R$の$S$上の極値点なら,次の1,2のいずれかが成り立つ.

  1. $\bmat{\pd{f}{x}(a,b)\\\pd{f}{y}(a,b)}=\mu\bmat{\pd{g}{x}(a,b)\\\pd{g}{y}(a,b)}$かつ$g(a,b)=0$を満たす$(a,b)\in\R^2$, $\mu\in\R$が存在する.
  2. $\bmat{\pd{g}{x}(a,b)\\\pd{g}{y}(a,b)}=\bmat{0\\0}$が成り立つ.

ここで,点$(a_1,a_2)$が$f$の$S$上の極値点であるとは,点$(a_1,a_2)$の$U$での近傍$W$が存在して,$S\cap W$上で$f$が最小値/最大値をとることをいいます.

言い換えれば,$S$に$\R^N$からの誘導位相が入っていると見たときの,点$(a,b)\in S$の近傍上で最小値/最大値をとるということですね.

この意味で,$S$を拘束条件束縛条件などといいます.

ただし,[Lagrangeの未定乗数法]は$S$上の極値をもつ時の必要条件を述べているだけであり,条件1または条件2を満たしていても極値となるかどうかは分からないことに注意してください.

さて,この[Lagrangeの未定乗数法]の条件1はもう少しすっきり表すこともできます.関数$\Phi:\R^2\times\R\to\R$を

\begin{align*} \Phi(x,y,\lambda)=f(x,y)-\lambda g(x,y) \end{align*}

とおくと,

\begin{align*} \nabla_{x,y,\lambda}\Phi(x,y,\lambda) =&\bmat{\pd{\Phi}{x}(x,y,\lambda)\\\pd{\Phi}{y}(x,y,\lambda)\\\pd{\Phi}{\lambda}(x,y,\lambda)} \\=&\bmat{\pd{f}{x}(x,y)-\lambda \pd{g}{x}(x,y)\\\pd{f}{y}(x,y)-\lambda \pd{g}{y}(x,y)\\-g(x,y)} \end{align*}

となるので,$\bmat{\pd{f}{x}(a,b)\\\pd{f}{y}(a,b)}=\mu\bmat{\pd{g}{x}(a,b)\\\pd{g}{y}(a,b)}$かつ$g(a,b)=0$は

\begin{align*} \nabla_{x,y,\lambda}\Phi(a,b,\mu)=\m{0} \end{align*}

と書き換えることができますね.

Lagrangeの未定乗数法の具体例

2変数の場合の[Lagrangeの未定乗数法]を理解できていれば,以下の一般の$N$変数の場合も同様に理解できる.

 [Lagrangeの未定乗数法] $U\subset\R^N$を開集合とする.関数$f:U\to \R$と$g_1,\dots,g_k:U\to\R$は全て$C^1$級であるとする.$C^1$級関数$g_1,\dots,g_k:U\to\R$の零点集合を$S$とする:

\begin{align*} S:=\set{x=(x_1,\dots,x_N)\in U}{g_1(x)=\dots=g_k(x)=0} \end{align*}

このとき,点$a=(a_1,\dots,a_N)\in S$が$f:U\to \R$の$S$上の極値点なら,次の1,2のいずれかが成り立つ.

  1. $\Phi(x,\lambda)=f(x)-\dsum_{i=1}^{k}\lambda_ig_i(x)$で定まる$\Phi:\R^N\times\R^k\to\R$に対して,$\nabla_{x,\lambda}{\Phi}(a,\mu)=\m{0}$となる$a\in\R^N$と$\mu\in\R^k$が存在する.ただし,$\lambda=(\lambda_1,\dots,\lambda_k)$である.
  2. $\rank\dfrac{\partial(g_1,\dots,g_k)}{\partial(x_1,\dots,x_N)}(a)
    :=\rank\bmat{\pd{g_1}{x_1}(a)&\dots&\pd{g_1}{x_N}(a)\\\vdots&\ddots&\vdots\\\pd{g_k}{x_1}(a)&\dots&\pd{g_k}{x_N}(a)}<k$が成り立つ.

[Lagrangeの未定乗数法]を具体的に考えてみましょう..

例1

$N=2$, $k=1$, $U=\R^2$で束縛条件が

\begin{align*} g(x,y)=x^2+y^2-1 \end{align*}

の場合を考えましょう.このとき,束縛条件$S$は原点中心の単位円となります.

この円周$S$上の点$(a,b)$で極値をとるとします.

Rendered by QuickLaTeX.com

このとき,$\pd{g}{x}(x,y)=2x$, $\pd{g}{y}(x,y)=2y$なので

\begin{align*} \bmat{\pd{g}{x}(a,b)\\\pd{g}{y}(a,b)}=\bmat{0\\0} \iff(a,b)=(0,0) \end{align*}

ですが,$(0,0)\notin S$だから[Lagrangeの未定乗数法]の条件2は成り立ち得ません.

一方,$(a,b)$が[Lagrangeの未定乗数法]の条件1を満たす極値点なら,$\Phi(x,y,\lambda)=f(x,y)-\lambda g(x,y)$に対して

\begin{align*} \pd{\Phi}{x}(a,b,\mu) =\pd{\Phi}{y}(a,b,\mu) =\pd{\Phi}{\lambda}(a,b,\mu)=0 \end{align*}

となる$\mu\in\R$が存在します.

例2

$N=2$, $k=1$, $U=\R^2$で束縛条件が

\begin{align*} g(x,y)=x^2-y^3 \end{align*}

の場合を考えましょう.

この束縛条件$S$上の点$(a,b)$で極値をとるとします.

Rendered by QuickLaTeX.com

このとき,$\pd{g}{x}(x,y)=2x_1$, $\pd{g}{y}(x,y)=-3y$なので

\begin{align*} \bmat{\pd{g}{x}(a,b)\\\pd{g}{y}(a,b)}=\bmat{0\\0} \iff (a,b)=(0,0) \end{align*}

であり,$(0,0)\in S$だから[Lagrangeの未定乗数法]の条件2が成り立ちます.よって,$(0,0)$がまず極値点の候補となりますね.

一方,$(a,b)$が[Lagrangeの未定乗数法]の条件1の極値点なら,$\Phi(x,y,\lambda)=f(x,y)-\lambda g(x,y)$に対して

\begin{align*} \pd{\Phi}{x}(a,b,\mu) =\pd{\Phi}{y}(a,b,\mu) =\pd{\Phi}{\lambda}(a,b,\mu)=0 \end{align*}

となる$\mu\in\R$が存在します.

例3

$N=3$, $k=2$, $U=\R^2$で束縛条件が

\begin{align*} &g_1(x_1,x_2,x_3)=x_1+x_2, \\&g_2(x_1,x_2,x_3)={x_1}^2+{x_2}^2-{x_3}^2 \end{align*}

の場合を考えましょう.このとき,

\begin{align*} \rank\bmat{\pd{g_1}{x_1}&\pd{g_1}{x_2}&\pd{g_1}{x_3}\\\pd{g_2}{x_1}&\pd{g_2}{x_2}&\pd{g_2}{x_3}} =&\rank\bmat{1&1&0\\2x_1&2x_2&-2x_3} \\=&\rank\bmat{1&1&0\\0&x_1-x_2&-x_3} \\=&\begin{cases}1&(x_1=x_2,x_3=0)\\2&(\mrm{other})\end{cases} \end{align*}

だから,$p\in\R$が存在して$(p,p,0)\in S$となれば,[Lagrangeの未定乗数法]の条件2が成り立ちます.

$g_1(p,p,0)=2p$, $g_2(p,p,0)=2p^2$より$p=0$で$(p,p,0)\in S$となるので,$(0,0,0)$で[Lagrangeの未定乗数法]の条件2をみたし,極値点の候補となります.

一方,$(a_1,a_2,a_3)$が[Lagrangeの未定乗数法]の条件1の極値点なら,$\Phi(x_1,x_2,x_3,\lambda_1,\lambda_2)=f(x_1,x_2,x_3)-\lambda_1g_1(x_1,x_2,x_3)-\lambda_2g_2(x_1,x_2,x_3)$に対して,

\begin{align*} &\pd{\Phi}{x_1}(a_1,a_2,a_3,\mu_1,\mu_2) \\=&\pd{\Phi}{x_2}(a_1,a_2,a_3,\mu_1,\mu_2) \\=&\pd{\Phi}{x_3}(a_1,a_2,a_3,\mu_1,\mu_2) \\=&\pd{\Phi}{\lambda_1}(a_1,a_2,a_3,\mu_1,\mu_2) \\=&\pd{\Phi}{\lambda_2}(a_1,a_2,a_3,\mu_1,\mu_2)=0 \end{align*}

となる$(\mu_1,\mu_2)\in\R^2$が存在します.

Lagrangeの未定乗数法の証明

それでは[Lagrangeの未定乗数法]の証明をしましょう.

 [Lagrangeの未定乗数法(再掲)] $U\subset\R^N$を開集合とする.関数$f:U\to \R$と$g_1,\dots,g_k:U\to\R$は全て$C^1$級であるとする.$C^1$級関数$g_1,\dots,g_k:U\to\R$の零点集合を$S$とする:

\begin{align*} S:=\set{x=(x_1,\dots,x_N)\in U}{g_1(x)=\dots=g_k(x)=0} \end{align*}

このとき,点$a=(a_1,\dots,a_N)\in S$が$f:U\to \R$の$S$上の極値点なら,次の1,2のいずれかが成り立つ.

  1. $\Phi(x,\lambda)=f(x)-\dsum_{i=1}^{k}\lambda_ig_i(x)$で定まる$\Phi:\R^N\times\R^k\to\R$に対して,$\nabla_{x,\lambda}{\Phi}(a,\mu)=\m{0}$となる$a\in\R^N$と$\mu\in\R^k$が存在する.ただし,$\lambda=(\lambda_1,\dots,\lambda_k)$である.
  2. $\rank\dfrac{\partial(g_1,\dots,g_k)}{\partial(x_1,\dots,x_N)}(a)
    :=\rank\bmat{\pd{g_1}{x_1}(a)&\dots&\pd{g_1}{x_N}(a)\\\vdots&\ddots&\vdots\\\pd{g_k}{x_1}(a)&\dots&\pd{g_k}{x_N}(a)}<k$が成り立つ.

点$a=(a_1,\dots,a_N)\in S$が$f$の$S$上の極値点であるとし,$\rank\pd{(g_1,\dots,g_k)}{(x_1,\dots,x_N)}(a)=k$であるとする.

$\rank\pd{(g_1,\dots,g_k)}{(x_1,\dots,x_N)}(a)=k$であることから,$k\le N$であり,$N$個の列ベクトル

\begin{align*} \bmat{\pd{g_1}{x_1}(a)\\\vdots\\\pd{g_k}{x_1}(a)}, \dots, \bmat{\pd{g_k}{x_N}(a)\\\vdots\\\pd{g_k}{x_N}(a)} \end{align*}

のうち,線型独立な$k$個の列ベクトルが存在する.このとき,

\begin{align*} \bmat{\pd{g_1}{x_1}(a)\\\vdots\\\pd{g_k}{x_1}(a)}, \dots, \bmat{\pd{g_1}{x_k}(a)\\\vdots\\\pd{g_k}{x_k}(a)} \end{align*}

が線型独立であるとして良い.すなわち,

\begin{align*} \rank{\pd{(g_1,\dots,g_k)}{(x_1,\dots,x_k)}(a)} =\rank{\bmat{ \pd{g_1}{x_1}(a)&\dots&\pd{g_1}{x_k}(a)\\ \vdots&\ddots&\vdots\\ \pd{g_k}{x_1}(a)&\dots&\pd{g_k}{x_k}(a) }} =k \end{align*}

である.ここで,$x’=(x_1,\dots,x_k)$, $x”=(x_{k+1},\dots,x_N)$, $a’=(a_1,\dots,a_k)$, $a”=(a_{k+1},\dots,a_N)$とする.

定数$\mu=(\mu_1,\dots,\mu_k)$を

\begin{align*} &[\mu_1,\dots,\mu_k] :=\brc{\pd{f}{x_1}(a),\dots,\pd{f}{x_k}(a)}\bra{\pd{(g_1,\dots,g_N)}{(x_1,\dots,x_k)}(a)}^{-1} \end{align*}

で定める.

このとき,$\Phi(x,\lambda)=f(x)-\dsum_{i=1}^{k}\lambda_ig_i(x)$で定まる$\Phi:\R^N\times\R^k\to\R$に対して,点$(a,\mu)$が$\nabla_{x,\lambda}{\Phi}(a,\mu)=\bmat{0\\\vdots\\0}$を満たすことを以下のStep 1-Step 3で示す.

[Step 1] 任意の$i=1,\dots,k$に対して,$\pd{\Phi}{\lambda_i}(a,\mu)=0$である.

$a\in S$であることから,任意の$i=1,\dots,k$に対して$g_i(a)=0$なので,

\begin{align*} \pd{\Phi}{\lambda_i}(a,\mu)=-g_i(a)=0 \end{align*}

が従う.

[Step 2] 任意の$i=1,\dots,k$に対して,$\pd{\Phi}{x_i}(a,\mu)=0$である.

$\mu$の定義から,

\begin{align*} [\mu_1,\dots,\mu_k]\pd{(g_1,\dots,g_N)}{(x_1,\dots,x_k)}(a) =\brc{\pd{f}{x_1}(a),\dots,\pd{f}{x_k}(a)} \end{align*}

である.よって,任意の$i=1,\dots,k$に対して

\begin{align*} \pd{\Phi}{x_i}(a,\mu) =&\pd{f}{x_i}(a)-\dsum_{j=1}^{k}\mu_j\pd{g_j}{x_i}(a) \\=&\pd{f}{x_i}(a)-[\mu_1,\dots,\mu_k]\pd{(g_1,\dots,g_N)}{x_i}(a) \\=&\pd{f}{x_i}(a)-\pd{f}{x_i}(a) =0 \end{align*}

が従う.

[Step 3] 任意の$i=k+1,\dots,N$に対して,$\pd{\Phi}{x_i}(a,\mu)=0$である.

$\pd{(g_1,\dots,g_k)}{(x_1,\dots,x_k)}=k$だから,陰関数定理より$a$の近傍$W\times V\subset U$ $(W\subset\R^k,V\subset\R^{N-k})$と,$k$個の$C^1$級関数$h_1,\dots,h_k:V\to W$が存在して,$x=(x’,x”)\in W\times V$に対して,

\begin{align*} x\in S\iff x'=\bmat{h_1(x'')\\\vdots\\h_k(x'')} \end{align*}

かつ

\begin{align*} \pd{(h_1,\dots,h_k)}{(x_{k+1},\dots,x_N)} =-\bra{\pd{(g_1,\dots,g_N)}{(x_1,\dots,x_k)}}^{-1} \pd{(g_1,\dots,g_N)}{(x_{k+1},\dots,x_N)} \end{align*}

をみたす.よって

\begin{align*} -\pd{(h_1,\dots,h_k)}{(x_{k+1},\dots,x_N)} \bra{\pd{(g_1,\dots,g_N)}{(x_{k+1},\dots,x_N)}}^{-1} =\bra{\pd{(g_1,\dots,g_N)}{(x_1,\dots,x_k)}}^{-1} \end{align*}

なので,$\mu$の定義と併せて

\begin{align*} &[\mu_1,\dots,\mu_k]\pd{(g_1,\dots,g_N)}{(x_{k+1},\dots,x_N)}(a) \\=&\brc{\pd{f}{x_1}(a),\dots,\pd{f}{x_k}(a)}\bra{\pd{(g_1,\dots,g_N)}{(x_1,\dots,x_k)}(a)}^{-1}\pd{(g_1,\dots,g_N)}{(x_{k+1},\dots,x_N)}(a) \\=&-\brc{\pd{f}{x_1}(a),\dots,\pd{f}{x_k}(a)}\pd{(h_1,\dots,h_k)}{(x_{k+1},\dots,x_N)}(a) \end{align*}

だから,任意の$i=k+1,\dots,N$に対して,

\begin{align*} &[\mu_1,\dots,\mu_k]\pd{(g_1,\dots,g_N)}{x_i}(a) \\=&-\brc{\pd{f}{x_1}(a),\dots,\pd{f}{x_k}(a)}\pd{(h_1,\dots,h_k)}{x_i}(a) \end{align*}

となる.よって,$F:V\to \R$を

\begin{align*} F(x''):=f(h_1(x''),\dots,h_k(x''),x'') \end{align*}

で定めると,$(h_1(x”),\dots,h_k(x”),x”)\in S$だから,$x”=a”$で$F$は極値をもつ.

したがって,$\pd{F}{x_{k+1}}(a”)=\dots=\pd{F}{x_N}(a”)=0$が成り立つから,任意の$i=k+1,\dots,N$に対して,

\begin{align*} \pd{\Phi}{x_i}(a,\mu) =&\pd{f}{x_i}(a)-\sum_{j=1}^{k}\mu_j\pd{g_j}{x_i}(a) \\=&\pd{f}{x_i}(a)-[\mu_1,\dots,\mu_k]\pd{(g_1,\dots,g_k)}{x_i}(a) \\=&\pd{f}{x_i}(a)+\brc{\pd{f}{x_1}(a),\dots,\pd{f}{x_k}(a)}\pd{(h_1,\dots,h_k)}{x_i}(a) \\=&\pd{f}{x_i}(a)+\sum_{j=1}^{k}\pd{f}{x_j}(a)\pd{h_i}{x_i}(a) \\=&\pd{F}{x_i}(a)=0 \end{align*}

が従う.

補足

[Lagrangeの未定乗数法]は直線上や曲線上の極値点を求める方法でした.

このような直線上や曲線上ではなく,べたっと塗られた領域上の極値点を求めるには次のように考えます.

一般に,$N$次元ユークリッド空間$R^N$上の有界閉集合(コンパクト集合)$D$上で定義された連続関数$f$が最大値,最小値を持ちます(Heineの定理).

このとき,$f$が最大点,最小点は

  1. $f$の全ての偏微分係数が存在して,$\pd{f}{x_1}(a)=\dots=\pd{f}{x_N}(a)=0$となる点$a\in D^i$.
  2. $f$が微分可能でない点$a\in D^i$
  3. $\partial D$上の点

のいずれかです.ただし,

  • $D^i$は$D$の内部(interior)
  • $\partial D$は$D$の境界

です.

内部$D^i$は常に開集合ですから,$D^i$での最大点/最小点の候補は$f$の導関数を考えることで絞ることができます.これが1,2のパターンです.

残るパターン3について,$\partial D$は直線や曲線になることが多く,ここで[Lagrange(ラグランジュ)の未定乗数法]を用いれば最大点/最小点の候補が得られますね.

参考文献

最後までありがとうございました!

参考になった方は是非シェアをお願いします!

フォローする

以下の関連記事もいかがですか?

SPONSORED LINK
関連記事

記事一覧はこちらからどうぞ!

コメント

  1. Keisuke Tamori より:

    とても明快なご説明ありがとうございました。イメージがつかめず困っていたため、大変助かりました。

    • yama-taku より:

      コメントをありがとうございます!
      公式を見ても,なかなかイメージか掴みづらいものもありますよね.
      お役に立てたようで良かったです!

記事一覧は

こちら

Twitterを

フォロー

大学院入試

解答例

大学受験

解説ブログ