「条件付停留値問題」の版間の差分
| 7行: | 7行: | ||
| これの条件付停留値問題への応用を示しましょう。 | これの条件付停留値問題への応用を示しましょう。 | ||
| − | ベクトル <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({\ | + | <math>\mathrm{grad}f({\boldsymbol x}) = 0 \label{eq1} </math> | 
| の時ですが、 | の時ですが、 | ||
| − | ベクトル <math>{\ | + | ベクトル <math>{\boldsymbol x} = \left(\begin{array}{c} x_1 \\ x_2 \\ \vdots \\ x_n \end{array}\right) </math> に対し、K個の条件(拘束条件) | 
| − | <math> G_l({\ | + | <math> G_l({\boldsymbol x}) = 0 (l=1~K)\label{eq2} </math> | 
| − | がある場合、関数 <math>f({\ | + | がある場合、関数 <math>f({\boldsymbol x})</math> が停留値を取る条件は変わってきます。これを考えてみましょう。 | 
| − | <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({\ | + | \mathrm{grad}G_l({\boldsymbol x}) = \left(\begin{array}{c}   | 
| − | \frac{\partial G_l({\ | + | \frac{\partial G_l({\boldsymbol x})}{\partial x_1} \\ | 
| − | \frac{\partial G_l({\ | + | \frac{\partial G_l({\boldsymbol x})}{\partial x_2} \\ | 
| \vdots \\ | \vdots \\ | ||
| − | \frac{\partial G_l({\ | + | \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({\ | + | <math>\delta G_l({\boldsymbol x}) = \mathrm{grad}G_l({\boldsymbol x})\cdot\delta{\boldsymbol x} = 0 (l=1~K) \label{eq4} </math> | 
| − | が成り立つようにしか <math>{\ | + | が成り立つようにしか <math>{\boldsymbol x}</math> は変化できません。 | 
| − | 関数 <math>f({\ | + | 関数 <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({\ | + | \mathrm{grad}f({\boldsymbol x}) = \left(\begin{array}{c}   | 
| − | \frac{\partial f({\ | + | \frac{\partial f({\boldsymbol x})}{\partial x_1} \\ | 
| − | \frac{\partial f({\ | + | \frac{\partial f({\boldsymbol x})}{\partial x_2} \\ | 
| \vdots \\ | \vdots \\ | ||
| − | \frac{\partial f({\ | + | \frac{\partial f({\boldsymbol x})}{\partial x_n} \\ | 
| \end{array}\right) | \end{array}\right) | ||
| \label{eq5}   | \label{eq5}   | ||
| 52行: | 52行: | ||
| − | <math>\delta f({\ | + | <math>\delta f({\boldsymbol x}) = \mathrm{grad}f({\boldsymbol x})\cdot\delta{\boldsymbol x} = 0 \label{eq6} </math> | 
| − | [[ラグランジュ未定乗数法の基本部分]] で示しましたように、<math>\mathrm{grad}f({\ | + | [[ラグランジュ未定乗数法の基本部分]] で示しましたように、<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({\ | + | <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>{\ | + | とかけます。この式の意味は停留値を取るような <math>{\boldsymbol x}</math> はこの式を満たすということであり、<math>\mathrm{grad}f({\boldsymbol x})</math> が   | 
| − | <math>-\lambda_1\mathrm{grad}G_1({\ | + | <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({\ | + | <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({\ | + | <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({\ | + | <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({\ | + | <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({\ | + | 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({\ | + | <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>{\ | + | 2. 以下の式より、停留値での <math>{\boldsymbol x}</math> を求めます。 | 
| <math> | <math> | ||
2014年12月29日 (月) 01:43時点における版
条件付き停留値問題への応用
ここまでで、ラグランジュの未定乗数法の根本は直交補空間の直交補空間だと述べてきましたが、 これの条件付停留値問題への応用を示しましょう。
ベクトル  の関数
 の関数  が停留値を持つのは
 が停留値を持つのは
構文解析に失敗 (不明な関数「\label」): \mathrm{grad}f({\boldsymbol x}) = 0 \label{eq1} 
の時ですが、
ベクトル  に対し、K個の条件(拘束条件)
 に対し、K個の条件(拘束条件)
構文解析に失敗 (字句解析エラー): G_l({\boldsymbol x}) = 0 (l=1~K)\label{eq2}
がある場合、関数  が停留値を取る条件は変わってきます。これを考えてみましょう。
 が停留値を取る条件は変わってきます。これを考えてみましょう。
 の微小変化量を
 の微小変化量を  とすると、
 とすると、
構文解析に失敗 (不明な関数「\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}
が成り立つようにしか  は変化できません。
 は変化できません。
関数  が停留値を持つということは、
 が停留値を持つということは、 の微小変化量
 の微小変化量  に対し
 に対し   が変化しないということなので
 が変化しないということなので
構文解析に失敗 (不明な関数「\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}
ラグランジュ未定乗数法の基本部分 で示しましたように、 は
 は  が所属する部分空間の直交補空間に属します。従って、適当な係数
 が所属する部分空間の直交補空間に属します。従って、適当な係数  を使って
を使って
構文解析に失敗 (不明な関数「\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}
とかけます。この式の意味は停留値を取るような  はこの式を満たすということであり、
 はこの式を満たすということであり、 が
 が 
 であらわされる部分空間全体になるわけではありません。
 であらわされる部分空間全体になるわけではありません。
構文解析に失敗 (不明な関数「\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} は  個の方程式を含みますから、
全ての未知数を求められますので、これで十分です。実際、ラグランジュの未定乗数法というのは 式 \ref{eq2} と \ref{eq9} から停留点を求めるのが普通ですが、ここでもうひとひねりしてみましょう。
 個の方程式を含みますから、
全ての未知数を求められますので、これで十分です。実際、ラグランジュの未定乗数法というのは 式 \ref{eq2} と \ref{eq9} から停留点を求めるのが普通ですが、ここでもうひとひねりしてみましょう。
 を関数の独立変数とすれば
 を関数の独立変数とすれば
構文解析に失敗 (不明な関数「\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}
と書けます。 は拘束条件そのものなので、
 は拘束条件そのものなので、 を
を  にまで拡張すれば
 にまで拡張すれば
構文解析に失敗 (不明な関数「\label」): \mathrm{grad}h({\boldsymbol x}, \lambda_1, \lambda_2, \cdots , \lambda_K) = 0\label{eq11}
が  が停留値を持つ条件です。拘束条件は \ref{eq11} に取り込まれてしまった上、式 \ref{eq11} は独立変数を
 が停留値を持つ条件です。拘束条件は \ref{eq11} に取り込まれてしまった上、式 \ref{eq11} は独立変数を  にまで拡大した停留点を求める方程式になっています。
 にまで拡大した停留点を求める方程式になっています。
つまり、ラグランジュの未定乗数法は、束縛条件付き停留値問題を束縛条件なしの停留値問題に巧妙に変換するのです。
まとめ
条件付き停留値問題を、条件なし停留値問題に変換する手順は以下の通りです。
1. 元の関数  と束縛条件
 と束縛条件  から式
 から式
 
- を作ります。
2. 以下の式より、停留値での  を求めます。
 を求めます。
 
