解析力学から様々な理論分野を組み立てる 第1部 第6章 §1.6.2 ★★★ 停留点では目的の勾配が拘束の勾配の線型結合になる。その係数が乗数で、時刻ごとの拘束なら λ(t) という関数になる
有限次元の未定乗数
2変数の関数 f(x,y) を、曲線 Φ(x,y)=0 の上だけで動かして停留点を探す問題から始める。曲線の上の点 P から曲線に沿って少し動く向きを h とすると、h は曲線の接線方向で、∇Φ⋅h=0 を満たす。P が曲線の上での停留点であるとは、この向きの方向微分が 0、すなわち ∇f⋅h=0 になることである。∇f が接線方向の成分を持てば、その向きに動いて f を増やすことも減らすこともできるからである。接線に垂直な向きは ∇Φ の向きしかないので、停留点では ∇f と ∇Φ が平行になり、ある数 λ があって
∇f=λ∇Φ,Φ=0(1.6.5)
が成り立つ(図 1.6.1)。幾何学的には、f の等高線が拘束の曲線に接する点が停留点である。

図 1.6.1 拘束 x+2y=4(太線)の上で f=xy の停留点を探す。灰色は f の等高線。P=(2,1) では等高線が拘束の線に接し、∇f=(y,x)=(1,2) が ∇Φ=(1,2) と平行になる。ほかの点(右下)では ∇f が拘束の線に沿う成分(破線)を持ち、その向きに動けば f が増える
式 (1.6.5) は、新しい関数 f−λΦ を x,y,λ の3変数の関数とみて、拘束を忘れて普通に停留点を探した条件と同じである。x,y の偏微分を 0 とおくと ∇f−λ∇Φ=0 が、λ の偏微分を 0 とおくと Φ=0 が出る。変数が M 個で拘束が k 本でも同じで、拘束の勾配が独立な点では、停留点で
∂xj∂f=a=1∑kλa∂xj∂Φa(j=1,…,M)(1.6.6)
が成り立つ。これは f−∑aλaΦa を M+k 個の変数で停留させた条件で、未知数 xj,λa が M+k 個、式も M+k 本ある。
乗数は感度
乗数は計算の途中で消すための補助の数に見えるが、それ自身に意味がある。拘束を Φ(x)=c と書き、c を少し変えたときの停留値 f∗(c) の変化を考える。停留点 x∗(c) は c とともに動くので、連鎖律と式 (1.6.5) から
dcdf∗=∇f⋅dcdx∗=λ∇Φ⋅dcdx∗=λdcdΦ(x∗(c))=λ(1.6.7)
を得る(最後は Φ(x∗(c))=c を c で微分した)。乗数は、拘束の値を1単位ゆるめたときに最適値がどれだけ変わるかを表す。1.6.5節で等周問題の乗数を、1.6.6節で熱力学の逆温度を、この式で読む。
時刻ごとの拘束と乗数の関数
作用 S[x]=∫t1t2L(x,x˙,t)dt を、各時刻で拘束 Φa(x(t),t)=0 を満たす経路の中で停留させる問題に移る。多変数の場合と比べると、拘束が時刻 t ごとに1本ずつ、すなわち連続無限個ある。そこで乗数も時刻ごとに1つずつ、つまり時刻の関数 λa(t) になる。
定理 1.6.1(ホロノミック拘束のもとでの停留)
拘束の勾配 ∂Φa/∂xj が各時刻で独立であるとする。経路 x(t) が、拘束を満たし端を固定した経路の中で S を停留させるための必要十分条件は、関数 λ1(t),…,λk(t) があって
dtd∂x˙j∂L−∂xj∂L=a=1∑kλa(t)∂xj∂Φa(j=1,…,M)(1.6.8)
が成り立つことである。これは L′=L+∑aλa(t)Φa(x,t) の Euler–Lagrange 方程式と同じである。
証明
簡単のため k=1 とし、式 (1.6.8) の左辺を Ej(t) と書く。端を固定した許される向き η(t) に対する第1変分は、第1部第4章の計算と同じ部分積分でδS=ϵ∫∑j(−Ej)ηjdt となる。拘束を保つ向きは、拘束を ϵ の1次で保つ ∑j(∂Φ/∂xj)ηj=0 を各時刻で満たす(勾配が 0 でなければ、陰関数定理によりこの向きに接する拘束上の経路の族が作れる)。a(t)=(∂Φ/∂xj)j、E(t)=(Ej)j とおき、λ(t)=E⋅a/∣a∣2 と決めると、E−λa は各時刻で a に垂直になる。そこで端で 0 になる任意の関数 ψ(t)≥0 を使って η=ψ(t)(E−λa) と選ぶと、これは拘束を保つ向きで、δS=−ϵ∫ψE⋅(E−λa)dt=−ϵ∫ψ∣E−λa∣2dt となる(λa⋅(E−λa)=0 を使った)。停留なら ψ によらずこれが 0 なので、第1部第3章の基本補題と同じ議論で E=λa が各時刻で成り立つ。逆に E=λa なら、拘束を保つ向きでは E⋅η=λa⋅η=0 なので δS=0 である。
証明で λ(t) を「E の a 方向の成分」として作ったことに注意する。運動は拘束に沿う向きの式(f 本)で決まり、乗数は拘束に垂直な向きの式(k 本)で決まる。乗数は未知の関数として加わるが、拘束の式 Φa=0 も k 本加わるので、未知の関数と式の数は M+k 本でつり合う。
例題 1.6.2 乗数を感度として読む ★★
オリジナル拘束 x+2y=c(c>0)のもとで f(x,y)=xy の停留点を考える。
- (1) f−λ(x+2y−c) を停留させて、停留点 (x∗,y∗) と乗数 λ を c で表せ。
- (2) c=4 のときの値を求め、図 1.6.1 と合っていることを確かめよ。
- (3) 停留値 f∗(c) を求め、dcdf∗=λ を確かめよ。
解答
(1) x,y,λ の偏微分を 0 とおくと y−λ=0, x−2λ=0, x+2y=c。最初の2つを3つ目に入れて 4λ=c。よって
λ=4c,x∗=2c,y∗=4c.
(2) c=4 で (x∗,y∗)=(2,1)、λ=1、f∗=2。図の点 P で、f=2 の等高線が拘束の線に接している。∇f=(1,2)=1⋅∇Φ で、比例係数が λ=1 である。
(3) f∗(c)=2c⋅4c=8c2 なので dcdf∗=4c=λ。式 (1.6.7) のとおり、乗数は拘束の値 c を1単位増やしたときの最適値の増え方になっている。c=4 で λ=1 なので、c を 4 から 4.1 に変えると f∗ は約 0.1 増える(正確には 4.12/8−2=0.10125)。
AI(Claude)が書いた教材を、木下が勉強しながら公開しています。式と数値は検算していますが、誤りが残っているかもしれません。誤りのご指摘・削除のご依頼をいただければ直します。 連絡先:support@tecktom.com