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

提供: tknotebook
移動: 案内検索
7行: 7行:
 
これの条件付停留値問題への応用を示しましょう。
 
これの条件付停留値問題への応用を示しましょう。
  
ベクトル <math>{\bf x} = \left(\begin{array}{c} x_1 \\ x_2 \\ \vdots \\ x_n \end{array}\right) </math> の関数 <math>f({\bf 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> が停留値を持つのは
  
  
<math>\mathrm{grad}f({\bf x}) = 0 \label{eq1} </math>
+
<math>\mathrm{grad}f({\boldsymbol x}) = 0 \label{eq1} </math>
  
 
の時ですが、
 
の時ですが、
  
ベクトル <math>{\bf x} = \left(\begin{array}{c} x_1 \\ x_2 \\ \vdots \\ x_n \end{array}\right) </math> に対し、K個の条件(拘束条件)
+
ベクトル <math>{\boldsymbol x} = \left(\begin{array}{c} x_1 \\ x_2 \\ \vdots \\ x_n \end{array}\right) </math> に対し、K個の条件(拘束条件)
  
<math> G_l({\bf x}) = 0 (l=1~K)\label{eq2} </math>
+
<math> G_l({\boldsymbol x}) = 0 (l=1~K)\label{eq2} </math>
  
がある場合、関数 <math>f({\bf x})</math> が停留値を取る条件は変わってきます。これを考えてみましょう。
+
がある場合、関数 <math>f({\boldsymbol x})</math> が停留値を取る条件は変わってきます。これを考えてみましょう。
  
  
<math>{\bf x}</math> の微小変化量を <math>\delta{\bf x}=\left(\begin{array}{c} \delta x_1 \\ \delta x_2 \\ \vdots \\ \delta x_n \end{array}\right)</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>
 
<math>
\mathrm{grad}G_l({\bf x}) = \left(\begin{array}{c}  
+
\mathrm{grad}G_l({\boldsymbol x}) = \left(\begin{array}{c}  
\frac{\partial G_l({\bf x})}{\partial x_1} \\
+
\frac{\partial G_l({\boldsymbol x})}{\partial x_1} \\
\frac{\partial G_l({\bf x})}{\partial x_2} \\
+
\frac{\partial G_l({\boldsymbol x})}{\partial x_2} \\
 
\vdots \\
 
\vdots \\
\frac{\partial G_l({\bf x})}{\partial x_n} \\
+
\frac{\partial G_l({\boldsymbol x})}{\partial x_n} \\
 
\end{array}\right)
 
\end{array}\right)
 
\label{eq3}  
 
\label{eq3}  
35行: 35行:
  
  
<math>\delta G_l({\bf x}) = \mathrm{grad}G_l({\bf x})\cdot\delta{\bf x} = 0 (l=1~K) \label{eq4} </math>
+
<math>\delta G_l({\boldsymbol x}) = \mathrm{grad}G_l({\boldsymbol x})\cdot\delta{\boldsymbol x} = 0 (l=1~K) \label{eq4} </math>
  
が成り立つようにしか <math>{\bf x}</math> は変化できません。
+
が成り立つようにしか <math>{\boldsymbol x}</math> は変化できません。
  
関数 <math>f({\bf x})</math> が停留値を持つということは、<math>{\bf x}</math> の微小変化量 <math>\delta{\bf x}=\left(\begin{array}{c} \delta x_1 \\ \delta x_2 \\ \vdots \\ \delta x_n \end{array}\right)</math> に対し  <math>f({\bf 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>
 
<math>
\mathrm{grad}f({\bf x}) = \left(\begin{array}{c}  
+
\mathrm{grad}f({\boldsymbol x}) = \left(\begin{array}{c}  
\frac{\partial f({\bf x})}{\partial x_1} \\
+
\frac{\partial f({\boldsymbol x})}{\partial x_1} \\
\frac{\partial f({\bf x})}{\partial x_2} \\
+
\frac{\partial f({\boldsymbol x})}{\partial x_2} \\
 
\vdots \\
 
\vdots \\
\frac{\partial f({\bf x})}{\partial x_n} \\
+
\frac{\partial f({\boldsymbol x})}{\partial x_n} \\
 
\end{array}\right)
 
\end{array}\right)
 
\label{eq5}  
 
\label{eq5}  
52行: 52行:
  
  
<math>\delta f({\bf x}) = \mathrm{grad}f({\bf x})\cdot\delta{\bf x} = 0 \label{eq6} </math>
+
<math>\delta f({\boldsymbol x}) = \mathrm{grad}f({\boldsymbol x})\cdot\delta{\boldsymbol x} = 0 \label{eq6} </math>
  
[[ラグランジュ未定乗数法の基本部分]] で示しましたように、<math>\mathrm{grad}f({\bf x})</math> は <math>\delta{\bf 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({\bf x}) = -\lambda_1\mathrm{grad}G_1({\bf x}) - \lambda_2\mathrm{grad}G_2({\bf x})\cdots -\lambda_K\mathrm{grad}G_K({\bf x})  
+
<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>
 
\label{eq7} </math>
  
とかけます。この式の意味は停留値を取るような <math>{\bf x}</math> はこの式を満たすということであり、<math>\mathrm{grad}f({\bf x})</math> が  
+
とかけます。この式の意味は停留値を取るような <math>{\boldsymbol x}</math> はこの式を満たすということであり、<math>\mathrm{grad}f({\boldsymbol x})</math> が  
<math>-\lambda_1\mathrm{grad}G_1({\bf x}) - \lambda_2\mathrm{grad}G_2({\bf x})\cdots -\lambda_K\mathrm{grad}G_K({\bf 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({\bf x}) = f({\bf x}) + \lambda_1 G_1({\bf x}) + \lambda_2 G_2({\bf x})\cdots +\lambda_K G_K({\bf x}) \label{eq8} </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>
  
 
とすると、
 
とすると、
  
<math>\mathrm{grad}g({\bf x}) = 0\label{eq9}  </math>
+
<math>\mathrm{grad}g({\boldsymbol x}) = 0\label{eq9}  </math>
  
 
つまり \ref{eq2} と \ref{eq9} が停留値の条件となります。式 \ref{eq2} と \ref{eq9} は <math>n + K</math> 個の方程式を含みますから、
 
つまり \ref{eq2} と \ref{eq9} が停留値の条件となります。式 \ref{eq2} と \ref{eq9} は <math>n + K</math> 個の方程式を含みますから、
73行: 73行:
 
<math>\lambda_1, \lambda_2, \cdots , \lambda_K</math> を関数の独立変数とすれば
 
<math>\lambda_1, \lambda_2, \cdots , \lambda_K</math> を関数の独立変数とすれば
  
<math>h({\bf x}, \lambda_1, \lambda_2, \cdots , \lambda_K) = f({\bf x}) + \lambda_1 G_1({\bf x}) + \lambda_2 G_2({\bf x})\cdots +\lambda_K G_K({\bf x})  
+
<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}  
 
\label{eq10}  
 
</math>
 
</math>
79行: 79行:
 
と書けます。<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> にまで拡張すれば
 
と書けます。<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> にまで拡張すれば
  
<math>\mathrm{grad}h({\bf x}, \lambda_1, \lambda_2, \cdots , \lambda_K) = 0\label{eq11} </math>
+
<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>f</math> が停留値を持つ条件です。拘束条件は \ref{eq11} に取り込まれてしまった上、式 \ref{eq11} は独立変数を <math>\lambda_1, \lambda_2, \cdots , \lambda_K</math> にまで拡大した停留点を求める方程式になっています。
89行: 89行:
 
条件付き停留値問題を、条件なし停留値問題に変換する手順は以下の通りです。
 
条件付き停留値問題を、条件なし停留値問題に変換する手順は以下の通りです。
  
1. 元の関数 <math>f({\bf x})</math> と束縛条件 <math>G_1({\bf x})=0, G_2({\bf x})=0, \cdots,  G_K({\bf x})=0</math> から式
+
1. 元の関数 <math>f({\boldsymbol x})</math> と束縛条件 <math>G_1({\boldsymbol x})=0, G_2({\boldsymbol x})=0, \cdots,  G_K({\boldsymbol x})=0</math> から式
  
  
<math>h({\bf x}, \lambda_1 ,\lambda_2, \cdots, \lambda_K) =  f({\bf x})+ \lambda_1 G_1({\bf x}) + \lambda_2 G_2({\bf x}) + \cdots +  \lambda_K G_K({\bf 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>{\bf x}</math> を求めます。
+
2. 以下の式より、停留値での <math>{\boldsymbol x}</math> を求めます。
  
 
<math>
 
<math>

2014年12月29日 (月) 01:43時点における版

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

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

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

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


構文解析に失敗 (不明な関数「\label」): \mathrm{grad}f({\boldsymbol x}) = 0 \label{eq1}


の時ですが、

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

構文解析に失敗 (字句解析エラー): G_l({\boldsymbol x}) = 0 (l=1~K)\label{eq2}


がある場合、関数 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) とすると、


構文解析に失敗 (不明な関数「\label」): \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) \label{eq3}


構文解析に失敗 (字句解析エラー): \delta G_l({\boldsymbol x}) = \mathrm{grad}G_l({\boldsymbol x})\cdot\delta{\boldsymbol x} = 0 (l=1~K) \label{eq4}


が成り立つようにしか {\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}) が変化しないということなので

構文解析に失敗 (不明な関数「\label」): \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) \label{eq5}


構文解析に失敗 (不明な関数「\label」): \delta f({\boldsymbol x}) = \mathrm{grad}f({\boldsymbol x})\cdot\delta{\boldsymbol x} = 0 \label{eq6}


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

構文解析に失敗 (不明な関数「\label」): \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}


とかけます。この式の意味は停留値を取るような {\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}) であらわされる部分空間全体になるわけではありません。

構文解析に失敗 (不明な関数「\label」): 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}


とすると、

構文解析に失敗 (不明な関数「\label」): \mathrm{grad}g({\boldsymbol x}) = 0\label{eq9}


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

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

構文解析に失敗 (不明な関数「\label」): 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}


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

構文解析に失敗 (不明な関数「\label」): \mathrm{grad}h({\boldsymbol x}, \lambda_1, \lambda_2, \cdots , \lambda_K) = 0\label{eq11}


f が停留値を持つ条件です。拘束条件は \ref{eq11} に取り込まれてしまった上、式 \ref{eq11} は独立変数を \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,