【SPONSORED LINK】

ラグランジュの未定乗数法の直感的な理解と証明

      

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は一般に有限集合ではないため,\partial Dからさらに有限個に候補を絞りたい.ここで,境界\partial D上での関数fの極大点,極小点の候補を絞る[Lagrange(ラグランジュ)の未定乗数法]が非常に有効にはたらく.

【SPONSORED LINK】

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

Dが連結であるとすると,1変数(N=1)の場合には境界\partial Dは有限集合なので,個別に値を求めて最大,最小を考えれば良い.

したがって,[Lagrangeの未定乗数法]は必要なく,[Lagrangeの未定乗数法]が必要となるのは,2変数以上 (N\ge2)の場合である.

\partial Dは一般に軸に平行ではなく”曲がって”おり,fの偏導関数だけでは軸に沿った方向の増減を見ることしかできないため,単にfの偏導関数を考えるだけでは\partial D上のfの最大点,最小点の候補は出てこない.

2変数のLagrangeの未定乗数法

[Lagrangeの未定乗数法]を直感的に理解するために,まずは2変数の場合の[Lagrangeの未定乗数法]を述べる.

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

S:=\set{x=(x_1,x_2)\in U}{g(x)=0}

このとき,点a=(a_1,a_2)\in Sf:U\to \RS上の極値点なら,次の1,2のいずれかが成り立つ.

  1. \R^2\times\R上の関数\Phi(x,y)=f(x)-yg(x)に対して,\pd{\Phi}{x_1}(a,\lambda)=\pd{\Phi}{x_2}(a,\lambda)=\pd{\Phi}{y}(a,\lambda)=0となる\lambda\in\Rが存在する.
  2. \sqb{\pd{g}{x_1}(a),\pd{g}{x_2}(a)}=[0,0]

ここで,点(a,b)fS上の極値点であるとは,点(a,b)Uでの近傍Wが存在して,S\cap W上でfが最小値または,最大値をとることをいう.

S上で極値をとれば,それは確かにS上での最大,最小の候補である.言い換えれば,S\R^Nからの誘導位相が入っていると見たときの,点(a,b)\in Sの近傍上で最小値,または最大値をとるということである.

この意味で,S拘束条件(束縛条件)という.

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

極値をとる状況

fが点a\in S上でS上の極値をとる」ということを,直感的に考える.

fが点a\in SS上の極値をとるとし,C:=f(a)とする.このとき,曲線f(x)=CSは点aで共有点をもつが,横断的に交わることはない.

ここで,厳密な説明はしないが,「横断的に交わる」とは「交差する」ことをいう.もっと砕けた言い方をすると,「ブスッと突き刺さっている」ということである.

すなわち,「曲線f(x)=CSは点aで共有点をもつが,横断的に交わることはない」というのは,「曲線f(x)=CSは点aで共有点をもつが,ブスッと突き刺さってはいない」ということである.

「曲線f(x)=CSは点aで共有点をもつが,横断的に交わることはない」ことから,aの近傍ではSは領域\set{x\in U}{f(x)\ge C}にあるか,領域\set{x\in U}{f(x)\le C}にあることになる.

パターン1

Sが領域\set{x\in U}{f(x)\ge C}にあるにある場合は,点aの近傍ではf(x)\ge Cであって,x=aではf(a)=Cをみたすからfaで極小値をとることが分かる.

Rendered by QuickLaTeX.com

パターン2

Sが領域\set{x\in U}{f(x)\le C}にあるにある場合は,点aの近傍ではf(x)\le Cであって,x=aではf(a)=Cをみたすからfaで極大値をとることが分かる.

Rendered by QuickLaTeX.com

条件について

先ほども述べたように,条件1,条件2のいずれも極値をもつための必要条件である.

つまり,1変数の場合にf'(a)=0を満たしていてもx=aで極値をとるとは限らないように,条件1,条件2を満たしていてもx=aで極値をとるとは限らない.

条件1について

fが点a\in SS上の極値をとるとし,C:=f(a)とする.

さらに,曲線f(x)=CSが接すれば,fの勾配\nabla{f}gの勾配\nabla{g}が平行となる.また,点g(a)=0である.

これは条件1に相当する.

実際,条件1から\pd{\Phi}{x_1}(a,\lambda)=\pd{\Phi}{x_2}(a,\lambda)=0なので,

\begin{bmatrix}\pd{f}{x_1}(a)\\\pd{f}{x_2}(a)\end{bmatrix} =\lambda\begin{bmatrix}\pd{g}{x_1}(a)\\\pd{g}{x_2}(a)\end{bmatrix}

が成り立つ.さらに,\pd{\Phi}{y}(a,\lambda)=0も成り立つ.

したがって,条件1は「fの勾配\nabla{f}gの勾配\nabla{g}が平行であること」と「g(a)=0が成り立つ」ことを示している.

条件2について

曲線f(x)=CSが接していなくても,極値をとることがある.それは,a\in SSが「尖って」いる場合である.この場合には,Sf(x)=Cにタッチしてすぐに引き返すような形になる.

このとき,点a\in Sgの速度ベクトルは0となる.

これは条件2に相当する.

実際,\sqb{\pd{g}{x_1}(a),\pd{g}{x_2}(a)}gの点a\in Sでの速度を表している.したがって,条件2は「a\in Sgの速度が0となる」ことを示している.

Lagrangeの未定乗数法の例

2変数の場合の[Lagrangeの未定乗数法]を直感的に理解できれば,N変数の場合にも同様に理解できる.

N変数の場合の[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とする:

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

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

  1. \R^N\times\R^k上の関数\Phi(x,y)=f(x)-\dsum_{i=1}^{k}y_ig_i(x)に対して,\Phiの全ての1階偏導関数の共通零点(a,\lambda) (\lambda\in\R^k)が存在する.
  2. \mrm{rank}\pd{(g_1,\dots,g_k)}{(x_1,\dots,x_N)}(a) =\mrm{rank}\begin{bmatrix}\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)\\\end{bmatrix} <k

[Lagrangeの未定乗数法]の適用例を上げる.

例1

N=2,k=1,U=\R^2g(x_1,x_2)=x_1^2+x_2^2-1の場合を考える.このとき,Sは原点中心の単位円となる.

この円周S上の点(a,b)で極値をとるとき,[Lagrangeの未定乗数法(2変数の場合)]の条件1または条件2が成り立つことになる.

Rendered by QuickLaTeX.com

ただ,この場合は\pd{g}{x_1}(x_1,x_2)=2x_1\pd{g}{x_2}(x_1,x_2)=2x_2だから,\sqb{\pd{g}{x_1}(a),\pd{g}{x_2}(a)}=[0,0]ならa=(0,0)であるが,(0,0)\notin Sだから[Lagrangeの未定乗数法(2変数の場合)]の条件2は成り立ち得ない.

よって,\Phi(x,y)=f(x)-yg(x)に対して\pd{\Phi}{x_1}(a,\lambda)=\pd{\Phi}{x_2}(a,\lambda)=\pd{\Phi}{y}(a,\lambda)=0となる\lambda\in\Rが存在するようなa\in Sを求め,そのaは極値点の候補となる.

当然のことながら,今は具体的にfを与えていないので,S上のどこで極値をとるかは分からない.

例2

N=2,k=1,U=\R^2g(x_1,x_2)=x_1^2-x_2^3の場合を考える.

このとき,[Lagrangeの未定乗数法(2変数の場合)]の条件1または条件2が成り立つことになる.

Rendered by QuickLaTeX.com

この場合は\pd{g}{x_1}(x_1,x_2)=2x_1\pd{g}{x_2}(x_1,x_2)=-3x_2だから,\sqb{\pd{g}{x_1}(a),\pd{g}{x_2}(a)}=[0,0]\Lra a=(0,0)であり,(0,0)\in Sだから[Lagrangeの未定乗数法(2変数の場合)]の条件2が成り立つ.

よって,(0,0)がまず極値の候補となる.

また,\Phi(x,y)=f(x)-yg(x)に対して\pd{\Phi}{x_1}(a,\lambda)=\pd{\Phi}{x_2}(a,\lambda)=\pd{\Phi}{y}(a,\lambda)=0となる\lambda\in\Rが存在するようなa\in S\setminus\{(0,0)\}を求め,そのaも極値点の候補となる.

当然のことながら,今は具体的にfを与えていないので,S上のどこで極値をとるかは分からない.

例3

N=3,k=2,U=\R^2g_1(x_1,x_2,x_3)=x_1+x_2g_2(x_1,x_2,x_3)=x_1^2+x_2^2-x_3^2の場合を考える.

\mrm{rank}\begin{bmatrix} \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} \end{bmatrix}
=\mrm{rank}\begin{bmatrix} 1&1&0\\ 2x_1&2x_2&-2x_3 \end{bmatrix}
=\mrm{rank}\begin{bmatrix} 1&1&0\\ 0&x_1-x_2&-x_3 \end{bmatrix}
=\begin{cases} 1&(x_1=x_2,x_3=0)\\ 2&(\mrm{other}) \end{cases}

だから,k\in\Rが存在して(k,k,0)\in Sとなれば,[Lagrangeの未定乗数法]の条件2が成り立つ.g_1(k,k,0)=2kg_2(k,k,0)=2k^2だから, k=0(k,k,0)\in Sとなる.よって,(0,0,0)で[Lagrangeの未定乗数法]の条件2をみたす.

よって,(0,0,0)がまず極値の候補となる.

また,\Phi(x,y)=f(x)-y_1g_1(x)-y_2g_2(x)に対して,

\pd{\Phi}{x_1}(a,\lambda)=\pd{\Phi}{x_2}(a,\lambda)=\pd{\Phi}{x_3}(a,\lambda)
\pd{\Phi}{y_1}(a,\lambda)=\pd{\Phi}{y_2}(a,\lambda)=0

となる\lambda\in\Rが存在するようなa\in S\setminus\{(0,0,0)\}を求め,そのaも極値点の候補となる.

当然のことながら,今は具体的にfを与えていないので,S上のどこで極値をとるかは分からない.

Lagrangeの未定乗数法の証明

[Lagrangeの未定乗数法]の証明をする.

[証明]

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

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

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

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

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

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

\pd{(g_1,\dots,g_k)}{(x_1,\dots,x_k)}(a) =\mrm{rank}\begin{bmatrix}\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)\end{bmatrix} =k

である.ここで,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)とする.

定数\lambda=(\lambda_1,\dots,\lambda_k)

[\lambda_1,\dots,\lambda_k] :=\sqb{\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}

で定める.このとき,点(a,\lambda)が,\R^N\times\R^k上の関数\Phi(x,y)=f(x)-\dsum_{j=1}^{k}y_jg_j(x)の全ての1階偏導関数の共通零点であることを,以下のStep.1〜Step.3で示す.

Step.1

任意のi=1,\dots,kに対して,\pd{\Phi}{y_i}(a,\lambda)=0である.

[証明]

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

\pd{\Phi}{y_i}(a,\lambda)=-g_i(a)=0

が従う.

Step.2

任意のi=1,\dots,kに対して,\pd{\Phi}{x_i}(a,\lambda)=0である.

[証明]

\lambdaの定義から,

[\lambda_1,\dots,\lambda_k]\pd{(g_1,\dots,g_N)}{(x_{1},\dots,x_{k})}(a) =\sqb{\pd{f}{x_1}(a),\dots,\pd{f}{x_k}(a)}

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

\pd{\Phi}{x_i}(a,\lambda) =\pd{f}{x_i}(a)-\dsum_{j=1}^{k}\lambda_j\pd{g_j}{x_i}(a)
=\pd{f}{x_i}(a)-[\lambda_1,\dots,\lambda_k]\pd{(g_1,\dots,g_N)}{x_{i}}(a)
=\pd{f}{x_i}(a)-\pd{f}{x_i}(a) =0

が従う.

Step.3

任意のi=k+1,\dots,Nに対して,\pd{\Phi}{x_i}(a,\lambda)=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に対して,

x\in S\Lra x'=\begin{bmatrix}h_1(x'')\\\vdots\\h_k(x'')\end{bmatrix}

かつ

\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)}

をみたす.よって

-\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}

なので,\lambdaの定義と併せて

[\lambda_1,\dots,\lambda_k] \pd{(g_1,\dots,g_N)}{(x_{k+1},\dots,x_N)}(a)
=\sqb{\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)
=-\sqb{\pd{f}{x_1}(a),\dots,\pd{f}{x_k}(a)} \pd{(h_1,\dots,h_k)}{(x_{k+1},\dots,x_N)}(a)

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

[\lambda_1,\dots,\lambda_k]\pd{(g_1,\dots,g_N)}{x_i}(a)
=-\sqb{\pd{f}{x_1}(a),\dots,\pd{f}{x_k}(a)}\pd{(h_1,\dots,h_k)}{x_i}(a)

となる.よって,i=k+1,\dots,Nに対して,任意のF:V\to \R

F(x''):=f(h_1(x''),\dots,h_k(x''),x'')

で定めると,(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に対して,

\pd{\Phi}{x_i}(a,\lambda) =\pd{f}{x_i}(a)-\dsum_{j=1}^{k}\lambda_j\pd{g_j}{x_i}(a)
=\pd{f}{x_i}(a)-[\lambda_1,\dots,\lambda_k]\pd{(g_1,\dots,g_k)}{x_i}(a)
=\pd{f}{x_i}(a)+\sqb{\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)+\dsum_{j=1}^{k}\pd{f}{x_j}(a)\pd{h_i}{x_i}(a)
=\pd{F}{x_i}(a)=0

が従う.

[証明終]

参考文献

  • 「解析入門I」(杉浦光夫 著,東京大学出版会)
  • 「解析入門II」(杉浦光夫 著,東京大学出版会)

関連記事

【良いと思ったらシェアを!】

最後まで読んでいただきありがとうございました!

良ければシェアボタンから共有をお願いします!

コメントを残す

*

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください