ラグランジュの未定係数法 のバックアップ差分(No.6)

更新


  • 追加された行はこの色です。
  • 削除された行はこの色です。
[[量子力学Ⅰ]]

* 解きたい問題 [#f4d9cac4]

&math(f(x_1,x_2,\dots,x_n)); を、

&math(m); 個の拘束条件

 &math(g_1(x_1,x_2,\dots,x_n)=0); ~
 &math(g_2(x_1,x_2,\dots,x_n)=0); ~
 &math(\ \ \ \vdots); ~
 &math(g_m(x_1,x_2,\dots,x_n)=0); 

の下で最大化・最小化したい 。~
(ただし &math((m<n)); とする。さもないと拘束条件が多すぎて、それだけで点が定まってしまう。)

実際には拘束条件の下で &math(f); の ___停留点___ を探すことになる。


このような問題は以下に説明する ___ラグランジュの未定係数法___ と呼ばれる手法を使うと簡単に解ける。

** キモ [#x9a84277]

「拘束条件下での停留点」とは、

&math(\bm x=(x_1,x_2,\dots,x_n)); を &math(n); 次元空間のベクトルにおいて
拘束条件を満たす点として、

「&math(\Delta\bm x); を拘束条件を破らない方向に取る限り」 

&math(f); の一次の変位量がゼロとなる: ~
 &math(\Delta f=\bm\nabla f\cdot\Delta\bm x=0); 

という意味である。

拘束条件を破るような方向へ動かしたときに &math(\Delta f\ne 0); となっても構わないところが
拘束条件付き停留点探しのキモである。

* ラグランジュの未定係数法 [#v1fe15da]

未定係数 &math(\lambda_i); を用いて

 &math(L(x_1,x_2,\dots,x_n)=f(x_1,x_2,\dots,x_n)-\sum_i \lambda_i g_i(x_1,x_2,\dots,x_n));

という関数を構成し、

 &math(\frac{\partial L}{\partial x_1}=\frac{\partial L}{\partial x_2}=\dots=\frac{\partial L}{\partial x_n}=0);

 &math(\frac{\partial L}{\partial \lambda_1}=\frac{\partial L}{\partial \lambda_2}=\dots=\frac{\partial L}{\partial \lambda_m}=0);

のすべての条件式を満たす点 &math(\bm x); およびその点における係数 &math(\lambda_i); を見つければ、
その点が停留点となる。

また逆に、全ての停留点に対して上記の条件式を満足する係数 &math(\lambda_i); が存在する。

すなわち、上の条件式はその点が停留点であるための必要十分条件になっている。
** 条件式の意味 [#h726f0a8]

&math(\lambda_i); での微分からは元の拘束条件が現れるのみである。

一方、&math(x_j); での微分は、

 &math(\frac{\partial L}{\partial x_j}=\frac{\partial f}{\partial x_j}-\sum_i \lambda_i\frac{\partial g}{\partial x_j}=0);

となる。

そこで、&math(n); 本の条件をすべてまとめてベクトル形式とすれば、

 &math(\bm \nabla L=\bm \nabla f-\sum_i \lambda_i \bm \nabla g_i=\bm 0);

と書ける。これを変形すると、

 &math(\bm \nabla f=\sum_i \lambda_i \bm \nabla g_i);

となり、すなわち両者を合わせれば、 

 その点ですべての拘束条件が満たされており、~
 なおかつ &math(\bm \nabla f); が &math(\bm \nabla g_i); の一次結合で表せるような点が停留点である

と読める。

* 停留点の十分条件となっていること [#j4fbf759]

ラグランジュの未定係数法の条件式を満たす点 &math(\bm x); が必ず停留点となることは、
以下のように簡単に理解できる。

&math(\bm x); は拘束条件を満たすから、&math(\Delta \bm x); を「すべての &math(g_i); 
の値を変化させない方向」に取った時のみ、変位後の点も拘束条件を満たすことになる。

そのような &math(\Delta \bm x); に対しては、すべての &math(i); に対して
&math(\Delta g_i=\bm\nabla g_i\cdot \Delta\bm x=0); が成り立つ。

このことと条件式より、

&math(
\Delta f=\bm\nabla f\cdot\Delta\bm x=\sum_i \lambda_i\underbrace{\bm\nabla g_i\cdot\Delta\bm x}_{=\,0}=0
);

となり、条件を満たす点が必ず停留点となることを確認できる。


* 停留点の必要条件となっていること [#e0c73b69]

逆に、すべての停留点に対して条件式を満たす &math(\lambda_i); が存在するだろうか?
逆に、すべての停留点に対して、上記の条件式を満たす &math(\lambda_i); が必ず存在するだろうか?

ある点 &math(x); が拘束条件下での停留点であるとすれば、
+ &math(x); は拘束条件を満たす
+ &math(x); を拘束条件を満たす方向へ動かしたときに &math(f); が変化しない

が成り立つが、この 2. は、
- &math(\Delta \bm x); がすべての &math(\bm\nabla g_i); に垂直なら、&math(\bm\nabla f); にも垂直である

と読み替えられる。この条件と、
- &math(\bm\nabla f); は &math(\bm\nabla g_i); の線形結合で表せる

が同値であることを言えば良いのだが・・・

直交補空間の概念に通じているなら 
>2. を~
 ・ すべての &math(\bm\nabla g_i); が張る空間を &math(V_\mathrm{break}); とし、~
 ・ その直交補空間を &math(V_\mathrm{meet}); とすれば、~
 ・ 任意の &math(\Delta\bm x\in V_\mathrm{meet}); が &math(\bm\nabla f); に垂直である
>と言い換えることができて、これは &math(\bm\nabla f); が &math(V_\mathrm{break}); 
の直交補空間の元であることを示すから、&math(\bm\nabla f); は &math(V_\mathrm{break}); 
>と言い換えることができて、これは &math(\bm\nabla f); が &math(V_\mathrm{meet}); 
の直交補空間、すなわち &math(V_\mathrm{break}); の元であることを示すから、&math(\bm\nabla f); は &math(V_\mathrm{break}); 
を張る &math(\bm\nabla g_i); の線形結合で表せて、その係数が &math(\lambda_i); である。

ということで証明が終わるのであるが、、、前提知識の少なくて済む説明をするなら:

>すべての &math(\bm\nabla g_i); が張る空間を &math(V_\mathrm{break}); とし、
そこに正規直交基底 &math(\set{\bm e_j}); を取る。
>&math(\bm\nabla f); が &math(V_\mathrm{break}); の元ではない可能性を考えて、
> &math(\bm\nabla f=\sum_j c_j\bm e_j + \bm\delta);
>と書く。ただし、&math(\bm\delta\notin V_\mathrm{break}); 
すなわち任意の &math(j); に対して &math(\bm\delta\cdot\bm e_j=0); とする。
>すると &math(\bm\delta); はすべての &math(\bm\nabla g_i); に垂直であるから、
&math(\Delta\bm x=\bm\delta); と取れば、
> &math(\bm\nabla f\cdot\bm\delta=\|\bm\delta\|^2);
>となって、&math(\bm\delta=\bm 0); でない限り仮定に反する。
>すなわち &math(\bm\delta=\bm 0); であり、これは &math(\bm\nabla f); が 
&math(V_\mathrm{break}); の元であり、&math(\bm\nabla g_i); の線形結合で表せることを意味する。

* コメント・質問 [#v8dfb2fb]

#article_kcaptcha


Counter: 14034 (from 2010/06/03), today: 6, yesterday: 0