JOVANA
Library Glossary Getting Started Three Levels Fields How it works Mission
Join the mission
All guides

约束与多元情形

一段定长的围栏能圈出的最大面积是多少?一条悬挂的链子又会取怎样的形状?这些都是带约束的变分问题——而欧拉-拉格朗日的机器会优雅地伸展开来,去处理约束、同时出现的多个未知函数,乃至那些你可以自由滑动的边界。

长度固定,形状自由

本阶梯中较早的几份指南,是在所有端点固定的曲线上极值化一个泛函 J[y] = L(x, y, y') 对 x 的积分,而稳定曲线所满足的条件就是欧拉-拉格朗日方程。但整个学科最著名的那个问题,并不能干净利落地塞进这个框架。传说中迦太基女王狄多被许诺:用一张牛皮剪成的细条能圈住多大的地,那地就归她——给定一根定长 P 的绳子,怎样的闭曲线能围出最大的面积?这就是最初的等周问题(iso = 相等,perimeter = 周长),而其中的关窍在于:我们已不能再随心所欲地改变曲线了——每一条参与竞争的曲线都必须保持同一个周长 P。我们要极值化一个泛函(面积),同时让另一个泛函(长度)保持固定。

如果这闻起来很像你在有限维里遇到的约束优化,那你的嗅觉一点没错。回忆有限维的拉格朗日乘数:要在 g(x) = c 的约束下极值化 f(x),你不必硬碰约束——你构造 f - lambda g,并去寻找这个组合的无约束稳定点,让那个数 lambda 把约束吸收进去。变分法把这个想法整批继承了下来。如今未知量是整个的函数而非一个个点,目标与约束是积分而非普通函数,但这套配方在升级之后,其精神丝毫未变。

用于泛函的拉格朗日乘数

把方法浓缩成一句干净的话。要在固定取值的约束 K[y] = M 的积分 = c 下极值化 J[y] = L 的积分,就引入一个常数 lambda,转而去极值化组合泛函 J - lambda K = (L - lambda M) 的积分,把它当作一个普通的无约束问题来对待。这就是用于泛函的拉格朗日乘数。具体而言:写下修改后的被积函数 H = L - lambda M,对 H 跑一遍普通的欧拉-拉格朗日方程,你便得到一个含有未知数 lambda 的微分方程。这样你比先前多了一条方程,但也多了一个未知量——而那条补足的方程,恰恰就是约束 K[y] = c 本身,它把 lambda 钉死。数目恰好相配,系统就此封闭。

Isoperimetric / constrained variational problem

  extremize   J[y] = integral_a^b  L(x, y, y') dx
  subject to  K[y] = integral_a^b  M(x, y, y') dx = c   (fixed)

Step 1   Form  H = L - lambda * M     (one unknown constant lambda)

Step 2   Euler-Lagrange on H:
         d/dx ( dH/dy' )  -  dH/dy  =  0

Step 3   Solve the ODE for y(x); the answer carries lambda along.

Step 4   Impose K[y] = c  to fix lambda  (and use boundary data for
         the integration constants).
四步配方。这个孤零零的乘数 lambda 是一个数、而非一个函数,因为约束把单独一个标量(周长、体积、面积)钉在一个固定值上。

把它用在狄多女王的问题上,答案正是你的直觉一直在低声告诉你的那个:在所有给定长度的闭曲线之中,圆所围出的面积最大。当你把面积与长度都写成积分、构造 H、再施以欧拉-拉格朗日方程,所得的方程会说曲率处处为常数——而一条曲率为常数的平面曲线,恰恰就是圆。那个乘数 lambda 结果正好等于半径。同一套机器,把两个泛函的角色对调一下,也能证明其对偶命题:在所有围出给定面积的曲线之中,圆的周长最短。一套方法,由单独一个数来了断。

悬链,由一个乘数来裁定

最具物理意味的等周问题是悬链线——一条定长 L 的柔软链子悬挂在两根柱子之间所取的形状。大自然以一条美得慵懒的原理来裁定它:链子会下垂成任何能让其质心尽可能最低的形状,从而极小化重力势能。那势能正比于 y ds 的积分 = y sqrt(1 + y'^2) 对 x 的积分,即沿弧加权的高度。但链子无法伸长,所以它的总长度 sqrt(1 + y'^2) 的积分 = L 就是那个固定的约束。压低高度、保持长度:一个彻头彻尾的等周问题。

构造 H = (y - lambda) sqrt(1 + y'^2)——即高度被积函数减去 lambda 乘以长度被积函数。由于 H 中不显含 x,你可以略过完整的欧拉-拉格朗日方程,改用早先一份指南里的捷径——贝尔特拉米恒等式,它立刻给你一个首次积分:H - y' (dH/dy') = 常数。把它推演下去,便得到 y - lambda = C cosh((x - x0)/C),即双曲余弦。链子挂成的是悬链线,而不是许多人所猜的抛物线。乘数 lambda 在这里同样有干净的物理含义:它不过是设定参考水平面的高度,即那个竖直方向的平移常数,而长度约束则定下垂度参数 C。同样的形状翻转过来,就是那座纯受压而屹立的拱——这正是它出现在大教堂穹顶与圣路易斯大拱门上的缘由。

多个函数,多个变量

真实问题里很少只牵涉单独一条未知曲线 y(x)。一颗行星划出的轨迹有好几个坐标 x(t)、y(t)、z(t);一个振动系统同时拥有许多位移。设被积函数依赖于多个函数,L(t, y1, y2, ..., y1', y2', ...)。变分原理几乎不变:你可以独立地拨动每一个函数,因此每一个都必须各自使泛函稳定。结果是每个未知函数对应一条欧拉-拉格朗日方程,对每个 k 有 d/dt(dL/dyk') - dL/dyk = 0,它们通过共享的被积函数相互耦合。单条方程于是化为一个方程组,每个自由度一条——而这些耦合方程,正是哈密顿原理为整个力学系统重现牛顿定律的方式,每个坐标一条运动方程。

还有第二种真正不同的推广:未知量可以是多个变量的函数,比如某个区域上的高度 u(x, y)。这时泛函是一个二重积分,J[u] = L(x, y, u, u_x, u_y) 对 x、y 的二重积分,其中 u_x 与 u_y 是偏导数。如今对 u 作变分并要求稳定,所产生的不再是常微分方程,而是一个微分方程:d/dx(dL/du_x) + d/dy(dL/du_y) - dL/du = 0。最干净的例子是肥皂膜,即张在金属丝圈上的极小曲面:对平缓的膜而言,极小化面积在一阶近似下给出拉普拉斯方程,正是那条支配稳态热传导与静电学的拉普拉斯方程——于是一张绷紧的膜与一个温度场服从同一条定律,二者都是大自然在极小化某种能量时所做的事。

当端点可以自由移动

至此每一个问题都把曲线的两个端点都固定住了。但有时其中一端可以自由滑动。设想一颗穿在线上的珠子,必须从一根固定的柱子出发,却可以在一条竖直导轨上的任意处结束——最优路径会在导轨的哪一点与它相遇?当我们推导欧拉-拉格朗日方程时,那一步分部积分吐出了一个边界项,而我们是靠坚持变分在两端为零(端点固定就没有拨动的余地)才让它消失的。一旦端点自由,这条退路就没了:变分在那里为零,于是边界项必须自己消失。令它为零,便给出解在自由端必须满足的一个条件,它凌驾于内部的欧拉-拉格朗日方程之上、是额外的一条。

那个自我强加的条件,就是自然边界条件。对标准被积函数 L(x, y, y') 而言,它写作:在自由端处 dL/dy' = 0。这些条件之所以叫「自然」,是因为你并非依据边界的物理由手工把它们强加上去——变分原理会免费生成它们,作为你让端点松开所付的代价。它们正是自然边界条件,其物理读法十分鲜活:对一根末端无支撑的梁,自然条件说那里的弯矩为零;对张在开放边缘上的肥皂膜,它说膜以直角与边缘相交;对一根末端暴露的受热杆,它编码了那里没有被规定的热通量。自由端并不意味着「没有条件」——它意味着一个由数学替你选定的条件。