关于上了大学又被拉去推导物理竞赛拉格朗日方程这件事

梦回拉格朗日方程

前言

高中物理竞赛的回忆又开始渐渐浮出水面……

学了计算机专业之后竟然又遇到了分析力学,偶然被物理老师拉去家里请教探讨并要推导了一番已经被我遗忘到记忆深处的拉格朗日方程,并被要求不用泰勒展开求解广义坐标下单自由度体系的振动频率(程力某题)——后来了解到竟然是因为老师询问 AI 过程中 AI 给出了拉格朗日方程的解法然后开始好奇怎么用拉格朗日解法,但其实我算着算着发现:

不用泰勒展开是根本做不出来的!!!——所谓 AI 给的解法就是无聊地用了拉格朗日方程一通无厘头地爆算,然后一堆废话最后代入泰勒展开式子,让老师看到一半以为不需要使用泰勒展开(晕倒),直到后来我自己先用拉格朗日方程推出能量守恒,才十分确信我被摆了一道不用泰勒展开不可解

既然这个个晚上又潜入了一次力学深水区,那么现在就简简单单来记录一下那个晚上这段误入藕花深处的历程吧,顺便检验一下本网站的数学公式渲染功能以及回顾一下难忘的分析力学

注:为保证思路顺畅,我将从头简洁推导拉格朗日方程,

若欲直接阅览本题最终解直接点击如下目录对应内容进行跳转

目录

  1. 问题描述
  2. 拉格朗日方程推导
  3. 拉格朗日方程->能量守恒
  4. 本题最终解答
  5. 避坑

零 简单问题描述

单自由度系统谐振频率的确定

对于单自由度系统,其运动参量选为 qq,其运动方程写为

q=q(t)q = q(t)

如果系统只受保守力作用,且动能和势能分别表示为

Ek=12f(q)q˙2,V=V(q)E_{\text{k}} = \frac{1}{2} f(q) \dot{q}^2, \quad V = V(q)

而且存在稳定平衡位置 q=q0q = q_0,试证明系统在此稳定平衡位置附近作微振动的角频率为

ω=V(q0)f(q0)\omega = \sqrt{\frac{V''(q_0)}{f(q_0)}}

一 拉格朗日方程

拉格朗日方程本质将物理问题转化为了数学问题,将物理图像转化为了数学技巧——以至于理论性推导十分优雅sometimes annoying

0. 数学Tricks

  1. ticik1:上下同导不变:

viq˙j=riqj\frac{\partial \mathbf{v}_i}{\partial \dot{q}_j} = \frac{\partial \mathbf{r}_i}{\partial q_j}

  1. trick2:微分算子可换序: (物理上一般任意阶光滑)

ddt(riqj)=viqj\frac{d}{dt} \left( \frac{\partial \mathbf{r}_i}{\partial q_j} \right) = \frac{\partial \mathbf{v}_i}{\partial q_j}

😈读者自证不难

1. 达朗贝尔原理(plus 版本虚功原理)

体系中质点受到主动力和约束反力,由牛顿定理得:

mir¨i=Fi+Firi=1,2,,nm_i \ddot{\vec{r}}_i = \vec{F}_i + \vec{F}_{ir} \quad i=1,2,\dots,n

方程改写:

mir¨i+Fi+Fir=0-m_i \ddot{\vec{r}}_i + \vec{F}_i + \vec{F}_{ir} = 0

理想约束下约束反力(内力,刚性面支持力……)虚功为 0:

iFriδri=0\sum_i \vec{F}_{ri} \cdot \delta \vec{r}_i = 0

于是:

i(mir¨i+Fi)δri=0\sum_i (-m_i \ddot{\vec{r}}_i + \vec{F}_i) \cdot \delta \vec{r}_i = 0

—— 达朗贝尔-拉格朗日方程

2. 广义坐标代入方程

使用广义坐标表示:

ri=ri(q1,q2,,qs,t)(i=1,2,,n;s=3nk)\vec{r}_i = \vec{r}_i(q_1, q_2, \dots, q_s, t) \quad (i=1,2,\dots,n; s=3n-k)

位移 :

dri=riq1dq1+riq2dq2++riqsdqs+ritdtd\vec{r}_i = \frac{\partial \vec{r}_i}{\partial q_1} dq_1 + \frac{\partial \vec{r}_i}{\partial q_2} dq_2 + \dots + \frac{\partial \vec{r}_i}{\partial q_s} dq_s + \frac{\partial \vec{r}_i}{\partial t} dt

=α=1sriqαdqα+ritdt= \sum_{\alpha=1}^s \frac{\partial \vec{r}_i}{\partial q_\alpha} dq_\alpha + \frac{\partial \vec{r}_i}{\partial t} dt

虚位移

δri=riq1δq1+riq2δq2++riqsδqs=α=1sriqαδqα\delta\vec{r}_i = \frac{\partial \vec{r}_i}{\partial q_1} \delta q_1 + \frac{\partial \vec{r}_i}{\partial q_2} \delta q_2 + \dots + \frac{\partial \vec{r}_i}{\partial q_s} \delta q_s = \sum_{\alpha=1}^s \frac{\partial \vec{r}_i}{\partial q_\alpha} \delta q_\alpha

代入达朗贝尔方程:

i=1nα=1smir¨iriqαδqα+i=1nα=1sFiriqαδqα=0-\sum_{i=1}^n \sum_{\alpha=1}^s m_i \ddot{\vec{r}}_i \cdot \frac{\partial \vec{r}_i}{\partial q_\alpha} \delta q_\alpha + \sum_{i=1}^n \sum_{\alpha=1}^s \vec{F}_i \cdot \frac{\partial \vec{r}_i}{\partial q_\alpha} \delta q_\alpha = 0

独立坐标求和可换序:

α=1s[i=1n(mir¨iriqα)]δqα+α=1s[i=1n(Firiqα)]δqα=0-\sum_{\alpha=1}^s \left[ \sum_{i=1}^n \left( m_i \ddot{\vec{r}}_i \cdot \frac{\partial \vec{r}_i}{\partial q_\alpha} \right) \right] \delta q_\alpha + \sum_{\alpha=1}^s \left[ \sum_{i=1}^n \left( \vec{F}_i \cdot \frac{\partial \vec{r}_i}{\partial q_\alpha} \right) \right] \delta q_\alpha = 0

令:

  • Pα=i=1n(mir¨iriqα)P_\alpha = \sum_{i=1}^n \left( m_i \ddot{\vec{r}}_i \cdot \frac{\partial \vec{r}_i}{\partial q_\alpha} \right) (惯性项)

  • Qα=i=1n(Firiqα)Q_\alpha = \sum_{i=1}^n \left( \vec{F}_i \cdot \frac{\partial \vec{r}_i}{\partial q_\alpha} \right) (广义力)

原式化为

α=1s(Pα+Qα)δqα=0\sum_{\alpha=1}^s (-P_\alpha + Q_\alpha) \delta q_\alpha = 0

进而:

Pα=QαP_\alpha = Q_\alpha

3. 考虑惯性项

Pα=i=1n(mir¨iriqα)P_\alpha = \sum_{i=1}^n \left( m_i \ddot{\vec{r}}_i \cdot \frac{\partial \vec{r}_i}{\partial q_\alpha} \right)

注意到:

r¨iriqj=ddt(r˙iriqj)r˙iddt(riqj)\ddot{\mathbf{r}}_i \cdot \frac{\partial \mathbf{r}_i}{\partial q_j} = \frac{d}{dt} \left( \dot{\mathbf{r}}_i \cdot \frac{\partial \mathbf{r}_i}{\partial q_j} \right) - \dot{\mathbf{r}}_i \cdot \frac{d}{dt} \left( \frac{\partial \mathbf{r}_i}{\partial q_j} \right)

右侧第一式代入 trcik1, 右侧第二式代入 trick2:

mir¨iriqj=ddt(q˙j(12mivi2))qj(12mivi2)\sum m_i \ddot{\mathbf{r}}_i \cdot \frac{\partial \mathbf{r}_i}{\partial q_j} = \frac{d}{dt} \left( \frac{\partial}{\partial \dot{q}_j} \left( \frac{1}{2} \sum m_i v_i^2 \right) \right) - \frac{\partial}{\partial q_j} \left( \frac{1}{2} \sum m_i v_i^2 \right)

体系动能:

T=i=1n12mir˙i2T = \sum_{i=1}^n \frac{1}{2} m_i \dot{\vec{r}}_i^2

整理即得:

ddt(Tq˙j)Tqj=Qj\frac{d}{dt} \left( \frac{\partial T}{\partial \dot{q}_j} \right) - \frac{\partial T}{\partial q_j} = Q_j

4. 考虑保守系统广义力

Qα=i=1n(Firiqα)Q_\alpha = \sum_{i=1}^n \left( \vec{F}_i \cdot \frac{\partial \vec{r}_i}{\partial q_\alpha} \right)

保守系统:

Fi=iV=VxieixVyieiyVzieiz\vec{F}_i = -\nabla_i V = -\frac{\partial V}{\partial x_i}\vec{e}_{ix} - \frac{\partial V}{\partial y_i}\vec{e}_{iy} - \frac{\partial V}{\partial z_i}\vec{e}_{iz}

代入QαQ_\alpha

Qα=i=1n(Firiqα)=i=1n(VxixiqαVyiyiqαVziziqα)=VqαQ_\alpha = \sum_{i=1}^n \left( \vec{F}_i \cdot \frac{\partial \vec{r}_i}{\partial q_\alpha} \right) = \sum_{i=1}^n \left( -\frac{\partial V}{\partial x_i} \frac{\partial x_i}{\partial q_\alpha} - \frac{\partial V}{\partial y_i} \frac{\partial y_i}{\partial q_\alpha} - \frac{\partial V}{\partial z_i} \frac{\partial z_i}{\partial q_\alpha} \right) = -\frac{\partial V}{\partial q_\alpha}

5.拉格朗日方程(保守体系)

利用广义力=惯性项

ddt(Tq˙α)Tqα=Vqα\frac{d}{dt} \left( \frac{\partial T}{\partial \dot{q}_\alpha} \right) - \frac{\partial T}{\partial q_\alpha} = -\frac{\partial V}{\partial q_\alpha}

或者

ddt(Tq˙α)(TV)qα=0\frac{d}{dt} \left( \frac{\partial T}{\partial \dot{q}_\alpha} \right) - \frac{\partial (T - V)}{\partial q_\alpha} = 0

考虑到势能 VV 通常不显含速度 q˙\dot{q}

定义拉格朗日函数 L=TVL = T - V,最终得到:

ddt(Lq˙j)Lqj=0\frac{d}{dt} \left( \frac{\partial L}{\partial \dot{q}_j} \right) - \frac{\partial L}{\partial q_j} = 0

——拉格朗日方程


二 能量守恒。

方法一:对 L 函数全微分

我们直接考察拉格朗日函数 L(q,q˙,t)L(q, \dot{q}, t) 随时间的变化率。

dLdt=j=1sLqjq˙j+j=1sLq˙jq¨j+Lt\frac{dL}{dt} = \sum_{j=1}^s \frac{\partial L}{\partial q_j} \dot{q}_j + \sum_{j=1}^s \frac{\partial L}{\partial \dot{q}_j} \ddot{q}_j + \frac{\partial L}{\partial t}

代入拉格朗日方程:

ddt(Lq˙j)Lqj=0    Lqj=ddt(Lq˙j)\frac{d}{dt} \left( \frac{\partial L}{\partial \dot{q}_j} \right) - \frac{\partial L}{\partial q_j} = 0 \implies \frac{\partial L}{\partial q_j} = \frac{d}{dt} \left( \frac{\partial L}{\partial \dot{q}_j} \right)

得到:

dLdt=j=1s[ddt(Lq˙j)q˙j+Lq˙jdq˙jdt]+Lt\frac{dL}{dt} = \sum_{j=1}^s \left[ \frac{d}{dt} \left( \frac{\partial L}{\partial \dot{q}_j} \right) \dot{q}_j + \frac{\partial L}{\partial \dot{q}_j} \frac{d\dot{q}_j}{dt} \right] + \frac{\partial L}{\partial t}

注意到:

ddt(Lq˙j)q˙j+Lq˙jdq˙jdt=ddt(Lq˙jq˙j)\frac{d}{dt} \left( \frac{\partial L}{\partial \dot{q}_j} \right) \dot{q}_j + \frac{\partial L}{\partial \dot{q}_j} \frac{d\dot{q}_j}{dt} = \frac{d}{dt} \left( \frac{\partial L}{\partial \dot{q}_j} \dot{q}_j \right)

于是:

ddt(j=1sLq˙jq˙jL)=Lt\frac{d}{dt} \left( \sum_{j=1}^s \frac{\partial L}{\partial \dot{q}_j} \dot{q}_j - L \right) = -\frac{\partial L}{\partial t}

自然地,定义广义能量函数 h=Lq˙jq˙jLh = \sum \frac{\partial L}{\partial \dot{q}_j} \dot{q}_j - L
若系统不随时间显变(Lt=0\frac{\partial L}{\partial t} = 0),则 hh 是一个运动常数。

在大多数标准力学体系下,若约束不显含时间势能 VV 与速度无关动能 TT 是广义速度的二次元齐次函数):
Trick:

j=1sTq˙jq˙j=2T\sum_{j=1}^s \frac{\partial T}{\partial \dot{q}_j} \dot{q}_j = 2T

由于 L=TVL = T - VVq˙j=0\frac{\partial V}{\partial \dot{q}_j} = 0,则:

h=2T(TV)=T+V=Eh = 2T - (T - V) = T + V = E守恒

方法二:物理直觉 with Tricks

Tricks

Trick A (势能全导数)

dVdt=jVqjq˙j\frac{dV}{dt} = \sum_{j} \frac{\partial V}{\partial q_j} \dot{q}_j

Trick B (动能全导数):由于 T=T(q,q˙)T = T(q, \dot{q}),其全导数为:

dTdt=j(Tqjq˙j+Tq˙jq¨j)\frac{dT}{dt} = \sum_{j} \left( \frac{\partial T}{\partial q_j} \dot{q}_j + \frac{\partial T}{\partial \dot{q}_j} \ddot{q}_j \right)

Trick C (乘积法则逆推)

ddt(Tq˙jq˙j)=ddt(Tq˙j)q˙j+Tq˙jq¨j\frac{d}{dt} \left( \frac{\partial T}{\partial \dot{q}_j} \dot{q}_j \right) = \frac{d}{dt} \left( \frac{\partial T}{\partial \dot{q}_j} \right) \dot{q}_j + \frac{\partial T}{\partial \dot{q}_j} \ddot{q}_j

Trick D(总功率思想):拉格朗日方程两端同乘广义速度 q˙j\dot{q}_j 并求和

[ddt(Tq˙j)q˙jTqjq˙j+Vqjq˙j]=0\sum \left[ \frac{d}{dt}(\frac{\partial T}{\partial \dot{q}_j}) \dot{q}_j - \frac{\partial T}{\partial q_j} \dot{q}_j + \frac{\partial V}{\partial q_j} \dot{q}_j \right] = 0

**Trick E:(欧拉函数):**对于定常系统,动能 TT 是速度的二次齐次函数,满足

Tq˙jq˙j=2T\sum \frac{\partial T}{\partial \dot{q}_j} \dot{q}_j = 2T

Let’s start

首先利用 trickD

[ddt(Tq˙j)q˙jTqjq˙j+Vqjq˙j]=0\sum \left[ \frac{d}{dt}(\frac{\partial T}{\partial \dot{q}_j}) \dot{q}_j - \frac{\partial T}{\partial q_j} \dot{q}_j + \frac{\partial V}{\partial q_j} \dot{q}_j \right] = 0

其次利用 trickC 得到

j[(ddt(Tq˙jq˙j)Tq˙jq¨j)Tqjq˙j+Vqjq˙j]=0\sum_{j} \left[ \left( \frac{d}{dt} \left( \frac{\partial T}{\partial \dot{q}_j} \dot{q}_j \right) - \frac{\partial T}{\partial \dot{q}_j} \ddot{q}_j \right) - \frac{\partial T}{\partial q_j} \dot{q}_j + \frac{\partial V}{\partial q_j} \dot{q}_j \right] = 0

整理求和号内的项:

ddt(jTq˙jq˙j)j(Tq˙jq¨j+Tqjq˙j)Trick B,This isdTdt+jVqjq˙jTrickA,This isdVdt=0(Eq.2)\frac{d}{dt} \left( \sum_{j} \frac{\partial T}{\partial \dot{q}_j} \dot{q}_j \right) - \underbrace{\sum_{j} \left( \frac{\partial T}{\partial \dot{q}_j} \ddot{q}_j + \frac{\partial T}{\partial q_j} \dot{q}_j \right)}_{\text{Trick B,This is} \frac{dT}{dt}} + \underbrace{\sum_{j} \frac{\partial V}{\partial q_j} \dot{q}_j}_{\text{TrickA,This is} \frac{dV}{dt}} = 0 \quad \dots \text{(Eq.2)}

最后利用 trickE 得到:

ddt(2T)dTdt+dVdt=0\frac{d}{dt}(2T) - \frac{dT}{dt} + \frac{dV}{dt} = 0

即:

ddt(T+V)=0\frac{d}{dt}(T + V) = 0,表明 T+V=ET + V = E 守恒

注:也许这在现在看起来十分简单,但是如果清空脑子从头摸索也许真的会令人颇有回旋之感


三 单自由度系统的谐振频率解决

设系统动能 T=12f(q)q˙2T = \frac{1}{2} f(q) \dot{q}^2,势能 V=V(q)V = V(q)。在稳定平衡点 q0q_0 处满足 V(q0)=0V'(q_0) = 0

泰勒展开

显然:

V(q0)=0,V(q0)>0V'(q_0) = 0, \quad V''(q_0) > 0

引入微小偏离量 ξ=qq0\xi = q - q_0,则有 ξ˙=q˙\dot{\xi} = \dot{q}

1. 势能 V(q)V(q) 的展开

V(q)=V(q0)+V(q0)ξ+12V(q0)ξ2+O(ξ3)V(q) = V(q_0) + V'(q_0)\xi + \frac{1}{2}V''(q_0)\xi^2 + \mathcal{O}(\xi^3)

由于 V(q0)=0V'(q_0) = 0,且势能零点可以自由选取(令 V(q0)=0V(q_0) = 0),近似为:

V(ξ)12V(q0)ξ2V(\xi) \approx \frac{1}{2}V''(q_0)\xi^2

2. 动能系数 f(q)f(q) 的展开

f(q)=f(q0)+f(q0)ξ+f(q) = f(q_0) + f'(q_0)\xi + \dots

由于动能项本身含有二阶项 ξ˙2\dot{\xi}^2,只需保留 f(q)f(q) 的常数项:

T=12f(q)q˙212f(q0)ξ˙2T = \frac{1}{2}f(q)\dot{q}^2 \approx \frac{1}{2}f(q_0)\dot{\xi}^2

3. 近似拉格朗日量

L12f(q0)ξ˙212V(q0)ξ2L \approx \frac{1}{2}f(q_0)\dot{\xi}^2 - \frac{1}{2}V''(q_0)\xi^2

4. 近似拉格朗日量

E12f(q0)ξ˙2+12V(q0)ξ2E \approx \frac{1}{2} f(q_0) \dot{\xi}^2 + \frac{1}{2} V''(q_0) \xi^2


方法一:能量守恒法

由于 EE 不随时间变化,则

dEdt=0\frac{dE}{dt} = 0

即:

ddt[12f(q0)ξ˙2+12V(q0)ξ2]=0\frac{d}{dt} \left[ \frac{1}{2} f(q_0) \dot{\xi}^2 + \frac{1}{2} V''(q_0) \xi^2 \right] = 0

于是:

f(q0)ξ˙ξ¨+V(q0)ξξ˙=0f(q_0) \dot{\xi} \ddot{\xi} + V''(q_0) \xi \dot{\xi} = 0

最终

ξ¨+V(q0)f(q0)ξ=0\ddot{\xi} + \frac{V''(q_0)}{f(q_0)} \xi = 0


方法二:拉格朗日方程法

对于坐标 ξ\xi欧拉-拉格朗日方程为:

ddt(Lξ˙)Lξ=0\frac{d}{dt} \left( \frac{\partial L}{\partial \dot{\xi}} \right) - \frac{\partial L}{\partial \xi} = 0

利用

L=12f(q0)ξ˙212V(q0)ξ2L = \frac{1}{2}f(q_0)\dot{\xi}^2 - \frac{1}{2}V''(q_0)\xi^2

计算偏导项

  • Lξ˙=f(q0)ξ˙\frac{\partial L}{\partial \dot{\xi}} = f(q_0) \dot{\xi}
  • ddt(Lξ˙)=f(q0)ξ¨\frac{d}{dt} \left( \frac{\partial L}{\partial \dot{\xi}} \right) = f(q_0) \ddot{\xi}
  • Lξ=V(q0)ξ\frac{\partial L}{\partial \xi} = -V''(q_0) \xi

代入方程:

f(q0)ξ¨(V(q0)ξ)=0f(q_0) \ddot{\xi} - (-V''(q_0) \xi) = 0

整理得

f(q0)ξ¨+V(q0)ξ=0f(q_0) \ddot{\xi} + V''(q_0) \xi = 0


总之

我们都得到了:

ξ¨+ω2ξ=0\ddot{\xi} + \omega^2 \xi = 0

其中系数项即为角频率的平方:

ω2=V(q0)f(q0)\omega^2 = \frac{V''(q_0)}{f(q_0)}

由此角频率为:

ω=V(q0)f(q0)\omega = \sqrt{\frac{V''(q_0)}{f(q_0)}}


避坑

1. 不能混用 EELL

既然 E=T+V,L=TVE=T+V, L=T-V,能否写出 L=E2VL = E - 2V 简化偏导?
Absolutely not!

偏导的世界是显含的才叫做“关系

因为拉格朗日方程中的偏导数是在“保持 q˙\dot{q} 不变”的情况下对 qq 求导。而 EE 虽然在数值上守恒,但它作为一个关于变量的函数,其内部包含了 q˙\dot{q} 的信息。如果你强行代入,后果不堪,例如:

在标准系统中,势能 VV 仅是坐标的函数,即 V=V(q)V = V(q),因此:

Vq˙=0\frac{\partial V}{\partial \dot{q}} = 0

现在:

Vq˙wrong opration(ET)q˙=Eq˙0?Tq˙=Tq˙0\frac{\partial V}{\partial \dot{q}} \xrightarrow{\text{wrong opration}} \frac{\partial (E - T)}{\partial \dot{q}} = \underbrace{\frac{\partial E}{\partial \dot{q}}}_{0 ?} - \frac{\partial T}{\partial \dot{q}} = -\frac{\partial T}{\partial \dot{q}} \neq 0

结果可想而知……

2. 关于虚位移 δq\delta q 一种思考

实位移 dqdq 跟着时间轴的走动;而虚位移 δq\delta q 是**“时间静止”**下的幻想游走。
看一部电影的感觉,实位移是电影播放时的视频;虚位移则是按下暂停键的时候,在那一帧画面上,人物可能进行的任何方向的走动,但这些走动不依赖于时间——只需要满足约束关系例如不穿墙、不上天等等

随结

这场“夜晚物理大戏”的教训是沉重的:

​ 不要轻易相信 normal AI 的无缘幻想和“无厘头爆算”,它可能只是在用废话生成的随机扰动

除非你用的 AI它确实很强