「条件付停留値問題」の版間の差分

提供: tknotebook
移動: 案内検索
(条件付き停留値問題への応用)
(条件付き停留値問題への応用)
 
(1人の利用者による、間の12版が非表示)
1行: 1行:
 
[[Category:数学]][[Category:線形代数]][[category:ラグランジュの未定乗数法]]
 
[[Category:数学]][[Category:線形代数]][[category:ラグランジュの未定乗数法]]
[[メインページ]]>[[数学の部屋]]>[[ラグランジュの未定乗数法]]
+
[[メインページ]]>[[数学の部屋#ラグランジュの未定乗数法]]
  
 
==条件付き停留値問題への応用==
 
==条件付き停留値問題への応用==
6行: 6行:
 
ここまでで、ラグランジュの未定乗数法の根本は直交補空間の直交補空間だと述べてきましたが、
 
ここまでで、ラグランジュの未定乗数法の根本は直交補空間の直交補空間だと述べてきましたが、
 
これの条件付停留値問題への応用を示しましょう。
 
これの条件付停留値問題への応用を示しましょう。
 +
 +
ラグランジュの未定乗数法は、n個のパラメータを持つスカラー関数で説明するのが本来の形ですが、ここではベクトル解析風に説明したいので、以下の説明ではn次元のデカルト座標をベクトルとして入力とするスカラー関数の停留値を考察します。勿論数学的には全く等価です。
  
 
ベクトル <math>{\boldsymbol x} = \left(\begin{array}{c} x_1 \\ x_2 \\ \vdots \\ x_n \end{array}\right) </math> の関数 <math>f({\boldsymbol x}) </math> が停留値を持つのは
 
ベクトル <math>{\boldsymbol x} = \left(\begin{array}{c} x_1 \\ x_2 \\ \vdots \\ x_n \end{array}\right) </math> の関数 <math>f({\boldsymbol x}) </math> が停留値を持つのは
39行: 41行:
  
 
{{eqn|<math>\delta G_l({\boldsymbol x}) = \mathrm{grad}G_l({\boldsymbol x})\cdot\delta{\boldsymbol x} = 0 (l=1\sim K)</math>|4}}
 
{{eqn|<math>\delta G_l({\boldsymbol x}) = \mathrm{grad}G_l({\boldsymbol x})\cdot\delta{\boldsymbol x} = 0 (l=1\sim K)</math>|4}}
 +
  
 
が成り立つようにしか <math>{\boldsymbol x}</math> は変化できません。
 
が成り立つようにしか <math>{\boldsymbol x}</math> は変化できません。
  
 
関数 <math>f({\boldsymbol x})</math> が停留値を持つということは、<math>{\boldsymbol x}</math> の微小変化量 <math>\delta{\boldsymbol x}=\left(\begin{array}{c} \delta x_1 \\ \delta x_2 \\ \vdots \\ \delta x_n \end{array}\right)</math> に対し  <math>f({\boldsymbol x})</math> が変化しないということなので
 
関数 <math>f({\boldsymbol x})</math> が停留値を持つということは、<math>{\boldsymbol x}</math> の微小変化量 <math>\delta{\boldsymbol x}=\left(\begin{array}{c} \delta x_1 \\ \delta x_2 \\ \vdots \\ \delta x_n \end{array}\right)</math> に対し  <math>f({\boldsymbol x})</math> が変化しないということなので
 +
  
 
{{eqn|<math>
 
{{eqn|<math>
55行: 59行:
  
  
{{eqn|<math>\delta f({\boldsymbol x}) = \mathrm{grad}f({\boldsymbol x})\cdot\delta{\boldsymbol x} = 0 \label{eq6} </math>|6}}
+
{{eqn|<math>\delta f({\boldsymbol x}) = \mathrm{grad}f({\boldsymbol x})\cdot\delta{\boldsymbol x} = 0 </math>|6}}
 +
 
  
 
[[ラグランジュ未定乗数法の基本部分]] で示しましたように、<math>\mathrm{grad}f({\boldsymbol x})</math> は <math>\delta{\boldsymbol x}</math> が所属する部分空間の直交補空間に属します。従って、適当な係数 <math>\lambda_1, \lambda_2, \cdots , \lambda_K</math>を使って
 
[[ラグランジュ未定乗数法の基本部分]] で示しましたように、<math>\mathrm{grad}f({\boldsymbol x})</math> は <math>\delta{\boldsymbol x}</math> が所属する部分空間の直交補空間に属します。従って、適当な係数 <math>\lambda_1, \lambda_2, \cdots , \lambda_K</math>を使って
  
<math> \mathrm{grad}f({\boldsymbol x}) = -\lambda_1\mathrm{grad}G_1({\boldsymbol x}) - \lambda_2\mathrm{grad}G_2({\boldsymbol x})\cdots -\lambda_K\mathrm{grad}G_K({\boldsymbol x})  
+
 
\label{eq7} </math>
+
{{eqn|<math> \mathrm{grad}f({\boldsymbol x}) = -\lambda_1\mathrm{grad}G_1({\boldsymbol x}) - \lambda_2\mathrm{grad}G_2({\boldsymbol x})\cdots -\lambda_K\mathrm{grad}G_K({\boldsymbol x})</math>|7}}
 +
 
  
 
とかけます。この式の意味は停留値を取るような <math>{\boldsymbol x}</math> はこの式を満たすということであり、<math>\mathrm{grad}f({\boldsymbol x})</math> が  
 
とかけます。この式の意味は停留値を取るような <math>{\boldsymbol x}</math> はこの式を満たすということであり、<math>\mathrm{grad}f({\boldsymbol x})</math> が  
 
<math>-\lambda_1\mathrm{grad}G_1({\boldsymbol x}) - \lambda_2\mathrm{grad}G_2({\boldsymbol x})\cdots -\lambda_K\mathrm{grad}G_K({\boldsymbol x})</math> であらわされる部分空間全体になるわけではありません。
 
<math>-\lambda_1\mathrm{grad}G_1({\boldsymbol x}) - \lambda_2\mathrm{grad}G_2({\boldsymbol x})\cdots -\lambda_K\mathrm{grad}G_K({\boldsymbol x})</math> であらわされる部分空間全体になるわけではありません。
  
<math>g({\boldsymbol x}) = f({\boldsymbol x}) + \lambda_1 G_1({\boldsymbol x}) + \lambda_2 G_2({\boldsymbol x})\cdots +\lambda_K G_K({\boldsymbol x}) \label{eq8} </math>
+
 
 +
{{eqn|<math>g({\boldsymbol x}) = f({\boldsymbol x}) + \lambda_1 G_1({\boldsymbol x}) + \lambda_2 G_2({\boldsymbol x})\cdots +\lambda_K G_K({\boldsymbol x})</math>|8}}
 +
 
 +
 
  
 
とすると、
 
とすると、
  
<math>\mathrm{grad}g({\boldsymbol x}) = 0\label{eq9}  </math>
+
{{eqn|<math>\mathrm{grad}g({\boldsymbol x}) = 0</math>|9}}
  
つまり \ref{eq2} \ref{eq9} が停留値の条件となります。式 \ref{eq2} \ref{eq9} は <math>n + K</math> 個の方程式を含みますから、
+
つまり '''(2)''' '''(9)''' が停留値の条件となります。式 '''(2)''' '''(9)''' は <math>n + K</math> 個の方程式を含みますから、
全ての未知数を求められますので、これで十分です。実際、ラグランジュの未定乗数法というのは 式 \ref{eq2} \ref{eq9} から停留点を求めるのが普通ですが、ここでもうひとひねりしてみましょう。
+
全ての未知数を求められますので、これで十分です。実際、ラグランジュの未定乗数法というのは 式 '''(2)''' '''(9)''' から停留点を求めるのが普通ですが、ここでもうひとひねりしてみましょう。
  
 
<math>\lambda_1, \lambda_2, \cdots , \lambda_K</math> を関数の独立変数とすれば
 
<math>\lambda_1, \lambda_2, \cdots , \lambda_K</math> を関数の独立変数とすれば
  
<math>h({\boldsymbol x}, \lambda_1, \lambda_2, \cdots , \lambda_K) = f({\boldsymbol x}) + \lambda_1 G_1({\boldsymbol x}) + \lambda_2 G_2({\boldsymbol x})\cdots +\lambda_K G_K({\boldsymbol x})
 
\label{eq10}
 
</math>
 
  
と書けます。<math>\frac{\partial h}{\partial h\lambda_i} = G_i = 0</math> は拘束条件そのものなので、<math>\mathrm{grad}</math>を <math>\lambda_1, \lambda_2, \cdots , \lambda_K</math> にまで拡張すれば
+
{{eqn|<math>h({\boldsymbol x}, \lambda_1, \lambda_2, \cdots , \lambda_K) = f({\boldsymbol x}) + \lambda_1 G_1({\boldsymbol x}) + \lambda_2 G_2({\boldsymbol x})\cdots +\lambda_K G_K({\boldsymbol x}) 
 +
</math>|10}}
  
<math>\mathrm{grad}h({\boldsymbol x}, \lambda_1, \lambda_2, \cdots , \lambda_K) = 0\label{eq11} </math>
 
  
<math>f</math> が停留値を持つ条件です。拘束条件は \ref{eq11} に取り込まれてしまった上、式 \ref{eq11} は独立変数を <math>\lambda_1, \lambda_2, \cdots , \lambda_K</math> にまで拡大した停留点を求める方程式になっています。
+
と書けます。<math>\frac{\partial h}{\partial \lambda_i} = G_i = 0</math> は拘束条件そのものなので、<math>\mathrm{grad}</math>を <math>\lambda_1, \lambda_2, \cdots , \lambda_K</math> にまで拡張すれば
 +
 
 +
 
 +
{{eqn|<math>\mathrm{grad}h({\boldsymbol x}, \lambda_1, \lambda_2, \cdots , \lambda_K) = 0</math>|11}}
 +
 
 +
 
 +
が <math>f</math> が停留値を持つ条件です。拘束条件は '''(11)''' に取り込まれてしまった上、式 '''(11)''' は独立変数を <math>\lambda_1, \lambda_2, \cdots , \lambda_K</math> にまで拡大した停留点を求める方程式になっています。
  
 
つまり、ラグランジュの未定乗数法は、束縛条件付き停留値問題を束縛条件なしの停留値問題に巧妙に変換するのです。
 
つまり、ラグランジュの未定乗数法は、束縛条件付き停留値問題を束縛条件なしの停留値問題に巧妙に変換するのです。
96行: 108行:
  
 
<math>h({\boldsymbol x}, \lambda_1 ,\lambda_2, \cdots, \lambda_K) =  f({\boldsymbol x})+ \lambda_1 G_1({\boldsymbol x}) + \lambda_2 G_2({\boldsymbol x}) + \cdots +  \lambda_K G_K({\boldsymbol x}) </math>
 
<math>h({\boldsymbol x}, \lambda_1 ,\lambda_2, \cdots, \lambda_K) =  f({\boldsymbol x})+ \lambda_1 G_1({\boldsymbol x}) + \lambda_2 G_2({\boldsymbol x}) + \cdots +  \lambda_K G_K({\boldsymbol x}) </math>
 +
  
 
:を作ります。
 
:を作ります。
 +
  
 
2. 以下の式より、停留値での <math>{\boldsymbol x}</math> を求めます。
 
2. 以下の式より、停留値での <math>{\boldsymbol x}</math> を求めます。

2020年9月14日 (月) 03:28時点における最新版

メインページ>数学の部屋#ラグランジュの未定乗数法

条件付き停留値問題への応用

ここまでで、ラグランジュの未定乗数法の根本は直交補空間の直交補空間だと述べてきましたが、 これの条件付停留値問題への応用を示しましょう。

ラグランジュの未定乗数法は、n個のパラメータを持つスカラー関数で説明するのが本来の形ですが、ここではベクトル解析風に説明したいので、以下の説明ではn次元のデカルト座標をベクトルとして入力とするスカラー関数の停留値を考察します。勿論数学的には全く等価です。

ベクトル {\boldsymbol x} = \left(\begin{array}{c} x_1 \\ x_2 \\ \vdots \\ x_n \end{array}\right) の関数 f({\boldsymbol x}) が停留値を持つのは


\mathrm{grad}f({\boldsymbol x}) = 0 ( 1 )


の時ですが、

ベクトル {\boldsymbol x} = \left(\begin{array}{c} x_1 \\ x_2 \\ \vdots \\ x_n \end{array}\right) に対し、K個の条件(拘束条件)


 G_l({\boldsymbol x}) = 0 (l=1 \sim K) ( 2 )


がある場合、関数 f({\boldsymbol x}) が停留値を取る条件は変わってきます。これを考えてみましょう。


{\boldsymbol x} の微小変化量を \delta{\boldsymbol x}=\left(\begin{array}{c} \delta x_1 \\ \delta x_2 \\ \vdots \\ \delta x_n \end{array}\right) とすると、



\mathrm{grad}G_l({\boldsymbol x}) = \left(\begin{array}{c} 
\frac{\partial G_l({\boldsymbol x})}{\partial x_1} \\
\frac{\partial G_l({\boldsymbol x})}{\partial x_2} \\
\vdots \\
\frac{\partial G_l({\boldsymbol x})}{\partial x_n} \\
\end{array}\right)
( 3 )


\delta G_l({\boldsymbol x}) = \mathrm{grad}G_l({\boldsymbol x})\cdot\delta{\boldsymbol x} = 0 (l=1\sim K) ( 4 )


が成り立つようにしか {\boldsymbol x} は変化できません。

関数 f({\boldsymbol x}) が停留値を持つということは、{\boldsymbol x} の微小変化量 \delta{\boldsymbol x}=\left(\begin{array}{c} \delta x_1 \\ \delta x_2 \\ \vdots \\ \delta x_n \end{array}\right) に対し f({\boldsymbol x}) が変化しないということなので



\mathrm{grad}f({\boldsymbol x}) = \left(\begin{array}{c} 
\frac{\partial f({\boldsymbol x})}{\partial x_1} \\
\frac{\partial f({\boldsymbol x})}{\partial x_2} \\
\vdots \\
\frac{\partial f({\boldsymbol x})}{\partial x_n} \\
\end{array}\right)

( 5 )


\delta f({\boldsymbol x}) = \mathrm{grad}f({\boldsymbol x})\cdot\delta{\boldsymbol x} = 0 ( 6 )


ラグランジュ未定乗数法の基本部分 で示しましたように、\mathrm{grad}f({\boldsymbol x})\delta{\boldsymbol x} が所属する部分空間の直交補空間に属します。従って、適当な係数 \lambda_1, \lambda_2, \cdots , \lambda_Kを使って


 \mathrm{grad}f({\boldsymbol x}) = -\lambda_1\mathrm{grad}G_1({\boldsymbol x}) - \lambda_2\mathrm{grad}G_2({\boldsymbol x})\cdots -\lambda_K\mathrm{grad}G_K({\boldsymbol x}) ( 7 )


とかけます。この式の意味は停留値を取るような {\boldsymbol x} はこの式を満たすということであり、\mathrm{grad}f({\boldsymbol x})-\lambda_1\mathrm{grad}G_1({\boldsymbol x}) - \lambda_2\mathrm{grad}G_2({\boldsymbol x})\cdots -\lambda_K\mathrm{grad}G_K({\boldsymbol x}) であらわされる部分空間全体になるわけではありません。


g({\boldsymbol x}) = f({\boldsymbol x}) + \lambda_1 G_1({\boldsymbol x}) + \lambda_2 G_2({\boldsymbol x})\cdots +\lambda_K G_K({\boldsymbol x}) ( 8 )


とすると、

\mathrm{grad}g({\boldsymbol x}) = 0 ( 9 )

つまり (2)(9) が停留値の条件となります。式 (2)(9)n + K 個の方程式を含みますから、 全ての未知数を求められますので、これで十分です。実際、ラグランジュの未定乗数法というのは 式 (2)(9) から停留点を求めるのが普通ですが、ここでもうひとひねりしてみましょう。

\lambda_1, \lambda_2, \cdots , \lambda_K を関数の独立変数とすれば


h({\boldsymbol x}, \lambda_1, \lambda_2, \cdots , \lambda_K) = f({\boldsymbol x}) + \lambda_1 G_1({\boldsymbol x}) + \lambda_2 G_2({\boldsymbol x})\cdots +\lambda_K G_K({\boldsymbol x})  
( 10 )


と書けます。\frac{\partial h}{\partial \lambda_i} = G_i = 0 は拘束条件そのものなので、\mathrm{grad}\lambda_1, \lambda_2, \cdots , \lambda_K にまで拡張すれば


\mathrm{grad}h({\boldsymbol x}, \lambda_1, \lambda_2, \cdots , \lambda_K) = 0 ( 11 )


f が停留値を持つ条件です。拘束条件は (11) に取り込まれてしまった上、式 (11) は独立変数を \lambda_1, \lambda_2, \cdots , \lambda_K にまで拡大した停留点を求める方程式になっています。

つまり、ラグランジュの未定乗数法は、束縛条件付き停留値問題を束縛条件なしの停留値問題に巧妙に変換するのです。

まとめ

条件付き停留値問題を、条件なし停留値問題に変換する手順は以下の通りです。

1. 元の関数 f({\boldsymbol x}) と束縛条件 G_1({\boldsymbol x})=0, G_2({\boldsymbol x})=0, \cdots,  G_K({\boldsymbol x})=0 から式


h({\boldsymbol x}, \lambda_1 ,\lambda_2, \cdots, \lambda_K) =  f({\boldsymbol x})+ \lambda_1 G_1({\boldsymbol x}) + \lambda_2 G_2({\boldsymbol x}) + \cdots +  \lambda_K G_K({\boldsymbol x})


を作ります。


2. 以下の式より、停留値での {\boldsymbol x} を求めます。


\frac{\partial h}{\partial x_1} = 0, \frac{\partial h}{\partial x_2} = 0, \cdots, \frac{\partial h}{\partial x_n}=0, \frac{\partial h}{\partial \lambda_1}=0, 
\frac{\partial h}{\partial \lambda_2}=0, \cdots, \frac{\partial h}{\partial \lambda_K} = 0,