ラグランジュの未定係数法 のバックアップの現在との差分(No.9)
更新- 追加された行はこの色です。
- 削除された行はこの色です。
[[量子力学Ⅰ]] * 目次 [#w47159e5] &katex(); #contents * 解きたい問題の例 [#f4d9cac4] #ref(lagrange-example.svg,around,right); 例えば、「2次元平面の &math((3,2)); を中心に書かれた半径1の円周上の点のうち、 例えば、「2次元平面の $(3,2)$ を中心に書かれた半径1の円周上の点のうち、 原点からの距離が最小となるものを探す」という問題を考える。 これは、 - 原点からの距離を表す関数 &math(f(x,y)=\sqrt{x^2+y^2}); を、 - 原点からの距離を表す関数 $f(x,y)=\sqrt{x^2+y^2}$ を、 - 点が円周上にあるという条件~ &math(g(x,y)=(x-3)^2+(y-2)^2-1^2=0);~ $g(x,y)=(x-3)^2+(y-2)^2-1^2=0$~ の下で最小化する という問題と捉えられる。 * 条件付き最適化問題 [#t6a56485] 上記のような問題を一般化して、 ある関数 &math(f(x_1,x_2,\dots,x_n)); を最大化・最小化するような点を ある関数 $f(x_1,x_2,\dots,x_n)$ を最大化・最小化するような点を &math(m); 個の拘束条件 $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); $g_1(x_1,x_2,\dots,x_n)=0$ ~ $g_2(x_1,x_2,\dots,x_n)=0$ ~ $\ \ \ \vdots$ ~ $g_m(x_1,x_2,\dots,x_n)=0$ の下で探すという問題を考える。((ただし &math((m<n)); とする。さもないと拘束条件が多すぎて、それだけで点が定まってしまう)) の下で探すという問題を考える。((ただし $(m<n)$ とする。さもないと拘束条件が多すぎて、それだけで点が定まってしまう)) このような問題は「条件付き最適化問題」などと呼ばれる。 これを解くにはまず、与えられた拘束条件の下である関数 &math(f); の ___停留点___ を探すことになる。 これを解くにはまず、与えられた拘束条件の下で関数 $f$ の ___停留点___ を探すことになる。 停留点は極小・極大・鞍点のいずれかになるが、それらのうちいずれかが最適解を与える。 その際、以下に説明する ___ラグランジュの未定係数法___ と呼ばれる手法が非常に役に立つ。 この停留点の探索に、以下に説明する ___ラグランジュの未定係数法___ と呼ばれる手法が非常に役に立つ。 ** キモ [#x9a84277] * ラグランジュの未定係数法 [#v1fe15da] 「拘束条件下での停留点」とは、 「未定係数」と呼ばれる実数定数 $\lambda_i$ $(i=1,2,\dots,m)$ を用いて最適化したい関数 $f$ と条件式 $g_i$ の線形結合からなる関数 $L$ を >&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); $$L(x_1,x_2,\dots,x_n)=f(x_1,x_2,\dots,x_n)-\sum_{i=1}^m \lambda_i g_i(x_1,x_2,\dots,x_n)$$ という意味である。 のように構成し、 拘束条件を破るような方向へ動かしたときに &math(\Delta f\ne 0); となっても構わないところが キモといえる。 $$\frac{\partial L}{\partial x_1}=\frac{\partial L}{\partial x_2}=\dots=\frac{\partial L}{\partial x_n}=0$$ * ラグランジュの未定係数法 [#v1fe15da] $$\frac{\partial L}{\partial \lambda_1}=\frac{\partial L}{\partial \lambda_2}=\dots=\frac{\partial L}{\partial \lambda_m}=0$$ 「未定係数」と呼ばれる実数定数 &math(\lambda_i); &math((i=1,2,\dots,m)); を用いて のすべてを満たす点 $(x_1,x_2,\dots,x_n)$ およびその点における係数 $\lambda_i$ を見つければ、 その点が $f$ の停留点となる。 &math(L(x_1,x_2,\dots,x_n)=f(x_1,x_2,\dots,x_n)-\sum_{i=1}^m \lambda_i g_i(x_1,x_2,\dots,x_n)); また逆に、全ての停留点に対して上記の条件式を満足する係数 $\lambda_i$ が存在する。 という関数を構成し、 すなわち、上の条件式はその点が停留点であるための必要十分条件になっている。 &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] すなわち、上の条件式はその点が停留点であるための必要十分条件になっている。 ** 条件式の意味 [#h726f0a8] $\lambda_i$ での微分からは元の拘束条件が現れ、 &math(\lambda_i); での微分からは元の拘束条件が現れるのみである。 $$g_i(x_1,x_2,\dots,x_n)=0$$ 一方、&math(x_j); での微分からは、 これは $n$ 次元ベクトル $\bm x=(x_1,x_2,\dots,x_n)$ で表される点がすべての拘束条件を満たすことに対応する。 &math(\frac{\partial L}{\partial x_j}=\frac{\partial f}{\partial x_j}-\sum_{i=1}^m \lambda_i\frac{\partial g}{\partial x_j}=0); 一方、$x_j$ での微分からは、 を得る。&math(j=1,2,\dots,n); の方程式をすべてまとめてベクトル形式とすれば、 $$\frac{\partial L}{\partial x_j}=\frac{\partial f}{\partial x_j}-\sum_{i=1}^m \lambda_i\frac{\partial g}{\partial x_j}=0$$ &math(\bm \nabla L=\bm \nabla f-\sum_{i=1}^m \lambda_i \bm \nabla g_i=\bm 0); を得る。$j=1,2,\dots,n$ の方程式をまとめてベクトル形式とすれば、 と書ける。これを変形すると、 $$\bm \nabla L=\bm \nabla f-\sum_{i=1}^m \lambda_i \bm \nabla g_i=\bm 0$$ &math(\bm \nabla f=\sum_{i=1}^m \lambda_i \bm \nabla g_i); と書け、変形すると、 となり、すなわち両者を合わせれば、 $$\bm \nabla f=\sum_{i=1}^m \lambda_i \bm \nabla g_i$$ その点ですべての拘束条件が満たされており、~ なおかつ &math(\bm \nabla f); が &math(\bm \nabla g_i); の一次結合で表せるような点が停留点である となるから両者を合わせれば、 (1) すべての拘束条件を満たし、~ (2) さらに $\bm \nabla f$ が $\bm \nabla g_i$ の一次結合で表せるような点 $\bm x$ が停留点である というのがラグランジュの未定係数法の条件式の意味するところである。 ** 停留点の十分条件となっていること [#j4fbf759] * どうしてこれで停留点が見つかるのか? [#ddf68632] そのような点 &math(\bm x); が必ず停留点となることは、 以下のように簡単に理解できる。 以下ではなぜ (1), (2) の条件が停留点を与えるかを考える。 &math(\bm x); が拘束条件を満たすとき、&math(\bm x+\Delta\bm x); も拘束条件を満たすためには すべての &math(i); に対して ** 考え方のキモ [#x9a84277] &math(\Delta g_i=\bm\nabla g_i\cdot \Delta\bm x=0); そもそも「拘束条件下での停留点」とはどういう性質を持つべきかを考えると、 となるように &math(\Delta\bm x); の方向を選ばなければならない。 (1) $\bm x=(x_1,x_2,\dots,x_n)$ が $n$ 次元空間において拘束条件を満たす点であり~ (2)' $\bm x\to\bm x+\Delta\bm x$ の $\Delta \bm x$ を「拘束条件を破らない方向に取る限り」 ~ そこでの $f$ の一次の変位量がゼロとなる $\Delta f=\bm\nabla f\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 ); 拘束条件を破るような方向へ動かしたときに $\Delta f\ne 0$ となっても構わないところがキモである。 となり、条件を満たす点が必ず停留点となることを確認できる。 (1) はラグランジュの未定係数法の条件(1)と一致するので、 以下では (2)' と (2) が同値であることを理解したい。 そこで (2)' をベクトルの言葉で書きなおそう。 $\Delta \bm x$ を拘束条件を破らない方向に取る、すなわち $\Delta g_i=0$ は、 $$\bm\nabla g_i\cdot\Delta \bm x=0$$ と表せ、また $f$ の変化の一次成分がゼロ $\Delta f=0$ は $$\bm\nabla f\cdot\Delta \bm x=0$$ に書き換えられるから、(2)' は すべての $i$ について $\bm\nabla g_i\perp\Delta \bm x$、であれば $\bm\nabla f\perp\Delta \bm x$ である と言い換えられる。 ** 停留点の十分条件となっていること [#j4fbf759] (2) を満たす点 $\bm x$ が必ず (2)' を満たすことは以下のように理解できる。 (2) が成り立つ、つまり $$\bm\nabla f=\sum_i \lambda_i \bm\nabla g_i$$ のとき、すべての $\bm\nabla g_i$ が $\Delta \bm x$ に垂直ならば明らかに $\bm\nabla f$ も $\Delta \bm x$ に垂直である。 $$\because\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); が必ず存在するだろうか? 逆に、(2)' から (2) が言えるだろうか? ある点 &math(x); が拘束条件下での停留点であるとすれば、 + &math(x); は拘束条件を満たす + &math(x); を拘束条件を満たす方向へ動かしたときに &math(f); が変化しない $\bm\nabla f$ が $\bm\nabla g_i$ の線形結合で表せない可能性を考えて、 が成り立つが、この 2. は、 - &math(\Delta \bm x); がすべての &math(\bm\nabla g_i); に垂直なら、&math(\bm\nabla f); にも垂直である $$\bm\nabla f=\sum_j \lambda_j\bm\nabla g_j + \bm\delta$$ と読み替えられる。この条件と、 - &math(\bm\nabla f); は &math(\bm\nabla g_i); の線形結合で表せる と書こう。ただし、$\bm\delta$ は任意の $j$ に対して $\bm\delta\cdot\bm \nabla g_j=0$ となるようなベクトルである。 が同値であることを言えば良いのだが・・・ そこで $\Delta\bm x=\bm\delta$ と取れば、$\Delta\bm x$ はすべての $\bm\nabla g_j$ に垂直であるから、 (2)' が成り立つなら $\Delta f=\bm\nabla f\cdot\bm\delta=\|\bm\delta\|^2=\bm 0$ でなければならない。 直交補空間の概念に通じているなら >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{meet}); の直交補空間、すなわち &math(V_\mathrm{break}); の元であることを示すから、&math(\bm\nabla f); は &math(V_\mathrm{break}); を張る &math(\bm\nabla g_i); の線形結合で表せて、その係数が &math(\lambda_i); である。 すなわち $\bm\nabla f=\sum_j \lambda_j\bm\nabla g_j$ と表せることになり (2)'→(2) が示された。 ということで証明が終わるのであるが、、、前提知識の少なくて済む説明をするなら: ** 直交補空間を用いた解説 [#qf4edf56] >すべての &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 g\cdot\Delta\bm x=\bm 0);, &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); の線形結合で表せることを意味する。 以上で証明は済んでいるのだけれど、直交補空間の概念を知っているとより直感的に理解できるので付け加える。 $\{\bm\nabla g_i\}$ により張られる線形空間を $V$ と置き、 $V_\text{meet}$ をその直交補空間とする($V_\text{meet}=V^\perp$)。 このとき任意の $\Delta \bm x\in V_\text{meet}$ はすべての $\bm\nabla g_i$ に直交するから、 $\Delta \bm x\in V_\text{meet}$ は $\Delta \bm x$ が拘束条件を破らない方向であることと同義である。 すると、任意の $\Delta \bm x\in V_\text{meet}$ に対して $\Delta f=\bm\nabla f\cdot\Delta\bm x=0$ が成り立つことが停留点の条件となる。 これは、$\Delta f$ が $V_\text{meet}^\perp$ の元であることを表しており、 すなわち $\Delta f\in V$ を表している。 つまり $\Delta f$ が $\{\bm\nabla g_i\}$ の線形結合として表せるのである。 これがラグランジュの未定係数法の図形的な意味である。 * まとめ [#v484cf2e] 見つけたいのは $$ \underbrace{\bm\nabla g_i\cdot\Delta\bm x=0\ \ (i=1\dots m)}_{\Delta\bm x\,\text{は拘束条件を破らない}} $$ を満たす任意の $\Delta\bm x$ に対して、 $$ \underbrace{\bm\nabla f\cdot\Delta\bm x=0}_{\Delta f=0\,\text{となる}} $$ となるような点 $\bm x$ であるが、 上の条件を満たすには $\bm\nabla f$ が $\bm\nabla g_i$ の線形結合として表せる必要がある。 これがラグランジュの未定係数法である。 と書かれて理解できればたぶん大丈夫。 * 例題 [#f3642e93] 2次元平面の &math((3,2)); を中心に書かれた半径1の円周上の点で、 2次元平面の $(3,2)$ を中心に書かれた半径1の円周上の点で、 原点からの距離が最小となるものを探したい - 原点からの距離を表す関数 &math(f(x,y)=\sqrt{x^2+y^2}); を、 - 点が円周上にあるという条件 &math(g(x,y)=(x-3)^2+(y-2)^2-1^2=0); の下で - 原点からの距離を表す関数 $f(x,y)=\sqrt{x^2+y^2}$ を、 - 点が円周上にあるという条件 $g(x,y)=(x-3)^2+(y-2)^2-1^2=0$ の下で - 最小化すればよい #ref(lagrange-example.svg,around,right); ちょっと楽をするため &math(f(x,y)=\sqrt{x^2+y^2}); ではなく &math(f(x,y)=x^2+y^2); を使う ちょっと楽をするため $f(x,y)=\sqrt{x^2+y^2}$ ではなく $f(x,y)=x^2+y^2$ を使う &math( $$ \begin{aligned} \mathcal{L}(x,y) &=f(x,y)-\lambda g(x,y)\\ &=x^2+y^2-\lambda\Big[(x-3)^2+(y-2)^2-1\Big]\\ ); \end{aligned} $$ &math(\lambda,x,y); で微分すると、 $\lambda,x,y$ で微分すると、 &math( $$ \begin{cases} \frac{\partial\mathcal{L}}{\partial \lambda}=(x-3)^2+(y-2)^2-1=0\\ \frac{\partial\mathcal{L}}{\partial x}=2x-2\lambda(x-3)=2(1-\lambda)x+6\lambda=0\\ \frac{\partial\mathcal{L}}{\partial y}=2y-2\lambda(y-2)=2(1-\lambda)y+4\lambda=0 \end{cases} ); $$ 第2式、第3式より &math(x=\frac{3\lambda}{\lambda-1},y=\frac{2\lambda}{\lambda-1}); $$x=\frac{3\lambda}{\lambda-1},y=\frac{2\lambda}{\lambda-1}$$ となるから、求める点は直線 &math(y=3x/2); の上にあることが分かる。 となるから、求める点は直線 $y=2x/3$ の上にあることが分かる。 &math(t=\frac{\lambda}{\lambda-1}); と置いて第1式に代入すると、 $t=\frac{\lambda}{\lambda-1}$ と置いて第1式に代入すると、 &math( $$ \begin{aligned} &(3t-3)^2+(2t-2)^2=1\\ &13(t-1)^2=1\\ &t=1\pm \frac{1}{\sqrt{13}}\\ ); \end{aligned} $$ &math(x=3t,y=2t); に代入しなおして、 $x=3t,y=2t$ に代入しなおして、 &math( $$ x=3\Big(1\pm \frac{1}{\sqrt{13}}\Big),\ y=2\Big(1\pm \frac{1}{\sqrt{13}}\Big)\\ ); $$ ただし複号同順。このうち原点に近いのは &math( $$ x=3\Big(1- \frac{1}{\sqrt{13}}\Big),\ y=2\Big(1- \frac{1}{\sqrt{13}}\Big)\\ ); $$ であり、もう一方は最大値を与える。 ラグランジュの未定係数法の言うところでは、 これらの点では円弧と &math(\bm\nabla f); とが直交するため、 円弧の上で &math(f); が停留値を取る。 これらの点では円弧と $\bm\nabla f$ とが直交するため、 円弧の上で $f$ が停留値を取る。 もちろんこのような単純な問題であれば図形を書いて解くことも可能だが、 ラグランジュの未定係数法を用いることで問題設定に依らず、また多次元であっても、 「条件付き最適化問題」を機械的に解けることを理解せよ。 #collapsible(Mathematicaソース) LANG:Mathematica Show[ ParametricPlot[{Cos[t] + 3, Sin[t] + 2}, {t, 0, 2 Pi}], ListPlot[{{0, 0}, {3, 2}, {3 (1 - 1/Sqrt[13]), 2 (1 - 1/Sqrt[13])}, {3 (1 + 1/Sqrt[13]), 2 (1 + 1/Sqrt[13])}}, PlotStyle -> PointSize[Large]], ParametricPlot[{x, 2 x/3}, {x, 0, 4}, PlotStyle -> {{Thin, Dashed}}], PlotRange -> {{0, 4}, {0, 3}}, AxesOrigin -> {0, 0}, GridLines -> {{0, 1, 2, 3, 4}, {0, 1, 2, 3}}, AspectRatio -> Automatic, ImageSize -> 200 ] #collapsible(end) * 参考文献 [#dd54f218] -ラグランジュの未定乗数法の解説と直感的な証明~ http://www.yunabe.jp/docs/lagrange_multiplier.html * コメント・質問 [#v8dfb2fb] #article_kcaptcha
Counter: 19820 (from 2010/06/03),
today: 1,
yesterday: 0