本文由我原创。

0 前言

牛顿力学在解决一些问题时需要繁琐地考虑约束力的问题,有时候一道简单的静力学题目也要数十个方程,这种情况下牛顿力学显然不是一种简便快捷的方法。

而分析力学的优势在于不用考虑约束力,利用虚功原理或拉格朗日方程能大大简化问题的模型;缺点是面对对有能量损耗(如摩擦力)的系统时很难发挥作用。

想用好虚功原理或拉格朗日方程解决问题,关键在于找到合适的题目。

1 虚功原理

1.1 虚功原理的推导

对于一个受力平衡的质点,有 F+R=0F+R=0,其中 FF 为主动力,RR 为约束力。

设质点移动了一个虚位移 δx\delta x,则做的虚功也应为 0,即 (F+R)δx=0(F+R)\delta x=0,由于约束力不做功,则 Fδx=0F\delta x=0

对于一个有 nn 个质点的质点组,则是 iFiδxi=0\displaystyle\sum_i F_i\delta x_i=0

可以用广义坐标来描述质点组的运动,即 xi=xi(q1,q2,...,qk,t)x_i=x_i(q_1,q_2,...,q_k,t),根据全微分可以写出 $\displaystyle\delta x_i=\sum_\alpha\dfrac{\partial x_i}{\partial q_\alpha}\delta q_\alpha+\dfrac{\partial x_i}{\partial t}\delta t$

因为时间的虚位移为 00,于是最后一项可以舍去,我们可以把原方程改写为

$$\sum_i F_i\left(\sum_\alpha\dfrac{\partial x_i}{\partial q_\alpha}\delta q_\alpha\right)=0 $$

由于求和可以交换顺序,于是

$$\sum_\alpha\left(\sum_i F_i\dfrac{\partial x_i}{\partial q_\alpha}\right)\delta q_\alpha=0 $$

又因为 qαq_\alpha 之间互不影响,可以得出

$$\sum_i F_i\dfrac{\partial x_i}{\partial q_\alpha}=0 $$

在保守系下 Fi=VixiF_i=-\dfrac{\partial V_i}{\partial x_i},于是上式又可以写成

$$\sum_i\dfrac{\partial V_i}{\partial x_i}\dfrac{\partial x_i}{\partial q_\alpha}=\sum_i\dfrac{\partial V_i}{\partial q_\alpha}=\dfrac{\partial V}{\partial q_\alpha}=0 $$

1.2 虚功原理例题

2 拉格朗日方程

2.1 拉格朗日方程推导

同虚功原理,对于质点系,有 Fi+Ri=maiF_i+R_i=ma_i,即

$$\sum_i(F_i+R_i)\delta x_i=\sum_iF_i\delta x_i=\sum_im_ia_i\delta x_i=\sum_im_i\ddot{x_i}\delta x_i $$

由全微分以及微分公式 udv=d(uv)vduu\mathrm{d}v=\mathrm{d}(uv)-v\mathrm{d}u 进行变换(式中 VV 为势能,TT 为动能):

$$\begin{split} \mathrm{LHS}&=\sum_\alpha\sum_i\left(F_i\dfrac{\partial x_i}{\partial q_\alpha}\right)\delta q_\alpha\\ &=\sum_\alpha\sum_i\left[\left(-\dfrac{\partial V_i}{\partial x_i}\right)\dfrac{\partial x_i}{\partial q_\alpha}\right]\delta q_\alpha\\ &=\sum_\alpha\left[\sum_i\left(-\dfrac{\partial V_i}{\partial q_\alpha}\right)\right]\delta q_\alpha\\ &=\sum_\alpha\left(-\dfrac{\partial V}{\partial q_\alpha}\right)\delta q_\alpha \end{split} $$$$\begin{split} \mathrm{RHS}&=\sum_\alpha\sum_i\left(m_i\ddot{x_i}\dfrac{\partial x_i}{\partial q_\alpha}\right)\delta q_\alpha\\ &=\sum_\alpha\sum_i\left[\dfrac{\mathrm{d}}{\mathrm{d}t}\left(m_i\dot{x_i}\dfrac{\partial x_i}{\partial q_\alpha}\right)-m_i\dot{x_i}\dfrac{\partial \dot{x_i}}{\partial q_\alpha}\right]\delta q_\alpha \end{split} $$

因为 $\dfrac{\partial x_i}{\partial q_\alpha}=\dfrac{\partial \dot{x_i}}{\partial \dot{q_\alpha}}$ 和 $m_i\dot{x_i}\mathrm{d}\dot{x_i}=\mathrm{d}\left(\dfrac{1}{2}m\dot{x}^2\right)=\mathrm{d}T_i$,我们有

$$\begin{split} \mathrm{RHS}&=\sum_\alpha\sum_i\left[\dfrac{\mathrm{d}}{\mathrm{d}t}\left(\dfrac{m_i\dot{x_i}\partial\dot{x_i}}{\partial \dot{q_\alpha}}\right)-\dfrac{m_i\dot{x_i}\partial\dot{x_i}}{\partial q_\alpha}\right]\delta q_\alpha\\ &=\sum_\alpha\left[\sum_i\left(\dfrac{\mathrm{d}}{\mathrm{d}t}\dfrac{\partial T_i}{\partial \dot{q_\alpha}}-\dfrac{\partial T_i}{\partial q_\alpha}\right)\right]\delta q_\alpha\\ &=\sum_\alpha\left(\dfrac{\mathrm{d}}{\mathrm{d}t}\dfrac{\partial T}{\partial \dot{q_\alpha}}-\dfrac{\partial T}{\partial q_\alpha}\right)\delta q_\alpha \end{split} $$

所以

$$\sum_\alpha\left(\dfrac{\mathrm{d}}{\mathrm{d}t}\dfrac{\partial T}{\partial \dot{q_\alpha}}-\dfrac{\partial T}{\partial q_\alpha}\right)\delta q_\alpha=\sum_\alpha\left(-\dfrac{\partial V}{\partial q_\alpha}\right)\delta q_\alpha $$$$\dfrac{\mathrm{d}}{\mathrm{d}t}\dfrac{\partial T}{\partial \dot{q_\alpha}}-\dfrac{\partial T}{\partial q_\alpha}=-\dfrac{\partial V}{\partial q_\alpha} $$

拉格朗日定义了拉格朗日量 L=TVL=T-V ,由于 Vqα˙=0\dfrac{\partial V}{\partial \dot{q_\alpha}}=0,所以上式又可以改写为

$$\dfrac{\mathrm{d}}{\mathrm{d}t}\dfrac{\partial L}{\partial \dot{q_\alpha}}-\dfrac{\partial L}{\partial q_\alpha}=0 $$

这是拉格朗日方程最广为人知的形式。

2.2 拉格朗日方程的几个实例

e.g.1 重力场中质点的运动

e.g.2 天体运动在不同坐标系下的表达

2.3 拉格朗日方程例题

2.4* 绕过拉格朗日方程解决问题的方法