DennyQi's Log

变分法

变分法(Calculus of Variations)可以用来求出使得某个量最小的函数。

平面上两点之间线段最短

我们用变分法来证明平面上两点之间线段最短。固定R2\R^2上的两点(0,0)(0,0)(x0,y0)(x_0,y_0)。不妨假设连接这两点的曲线连续可导,并且不存在斜率无穷大的情况。此时我们可以设这条曲线为y=f(x)y=f(x)。对于曲线上的一段微元ds\text{d} s,有ds=(dx)2+(dy)2\text{d} s = \sqrt{(\text{d} x)^2+(\text{d} y)^2}。其中dy=f(x)dx\text{d} y = f'(x)\text{d} x,因此ds=1+f(x)2dx\text{d} s = \sqrt{1+f'(x)^2}\text{d} x。对于任意ff,由第一类曲线积分,曲线的长度为(f)=0x01+f(x)2dx\ell(f)=\displaystyle\int_0^{x_0}\sqrt{1+f'(x)^2}\text{d} x。我们要求出使得(f)\ell(f)最小的ff

变分法的核心思想是,使得(f)\ell(f)最小的那个ff应当类似于函数的极值点:在极值点上做轻微扰动,函数值的变化量相对于自变量的变化量是高阶无穷小。现在我们就为函数定义扰动。设扰动函数为g(x)g(x),方便起见我们规定g(x)g(x)在端点处的值为0,也即g(0)=g(x0)=0g(0)=g(x_0)=0。用任意一个常数ε>0\varepsilon>0作为扰动的比例系数,我们写出扰动后的曲线为y=f(x)+εg(x)y=f(x)+\varepsilon g(x)。它对应的曲线长度为(f+εg)=0x01+[f(x)+εg(x)]2dx\ell(f+\varepsilon g)=\displaystyle\int_0^{x_0}\sqrt{1+[f'(x)+\varepsilon g'(x)]^2}\text{d} x。如果ff是我们要求的函数,那么函数(f+εg)\ell(f+\varepsilon g)关于ε\varepsilon的导数在ε=0\varepsilon=0处应当为00。也即

ε0x01+[f(x)+εg(x)]2dxε=0=0\dfrac{\partial }{\partial \varepsilon}\displaystyle\int_0^{x_0}\sqrt{1+[f'(x)+\varepsilon g'(x)]^2}\text{d} x\Big|_{\varepsilon=0}=0

我们认为求导和积分可以交换顺序,那么ε0x01+[f(x)2+εg(x)]dxε=0=\dfrac{\partial }{\partial \varepsilon}\displaystyle\int_0^{x_0}\sqrt{1+[f'(x)^2+\varepsilon g'(x)]}\text{d} x\Big|_{\varepsilon=0}= 0x0ε1+[f(x)2+εg(x)]2ε=0dx=\displaystyle\int_0^{x_0}\dfrac{\partial }{\partial \varepsilon}\sqrt{1+[f'(x)^2+\varepsilon g'(x)]^2}\Big|_{\varepsilon=0} \text{d} x= 0x0[f(x)+εg(x)]g(x)1+[f(x)+εg(x)]2ε=0dx=\displaystyle\int_0^{x_0}\dfrac{[f'(x)+\varepsilon g'(x)]g'(x)}{\sqrt{1+[f'(x)+\varepsilon g'(x)]^2}}\Big|_{\varepsilon=0} \text{d} x= 0x0f(x)g(x)1+f(x)2dx\displaystyle\int_0^{x_0}\dfrac{f'(x)g'(x)}{\sqrt{1+f'(x)^2}}\text{d} x。所以ff应当满足

g,0x0f(x)g(x)1+f(x)2dx=0\forall g,\displaystyle\int_0^{x_0}\dfrac{f'(x)g'(x)}{\sqrt{1+f'(x)^2}}\text{d} x=0

显然x(0,x0),f(x)1+f(x)2=0\forall x\in (0,x_0),\dfrac{f'(x)}{\sqrt{1+f'(x)^2}}=0是一个充分条件。但事实上f(x)1+f(x)2\dfrac{f'(x)}{\sqrt{1+f'(x)^2}}取任意常数CC都是成立的,因为0x0Cg(x)dx=C[g(x0)g(0)]=0\displaystyle\int_0^{x_0}Cg'(x)\text{d} x = C[g(x_0)-g(0)]=0。所以我们需要更细致的分析。把f(x)1+f(x)2\dfrac{f'(x)}{\sqrt{1+f'(x)^2}}看作uu,把g(x)g(x)看作vv,由分部积分可得

0x0f(x)g(x)1+f(x)2dx=f(x)g(x)1+f(x)20x00x0g(x)(f(x)1+f(x)2)dx\displaystyle\int_0^{x_0}\dfrac{f'(x)g'(x)}{\sqrt{1+f'(x)^2}}\text{d} x=\dfrac{f'(x)g(x)}{\sqrt{1+f'(x)^2}}\Big|_{0}^{x_0}-\displaystyle\int_0^{x_0}g(x)\left(\dfrac{f'(x)}{\sqrt{1+f'(x)^2}}\right)'\text{d} x

因为g(x)g(x)0,x00,x_0处都取0,因此我们得到

0x0g(x)(f(x)1+f(x)2)dx=0\displaystyle\int_0^{x_0}g(x)\left(\dfrac{f'(x)}{\sqrt{1+f'(x)^2}}\right)'\text{d} x=0

于是我们得到了一个更好的充分条件

x(0,x0),(f(x)1+f(x)2)=0\forall x \in (0,x_0),\left(\dfrac{f'(x)}{\sqrt{1+f'(x)^2}}\right)'=0

这意味着存在常数C0C_0使得f(x)1+f(x)2C0\dfrac{f'(x)}{\sqrt{1+f'(x)^2}}\equiv C_0,进而f(x)2=C02[1+f(x)2]f'(x)^2=C_0^2[1+f'(x)^2],解得f(x)2=C021C02f'(x)^2=\dfrac{C_0^2}{1-C_0^2}。因为我们假定了ff连续可导,这意味着f(x)f'(x)是常数,也即ff是直线。

最速降线

我们想知道小球沿光滑轨道从某点运动到另一点时用时最短的轨道的选择。固定R2\R^2上的两点(0,0)(0,0)(x0,y0)(x_0,y_0)。不妨假设轨道连续可导,并且不会在哪处是平的(斜率不能为0)。此时我们可以设这条曲线为x=f(y)x=f(y)。由动能定理,12mv2=mgy\dfrac{1}{2}mv^2=-mgy,得v=2gyv=\sqrt{-2gy}。位移微元ds=1+f(y)2dy\text{d} s=\sqrt{1+f'(y)^2}\text{d} y。所以dt=dsv=1+f(y)22gydy\text{d} t = \dfrac{\text{d} s}{v}=\dfrac{\sqrt{1+f'(y)^2}}{\sqrt{-2gy}}\text{d} y。因此总用时T(f)=12g0y01+f(y)2ydyT(f) = \dfrac{1}{\sqrt{2g}}\displaystyle\int_0^{y_0} \sqrt{\dfrac{1+f'(y)^2}{-y}}\text{d} y

和之前类似,设扰动后的函数写作f(y)+εg(y)f(y)+\varepsilon g(y),则T(f+εg)=12g0y01+[f(y)+εg(y)]2ydyT(f+\varepsilon g)=\dfrac{1}{\sqrt{2g}}\displaystyle\int_{0}^{y_0}\sqrt{\dfrac{1+[f'(y)+\varepsilon g'(y)]^2}{-y}}\text{d} y。我们要使得ε0y01+[f(y)+εg(y)]2ydyε=0=0\dfrac{\partial }{\partial \varepsilon}\displaystyle\int_{0}^{y_0}\sqrt{\dfrac{1+[f'(y)+\varepsilon g'(y)]^2}{-y}}\text{d} y\Big|_{\varepsilon=0}=0。交换积分和求导的顺序,得到0y0f(y)g(y)y(1+f(y)2)dy=0\displaystyle\int_0^{y_0}\dfrac{f'(y)g'(y)}{\sqrt{-y(1+f'(y)^2)}}\text{d} y=0。使用分部积分法,得到

g,f(y)g(y)y(1+f(y)2)0y00y0g(y)(f(y)y(1+f(y)2))dy=0\forall g,\dfrac{f'(y)g(y)}{\sqrt{-y(1+f'(y)^2)}}\Big|_0^{y_0}-\displaystyle\int_0^{y_0}g(y)\left(\dfrac{f'(y)}{\sqrt{-y(1+f'(y)^2)}}\right)'\text{d} y=0

所以得到

y(y0,0),(f(y)y(1+f(y)2))=0\forall y \in (y_0,0),\left(\dfrac{f'(y)}{\sqrt{-y(1+f'(y)^2)}}\right)'=0

f(y)y(1+f(y)2)C0\dfrac{f'(y)}{\sqrt{-y(1+f'(y)^2)}}\equiv C_0,化简得到f(y)2=y1C02+yf'(y)^2=\dfrac{-y}{\frac{1}{C_0^2}+y}。让我们代入f(y)=dxdyf'(y)=\dfrac{\text{d} x}{\text{d} y},显然斜率总是负数,我们得到dxdy=y1C02+y\dfrac{\text{d} x}{\text{d} y}=-\sqrt{\dfrac{-y}{\frac{1}{C_0^2}+y}}。让我们来证明,当C0C_0取合适的值时,这就是摆线的方程。令y=12C02(1cosθ)y=-\dfrac{1}{2C_0^2}(1-\cos\theta),其中θ\theta00开始变化,不超过π-\pi。此时dxdy=1cosθ1+cosθ=tanθ2\dfrac{\text{d} x}{\text{d} y}=-\sqrt{\dfrac{1-\cos\theta}{1+\cos\theta}}=-\tan\dfrac{\theta}{2}。同时,dy=sinθ2C02dθ\text{d} y = -\dfrac{\sin\theta}{2C_0^2}\text{d}\theta。于是dx=tanθ22sinθ2cosθ22C02dθ=sin2θ2C02dθ=1cosθ2C02dθ\text{d} x = \tan\dfrac{\theta}{2}\cdot \dfrac{2\sin\frac{\theta}{2}\cos \frac{\theta}{2}}{2C_0^2}\text{d}\theta=\dfrac{\sin^2\frac{\theta}{2}}{C_0^2}\text{d}\theta=\dfrac{1-\cos\theta}{2C_0^2}\text{d}\theta,因此x=12C02(θsinθ)x=\dfrac{1}{2C_0^2}(\theta-\sin\theta)。可见,这是半径r=12C02r=\dfrac{1}{2C_0^2}的摆线方程:

{x=r(θsinθ)y=r(1cosθ)\begin{cases} x = r(\theta - \sin\theta) \\ y = -r(1 - \cos\theta) \end{cases}

欧拉-拉格朗日方程

通过以上两个例子,我们可以发现变分法的计算过程有一般规律可循。设定曲线为y=f(x)y=f(x),要使得J(f)=x1x2L(x,f(x),f(x))dxJ(f)=\displaystyle\int_{x_1}^{x_2}L(x,f(x),f '(x))\text{d} x​最小,我们会引入扰动ε,g\varepsilon,ggg在端点x1,x2x_1,x_2处取0),曲线变成y=f(x)+εg(x)y=f(x)+\varepsilon g(x),对应地有J(f+εg)=x1x2L(x,f(x)+εg(x),f(x)+εg(x))dxJ(f+\varepsilon g)=\displaystyle\int_{x_1}^{x_2}L(x,f(x)+\varepsilon g(x),f'(x)+\varepsilon g'(x))\text{d} x。如果ff是我们要求的函数,函数J(f+εg)J(f+\varepsilon g)关于ε\varepsilon的导数在ε=0\varepsilon=0处应当为00

εx1x2L(x,f(x)+εg(x),f(x)+εg(x))dxε=0=0\dfrac{\partial }{\partial \varepsilon}\displaystyle\int_{x_1}^{x_2}L(x,f(x)+\varepsilon g(x),f'(x)+\varepsilon g'(x))\text{d} x\Big|_{\varepsilon=0}=0

交换求导和积分的顺序,其中我们把LL看作关于三个槽位x,y,yx,y,y'的函数,有链式法则

Lε=Lxxε+Lyyε+Lyyε\dfrac{\partial L}{\partial \varepsilon}=\dfrac{\partial L}{\partial x}\cdot \dfrac{\partial x}{\partial \varepsilon}+\dfrac{\partial L}{\partial y}\cdot \dfrac{\partial y}{\partial \varepsilon}+\dfrac{\partial L}{\partial y'}\cdot \dfrac{\partial y'}{\partial \varepsilon}

带入计算可得

Lεε=0=g(x)Ly+g(x)Ly\dfrac{\partial L}{\partial \varepsilon}\Big|_{\varepsilon=0}=g(x)\dfrac{\partial L}{\partial y}+g'(x)\dfrac{\partial L}{\partial y'}

所以我们得到

g,x1x2[g(x)Ly+g(x)Ly]dx=0\forall g,\displaystyle\int_{x_1}^{x_2}\left[g(x)\dfrac{\partial L}{\partial y}+g'(x)\dfrac{\partial L}{\partial y'}\right]\text{d} x=0

x1x2g(x)Lydx\displaystyle\int_{x_1}^{x_2}g'(x)\dfrac{\partial L}{\partial y'}\text{d} x这一项使用分部积分,得到x1x2g(x)(Ly)dx-\displaystyle\int_{x_1}^{x_2}g(x)\left(\dfrac{\partial L}{\partial y'}\right)'\text{d} x。所以

g,x1x2g(x)[Ly(Ly)]dx=0\forall g,\displaystyle\int_{x_1}^{x_2}g(x)\left[\dfrac{\partial L}{\partial y}-\left(\dfrac{\partial L}{\partial y'}\right)'\right]\text{d} x=0

这给出了

Ly=ddx(Ly)\dfrac{\partial L}{\partial y}=\dfrac{\text{d}}{\text{d} x}\left(\dfrac{\partial L}{\partial y'}\right)

这称为欧拉-拉格朗日方程。其中LL称为拉格朗日函数。

等周问题

下面我们用变分法来证明定长闭合曲线包围面积最大时是圆。此时我们面临了两个困难:圆不是函数;增加了曲线总长度的限制条件。对于第一个困难,我们用曲线的参数化来解决;对于第二个困难,我们把“无条件极值点    \iff导数为0”的类比升级为“有条件极值点    \iff拉格朗日乘数的导数为0”。

{x=x(t)y=y(t),t[t0,t1]\begin{cases} x = x(t) \\ y = y(t) \end{cases}, \quad t \in [t_0, t_1]。固定常数C>0C>0,令L(x,y)=t0t1x˙2+y˙2dt=CL(x, y) = \displaystyle\int_{t_0}^{t_1} \sqrt{\dot{x}^2 + \dot{y}^2} \, \mathrm{d}t = C。其面积可以由格林公式写出:A(x,y)=12t0t1(xy˙yx˙)dtA(x, y) = \dfrac{1}{2} \displaystyle\int_{t_0}^{t_1} (x\dot{y} - y\dot{x}) \, \mathrm{d}t。仿照拉格朗日乘数法,我们构造

J(x,y)=t0t112(xy˙yx˙)dt+λ(t0t1x˙2+y˙2dtC)J(x, y) = \displaystyle\int_{t_0}^{t_1} \frac{1}{2}(x\dot{y} - y\dot{x}) \, \mathrm{d}t+\lambda \left(\displaystyle\int_{t_0}^{t_1} \sqrt{\dot{x}^2 + \dot{y}^2} \, \mathrm{d}t-C\right)

要求出极值点,只需取JJ的导数为0。对此,我们可以直接应用欧拉-拉格朗日方程来简化计算。其中CC是常数,不影响极值点。因此我们可以去拉格朗日函数为

L(x,y,x˙,y˙)=12(xy˙yx˙)+λx˙2+y˙2L(x, y, \dot{x}, \dot{y}) = \dfrac{1}{2}(x\dot{y} - y\dot{x}) + \lambda \sqrt{\dot{x}^2 + \dot{y}^2}

这里有两个待求函数 x(t)x(t)y(t)y(t),它们是独立的。所以我们可以列出两个欧拉-拉格朗日方程:

{Lx=ddt(Lx˙)Ly=ddt(Ly˙)\begin{cases} \dfrac{\partial L}{\partial x} = \dfrac{\mathrm{d}}{\mathrm{d}t}\left( \dfrac{\partial L}{\partial \dot{x}} \right) \\ \dfrac{\partial L}{\partial y} = \dfrac{\mathrm{d}}{\mathrm{d}t}\left( \dfrac{\partial L}{\partial \dot{y}} \right) \end{cases}

第一个方程化简为y˙=λddt(x˙x˙2+y˙2)\dot{y} = \lambda\cdot\dfrac{\mathrm{d}}{\mathrm{d}t}\left( \dfrac{\dot{x}}{\sqrt{\dot{x}^2 + \dot{y}^2}} \right),也即ddt(yλx˙x˙2+y˙2)=0\dfrac{\mathrm{d}}{\mathrm{d}t}\left( y-\lambda\cdot\dfrac{\dot{x}}{\sqrt{\dot{x}^2 + \dot{y}^2}} \right)=0,所以yλx˙x˙2+y˙2=C1y-\lambda\cdot\dfrac{\dot{x}}{\sqrt{\dot{x}^2 + \dot{y}^2}}=C_1。同理,第二个方程化简得到x+λy˙x˙2+y˙2=C2x+\lambda \dfrac{\dot{y}}{\sqrt{\dot{x}^2 + \dot{y}^2}} = -C_2。由此可见(xC2)2+(yC1)2=λ2(x-C_2)^2+(y-C_1)^2=\lambda^2。这恰好是圆方程。

最小作用量原理

牛顿定律可以不写成F=maF= ma的形式而表述成:一物体从一点到另一点所走的路径总是使其关于时间的平均动能减去平均势能最小(不考虑非保守力,故能量只有动能和势能)。“平均动能减去平均势能”这个量被称为“作用量”,这一力学定律的等价表述形式称为“最小作用量原理”。

例如,让我们考虑物体不受力时,沿xx轴从x1x_1运动到x2x_2,初始速度为v0v_0。牛顿定律告诉我们,物体将保持匀速直线运动。让我们来考虑最小作用量原理如何给出物体的运动:设x(t1)=x1,x(t2)=x2x(t_1)=x_1,x(t_2)=x_2,物体运动过程中,将使得t1t2[12mv20]dt\displaystyle\int_{t_1}^{t_2}\left[\dfrac{1}{2}mv^2-0\right]\text{d} t尽可能小。也即我们要求使得t1t2(dxdt)2dt\displaystyle\int_{t_1}^{t_2}\left(\dfrac{\text{d} x}{\text{d} t}\right)^2\text{d} t最小的函数xx。设拉格朗日函数L(t,y,y)=(y)2L(t,y,y')=(y')^2,代入欧拉-拉格朗日方程Ly=ddt(Ly)\dfrac{\partial L}{\partial y}=\dfrac{\text{d}}{\text{d} t}\left(\dfrac{\partial L}{\partial y'}\right)可得dvdt=0\dfrac{\text{d} v}{\text{d} t}=0。可见根据最小作用量原理,物体也做匀速直线运动。

现在考虑物体受沿xx轴负方向的重力。牛顿定律告诉我们,物体将获得沿xx轴负方向的加速度gg。让我们来考虑最小作用量原理如何给出物体的运动:设x(t1)=x1,x(t2)=x2x(t_1)=x_1,x(t_2)=x_2,物体运动过程中,将使得t1t2[12mv2mgx]dt\displaystyle\int_{t_1}^{t_2}\left[\dfrac{1}{2}mv^2-mgx\right]\text{d} t尽可能小。也即我们要求使得t1t2[(dxdt)22gx]dt\displaystyle\int_{t_1}^{t_2}\left[\left(\dfrac{\text{d} x}{\text{d} t}\right)^2-2gx\right]\text{d} t最小的函数xx。设拉格朗日函数L(t,y,y)=(y)22gyL(t,y,y')=(y')^2-2gy,代入欧拉-拉格朗日方程Ly=ddt(Ly)\dfrac{\partial L}{\partial y}=\dfrac{\text{d}}{\text{d} t}\left(\dfrac{\partial L}{\partial y'}\right)可得dvdt=g\dfrac{\text{d} v}{\text{d} t}=-g。可见根据最小作用量原理,物体也获得沿xx轴负方向的加速度gg

最小作用量原理不仅对经典力学成立,只要我们对作用量做出正确的修正,会发现最小作用量原理对于量子力学和相对论也成立。这样我们就得到了两套物理理论:一套是决定论思维的,上一时刻的粒子排布决定下一时刻的粒子排布;另一套是目的论思维的,宇宙中的一切现象都是优化某个函数的结果。