tecktom.com

未定乗数:拘束のもとでの停留

2026年10月15日8分で読めますAI生成教科書『虎の巻』第1部 第6章 拘束と未定乗数
目次
  1. 有限次元の未定乗数
  2. 乗数は感度
  3. 時刻ごとの拘束と乗数の関数
  4. 木下の層

AI 生成・木下が未勉強

解析力学から様々な理論分野を組み立てる 第1部 第6章 §1.6.2 ★★★ 停留点では目的の勾配が拘束の勾配の線型結合になる。その係数が乗数で、時刻ごとの拘束なら λ(t)\lambda(t) という関数になる

有限次元の未定乗数

2変数の関数 f(x,y)f(x,y) を、曲線 Φ(x,y)=0\Phi(x,y)=0 の上だけで動かして停留点を探す問題から始める。曲線の上の点 PP から曲線に沿って少し動く向きを hh とすると、hh は曲線の接線方向で、∇Φ⋅h=0\nabla\Phi\cdot h=0 を満たす。PP が曲線の上での停留点であるとは、この向きの方向微分が 00、すなわち ∇f⋅h=0\nabla f\cdot h=0 になることである。∇f\nabla f が接線方向の成分を持てば、その向きに動いて ff を増やすことも減らすこともできるからである。接線に垂直な向きは ∇Φ\nabla\Phi の向きしかないので、停留点では ∇f\nabla f と ∇Φ\nabla\Phi が平行になり、ある数 λ\lambda があって

∇f=λ ∇Φ,Φ=0(1.6.5)\nabla f=\lambda\,\nabla\Phi,\qquad \Phi=0\tag{1.6.5}

が成り立つ(図 1.6.1)。幾何学的には、ff の等高線が拘束の曲線に接する点が停留点である。

図

図 1.6.1 拘束 x+2y=4x+2y=4(太線)の上で f=xyf=xy の停留点を探す。灰色は ff の等高線。P=(2,1)P=(2,1) では等高線が拘束の線に接し、∇f=(y,x)=(1,2)\nabla f=(y,x)=(1,2) が ∇Φ=(1,2)\nabla\Phi=(1,2) と平行になる。ほかの点(右下)では ∇f\nabla f が拘束の線に沿う成分(破線)を持ち、その向きに動けば ff が増える

式 (1.6.5) は、新しい関数 f−λΦf-\lambda\Phi を x,y,λx,y,\lambda の3変数の関数とみて、拘束を忘れて普通に停留点を探した条件と同じである。x,yx,y の偏微分を 00 とおくと ∇f−λ∇Φ=0\nabla f-\lambda\nabla\Phi=0 が、λ\lambda の偏微分を 00 とおくと Φ=0\Phi=0 が出る。変数が MM 個で拘束が kk 本でも同じで、拘束の勾配が独立な点では、停留点で

∂f∂xj=∑a=1kλa∂Φa∂xj(j=1,…,M)(1.6.6)\frac{\partial f}{\partial x_j}=\sum_{a=1}^k\lambda_a\frac{\partial \Phi_a}{\partial x_j}\qquad(j=1,\dots,M)\tag{1.6.6}

が成り立つ。これは f−∑aλaΦaf-\sum_a\lambda_a\Phi_a を M+kM+k 個の変数で停留させた条件で、未知数 xj,λax_j,\lambda_a が M+kM+k 個、式も M+kM+k 本ある。

乗数は感度

乗数は計算の途中で消すための補助の数に見えるが、それ自身に意味がある。拘束を Φ(x)=c\Phi(x)=c と書き、cc を少し変えたときの停留値 f∗(c)f^*(c) の変化を考える。停留点 x∗(c)x^*(c) は cc とともに動くので、連鎖律と式 (1.6.5) から

df∗dc=∇f⋅dx∗dc=λ ∇Φ⋅dx∗dc=λ ddcΦ(x∗(c))=λ(1.6.7)\frac{\mathrm{d} f^*}{\mathrm{d} c}=\nabla f\cdot\frac{\mathrm{d} x^*}{\mathrm{d} c}=\lambda\,\nabla\Phi\cdot\frac{\mathrm{d} x^*}{\mathrm{d} c}=\lambda\,\frac{\mathrm{d} }{\mathrm{d} c}\Phi(x^*(c))=\lambda\tag{1.6.7}

を得る(最後は Φ(x∗(c))=c\Phi(x^*(c))=c を cc で微分した)。乗数は、拘束の値を1単位ゆるめたときに最適値がどれだけ変わるかを表す。1.6.5節で等周問題の乗数を、1.6.6節で熱力学の逆温度を、この式で読む。

時刻ごとの拘束と乗数の関数

作用 S[x]=∫t1t2L(x,x˙,t) dtS[x]=\int_{t_1}^{t_2}L(x,\dot x,t)\,\mathrm{d} t を、各時刻で拘束 Φa(x(t),t)=0\Phi_a(x(t),t)=0 を満たす経路の中で停留させる問題に移る。多変数の場合と比べると、拘束が時刻 tt ごとに1本ずつ、すなわち連続無限個ある。そこで乗数も時刻ごとに1つずつ、つまり時刻の関数 λa(t)\lambda_a(t) になる。

定理 1.6.1(ホロノミック拘束のもとでの停留)

拘束の勾配 ∂Φa/∂xj\partial\Phi_a/\partial x_j が各時刻で独立であるとする。経路 x(t)x(t) が、拘束を満たし端を固定した経路の中で SS を停留させるための必要十分条件は、関数 λ1(t),…,λk(t)\lambda_1(t),\dots,\lambda_k(t) があって

ddt∂L∂x˙j−∂L∂xj=∑a=1kλa(t)∂Φa∂xj(j=1,…,M)(1.6.8)\frac{\mathrm{d} }{\mathrm{d} t}\frac{\partial L}{\partial \dot x_j}-\frac{\partial L}{\partial x_j}=\sum_{a=1}^k\lambda_a(t)\frac{\partial \Phi_a}{\partial x_j}\qquad(j=1,\dots,M)\tag{1.6.8}

が成り立つことである。これは L′=L+∑aλa(t)Φa(x,t)L'=L+\sum_a\lambda_a(t)\Phi_a(x,t) の Euler–Lagrange 方程式と同じである。

証明

簡単のため k=1k=1 とし、式 (1.6.8) の左辺を Ej(t)E_j(t) と書く。端を固定した許される向き η(t)\eta(t) に対する第1変分は、第1部第4章の計算と同じ部分積分でδS=ϵ∫∑j(−Ej)ηj dt\delta S=\epsilon\int\sum_j(-E_j)\eta_j\,\mathrm{d} t となる。拘束を保つ向きは、拘束を ϵ\epsilon の1次で保つ ∑j(∂Φ/∂xj)ηj=0\sum_j(\partial\Phi/\partial x_j)\eta_j=0 を各時刻で満たす(勾配が 00 でなければ、陰関数定理によりこの向きに接する拘束上の経路の族が作れる)。a(t)=(∂Φ/∂xj)j\bm{a}(t)=(\partial\Phi/\partial x_j)_j、E(t)=(Ej)j\bm{E}(t)=(E_j)_j とおき、λ(t)=E⋅a/∣a∣2\lambda(t)=\bm{E}\cdot\bm{a}/\lvert \bm{a}\rvert ^2 と決めると、E−λa\bm{E}-\lambda\bm{a} は各時刻で a\bm{a} に垂直になる。そこで端で 00 になる任意の関数 ψ(t)≥0\psi(t)\ge0 を使って η=ψ(t)(E−λa)\eta=\psi(t)(\bm{E}-\lambda\bm{a}) と選ぶと、これは拘束を保つ向きで、δS=−ϵ∫ψ E⋅(E−λa) dt=−ϵ∫ψ∣E−λa∣2dt\delta S=-\epsilon\int\psi\,\bm{E}\cdot(\bm{E}-\lambda\bm{a})\,\mathrm{d} t=-\epsilon\int\psi\lvert \bm{E}-\lambda\bm{a}\rvert ^2\mathrm{d} t となる(λa⋅(E−λa)=0\lambda\bm{a}\cdot(\bm{E}-\lambda\bm{a})=0 を使った)。停留なら ψ\psi によらずこれが 00 なので、第1部第3章の基本補題と同じ議論で E=λa\bm{E}=\lambda\bm{a} が各時刻で成り立つ。逆に E=λa\bm{E}=\lambda\bm{a} なら、拘束を保つ向きでは E⋅η=λ a⋅η=0\bm{E}\cdot\eta=\lambda\,\bm{a}\cdot\eta=0 なので δS=0\delta S=0 である。

証明で λ(t)\lambda(t) を「E\bm{E} の a\bm{a} 方向の成分」として作ったことに注意する。運動は拘束に沿う向きの式(ff 本)で決まり、乗数は拘束に垂直な向きの式(kk 本)で決まる。乗数は未知の関数として加わるが、拘束の式 Φa=0\Phi_a=0 も kk 本加わるので、未知の関数と式の数は M+kM+k 本でつり合う。

例題 1.6.2 乗数を感度として読む ★★

オリジナル拘束 x+2y=cx+2y=c(c>0c>0)のもとで f(x,y)=xyf(x,y)=xy の停留点を考える。

  1. (1) f−λ(x+2y−c)f-\lambda(x+2y-c) を停留させて、停留点 (x∗,y∗)(x^*,y^*) と乗数 λ\lambda を cc で表せ。
  2. (2) c=4c=4 のときの値を求め、図 1.6.1 と合っていることを確かめよ。
  3. (3) 停留値 f∗(c)f^*(c) を求め、df∗dc=λ\frac{\mathrm{d} f^*}{\mathrm{d} c}=\lambda を確かめよ。
解答

(1) x,y,λx,y,\lambda の偏微分を 00 とおくと y−λ=0y-\lambda=0, x−2λ=0x-2\lambda=0, x+2y=cx+2y=c。最初の2つを3つ目に入れて 4λ=c4\lambda=c。よって

λ=c4,x∗=c2,y∗=c4.\lambda=\frac c4,\qquad x^*=\frac c2,\qquad y^*=\frac c4 .

(2) c=4c=4 で (x∗,y∗)=(2,1)(x^*,y^*)=(2,1)、λ=1\lambda=1、f∗=2f^*=2。図の点 PP で、f=2f=2 の等高線が拘束の線に接している。∇f=(1,2)=1⋅∇Φ\nabla f=(1,2)=1\cdot\nabla\Phi で、比例係数が λ=1\lambda=1 である。

(3) f∗(c)=c2⋅c4=c28f^*(c)=\frac c2\cdot\frac c4=\frac{c^2}{8} なので df∗dc=c4=λ\frac{\mathrm{d} f^*}{\mathrm{d} c}=\frac c4=\lambda。式 (1.6.7) のとおり、乗数は拘束の値 cc を1単位増やしたときの最適値の増え方になっている。c=4c=4 で λ=1\lambda=1 なので、cc を 44 から 4.14.1 に変えると f∗f^* は約 0.10.1 増える(正確には 4.12/8−2=0.101254.1^2/8-2=0.10125)。

木下の勉強ステータス

木下はまだこの記事を勉強していません。

AI(Claude)が書いた教材を、木下が勉強しながら公開しています。式と数値は検算していますが、誤りが残っているかもしれません。誤りのご指摘・削除のご依頼をいただければ直します。 連絡先:support@tecktom.com

← AI生成教科書『虎の巻』の記事一覧へ