引言
变分法研究的是「函数的函数」——泛函——的极值问题。1696 年 Johann Bernoulli 提出的最速降线问题(质点沿何种曲线从高处滑至低处用时最短)被公认为这门学科的开端。Euler 与 Lagrange 将其系统化:Euler 给出了极值函数必须满足的微分方程,Lagrange 发明了 $\delta$ 变分记号并把它用于分析力学,由此诞生了以最小作用量原理为核心的理论物理范式。今天,从弹性力学的最小势能原理、有限元方法,到最优控制与机器学习中的正则化,变分思想无处不在。本文从泛函极值的必要条件出发,推导 Euler-Lagrange 方程,讨论若干重要变形,并给出最速降线问题的直接数值解法。
理论基础
泛函与一阶变分
设容许函数类为 $C^1[x_0, x_1]$ 中满足固定端点条件 $y(x_0)=y_0$、$y(x_1)=y_1$ 的函数,考察最简泛函
$$J[y] = \int_{x_0}^{x_1} F(x, y, y'),\,dx$$
其中 $F$ 关于其三个变元二阶连续可微。若 $y$ 使 $J$ 取极小,则对任意满足 $\eta(x_0)=\eta(x_1)=0$ 的扰动 $\eta$ 与充分小的 $\varepsilon$,都有 $J[y+\varepsilon\eta] \ge J[y]$。定义单变量函数 $\Phi(\varepsilon) = J[y+\varepsilon\eta]$,极值的必要条件为 $\Phi'(0) = 0$,即一阶变分为零:
$$\delta J = \int_{x_0}^{x_1}\left(F_y,\eta + F_{y'},\eta'\right)dx = \int_{x_0}^{x_1}\left(F_y - \frac{d}{dx}F_{y'}\right)\eta,\,dx = 0$$
第二步用了分部积分与端点条件。由变分法基本引理(连续函数若与任意紧支撑光滑函数乘积的积分恒为零,则该函数恒为零),得到 Euler-Lagrange 方程:
$$\frac{\partial F}{\partial y} - \frac{d}{dx}\frac{\partial F}{\partial y'} = 0$$
它是一个二阶常微分方程,其解称为极值曲线(extremal)。需注意 $\delta J = 0$ 只是必要条件,判断极小性还要考察二阶变分,例如 Legendre 必要条件 $F_{y'y'} \ge 0$。
重要特例与推广
当 $F$ 不显含 $x$ 时,沿极值曲线有 Beltrami 恒等式 $F – y’F_{y’} = C$,把二阶方程降为一阶,最速降线问题正是靠它直接解出。当 $F$ 不显含 $y$ 时,$F_{y’} = C$ 即为首次积分。含等周约束(如弧长固定)的问题可引入 Lagrange 乘子 $\lambda$,转化为被积函数 $F + \lambda G$ 的无约束问题。对多元函数 $u(x_1, \dots, x_n)$,Euler-Lagrange 方程变为偏微分方程:
$$\frac{\partial F}{\partial u} - \sum_{i=1}^{n}\frac{\partial}{\partial x_i}\left(\frac{\partial F}{\partial u_{x_i}}\right) = 0$$
例如 Dirichlet 积分 $J[u] = \frac{1}{2}\int_\Omega |\nabla u|^2,\,dx$ 的极值函数满足 Laplace 方程 $\Delta u = 0$,这正是把椭圆边值问题转化为能量极小化问题的理论依据。Noether 定理进一步指出:泛函在连续对称变换下的不变性对应一条守恒律——时间平移对称给出能量守恒,空间平移对称给出动量守恒,它把变分法与物理守恒律深刻地联系起来。
数值方法与实现
Euler-Lagrange 方程只在少数情形有解析解,工程上常用直接法:把未知函数用有限个参数表示,泛函退化为多元函数,再用优化算法求极值。Ritz 法取基函数展开,下面演示更朴素的「节点离散 + 坐标松弛」格式。以最速降线为例:设起点 $(0,0)$、终点 $(1, 0.6)$,$y$ 轴竖直向下,由能量守恒质点速率 $v = \sqrt{2gy}$,总用时泛函为
$$T[y] = \int_0^1 \sqrt{\frac{1 + y'^2}{2g y}},\,dx$$
将 $y$ 在均匀网格节点上离散,中点近似高度、差商近似导数,然后逐节点做黄金分割一维搜索(坐标下降):
import numpy as np
def travel_time(y, dx, g=9.81):
"""离散总用时: 中点高度 + 差商斜率"""
p = np.diff(y) / dx
m = 0.5 * (y[:-1] + y[1:])
m = np.maximum(m, 1e-9)
return np.sum(np.sqrt(1.0 + p**2) / np.sqrt(2.0 * g * m)) * dx
def brachistochrone(x1=1.0, y1=0.6, N=50, sweeps=120, g=9.81):
"""坐标松弛法直接极小化泛函 T[y]"""
x = np.linspace(0.0, x1, N + 1)
dx = x[1] - x[0]
y = y1 * x / x1 # 初始猜测: 直线
for _ in range(sweeps):
for j in range(1, N):
lo, hi = y[j - 1], y1 + 0.5 # 保持单调不降的搜索区间
for _ in range(40): # 黄金分割一维极小化
a = lo + 0.3819660112501051 * (hi - lo)
b = hi - 0.3819660112501051 * (hi - lo)
ya, yb = y.copy(), y.copy()
ya[j], yb[j] = a, b
if travel_time(ya, dx, g) < travel_time(yb, dx, g):
hi = b
else:
lo = a
y[j] = 0.5 * (lo + hi)
return x, y, travel_time(y, dx, g)
x, y, T = brachistochrone()
T_line = travel_time(0.6 * x, x[1] - x[0])
print(f"直线用时: {T_line:.4f} s, 优化后: {T:.4f} s, 降幅 {(1 - T / T_line) * 100:.1f}%")
数值解呈明显的「先陡后缓」形态,与解析解摆线(cycloid)$x = a(\theta - \sin\theta)$、$y = a(1 - \cos\theta)$ 的定性特征一致:起点处切线接近竖直以获得加速度,终点处切线趋于水平。直接法不依赖 Euler-Lagrange 方程的解析求解,对约束和非光滑情形也更灵活。
工程案例分析
悬索线问题是等周约束变分的标准案例:均匀柔索在重力场中平衡时势能 $\int y\sqrt{1+y'^2},\,dx$ 最小且总长固定,引入乘子后解为双曲余弦 $y = a\cosh((x - x_0)/a) + C$。这一形状决定了悬索桥主缆的线形设计与吊杆内力分配。更一般地,弹性力学的最小势能原理断言:真实位移场使总势能 $\Pi = U - W$ 在一切满足位移边界条件的容许场中取极小,其 Euler-Lagrange 方程恰为平衡方程与力边界条件。有限元方法本质上就是 Ritz 直接法在分片多项式空间上的实现——先写出能量泛函,再在有限维子空间中求驻值,变分原理由此架起了从连续体力学到离散代数系统的桥梁。此外,最优导轨外形、机翼剖面优化等问题也都归结为泛函在几何约束下的极值。
| 经典问题 | 被积函数 $F$ | 解 / Euler-Lagrange 方程 | ||
|---|---|---|---|---|
| 平面短程线 | $\sqrt{1+y'^2}$ | $y” = 0$,直线 | ||
| 最速降线 | $\sqrt{(1+y'^2)/(2gy)}$ | 摆线 | ||
| 悬链线 | $y\sqrt{1+y'^2}$(等周约束) | 双曲余弦 | ||
| 极小曲面 | $sqrt{1+ | nabla u | ^2}$ | 平均曲率为零 |
| 质点力学 | $L = T – V$ | Newton 方程 |
结论与展望
Euler-Lagrange 方程把「泛函取极值」翻译为微分方程,是变分法的核心工具;直接法则绕过微分方程、直接极小化泛函,成为有限元与现代优化的雏形。沿两个方向可继续深入:一是最优控制,Pontryagin 极大值原理可视为变分法在控制变量受逐点约束时的推广;二是无穷维空间上的变分理论(弱解、序列弱下半连续性、直接法的存在性论证),它构成现代偏微分方程理论的基石。
发表回复