【SPONSORED LINK】

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

例えば,

\begin{align*} f(x,y)=x^2+3xy+y^2+1 \end{align*}

の最小値を求めたいとき,

\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の最小値を求めたい」といったように,xyに制約(この場合にはx+y=1)がかかると単純にfの偏導関数から最小値を求めることができません.

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

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

【SPONSORED LINK】

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_0y=x-3が点(a,b)で接するなら,下図のようになります.

Rendered by QuickLaTeX.com

さて,この等高線f(x,y)=C_0xy平面を

  • 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 \Rg: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 Sf:U\to \RS上の極値点なら,次の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)fS上の極値点であるとは,点(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 \Rg_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 Sf:U\to \RS上の極値点なら,次の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 \Rg_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 Sf:U\to \RS上の極値点なら,次の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 SfS上の極値点であるとし,\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^iDの内部(interior)
  • \partial DDの境界

です.

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

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

参考文献

シェアする

  • このエントリーをはてなブックマークに追加

フォローする

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

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

SPONSORED LINK
関連記事

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

コメント

  1. Keisuke Tamori より:

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

    • yama-taku より:

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

記事一覧は

こちら

Twitterを

フォロー

大学院入試

解答例

大学受験

解説ブログ