はじめに
はじめまして。東京大学計数工学科B2の石鹸と申します。
このブログは物工/計数 Advent Calendar 2019の17日目の記事です。
自分は普段は授業で数学や物理を学んだり、同期と解析力学ゼミや制御理論ゼミを行ったりしています。
今回は解析力学ゼミで担当した箇所を中心に、解析力学について記事を書きました。
全体の流れとしては、まず解析力学の導入から始めてLagrangeの運動方程式を導出して、Lagrangeの未定乗数法の適用について示し、最後にLagrangeの未定乗数法の導出といった流れになっています。余力があれば後日KKT条件との関わりについて追記する予定です。
読者としては、
- 解析力学は若干触れたけどあまりよくわかっていない
- Lagrangeの未定乗数法の導出が知りたい
- 最適化手法に興味がある
といった人を想定しています。
つぎの章からいきなり「だである」調に変わりますがご了承ください。1
最小作用の原理
ステートメント
解析力学は最小作用の原理を基本原理として展開されるのだが、最小作用の原理を導入するまえに2つの量を定義する。
まず系の力学変数$q=(q_1,q_2,...,q_n)$とその時間微分 $\dot q=(\dot q_1,\dot q_2,...,\dot q_n)$ 、時刻$t$の関数として、Lagrangian(ラグランジアン)$L(q,\dot q,t)$なる量を定義する。Lagrangianは系に固有の量である。注意しておきたいのは、$q,\dot q,t$は独立な変数であるものとしていることである。Lagrangianを立てる際は実際にどのような運動が行われるかとはかんけいなく仮にこれらの変数が$(q_0,\dot q_0,t_0)$という値を取ったときのLagrangianというものを立てるのである。
つづいて$t$の関数$q(t)$に対し、作用 $S[q]$なる量を
S[q]=\int_{t_1}^{t_2}dt \hspace{0.5em} L(q(t),\dot q(t),t)
というものを定義する。ここで作用は関数から数への関数であり、汎関数と呼ばれる。
最小作用の原理のステートメントは、「$t=t_1$,$t=t_2$における$q$の値を指定したとき、その間の時刻における系の運動は作用を停留させるように生じる」というものである。
作用の停留条件
汎関数である作用について、「停留している」とはどういうことだろうか。数から数への関数$f(x)$についての停留は、微小量$\varepsilon$に対して
f(x+\varepsilon) = f(x) +O(\varepsilon^2)
となることであった。
同様に汎関数$S[q]$の停留を考えると、$q(t)$に微小変分$\delta q(t)$を加えた際の作用の変分$\delta S[q]$が$O(\delta q ^2)$となることと表される。
実際に作用の停留を計算してみる。
\begin{align}
\delta S[q] &= S[q+\delta q]-S[q] \\
&= \int_{t_1}^{t_2}dt L(q+\delta q,\dot q+\delta \dot q,t)-L(q,\dot q,t)
\end{align}
被積分項を$\delta q$でテイラー展開し、2次以上の項を無視してやると
\delta S[q] =
\int_{t_1}^{t_2}dt \sum_i \left( \frac{\partial L}{\partial q_i}\delta q_i + \frac{\partial L}{\partial \dot q_i}\frac{\mathrm d}{\mathrm dt} \delta q_i \right)
第二項の積分について、部分積分の公式 $\int fg = Fg - \int Fg'$ を適用すると
\int_{t_1}^{t_2}dt \hspace{0.5em} \frac{\partial L}{\partial \dot q_i}\frac{\mathrm d}{\mathrm dt} \delta q_i =
\left[ \frac{\partial L}{\partial \dot q_i}\delta q_i \right]^{t_2}_{t_1} - \int_{t_1}^{t_2} \frac{\mathrm d}{\mathrm dt} \left( \frac{\partial L}{\partial \dot q_i}\right)\delta q_i
であり、特に右辺第一項は変分の拘束条件から0になる。最小作用の原理のステートメントは「 $t=t_1$,$t=t_2$における$q$の値を指定 したとき、その間の時刻における系の運動は作用を停留させるように生じる」というものであったから(拘束条件にあたる部分を太字にした)、$t=t_1$,$t=t_2$において変分 $\delta q$ は0でなければならない2。以上から、作用の変分は以下のように表される。
\delta S[q] =
\int_{t_1}^{t_2}dt \sum_i \left( \frac{\partial L}{\partial q_i}
- \frac{\mathrm d}{\mathrm dt} \frac{\partial L}{\partial \dot q_i}\right)\delta q_i
作用の停留とは、これが0に等しいことである。
オイラー・ラグランジュ方程式
力学変数$q=(q_1,q_2,...,q_n)$に拘束がない場合、$\delta q_i$が独立に取れるため$\sum$を取る対象それぞれについて0であることを要請出来て、以下のEular-Lagrange方程式(オイラー・ラグランジュ方程式、Lagrangeの運動方程式)を得る。
\frac{\partial L}{\partial q_i}
- \frac{\mathrm d}{\mathrm dt} \frac{\partial L}{\partial \dot q_i} = 0 \hspace{2em} (i=1,2,...,n)
閑話休題:力学変数とその微分の独立性について
少し寄り道をする。ラグランジアン$L(q,\dot q,t)$を考える上で、$q$と$\dot q$は独立であるとして話を進めてきた。ここで、ありがちな誤解は以下のようなものである。
運動方程式を解けば $x(t)=\frac{1}{2}at^2$ のように $x(t)$ が求められて $v(t)$ はそれの時間微分で求められるんだから$q$と$\dot q$が独立なのは変じゃない?
この誤解については、1つの説明を試みよう。
ある瞬間$t$において、落下するボールの写真を撮ったとする。写真は当然ボールの位置$x$と捉えているが、速度$v$までは捉えていない。そのボールが手を放した直後の停止している瞬間なのか、それともそれなりの速さで落下しているのかまではわからない。さらに言えばそのどちらもあり得る。どちらもあり得るということは、時刻$t$において$x$を定めるだけでは$v$が定まらない、すなわち$x$と$v$が独立に取れることを意味している。
より抽象的な言い方をすれば、上の誤解は$t$軸に沿った関数として捉えており、$t$軸に直交するように「ある瞬間」を考えれば納得がいくはずである。
拘束のある系での解析力学
導入
本題に戻ろう。
前の章では作用の停留条件からオイラー・ラグランジュ方程式を導く際に$(q_1,q_2,...,q_n)$が独立であることを用いた。しかし、例えば振り子のように紐で結ばれていて3次元空間内を自由に運動出来ない場合のように、力学変数になんらかの拘束がある場合も想定される。
解法の一つとして独立な力学変数を取り直してあげてオイラー・ラグランジュ方程式を立てるという手法も想定されるが、今回は拘束を式で表して作用の停留を考えるという手法について紹介する。まずは等式制約
C_a(q) = 0 \hspace{2em}(a=1,2,...,A)
がある場合について考える。
拘束下での作用の停留
拘束がある場合、最小作用の原理の要請は、「 拘束を満たす変分について 作用が停留していること」となる。
変分に対して作用が停留していることは、前の章と同様
\int_{t_1}^{t_2}dt \sum_i \left( \frac{\partial L}{\partial q_i}
- \frac{\mathrm d}{\mathrm dt} \frac{\partial L}{\partial \dot q_i}\right)\delta q_i = 0
で表される。ここで、$\sum$の記号を以下の2つのベクトルの内積と見る。
\vec f = \left(
\begin{array}{c}
\frac{\partial L}{\partial q_1}
- \frac{\mathrm d}{\mathrm dt} \frac{\partial L}{\partial \dot q_1} \\
\frac{\partial L}{\partial q_2}
- \frac{\mathrm d}{\mathrm dt} \frac{\partial L}{\partial \dot q_2} \\
\vdots \\
\frac{\partial L}{\partial q_n}
- \frac{\mathrm d}{\mathrm dt} \frac{\partial L}{\partial \dot q_n}
\end{array}
\right)
\hspace{1em}
,
\hspace{1em}
\vec d = \left(
\begin{array}{c}
\delta q_1 \\
\delta q_2 \\
\vdots \\
\delta q_n
\end{array}
\right)
このとき作用の停留は$\vec f \cdot \vec d = 0$と書ける。
一方変分$\delta q$が拘束を満たす条件は$C_a(q+\delta q)=0$であり、$C_a(q)=0$を考えればテイラー展開の1次の項$\sum \frac{\partial C_a(q)}{\partial q_i}\delta q_i=0$と書き直せる。これもベクトルの内積と見てあげることができる。
\vec g_a = \left(
\begin{array}{c}
\frac{\partial C_a(q)}{\partial q_1} \\
\frac{\partial C_a(q)}{\partial q_1} \\
\vdots \\
\frac{\partial C_a(q)}{\partial q_n}
\end{array}
\right)
というベクトルを取れば、 $\vec g_a \cdot \vec d = 0$が拘束を満たす条件である。
拘束のある系での最小作用の原理
上の議論より、拘束のある系での最小作用の原理は以下のように表せる。
\forall \vec d \in R^n \\
\vec g_a \cdot \vec d = 0 \hspace{0.5em}(a=1,2,..,A) \hspace{0.5em} \land \hspace{0.5em}
\vec f \cdot \vec d = 0
ここで、Lagrangeの未定乗数法から、この条件は以下のように書ける。(Lagrangeの未定乗数法は後でちゃんと証明をします)
\exists \lambda_1,\lambda_2,...,\lambda_a, \hspace{1em}
\vec f = \sum_a \lambda_a \vec g_a
右辺を左辺に移項し、各成分ごとに見ると拘束条件下でのオイラー・ラグランジュ方程式
\frac{\partial L}{\partial q_i}
- \frac{\mathrm d}{\mathrm dt} \frac{\partial L}{\partial \dot q_i} - \sum_a \lambda_a \frac{\partial C(q)}{\partial q_i} = 0 \hspace{2em} (i=1,2,...,n)
が導かれる。
Lagrangeの未定乗数法のステートメント
つぎの命題を示す。
\forall \vec d \in R^n \hspace{0.5em},\hspace{0.5em} \vec g_a \cdot \vec d = 0 \hspace{1em}(a=1,2,..,A) \hspace{0.5em}\land \hspace{0.5em}\vec f \cdot \vec d = 0
\\
\Leftrightarrow \exists \lambda_1,\lambda_2,...,\lambda_a, \hspace{1em}
\vec f = \sum_a \lambda_a \vec g_a
Lagrangeの未定乗数法の証明その1
$\Leftarrow$については代入すればただちにわかる。
\vec f \cdot \vec d = \left( \sum_a \lambda_a \vec g_a \right) \cdot \vec d
= \sum_a \left[ \lambda_a \left( \vec g_a \cdot \vec d \right) \right]
$\vec d$についての制約からこの内積が0なので$\vec f \cdot \vec d = 0$が確認できる。
Lagrangeの未定乗数法の証明その2
$\Rightarrow$について示す。仮定(条件Pとおく)を整理すると自然と証明ができる3。「任意のベクトルについて」という表現を使わないで$\vec d$を制限して書き直すと、
条件P : \forall \vec d \in \left\{ \forall a \in \{1,2,...,A\} \hspace{0.5em},\hspace{0.5em} \vec g_a \cdot \vec d = 0 \right\} \hspace{0.5em},\hspace{0.5em}\vec f \cdot \vec d = 0
いま、$A=[\vec a_1 \vec a_2 ... \vec a_n]$ とおけば
A^{\mathrm{T}} \vec d = \left(
\begin{array}{c}
\vec g_1 \cdot \vec d \\
\vec g_2 \cdot \vec d \\
\vdots \\
\vec g_A \cdot \vec d
\end{array}
\right)
である4から、
$$
条件P : \forall \vec d \in \mathrm{Ker} A^{\mathrm{T}} \hspace{0.5em},\hspace{0.5em}\vec f \cdot \vec d = 0
$$
と書き直せる。$\mathrm{Ker} A^{\mathrm{T}}$の任意の元が$\vec f$と直交するということは$\vec f$が$\mathrm{Ker} A^{\mathrm{T}}$の直交補空間の元であるということであり、
$$
条件P : \vec f \in \left( \mathrm{Ker}A^{\mathrm{T}} \right) ^ \perp
$$
ここまで来ると条件Pもだいぶすっきりした形となった。
最後にもうひと踏ん張り、$\left( \mathrm{Ker}A^{\mathrm{T}} \right) ^ \perp = \mathrm{Im}A$の証明を与えればゴールはすぐそこである。
任意の$\vec x \in \mathrm{Ker}A^{\mathrm{T}}$について、$A^{\mathrm{T}}\vec x=\vec 0$の転置を取って$\vec x^{\mathrm{T}}A=\vec 0$であり、任意の$\vec y$について$\vec x^{\mathrm{T}}A\vec y=0$となる。$A\vec y$は$\mathrm{Im} A$の元であるから、
$$
\forall \vec x \in \mathrm{Ker}A^{\mathrm{T}}\hspace{0.5em},\hspace{0.5em}
\vec x \in \left( \mathrm{Im} A \right) ^ \perp
$$
が示された。故に$\mathrm{Ker}A^{\mathrm{T}}$と$\mathrm{Im} A$は直交補空間の関係にあり、$\left( \mathrm{Ker}A^{\mathrm{T}} \right) ^ \perp = \mathrm{Im}A$なのである。
以上長々と示してきたが、これで条件Pが$\vec f \in \mathrm{Im}A$と書き直せるので、$\vec f$が$\vec g_a$の線形結合で表現されることは明らかとなる。以上でLagrangeの未定乗数法の導出はおしまいである。
あとがき
いかがだったでしょうか。ここまで読み進められた方にとって、Lagrangeの運動方程式が少しでも馴染み深いものになっていれば幸いです。
書き始めた当初は解析力学に最適化の切り口で迫るというところに計数らしさを出そうと思っていたのですが、書いてみたら予想以上に物理色の強い記事となってしまいました。来年のアドベントカレンダーには計数の色が強めの記事を投稿していきたいですね。
それではまたの機会に。