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